emasser 1.0.0 → 1.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.dockerignore +5 -8
- data/.env-example +3 -1
- data/.github/release-drafter.yml +2 -2
- data/.github/workflows/gh-pages.yml +4 -5
- data/.github/workflows/push-to-docker-mail.yml +28 -0
- data/.github/workflows/push-to-docker.yml +35 -0
- data/.github/workflows/release.yml +7 -3
- data/.github/workflows/test-cli.yml +4 -5
- data/.gitignore +3 -1
- data/Dockerfile +37 -3
- data/Gemfile +1 -1
- data/Gemfile.lock +37 -43
- data/README.md +131 -61
- data/docs/features.md +345 -207
- data/docs/images/emasser_architecture.jpg +0 -0
- data/emasser.gemspec +16 -12
- data/exe/emasser +0 -0
- data/images/emasser_architecture.jpg +0 -0
- data/images/emasser_diagram-Page-3.jpg +0 -0
- data/lib/emasser/cli.rb +12 -0
- data/lib/emasser/configuration.rb +22 -7
- data/lib/emasser/constants.rb +11 -3
- data/lib/emasser/delete.rb +14 -12
- data/lib/emasser/get.rb +83 -88
- data/lib/emasser/help/cloudresource_post_mapper.md +62 -0
- data/lib/emasser/help/container_post_mapper.md +44 -0
- data/lib/emasser/output_converters.rb +101 -4
- data/lib/emasser/post.rb +248 -55
- data/lib/emasser/put.rb +29 -22
- data/lib/emasser/version.rb +1 -1
- data/lib/emasser.rb +1 -1
- metadata +64 -447
- data/.github/workflows/generate_docs.yml +0 -33
- data/TAGS +0 -2393
- data/docs/developers.md +0 -115
- data/docs/swagger/dist/favicon-16x16.png +0 -0
- data/docs/swagger/dist/favicon-32x32.png +0 -0
- data/docs/swagger/dist/oauth2-redirect.html +0 -75
- data/docs/swagger/dist/swagger-ui-bundle.js +0 -3
- data/docs/swagger/dist/swagger-ui-bundle.js.map +0 -1
- data/docs/swagger/dist/swagger-ui-es-bundle-core.js +0 -3
- data/docs/swagger/dist/swagger-ui-es-bundle-core.js.map +0 -1
- data/docs/swagger/dist/swagger-ui-es-bundle.js +0 -3
- data/docs/swagger/dist/swagger-ui-es-bundle.js.map +0 -1
- data/docs/swagger/dist/swagger-ui-standalone-preset.js +0 -3
- data/docs/swagger/dist/swagger-ui-standalone-preset.js.map +0 -1
- data/docs/swagger/dist/swagger-ui.css +0 -4
- data/docs/swagger/dist/swagger-ui.css.map +0 -1
- data/docs/swagger/dist/swagger-ui.js +0 -3
- data/docs/swagger/dist/swagger-ui.js.map +0 -1
- data/docs/swagger/index.html +0 -60
- data/emass_client/eMASSRestOpenApi.yaml +0 -5698
- data/emass_client/ruby_client/.gitignore +0 -39
- data/emass_client/ruby_client/.rspec +0 -2
- data/emass_client/ruby_client/.rubocop.yml +0 -154
- data/emass_client/ruby_client/.swagger-codegen/VERSION +0 -1
- data/emass_client/ruby_client/.swagger-codegen-ignore +0 -23
- data/emass_client/ruby_client/Gemfile +0 -9
- data/emass_client/ruby_client/README.md +0 -1284
- data/emass_client/ruby_client/Rakefile +0 -8
- data/emass_client/ruby_client/docs/ArtifactsApi.md +0 -284
- data/emass_client/ruby_client/docs/ArtifactsDelete.md +0 -6
- data/emass_client/ruby_client/docs/ArtifactsDeleteInner.md +0 -7
- data/emass_client/ruby_client/docs/ArtifactsExportApi.md +0 -76
- data/emass_client/ruby_client/docs/ArtifactsGet.md +0 -20
- data/emass_client/ruby_client/docs/ArtifactsRequestPutBody.md +0 -16
- data/emass_client/ruby_client/docs/ArtifactsResponseDel.md +0 -8
- data/emass_client/ruby_client/docs/ArtifactsResponseDelData.md +0 -9
- data/emass_client/ruby_client/docs/ArtifactsResponseGet.md +0 -8
- data/emass_client/ruby_client/docs/ArtifactsResponsePutPost.md +0 -8
- data/emass_client/ruby_client/docs/CACApi.md +0 -140
- data/emass_client/ruby_client/docs/CMMCAssessmentsApi.md +0 -71
- data/emass_client/ruby_client/docs/CacGet.md +0 -13
- data/emass_client/ruby_client/docs/CacRequestPostBody.md +0 -8
- data/emass_client/ruby_client/docs/CacResponseGet.md +0 -8
- data/emass_client/ruby_client/docs/CacResponsePost.md +0 -8
- data/emass_client/ruby_client/docs/CacResponsePostData.md +0 -9
- data/emass_client/ruby_client/docs/CmmcGet.md +0 -19
- data/emass_client/ruby_client/docs/CmmcResponseGet.md +0 -8
- data/emass_client/ruby_client/docs/ConnectivityCcsd.md +0 -8
- data/emass_client/ruby_client/docs/ControlsApi.md +0 -140
- data/emass_client/ruby_client/docs/ControlsGet.md +0 -36
- data/emass_client/ruby_client/docs/ControlsPut.md +0 -9
- data/emass_client/ruby_client/docs/ControlsRequestPutBody.md +0 -29
- data/emass_client/ruby_client/docs/ControlsResponseGet.md +0 -8
- data/emass_client/ruby_client/docs/ControlsResponsePut.md +0 -8
- data/emass_client/ruby_client/docs/DefinitionTransitions.md +0 -9
- data/emass_client/ruby_client/docs/DeleteMilestone.md +0 -7
- data/emass_client/ruby_client/docs/DeletePoam.md +0 -7
- data/emass_client/ruby_client/docs/Empty200Response.md +0 -6
- data/emass_client/ruby_client/docs/Error.md +0 -8
- data/emass_client/ruby_client/docs/InstancesTransitions.md +0 -12
- data/emass_client/ruby_client/docs/MilestoneResponseGet.md +0 -8
- data/emass_client/ruby_client/docs/MilestoneResponsePost.md +0 -8
- data/emass_client/ruby_client/docs/MilestoneResponsePut.md +0 -8
- data/emass_client/ruby_client/docs/MilestonesApi.md +0 -350
- data/emass_client/ruby_client/docs/MilestonesDelete.md +0 -6
- data/emass_client/ruby_client/docs/MilestonesGet.md +0 -12
- data/emass_client/ruby_client/docs/MilestonesPost.md +0 -6
- data/emass_client/ruby_client/docs/MilestonesPut.md +0 -6
- data/emass_client/ruby_client/docs/MilestonesPutPostDelete.md +0 -11
- data/emass_client/ruby_client/docs/MilestonesRequestPostBody.md +0 -9
- data/emass_client/ruby_client/docs/MilestonesRequestPutBody.md +0 -9
- data/emass_client/ruby_client/docs/MilestonesRequiredPost.md +0 -8
- data/emass_client/ruby_client/docs/MilestonesRequiredPut.md +0 -9
- data/emass_client/ruby_client/docs/Model200.md +0 -7
- data/emass_client/ruby_client/docs/Model201.md +0 -7
- data/emass_client/ruby_client/docs/Model201Meta.md +0 -8
- data/emass_client/ruby_client/docs/Model400.md +0 -7
- data/emass_client/ruby_client/docs/Model400Meta.md +0 -8
- data/emass_client/ruby_client/docs/Model400Response.md +0 -7
- data/emass_client/ruby_client/docs/Model401.md +0 -7
- data/emass_client/ruby_client/docs/Model401Meta.md +0 -8
- data/emass_client/ruby_client/docs/Model403.md +0 -7
- data/emass_client/ruby_client/docs/Model403Meta.md +0 -8
- data/emass_client/ruby_client/docs/Model404.md +0 -8
- data/emass_client/ruby_client/docs/Model404Response.md +0 -7
- data/emass_client/ruby_client/docs/Model405.md +0 -7
- data/emass_client/ruby_client/docs/Model405Meta.md +0 -8
- data/emass_client/ruby_client/docs/Model411.md +0 -7
- data/emass_client/ruby_client/docs/Model411Meta.md +0 -8
- data/emass_client/ruby_client/docs/Model490.md +0 -7
- data/emass_client/ruby_client/docs/Model490Meta.md +0 -8
- data/emass_client/ruby_client/docs/Model500.md +0 -7
- data/emass_client/ruby_client/docs/Model500Meta.md +0 -8
- data/emass_client/ruby_client/docs/PACApi.md +0 -137
- data/emass_client/ruby_client/docs/POAMApi.md +0 -346
- data/emass_client/ruby_client/docs/PacGet.md +0 -14
- data/emass_client/ruby_client/docs/PacPost.md +0 -9
- data/emass_client/ruby_client/docs/PacRequestPostBody.md +0 -9
- data/emass_client/ruby_client/docs/PacResponseGet.md +0 -8
- data/emass_client/ruby_client/docs/PacResponsePost.md +0 -8
- data/emass_client/ruby_client/docs/PoamDelete.md +0 -6
- data/emass_client/ruby_client/docs/PoamGet.md +0 -39
- data/emass_client/ruby_client/docs/PoamPost.md +0 -6
- data/emass_client/ruby_client/docs/PoamPostPutDel.md +0 -10
- data/emass_client/ruby_client/docs/PoamPut.md +0 -6
- data/emass_client/ruby_client/docs/PoamRequestPostBody.md +0 -6
- data/emass_client/ruby_client/docs/PoamRequestPutBody.md +0 -6
- data/emass_client/ruby_client/docs/PoamRequiredPost.md +0 -32
- data/emass_client/ruby_client/docs/PoamRequiredPut.md +0 -35
- data/emass_client/ruby_client/docs/PoamResponseDelete.md +0 -8
- data/emass_client/ruby_client/docs/PoamResponseGet.md +0 -8
- data/emass_client/ruby_client/docs/PoamResponsePost.md +0 -8
- data/emass_client/ruby_client/docs/PoamResponsePut.md +0 -8
- data/emass_client/ruby_client/docs/Register.md +0 -8
- data/emass_client/ruby_client/docs/RegisterData.md +0 -7
- data/emass_client/ruby_client/docs/RegisterUserRequestPostBody.md +0 -7
- data/emass_client/ruby_client/docs/RegistrationApi.md +0 -71
- data/emass_client/ruby_client/docs/RoleCategory.md +0 -10
- data/emass_client/ruby_client/docs/Roles.md +0 -9
- data/emass_client/ruby_client/docs/Ssps.md +0 -9
- data/emass_client/ruby_client/docs/Stage.md +0 -8
- data/emass_client/ruby_client/docs/StaticCodeApplication.md +0 -12
- data/emass_client/ruby_client/docs/StaticCodeRequestPostBody.md +0 -6
- data/emass_client/ruby_client/docs/StaticCodeRequiredPost.md +0 -8
- data/emass_client/ruby_client/docs/StaticCodeRequiredPostApplication.md +0 -8
- data/emass_client/ruby_client/docs/StaticCodeScansApi.md +0 -73
- data/emass_client/ruby_client/docs/Success200Response.md +0 -8
- data/emass_client/ruby_client/docs/SystemIdArtifactsBody.md +0 -10
- data/emass_client/ruby_client/docs/SystemResponse.md +0 -8
- data/emass_client/ruby_client/docs/SystemRolesApi.md +0 -137
- data/emass_client/ruby_client/docs/SystemRolesCategoryResponse.md +0 -8
- data/emass_client/ruby_client/docs/SystemRolesResponse.md +0 -8
- data/emass_client/ruby_client/docs/SystemRolesResponseData.md +0 -8
- data/emass_client/ruby_client/docs/Systems.md +0 -70
- data/emass_client/ruby_client/docs/SystemsApi.md +0 -155
- data/emass_client/ruby_client/docs/Test.md +0 -8
- data/emass_client/ruby_client/docs/TestApi.md +0 -66
- data/emass_client/ruby_client/docs/TestData.md +0 -7
- data/emass_client/ruby_client/docs/TestResultsApi.md +0 -144
- data/emass_client/ruby_client/docs/TestResultsGet.md +0 -15
- data/emass_client/ruby_client/docs/TestResultsPost.md +0 -9
- data/emass_client/ruby_client/docs/TestResultsRequestPostBody.md +0 -11
- data/emass_client/ruby_client/docs/TestResultsResponseGet.md +0 -8
- data/emass_client/ruby_client/docs/TestResultsResponsePost.md +0 -8
- data/emass_client/ruby_client/docs/Users.md +0 -9
- data/emass_client/ruby_client/docs/WorkflowDefinitionGet.md +0 -11
- data/emass_client/ruby_client/docs/WorkflowDefinitionResponseGet.md +0 -8
- data/emass_client/ruby_client/docs/WorkflowDefinitionsApi.md +0 -74
- data/emass_client/ruby_client/docs/WorkflowInstancesApi.md +0 -146
- data/emass_client/ruby_client/docs/WorkflowInstancesGet.md +0 -16
- data/emass_client/ruby_client/docs/WorkflowInstancesResponseGet.md +0 -8
- data/emass_client/ruby_client/git_push.sh +0 -55
- data/emass_client/ruby_client/lib/swagger_client/api/artifacts_api.rb +0 -310
- data/emass_client/ruby_client/lib/swagger_client/api/artifacts_export_api.rb +0 -86
- data/emass_client/ruby_client/lib/swagger_client/api/cac_api.rb +0 -143
- data/emass_client/ruby_client/lib/swagger_client/api/cmmc_assessments_api.rb +0 -77
- data/emass_client/ruby_client/lib/swagger_client/api/controls_api.rb +0 -143
- data/emass_client/ruby_client/lib/swagger_client/api/milestones_api.rb +0 -366
- data/emass_client/ruby_client/lib/swagger_client/api/pac_api.rb +0 -140
- data/emass_client/ruby_client/lib/swagger_client/api/poam_api.rb +0 -345
- data/emass_client/ruby_client/lib/swagger_client/api/registration_api.rb +0 -78
- data/emass_client/ruby_client/lib/swagger_client/api/static_code_scans_api.rb +0 -84
- data/emass_client/ruby_client/lib/swagger_client/api/system_roles_api.rb +0 -150
- data/emass_client/ruby_client/lib/swagger_client/api/systems_api.rb +0 -162
- data/emass_client/ruby_client/lib/swagger_client/api/test_api.rb +0 -70
- data/emass_client/ruby_client/lib/swagger_client/api/test_results_api.rb +0 -149
- data/emass_client/ruby_client/lib/swagger_client/api/workflow_definitions_api.rb +0 -76
- data/emass_client/ruby_client/lib/swagger_client/api/workflow_instances_api.rb +0 -153
- data/emass_client/ruby_client/lib/swagger_client/api_client.rb +0 -389
- data/emass_client/ruby_client/lib/swagger_client/api_error.rb +0 -57
- data/emass_client/ruby_client/lib/swagger_client/configuration.rb +0 -224
- data/emass_client/ruby_client/lib/swagger_client/models/artifacts_delete.rb +0 -201
- data/emass_client/ruby_client/lib/swagger_client/models/artifacts_delete_inner.rb +0 -207
- data/emass_client/ruby_client/lib/swagger_client/models/artifacts_get.rb +0 -383
- data/emass_client/ruby_client/lib/swagger_client/models/artifacts_request_put_body.rb +0 -363
- data/emass_client/ruby_client/lib/swagger_client/models/artifacts_response_del.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/artifacts_response_del_data.rb +0 -225
- data/emass_client/ruby_client/lib/swagger_client/models/artifacts_response_get.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/artifacts_response_put_post.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/cac_get.rb +0 -301
- data/emass_client/ruby_client/lib/swagger_client/models/cac_request_post_body.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/cac_response_get.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/cac_response_post.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/cac_response_post_data.rb +0 -225
- data/emass_client/ruby_client/lib/swagger_client/models/cmmc_get.rb +0 -398
- data/emass_client/ruby_client/lib/swagger_client/models/cmmc_response_get.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/connectivity_ccsd.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/controls_get.rb +0 -663
- data/emass_client/ruby_client/lib/swagger_client/models/controls_put.rb +0 -227
- data/emass_client/ruby_client/lib/swagger_client/models/controls_request_put_body.rb +0 -606
- data/emass_client/ruby_client/lib/swagger_client/models/controls_response_get.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/controls_response_put.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/definition_transitions.rb +0 -274
- data/emass_client/ruby_client/lib/swagger_client/models/delete_milestone.rb +0 -212
- data/emass_client/ruby_client/lib/swagger_client/models/delete_poam.rb +0 -212
- data/emass_client/ruby_client/lib/swagger_client/models/empty200_response.rb +0 -197
- data/emass_client/ruby_client/lib/swagger_client/models/error.rb +0 -225
- data/emass_client/ruby_client/lib/swagger_client/models/instances_transitions.rb +0 -327
- data/emass_client/ruby_client/lib/swagger_client/models/milestone_response_get.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/milestone_response_post.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/milestone_response_put.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/milestones_delete.rb +0 -197
- data/emass_client/ruby_client/lib/swagger_client/models/milestones_get.rb +0 -291
- data/emass_client/ruby_client/lib/swagger_client/models/milestones_post.rb +0 -197
- data/emass_client/ruby_client/lib/swagger_client/models/milestones_put.rb +0 -197
- data/emass_client/ruby_client/lib/swagger_client/models/milestones_put_post_delete.rb +0 -247
- data/emass_client/ruby_client/lib/swagger_client/models/milestones_request_post_body.rb +0 -242
- data/emass_client/ruby_client/lib/swagger_client/models/milestones_request_put_body.rb +0 -242
- data/emass_client/ruby_client/lib/swagger_client/models/milestones_required_post.rb +0 -227
- data/emass_client/ruby_client/lib/swagger_client/models/milestones_required_put.rb +0 -242
- data/emass_client/ruby_client/lib/swagger_client/models/model_200.rb +0 -208
- data/emass_client/ruby_client/lib/swagger_client/models/model_201.rb +0 -206
- data/emass_client/ruby_client/lib/swagger_client/models/model_201_meta.rb +0 -219
- data/emass_client/ruby_client/lib/swagger_client/models/model_400.rb +0 -206
- data/emass_client/ruby_client/lib/swagger_client/models/model_400_meta.rb +0 -219
- data/emass_client/ruby_client/lib/swagger_client/models/model_400_response.rb +0 -206
- data/emass_client/ruby_client/lib/swagger_client/models/model_401.rb +0 -206
- data/emass_client/ruby_client/lib/swagger_client/models/model_401_meta.rb +0 -219
- data/emass_client/ruby_client/lib/swagger_client/models/model_403.rb +0 -206
- data/emass_client/ruby_client/lib/swagger_client/models/model_403_meta.rb +0 -219
- data/emass_client/ruby_client/lib/swagger_client/models/model_404.rb +0 -219
- data/emass_client/ruby_client/lib/swagger_client/models/model_404_response.rb +0 -206
- data/emass_client/ruby_client/lib/swagger_client/models/model_405.rb +0 -206
- data/emass_client/ruby_client/lib/swagger_client/models/model_405_meta.rb +0 -219
- data/emass_client/ruby_client/lib/swagger_client/models/model_411.rb +0 -206
- data/emass_client/ruby_client/lib/swagger_client/models/model_411_meta.rb +0 -219
- data/emass_client/ruby_client/lib/swagger_client/models/model_490.rb +0 -206
- data/emass_client/ruby_client/lib/swagger_client/models/model_490_meta.rb +0 -219
- data/emass_client/ruby_client/lib/swagger_client/models/model_500.rb +0 -206
- data/emass_client/ruby_client/lib/swagger_client/models/model_500_meta.rb +0 -219
- data/emass_client/ruby_client/lib/swagger_client/models/pac_get.rb +0 -311
- data/emass_client/ruby_client/lib/swagger_client/models/pac_post.rb +0 -259
- data/emass_client/ruby_client/lib/swagger_client/models/pac_request_post_body.rb +0 -261
- data/emass_client/ruby_client/lib/swagger_client/models/pac_response_get.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/pac_response_post.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/poam_delete.rb +0 -197
- data/emass_client/ruby_client/lib/swagger_client/models/poam_get.rb +0 -646
- data/emass_client/ruby_client/lib/swagger_client/models/poam_post.rb +0 -197
- data/emass_client/ruby_client/lib/swagger_client/models/poam_post_put_del.rb +0 -237
- data/emass_client/ruby_client/lib/swagger_client/models/poam_put.rb +0 -197
- data/emass_client/ruby_client/lib/swagger_client/models/poam_request_post_body.rb +0 -197
- data/emass_client/ruby_client/lib/swagger_client/models/poam_request_put_body.rb +0 -197
- data/emass_client/ruby_client/lib/swagger_client/models/poam_required_post.rb +0 -564
- data/emass_client/ruby_client/lib/swagger_client/models/poam_required_put.rb +0 -594
- data/emass_client/ruby_client/lib/swagger_client/models/poam_response_delete.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/poam_response_get.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/poam_response_post.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/poam_response_put.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/register.rb +0 -215
- data/emass_client/ruby_client/lib/swagger_client/models/register_data.rb +0 -206
- data/emass_client/ruby_client/lib/swagger_client/models/register_user_request_post_body.rb +0 -211
- data/emass_client/ruby_client/lib/swagger_client/models/role_category.rb +0 -272
- data/emass_client/ruby_client/lib/swagger_client/models/roles.rb +0 -274
- data/emass_client/ruby_client/lib/swagger_client/models/ssps.rb +0 -227
- data/emass_client/ruby_client/lib/swagger_client/models/stage.rb +0 -252
- data/emass_client/ruby_client/lib/swagger_client/models/static_code_application.rb +0 -303
- data/emass_client/ruby_client/lib/swagger_client/models/static_code_request_post_body.rb +0 -197
- data/emass_client/ruby_client/lib/swagger_client/models/static_code_required_post.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/static_code_required_post_application.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/success200_response.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/system_id_artifacts_body.rb +0 -284
- data/emass_client/ruby_client/lib/swagger_client/models/system_response.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/system_roles_category_response.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/system_roles_response.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/system_roles_response_data.rb +0 -219
- data/emass_client/ruby_client/lib/swagger_client/models/systems.rb +0 -1137
- data/emass_client/ruby_client/lib/swagger_client/models/test.rb +0 -215
- data/emass_client/ruby_client/lib/swagger_client/models/test_data.rb +0 -206
- data/emass_client/ruby_client/lib/swagger_client/models/test_results_get.rb +0 -333
- data/emass_client/ruby_client/lib/swagger_client/models/test_results_post.rb +0 -227
- data/emass_client/ruby_client/lib/swagger_client/models/test_results_request_post_body.rb +0 -306
- data/emass_client/ruby_client/lib/swagger_client/models/test_results_response_get.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/test_results_response_post.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/users.rb +0 -224
- data/emass_client/ruby_client/lib/swagger_client/models/workflow_definition_get.rb +0 -282
- data/emass_client/ruby_client/lib/swagger_client/models/workflow_definition_response_get.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/models/workflow_instances_get.rb +0 -368
- data/emass_client/ruby_client/lib/swagger_client/models/workflow_instances_response_get.rb +0 -217
- data/emass_client/ruby_client/lib/swagger_client/version.rb +0 -14
- data/emass_client/ruby_client/lib/swagger_client.rb +0 -161
- data/emass_client/ruby_client/spec/api/artifacts_api_spec.rb +0 -92
- data/emass_client/ruby_client/spec/api/artifacts_export_api_spec.rb +0 -48
- data/emass_client/ruby_client/spec/api/cac_api_spec.rb +0 -60
- data/emass_client/ruby_client/spec/api/cmmc_assessments_api_spec.rb +0 -46
- data/emass_client/ruby_client/spec/api/controls_api_spec.rb +0 -60
- data/emass_client/ruby_client/spec/api/milestones_api_spec.rb +0 -105
- data/emass_client/ruby_client/spec/api/pac_api_spec.rb +0 -59
- data/emass_client/ruby_client/spec/api/poam_api_spec.rb +0 -103
- data/emass_client/ruby_client/spec/api/registration_api_spec.rb +0 -46
- data/emass_client/ruby_client/spec/api/static_code_scans_api_spec.rb +0 -47
- data/emass_client/ruby_client/spec/api/system_roles_api_spec.rb +0 -60
- data/emass_client/ruby_client/spec/api/systems_api_spec.rb +0 -67
- data/emass_client/ruby_client/spec/api/test_api_spec.rb +0 -45
- data/emass_client/ruby_client/spec/api/test_results_api_spec.rb +0 -62
- data/emass_client/ruby_client/spec/api/workflow_definitions_api_spec.rb +0 -47
- data/emass_client/ruby_client/spec/api/workflow_instances_api_spec.rb +0 -63
- data/emass_client/ruby_client/spec/api_client_spec.rb +0 -225
- data/emass_client/ruby_client/spec/base_object_spec.rb +0 -109
- data/emass_client/ruby_client/spec/configuration_spec.rb +0 -41
- data/emass_client/ruby_client/spec/models/artifacts_delete_inner_spec.rb +0 -40
- data/emass_client/ruby_client/spec/models/artifacts_delete_spec.rb +0 -34
- data/emass_client/ruby_client/spec/models/artifacts_get_spec.rb +0 -126
- data/emass_client/ruby_client/spec/models/artifacts_request_put_body_spec.rb +0 -102
- data/emass_client/ruby_client/spec/models/artifacts_response_del_data_spec.rb +0 -52
- data/emass_client/ruby_client/spec/models/artifacts_response_del_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/artifacts_response_get_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/artifacts_response_put_post_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/cac_get_spec.rb +0 -80
- data/emass_client/ruby_client/spec/models/cac_request_post_body_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/cac_response_get_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/cac_response_post_data_spec.rb +0 -52
- data/emass_client/ruby_client/spec/models/cac_response_post_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/cmmc_get_spec.rb +0 -128
- data/emass_client/ruby_client/spec/models/cmmc_response_get_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/connectivity_ccsd_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/controls_get_spec.rb +0 -262
- data/emass_client/ruby_client/spec/models/controls_put_spec.rb +0 -52
- data/emass_client/ruby_client/spec/models/controls_request_put_body_spec.rb +0 -216
- data/emass_client/ruby_client/spec/models/controls_response_get_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/controls_response_put_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/definition_transitions_spec.rb +0 -64
- data/emass_client/ruby_client/spec/models/delete_milestone_spec.rb +0 -40
- data/emass_client/ruby_client/spec/models/delete_poam_spec.rb +0 -40
- data/emass_client/ruby_client/spec/models/empty200_response_spec.rb +0 -34
- data/emass_client/ruby_client/spec/models/error_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/instances_transitions_spec.rb +0 -86
- data/emass_client/ruby_client/spec/models/milestone_response_get_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/milestone_response_post_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/milestone_response_put_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/milestones_delete_spec.rb +0 -34
- data/emass_client/ruby_client/spec/models/milestones_get_spec.rb +0 -74
- data/emass_client/ruby_client/spec/models/milestones_post_spec.rb +0 -34
- data/emass_client/ruby_client/spec/models/milestones_put_post_delete_spec.rb +0 -64
- data/emass_client/ruby_client/spec/models/milestones_put_spec.rb +0 -34
- data/emass_client/ruby_client/spec/models/milestones_request_post_body_spec.rb +0 -52
- data/emass_client/ruby_client/spec/models/milestones_request_put_body_spec.rb +0 -52
- data/emass_client/ruby_client/spec/models/milestones_required_post_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/milestones_required_put_spec.rb +0 -52
- data/emass_client/ruby_client/spec/models/model_200_spec.rb +0 -40
- data/emass_client/ruby_client/spec/models/model_201_meta_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/model_201_spec.rb +0 -40
- data/emass_client/ruby_client/spec/models/model_400_meta_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/model_400_response_spec.rb +0 -40
- data/emass_client/ruby_client/spec/models/model_400_spec.rb +0 -40
- data/emass_client/ruby_client/spec/models/model_401_meta_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/model_401_spec.rb +0 -40
- data/emass_client/ruby_client/spec/models/model_403_meta_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/model_403_spec.rb +0 -40
- data/emass_client/ruby_client/spec/models/model_404_response_spec.rb +0 -40
- data/emass_client/ruby_client/spec/models/model_404_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/model_405_meta_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/model_405_spec.rb +0 -40
- data/emass_client/ruby_client/spec/models/model_411_meta_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/model_411_spec.rb +0 -40
- data/emass_client/ruby_client/spec/models/model_490_meta_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/model_490_spec.rb +0 -40
- data/emass_client/ruby_client/spec/models/model_500_meta_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/model_500_spec.rb +0 -40
- data/emass_client/ruby_client/spec/models/pac_get_spec.rb +0 -86
- data/emass_client/ruby_client/spec/models/pac_post_spec.rb +0 -56
- data/emass_client/ruby_client/spec/models/pac_request_post_body_spec.rb +0 -56
- data/emass_client/ruby_client/spec/models/pac_response_get_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/pac_response_post_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/poam_delete_spec.rb +0 -34
- data/emass_client/ruby_client/spec/models/poam_get_spec.rb +0 -264
- data/emass_client/ruby_client/spec/models/poam_post_put_del_spec.rb +0 -58
- data/emass_client/ruby_client/spec/models/poam_post_spec.rb +0 -34
- data/emass_client/ruby_client/spec/models/poam_put_spec.rb +0 -34
- data/emass_client/ruby_client/spec/models/poam_request_post_body_spec.rb +0 -34
- data/emass_client/ruby_client/spec/models/poam_request_put_body_spec.rb +0 -34
- data/emass_client/ruby_client/spec/models/poam_required_post_spec.rb +0 -218
- data/emass_client/ruby_client/spec/models/poam_required_put_spec.rb +0 -236
- data/emass_client/ruby_client/spec/models/poam_response_delete_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/poam_response_get_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/poam_response_post_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/poam_response_put_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/register_data_spec.rb +0 -40
- data/emass_client/ruby_client/spec/models/register_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/register_user_request_post_body_spec.rb +0 -40
- data/emass_client/ruby_client/spec/models/role_category_spec.rb +0 -62
- data/emass_client/ruby_client/spec/models/roles_spec.rb +0 -60
- data/emass_client/ruby_client/spec/models/ssps_spec.rb +0 -52
- data/emass_client/ruby_client/spec/models/stage_spec.rb +0 -50
- data/emass_client/ruby_client/spec/models/static_code_application_spec.rb +0 -78
- data/emass_client/ruby_client/spec/models/static_code_request_post_body_spec.rb +0 -34
- data/emass_client/ruby_client/spec/models/static_code_required_post_application_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/static_code_required_post_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/success200_response_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/system_id_artifacts_body_spec.rb +0 -66
- data/emass_client/ruby_client/spec/models/system_response_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/system_roles_category_response_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/system_roles_response_data_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/system_roles_response_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/systems_spec.rb +0 -510
- data/emass_client/ruby_client/spec/models/test_data_spec.rb +0 -40
- data/emass_client/ruby_client/spec/models/test_results_get_spec.rb +0 -96
- data/emass_client/ruby_client/spec/models/test_results_post_spec.rb +0 -52
- data/emass_client/ruby_client/spec/models/test_results_request_post_body_spec.rb +0 -68
- data/emass_client/ruby_client/spec/models/test_results_response_get_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/test_results_response_post_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/test_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/users_spec.rb +0 -52
- data/emass_client/ruby_client/spec/models/workflow_definition_get_spec.rb +0 -68
- data/emass_client/ruby_client/spec/models/workflow_definition_response_get_spec.rb +0 -46
- data/emass_client/ruby_client/spec/models/workflow_instances_get_spec.rb +0 -110
- data/emass_client/ruby_client/spec/models/workflow_instances_response_get_spec.rb +0 -46
- data/emass_client/ruby_client/spec/spec_helper.rb +0 -110
- data/emass_client/ruby_client/swagger_client.gemspec +0 -38
- data/emass_client/swagger-codegen/ruby_template/api_client.mustache +0 -384
- data/emass_client/swagger-codegen/ruby_template/api_info.mustache +0 -12
- data/emass_client/swagger-codegen/ruby_template/configuration.mustache +0 -234
- data/emass_client/swagger-codegen/ruby_template/gemspec.mustache +0 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 04d5fabb5cd03ea2303313f9556bb0ab4758642acce449e545c06385db62e995
|
4
|
+
data.tar.gz: 8de5b75a59d1cf87539accfb26fef79fc6ab3633753726ab13a8db176d063286
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d76892c176a01f532bc1fc3025a400bc31a09217aac8622bb96c71aac92be66abbee84115c6a88dd1244890182a68bab75500d7b3138cdc4ba3a59088059313a
|
7
|
+
data.tar.gz: 76af52e24772b720e3a5fd6f45af2acd4356c6eb808c50b309b95a079ad854988797a576ff05dd1a9e029c53dce40c2f5fc1a31fe4b05eb7221a020ec75ccb43
|
data/.dockerignore
CHANGED
data/.env-example
CHANGED
@@ -2,9 +2,11 @@ export EMASSER_API_KEY_API_KEY=<API key>
|
|
2
2
|
export EMASSER_API_KEY_USER_UID=<unique identifier of the eMASS user EMASSER_API_KEY_API_KEY belongs to>
|
3
3
|
export EMASSER_HOST=<FQDN of the eMASS server>
|
4
4
|
export EMASSER_KEY_FILE_PATH=<path to your emass key in PEM format>
|
5
|
-
export EMASSER_CERT_FILE_PATH=<path to your emass
|
5
|
+
export EMASSER_CERT_FILE_PATH=<path to your emass certificate in PEM format>
|
6
6
|
export EMASSER_KEY_PASSWORD=<password for the key given in EMASSER_KEY_FILE_PATH>
|
7
7
|
export EMASSER_CLIENT_SIDE_VALIDATION=<client side validation - true or false>
|
8
8
|
export EMASSER_VERIFY_SSL=<verify SSL - true or false>
|
9
9
|
export EMASSER_VERIFY_SSL_HOST=<verify host SSL - true or false>
|
10
10
|
export EMASSER_DEBUGGING=<set debugging - true or false>
|
11
|
+
export EMASSER_CLI_DISPLAY_NULL=<display null value fields - true or false>
|
12
|
+
export EMASSER_EPOCH_TO_DATETIME=<convert epoch to data/time value - true or false>
|
data/.github/release-drafter.yml
CHANGED
@@ -2,8 +2,8 @@ name: Deploy to GitHub Pages
|
|
2
2
|
on:
|
3
3
|
push:
|
4
4
|
branches: [ main ]
|
5
|
-
|
6
|
-
|
5
|
+
pull_request:
|
6
|
+
branches: [ main ]
|
7
7
|
|
8
8
|
jobs:
|
9
9
|
build-deploy:
|
@@ -17,11 +17,10 @@ jobs:
|
|
17
17
|
run: |
|
18
18
|
sudo mkdir -p /publish
|
19
19
|
sudo mkdir -p /publish/docs
|
20
|
+
sudo mkdir -p /publish/images
|
21
|
+
sudo cp -R ./images /publish
|
20
22
|
sudo cp README.md /publish
|
21
23
|
sudo cp _config.yml /publish/_config.yml
|
22
|
-
sudo cp -R ./docs/redoc /publish/docs/redoc
|
23
|
-
sudo cp -R ./docs/swagger /publish/docs/swagger
|
24
|
-
sudo cp ./docs/developers.md /publish/docs/developers.md
|
25
24
|
sudo cp ./docs/features.md /publish/docs/features.md
|
26
25
|
|
27
26
|
- name: Deploy Markdown Files 🚀
|
@@ -0,0 +1,28 @@
|
|
1
|
+
name: Push emasser CLI to Docker Hub on every merge to master and tag as latest
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ main ]
|
6
|
+
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
docker:
|
10
|
+
runs-on: ubuntu-latest
|
11
|
+
steps:
|
12
|
+
- name: Set up Docker Buildx
|
13
|
+
uses: docker/setup-buildx-action@v1
|
14
|
+
- name: Login to DockerHub
|
15
|
+
uses: docker/login-action@v1
|
16
|
+
with:
|
17
|
+
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
18
|
+
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
19
|
+
- name: Checkout the emasser Repository
|
20
|
+
uses: actions/checkout@v2
|
21
|
+
- name: Build and push
|
22
|
+
id: docker_build
|
23
|
+
uses: docker/build-push-action@v2
|
24
|
+
with:
|
25
|
+
context: .
|
26
|
+
file: Dockerfile
|
27
|
+
push: true
|
28
|
+
tags: mitre/emasser:latest
|
@@ -0,0 +1,35 @@
|
|
1
|
+
name: Push emasser to Docker Hub on every release
|
2
|
+
|
3
|
+
on:
|
4
|
+
release:
|
5
|
+
types: [published]
|
6
|
+
|
7
|
+
jobs:
|
8
|
+
docker:
|
9
|
+
runs-on: ubuntu-latest
|
10
|
+
steps:
|
11
|
+
- name: Set up Docker Buildx
|
12
|
+
uses: docker/setup-buildx-action@v1
|
13
|
+
- name: Login to DockerHub
|
14
|
+
uses: docker/login-action@v1
|
15
|
+
with:
|
16
|
+
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
17
|
+
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
18
|
+
- name: Run string replace
|
19
|
+
uses: frabert/replace-string-action@master
|
20
|
+
id: format-tag
|
21
|
+
with:
|
22
|
+
pattern: 'v'
|
23
|
+
string: "${{ github.event.release.tag_name }}"
|
24
|
+
replace-with: ''
|
25
|
+
flags: 'g'
|
26
|
+
- name: Checkout the emasser Repository
|
27
|
+
uses: actions/checkout@v2
|
28
|
+
- name: Build and push
|
29
|
+
id: docker_build
|
30
|
+
uses: docker/build-push-action@v2
|
31
|
+
with:
|
32
|
+
context: .
|
33
|
+
file: Dockerfile
|
34
|
+
push: true
|
35
|
+
tags: mitre/emasser:release-latest,mitre/emasser:${{ steps.format-tag.outputs.replaced }}
|
@@ -17,7 +17,7 @@ jobs:
|
|
17
17
|
- run: git fetch origin +refs/tags/*:refs/tags/*
|
18
18
|
- name: Setup credentials and versioning
|
19
19
|
run: |
|
20
|
-
gem install
|
20
|
+
gem install keycutter
|
21
21
|
mkdir -p $HOME/.gem
|
22
22
|
touch $HOME/.gem/credentials
|
23
23
|
chmod 0600 $HOME/.gem/credentials
|
@@ -26,13 +26,17 @@ jobs:
|
|
26
26
|
env:
|
27
27
|
RUBYGEMS_API_KEY: ${{secrets.RUBYGEMS_AUTH_TOKEN}}
|
28
28
|
GPR_API_KEY: ${{secrets.GITHUB_TOKEN}}
|
29
|
-
- name: Build
|
29
|
+
- name: Build emasser
|
30
30
|
run: gem build *.gemspec
|
31
|
+
# - name: Build emass_client
|
32
|
+
# run: gem build -C emass_client/ruby_client/ emass_client.gemspec
|
31
33
|
- name: Publish to RubyGems
|
32
34
|
run: |
|
33
35
|
gem push --KEY rubygems --host https://rubygems.org *.gem
|
36
|
+
# gem push --KEY rubygems --host https://rubygems.org emass_client/ruby_client/*.gem
|
34
37
|
- name: Publish to GPR
|
35
38
|
run: |
|
36
|
-
gem push --KEY github --host https://rubygems.pkg.github.com
|
39
|
+
gem push --KEY github --host https://rubygems.pkg.github.com/mitre *.gem
|
40
|
+
# gem push --KEY github --host https://rubygems.pkg.github.com/mitre emass_client/ruby_client/*.gem
|
37
41
|
env:
|
38
42
|
OWNER: mitre
|
@@ -10,7 +10,7 @@
|
|
10
10
|
# test:
|
11
11
|
# strategy:
|
12
12
|
# fail-fast: false
|
13
|
-
# matrix:
|
13
|
+
# matrix:
|
14
14
|
# platform: [ ubuntu-latest, macos-latest, windows-latest ]
|
15
15
|
# ruby-version: ['2.6', '2.7']
|
16
16
|
# runs-on: ${{ matrix.platform }}
|
@@ -43,7 +43,7 @@ jobs:
|
|
43
43
|
test:
|
44
44
|
strategy:
|
45
45
|
fail-fast: false
|
46
|
-
matrix:
|
46
|
+
matrix:
|
47
47
|
platform: [ ubuntu-latest, macos-latest, windows-latest ]
|
48
48
|
ruby-version: ['2.6', '2.7']
|
49
49
|
runs-on: ${{ matrix.platform }}
|
@@ -61,13 +61,12 @@ jobs:
|
|
61
61
|
if: matrix.platform == 'windows-latest'
|
62
62
|
run: |
|
63
63
|
# bundle install
|
64
|
-
# bundle info
|
64
|
+
# bundle info emass_client
|
65
65
|
# rspec spec --format documentation
|
66
66
|
echo "need to fix path to libcurl.dll"
|
67
67
|
- name: Testing on ${{ matrix.platform }} for Ruby ${{ matrix.ruby }}
|
68
68
|
if: matrix.platform == 'ubuntu-latest' || matrix.platform == 'macos-latest'
|
69
69
|
run: |
|
70
70
|
bundle install
|
71
|
-
bundle info
|
71
|
+
bundle info emass_client
|
72
72
|
rspec spec --format documentation
|
73
|
-
|
data/.gitignore
CHANGED
data/Dockerfile
CHANGED
@@ -1,10 +1,44 @@
|
|
1
|
-
|
1
|
+
# Buld from ruby 2.7.5 image
|
2
|
+
FROM ruby:2.7.5 as build
|
2
3
|
|
4
|
+
LABEL name="emasser" \
|
5
|
+
vendor="MITRE" \
|
6
|
+
version="${EMASSER_VERSION}" \
|
7
|
+
release="1" \
|
8
|
+
url="https://github.com/mitre/emasser" \
|
9
|
+
description="Emasser is a command-line interface (CLI) that aims to automate routine business use-cases and provide utility surrounding the Enterprise Mission Assurance Support Service (eMASS) by leveraging its representational state transfer (REST) application programming interface (API)." \
|
10
|
+
docs="https://mitre.github.io/emasser/" \
|
11
|
+
run="docker run -d --name ${NAME} ${IMAGE} <args>"
|
12
|
+
|
13
|
+
# Set the base directory that will be used from now on
|
3
14
|
WORKDIR /emasser
|
4
15
|
|
16
|
+
# Install dependency
|
17
|
+
RUN gem install bundler -v '2.3.5'
|
18
|
+
RUN apt update && apt install -y build-essential
|
5
19
|
COPY . .
|
6
|
-
|
7
20
|
RUN bundle install
|
21
|
+
# WORKDIR /emasser/emass_client/ruby_client
|
22
|
+
# RUN gem build emass_client.gemspec
|
23
|
+
WORKDIR /emasser
|
24
|
+
RUN gem build emasser.gemspec
|
25
|
+
RUN mkdir gems
|
26
|
+
# RUN mv emass_client/ruby_client/emass_client*.gem gems/emass_client.gem
|
27
|
+
RUN mv emasser*.gem gems/emasser.gem
|
28
|
+
|
29
|
+
|
30
|
+
FROM ruby:2-alpine
|
31
|
+
|
32
|
+
# Use the line below when testing creating the container locally
|
33
|
+
# RUN sed -i 's/https/http/g' /etc/apk/repositories
|
34
|
+
COPY --from=build /emasser/gems /emass-gems
|
35
|
+
|
36
|
+
# RUN apk add build-base libcurl && gem install /emass-gems/emass_client.gem && gem install /emass-gems/emasser.gem
|
37
|
+
RUN apk add build-base libcurl && gem install /emass-gems/emasser.gem
|
38
|
+
|
39
|
+
VOLUME [ "/data" ]
|
40
|
+
WORKDIR /data
|
41
|
+
|
42
|
+
ENTRYPOINT ["emasser"]
|
8
43
|
|
9
|
-
ENTRYPOINT ["bundle", "exec", "exe/emasser"]
|
10
44
|
CMD ["-h"]
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,79 +1,74 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
emasser (1.0.
|
5
|
-
activesupport
|
6
|
-
colorize
|
7
|
-
dotenv
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
PATH
|
12
|
-
remote: emass_client/ruby_client
|
13
|
-
specs:
|
14
|
-
swagger_client (1.0.0)
|
15
|
-
json (~> 2.1, >= 2.1.0)
|
16
|
-
typhoeus (~> 1.0, >= 1.0.1)
|
4
|
+
emasser (1.0.6)
|
5
|
+
activesupport (~> 6.1.4)
|
6
|
+
colorize (~> 0.8.1)
|
7
|
+
dotenv (~> 2.7.6)
|
8
|
+
emass_client (~> 1.0, != 1.0.3)
|
9
|
+
rubyzip (~> 2.3.2)
|
10
|
+
thor (~> 1.1.0)
|
17
11
|
|
18
12
|
GEM
|
19
13
|
remote: https://rubygems.org/
|
20
14
|
specs:
|
21
|
-
activesupport (6.1.
|
15
|
+
activesupport (6.1.6)
|
22
16
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
23
17
|
i18n (>= 1.6, < 2)
|
24
18
|
minitest (>= 5.1)
|
25
19
|
tzinfo (~> 2.0)
|
26
20
|
zeitwerk (~> 2.3)
|
27
21
|
ast (2.4.2)
|
28
|
-
bundler-audit (0.
|
22
|
+
bundler-audit (0.9.1)
|
29
23
|
bundler (>= 1.2.0, < 3)
|
30
24
|
thor (~> 1.0)
|
31
25
|
byebug (11.1.3)
|
32
26
|
colorize (0.8.1)
|
33
|
-
concurrent-ruby (1.1.
|
34
|
-
diff-lcs (1.
|
27
|
+
concurrent-ruby (1.1.10)
|
28
|
+
diff-lcs (1.5.0)
|
35
29
|
dotenv (2.7.6)
|
36
|
-
|
30
|
+
emass_client (1.0.6)
|
31
|
+
typhoeus (~> 1.0, >= 1.0.1)
|
32
|
+
ethon (0.15.0)
|
37
33
|
ffi (>= 1.15.0)
|
38
|
-
ffi (1.15.
|
39
|
-
i18n (1.
|
34
|
+
ffi (1.15.5-x64-mingw32)
|
35
|
+
i18n (1.10.0)
|
40
36
|
concurrent-ruby (~> 1.0)
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
parser (3.0.2.0)
|
37
|
+
minitest (5.15.0)
|
38
|
+
parallel (1.22.1)
|
39
|
+
parser (3.1.2.0)
|
45
40
|
ast (~> 2.4.1)
|
46
|
-
rainbow (3.
|
41
|
+
rainbow (3.1.1)
|
47
42
|
rake (13.0.6)
|
48
|
-
regexp_parser (2.
|
43
|
+
regexp_parser (2.5.0)
|
49
44
|
rexml (3.2.5)
|
50
45
|
rspec (3.10.0)
|
51
46
|
rspec-core (~> 3.10.0)
|
52
47
|
rspec-expectations (~> 3.10.0)
|
53
48
|
rspec-mocks (~> 3.10.0)
|
54
|
-
rspec-core (3.10.
|
49
|
+
rspec-core (3.10.2)
|
55
50
|
rspec-support (~> 3.10.0)
|
56
|
-
rspec-expectations (3.10.
|
51
|
+
rspec-expectations (3.10.2)
|
57
52
|
diff-lcs (>= 1.2.0, < 2.0)
|
58
53
|
rspec-support (~> 3.10.0)
|
59
|
-
rspec-mocks (3.10.
|
54
|
+
rspec-mocks (3.10.3)
|
60
55
|
diff-lcs (>= 1.2.0, < 2.0)
|
61
56
|
rspec-support (~> 3.10.0)
|
62
57
|
rspec-support (3.10.3)
|
63
|
-
rubocop (1.
|
58
|
+
rubocop (1.30.0)
|
64
59
|
parallel (~> 1.10)
|
65
|
-
parser (>= 3.
|
60
|
+
parser (>= 3.1.0.0)
|
66
61
|
rainbow (>= 2.2.2, < 4.0)
|
67
62
|
regexp_parser (>= 1.8, < 3.0)
|
68
|
-
rexml
|
69
|
-
rubocop-ast (>= 1.
|
63
|
+
rexml (>= 3.2.5, < 4.0)
|
64
|
+
rubocop-ast (>= 1.18.0, < 2.0)
|
70
65
|
ruby-progressbar (~> 1.7)
|
71
66
|
unicode-display_width (>= 1.4.0, < 3.0)
|
72
|
-
rubocop-ast (1.
|
73
|
-
parser (>= 3.
|
74
|
-
rubocop-minitest (0.
|
67
|
+
rubocop-ast (1.18.0)
|
68
|
+
parser (>= 3.1.1.0)
|
69
|
+
rubocop-minitest (0.20.0)
|
75
70
|
rubocop (>= 0.90, < 2.0)
|
76
|
-
rubocop-performance (1.
|
71
|
+
rubocop-performance (1.14.0)
|
77
72
|
rubocop (>= 1.7.0, < 2.0)
|
78
73
|
rubocop-ast (>= 0.4.0)
|
79
74
|
rubocop-rake (0.6.0)
|
@@ -85,17 +80,17 @@ GEM
|
|
85
80
|
ethon (>= 0.9.0)
|
86
81
|
tzinfo (2.0.4)
|
87
82
|
concurrent-ruby (~> 1.0)
|
88
|
-
unicode-display_width (2.
|
83
|
+
unicode-display_width (2.1.0)
|
89
84
|
yaml (0.2.0)
|
90
|
-
zeitwerk (2.4
|
85
|
+
zeitwerk (2.5.4)
|
91
86
|
|
92
87
|
PLATFORMS
|
93
88
|
x64-mingw32
|
94
89
|
|
95
90
|
DEPENDENCIES
|
96
|
-
bundler (~> 2.
|
91
|
+
bundler (~> 2.3)
|
97
92
|
bundler-audit (~> 0.7)
|
98
|
-
byebug
|
93
|
+
byebug (~> 11.1.3)
|
99
94
|
emasser!
|
100
95
|
rake (~> 13.0)
|
101
96
|
rspec (~> 3.10.0)
|
@@ -103,8 +98,7 @@ DEPENDENCIES
|
|
103
98
|
rubocop-minitest (~> 0.10)
|
104
99
|
rubocop-performance (~> 1.11)
|
105
100
|
rubocop-rake (~> 0.5)
|
106
|
-
swagger_client!
|
107
101
|
yaml (~> 0.2.0)
|
108
102
|
|
109
103
|
BUNDLED WITH
|
110
|
-
2.
|
104
|
+
2.3.5
|
data/README.md
CHANGED
@@ -1,93 +1,163 @@
|
|
1
1
|
# emasser
|
2
|
+
![GitHub Release Date](https://img.shields.io/github/release-date/mitre/emasser?label=Release%20Date&logo=github&color=blue)
|
3
|
+
![GitHub release (latest by date)](https://img.shields.io/github/v/release/mitre/emasser?label=Release%20Version&logo=github) ![Gem](https://img.shields.io/gem/v/emasser?label=gem%20version&logo=ruby&logoColor=red) ![Docker Version](https://img.shields.io/docker/v/mitre/emasser?label=docker%20version&logo=docker&sort=semver)
|
4
|
+
|
2
5
|
![emasser Testing](https://github.com/mitre/emasser/actions/workflows/test-cli.yml/badge.svg)
|
3
|
-
![CodeQL Vulnerabilities and Errors](https://github.com/mitre/emasser/actions/workflows/codeql-analysis.yml/badge.svg)
|
4
|
-
![
|
6
|
+
![CodeQL Vulnerabilities and Errors](https://github.com/mitre/emasser/actions/workflows/codeql-analysis.yml/badge.svg)
|
7
|
+
[![GitHub Pages](https://github.com/mitre/emasser/actions/workflows/gh-pages.yml/badge.svg)](https://github.com/mitre/emasser/actions/workflows/gh-pages.yml)
|
5
8
|
![Code Linter](https://github.com/mitre/emasser/actions/workflows/rubocop.yml/badge.svg)
|
6
|
-
## About
|
7
|
-
|
8
|
-
`emasser` is a command line interface (CLI) that aims to automate routine business use-cases and provide utility surrounding the Enterprise Mission Assurance Support Service (eMASS) by leveraging its representational state transfer (REST) application programming interface (API) v3.2.
|
9
|
-
|
10
|
-
## Documentation
|
11
|
-
emasser provides users with the following documentation:
|
12
|
-
|
13
|
-
[**eMASS API Documentation**](https://mitre.github.io/emasser/docs/redoc/) | [**eMASS Swagger UI**](https://mitre.github.io/emasser/docs/swagger/)
|
14
|
-
|
15
|
-
## Current Features
|
16
|
-
|
17
|
-
The following eMASS API HTTP methods are implemented:
|
18
|
-
* `GET` view eMASS resources
|
19
|
-
* `POST` add eMASS resources
|
20
|
-
* `PUT` update eMASS resources
|
21
|
-
* `DELETE` remove eMASS resources
|
22
9
|
|
10
|
+
## About
|
23
11
|
|
24
|
-
|
25
|
-
|
26
|
-
## In Development
|
27
|
-
|
28
|
-
This project is actively looking for user stories, features to build, and interactions with eMASS. See Roadmap for more information.
|
12
|
+
`emasser` is a Command Line Interface (CLI) that aims to automate routine business use-cases and provide utility surrounding the Enterprise Mission Assurance Support Service (eMASS) by leveraging its Representational State Transfer (REST) Application Programming Interface (API).
|
29
13
|
|
30
|
-
|
14
|
+
***NOTE***: The `emasser` CLI utilizes the [emass_client](https://github.com/mitre/emass_client) RubyGem executable package to access the eMASS API endpoints.
|
31
15
|
|
32
|
-
|
16
|
+
---
|
17
|
+
## Documentation
|
18
|
+
For detail content information about the `eMASS` API references the [**eMASS API Specification**](https://mitre.github.io/emass_client/docs/redoc/) page.
|
33
19
|
|
34
|
-
|
20
|
+
For detail features provided by the `emasser` CLI references the [**emasser CLI Features**](docs/features.md) page.
|
35
21
|
|
36
|
-
|
37
|
-
* Resolve a particular plan of action and milestone (POA&M) based on scan results or git-ops workflow.
|
38
|
-
* PKCS11 support to run in an attended mode.
|
22
|
+
The `emasser` CLI [**Architecture**](#emasser-cli-architecture) depicts the `emasser` structure, and provides an explanation of how it behaves.
|
39
23
|
|
40
|
-
|
24
|
+
---
|
25
|
+
## Installation Options
|
41
26
|
|
42
|
-
`emasser` is a Ruby CLI
|
27
|
+
`emasser` is a Ruby CLI distributed via GitHub (this repository), [RubyGems](https://rubygems.org/gems/emass_client/versions/), or [Docker](https://hub.docker.com/r/mitre/emasser/tags).
|
43
28
|
|
44
|
-
Installation Dependencies
|
29
|
+
### Installation Dependencies
|
45
30
|
* git
|
46
|
-
* Ruby version 2.7 or greater
|
31
|
+
* Ruby version 2.7 or greater
|
47
32
|
|
48
|
-
Runtime Dependencies
|
33
|
+
### Runtime Dependencies
|
49
34
|
* Ruby version 2.7 or greater.
|
50
35
|
* `rubyzip (latest version)`
|
51
|
-
* `
|
52
|
-
* On Windows the `cURL` binary is required (libcurl.dll).
|
53
|
-
- Download
|
54
|
-
- Go into the archive and browse to /bin
|
55
|
-
- Locate libcurl_x64.dll (it may be just libcurl.dll)
|
36
|
+
* `emass_client (latest version)`
|
37
|
+
* On Windows the `cURL` binary is required (libcurl.dll). To install cURL:
|
38
|
+
- Download cURL for windows from [curl x.x.x for Windows](https://curl.se/windows/)
|
39
|
+
- Go into the archive and browse to the /bin directory
|
40
|
+
- Locate libcurl_x64.dll (it may be named just libcurl.dll)
|
56
41
|
- Extract the file into the Ruby installation /bin directory
|
57
42
|
- Rename the file to `libcurl.dll` if it has the `_x64` suffix
|
58
43
|
- Install [cURL for windows](https://community.chocolatey.org/packages/curl) and add the installation directory to the PATH.
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
44
|
+
|
45
|
+
|
46
|
+
## Install via GitHub
|
47
|
+
- [Clone](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) the repository
|
48
|
+
```bash
|
49
|
+
git clone <path to emasser repository> emasser
|
50
|
+
cd emasser
|
51
|
+
```
|
52
|
+
- Build the emasser gem*
|
53
|
+
```bash
|
54
|
+
gem build *.gemspec
|
55
|
+
gem install *.gem
|
56
|
+
```
|
57
|
+
|
58
|
+
***Note:** To run in development mode there isn't a need to build the gem, simply clone from the emasser repository and use:
|
59
|
+
|
60
|
+
```
|
61
|
+
bundle install
|
62
|
+
|
63
|
+
bundle exec exe/emasser [command]
|
64
|
+
```
|
65
|
+
|
66
|
+
## Install via published RubyGems
|
67
|
+
- Install the `emasser` gem from the [RubyGems](https://rubygems.org/gems/emass_client/versions/) registry
|
68
|
+
```bash
|
69
|
+
gem install emasser
|
70
|
+
```
|
71
|
+
- Update the `emasser` gem to the latest version
|
72
|
+
```bash
|
73
|
+
gem update emasser
|
74
|
+
```
|
75
|
+
|
76
|
+
- To run (execute a command) create a `.env*` file in the directory where you want to invoke the `emmaser` and use:
|
77
|
+
|
78
|
+
```
|
79
|
+
emasser [command]
|
80
|
+
```
|
81
|
+
***Note:** See [Setting Environment Variables Configuration](https://github.com/mitre/emasser/wiki/Editing-Environment-Variables-Configuration) for detailed information on required and optional variables.
|
82
|
+
|
83
|
+
## Using Docker
|
84
|
+
Ensure that docker engine is running and start the emasser Docker Container.
|
85
|
+
### Install
|
86
|
+
- On Linux or Mac:
|
87
|
+
```
|
88
|
+
docker run --rm -v $PWD/path-to-secrets:/data mitre/emasser:latest
|
89
|
+
```
|
90
|
+
- On Windows:
|
91
|
+
```
|
92
|
+
docker run --rm -v %cd%/path-to-secrets:/data mitre/emasser:latest
|
93
|
+
```
|
94
|
+
- Update via Docker
|
95
|
+
```bash
|
96
|
+
docker pull mitre/emasser:latest
|
97
|
+
```
|
98
|
+
|
99
|
+
**Docker Notes:**
|
100
|
+
- Docker Options
|
101
|
+
- `--rm` Automatically remove the container when it exits
|
102
|
+
- `-v` Bind mount a volume
|
103
|
+
- path-to-secrets
|
104
|
+
- Is the path to the `.env` file and the appropriate eMASS certificates (key.pem and client.pem).
|
105
|
+
- For example, if the `.env` is located in the same directory where the `docker run` is executed, running the command in a Windows platform would look like this:
|
106
|
+
|
107
|
+
```
|
108
|
+
docker run --rm -v %cd%/.:/data mitre/emasser:latest
|
109
|
+
```
|
110
|
+
- See [Editing Environment Variables Configuration](https://github.com/mitre/emasser/wiki/Editing-Environment-Variables-Configuration)
|
111
|
+
|
112
|
+
### Run emasser API client commands
|
113
|
+
- To list all available GET, POST, PUT, or DELETE commands use:
|
114
|
+
```
|
115
|
+
docker run --rm -v $PWD/path-to-secrets:/data mitre/emasser:latest get help
|
116
|
+
```
|
117
|
+
```
|
118
|
+
docker run --rm -v $PWD/path-to-secrets:/data mitre/emasser:latest post help
|
119
|
+
```
|
120
|
+
```
|
121
|
+
docker run --rm -v $PWD/path-to-secrets:/data mitre/emasser:latest put help
|
122
|
+
```
|
123
|
+
```
|
124
|
+
docker run --rm -v $PWD/path-to-secrets:/data mitre/emasser:latest delete help
|
125
|
+
```
|
126
|
+
Example commands are for Linux or Mac, replace the `$PWD` with `%cd%` for Windows
|
127
|
+
|
128
|
+
### Delete (remove) the Docker Container
|
129
|
+
```
|
130
|
+
docker rmi -f mitre/emasser
|
67
131
|
```
|
132
|
+
---
|
133
|
+
## Roadmap
|
68
134
|
|
69
|
-
|
135
|
+
The `emasser` implements all endpoints provided by the `eMASS` API, there is, all of the functions available from the `eMASS GUI` that are exposed by the API. If additional functions are useful (accessible via the CLI), please submit a request to [eMass Tier III Support](mailto:disa.meade.id.mbx.emass-tier-iii-support@mail.mil) for possible inclusion into the API.
|
70
136
|
|
71
|
-
|
72
|
-
`emasser` requires authentication to eMASS as well as authorization to use the eMASS API. This authentication and authorization is **not** a function of `emasser` and needs to be handled directly with discussions with eMASS. `emasser` will accept credentials that are created based on those discussions.
|
137
|
+
The Road Map seeks to add any useful features that facilitates organization that utilizes `eMASS` instances and have a need to automate their cybersecurity management process.
|
73
138
|
|
74
|
-
|
75
|
-
Users are required to log-in to eMASS and grant permissions for a client to update data within eMASS on their behalf. This is only required for actionable requests (PUT, POST, DELETE). The Registration Endpoint and all GET requests can be accessed without completing this process with the correct permissions.
|
139
|
+
For additional capability create an [issue](https://github.com/mitre/emasser/issues), and email it to the [SAF Team](mailto:saf@groups.mitre.org) citing the issue link so we can help.
|
76
140
|
|
77
|
-
|
78
|
-
*
|
79
|
-
*
|
80
|
-
*
|
141
|
+
Some proposed capabilities (looking for a sponsor) are:
|
142
|
+
* Update a system's record with met/not met NIST 800-53 Security and Privacy controls and/or common control indicators (CCI) based on scan results expressed in [Heimdall Data Format (HDF)](https://saf.mitre.org/#/normalize).
|
143
|
+
* Resolve a particular plan of action and milestone (POA&M) based on scan results or git-ops workflow.
|
144
|
+
* PKCS11 support to run in an attended mode.
|
81
145
|
|
82
146
|
|
83
147
|
## Design
|
84
148
|
|
85
|
-
|
86
|
-
`emasser` leverages
|
149
|
+
### Interactions with eMASS API
|
150
|
+
The `emasser` CLI leverages the [emass_client](https://github.com/mitre/emass_client), which provides a REST API client developed by MITRE based on the [OpenAPI V3](https://www.openapis.org/) standards for the official [eMASS API specification](https://mitre.github.io/emass_client/docs/redoc). This design enables REST API clients to be generated in [any supported programming language](https://openapi-generator.tech/docs/generators/). The design enables the `emass_client` to be generated independently of the emasser CLI. Currently, a Ruby and a Typescript eMASS client API are provided. The TypeScript client is used with the [Security Automation Framework CLI (SAF) CLI](https://github.com/mitre/saf).
|
87
151
|
|
88
|
-
|
89
|
-
Because interactions with the API are handled by a dependency, the bulk of `emasser`
|
152
|
+
### Business Logic
|
153
|
+
Because interactions with the API are handled by a dependency, the bulk of `emasser` business logic is for accepting user input/output, reading data from eMASS or from input, transforming data, and routing data to the appropriate eMASS API endpoint. This business logic is organized into Ruby Classes and Modules based on the command or subcommand requested by the user.
|
90
154
|
|
155
|
+
## Emasser CLI Architecture
|
156
|
+
The `emasser` CLI makes use of the `emass_client` ruby gem to communicate with an `eMASS` instance via the `eMASS API` as depicted in the diagram below:
|
157
|
+
|
158
|
+
<div align="center">
|
159
|
+
<img src="images/emasser_architecture.jpg" alt="emasser CLI Architecture" title="emasser CLI Architecture">
|
160
|
+
</div>
|
91
161
|
|
92
162
|
### NOTICE
|
93
163
|
|
@@ -95,7 +165,7 @@ Because interactions with the API are handled by a dependency, the bulk of `emas
|
|
95
165
|
|
96
166
|
Approved for Public Release; Distribution Unlimited. Case Number 18-3678.
|
97
167
|
|
98
|
-
### NOTICE
|
168
|
+
### NOTICE
|
99
169
|
|
100
170
|
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.
|
101
171
|
|