Skip to content

The eMASS client repository maintains the Enterprise Mission Assurance Support Service (eMASS) Representational State Transfer (REST) Application Programming Interface (API) specification and executables. The executables packages currently provided are: RubyGem and TypeScript Node.

Notifications You must be signed in to change notification settings

georgedias/emass_client

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Generate OpenAPI Clients Generate eMASS Documentation Deploy to GitHub Pages

CodeQL Vulnerabilities and Errors Ruby Client Testing

GitHub Release Date GitHub release (latest by date) Gem npm

eMASS Client

The eMASS client repository (emass_client) maintains the Enterprise Mission Assurance Support Service (eMASS) Representational State Transfer (REST) Application Programming Interface (API) specifications and executables. The executables packages currently provided are: RubyGem and TypeScript Node.

NOTE: A CLI tool called emasser, has been developed that makes use of the emass_client RubyGem.

The eMASS API is documented in YAML and can be viewed utilizing a multitude of visualization tools. Included is a dependency-free (and nice looking) rendering tool for viewing the API specification. The documentation is automatically generated using a Continuos Integration (CI) action redoc-cli command line tool.

This repository allows anyone to visualize and interact with the API’s resources without having any of the implementation logic in place, via hosted or local mock servers. Please reference Developers Instruction on how to setup a local mock server

eMASS API Clients Generation Process

The executable packages (APIs) generated are used to access eMASS data and functionality by external third-party developers, business partners, or internal departments.

The following emass_client executable packages are generated by this repository:

  • Ruby - The ruby package is hosted and available in the RubyGems.

  • Typescript - The typescript package is hosted and available in the NpmRegistry.

Making Changes to eMASS Clients

The most appropriat way to propose modifications or make changes to the eMASS clients generated in this repository is by forking this repository.

  • Step 1

    Fork this repository

  • Step 2 (otional)

    Create a new branch to apply the modifications

  • Step 3

    Clone the newly create branch into the local machine

  • Step 4

    Make the necessary changes, modification locally

    Ensure that the client(s) configuration file src/openapi/templates/[ruby or typescript]-generator-config.json reflect the correct version to be generated

    Note: Modifications or updates to the eMASS API specification file eMASSRestOpenApi.yaml triggers the clients' generation actions; both the ruby src/ruby_clientand typescript-axios src/typescript_clientclients are re-generated and committed to the repository when merged with the main branch.

  • Step 5

    Update local changes to the forked

  • Step 6

    Create a pull request, this is where the changes are compared to the main branch of the forked repository

  • Step 7

    Once the repository maintainer has approved a pull request, the updates in the forked or branch repository are merged with the main project repository.

NOTE: The generated clients version does not necessary have to be synchronized with the GitHub Release

Other Programming Languages

For detail information on how-to generating eMASS clients for other programming languages reference Developers Instructions

Repository Architecture

The process provided by this repository is depicted by the architecture diagram below. In a nutshell, it provides the capability of hosting the eMAASS API documentation, generating interactive visualization tools, static/dynamic testing, and generating API clients for ruby and typescript languages.

Alt text

Client Application

The emass_client executable packages can be included in other projects, or used to generate CLI tools that have a need to access an eMASS instance. This is demonstrated by the diagram below.

Alt text

NOTICE

© 2020 The MITRE Corporation.

Approved for Public Release; Distribution Unlimited. Case Number 18-3678.

NOTICE

MITRE hereby grants express written permission to use, reproduce, distribute, modify, and otherwise leverage this software to the extent permitted by the licensed terms provided in the LICENSE.md file included with this project.

NOTICE

This software was produced for the U. S. Government under Contract Number HHSM-500-2012-00008I, and is subject to Federal Acquisition Regulation Clause 52.227-14, Rights in Data-General.

No other use other than that granted to the U. S. Government, or to those acting on behalf of the U. S. Government under that Clause is authorized without the express written permission of The MITRE Corporation.

For further information, please contact The MITRE Corporation, Contracts Management Office, 7515 Colshire Drive, McLean, VA 22102-7539, (703) 983-6000.

About

The eMASS client repository maintains the Enterprise Mission Assurance Support Service (eMASS) Representational State Transfer (REST) Application Programming Interface (API) specification and executables. The executables packages currently provided are: RubyGem and TypeScript Node.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 82.4%
  • TypeScript 16.2%
  • Mustache 1.2%
  • Shell 0.2%