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
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.
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 generatedNote: Modifications or updates to the eMASS API specification file
eMASSRestOpenApi.yaml
triggers the clients' generation actions; both the rubysrc/ruby_client
and typescript-axiossrc/typescript_client
clients 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
For detail information on how-to generating eMASS clients for other programming languages reference Developers Instructions
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.
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.
© 2020 The MITRE Corporation.
Approved for Public Release; Distribution Unlimited. Case Number 18-3678.
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.
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.