Giter Club home page Giter Club logo

openrmfpro-automation's Introduction

OpenRMF® Professional API Automation

This repo contains OpenRMF® Professional API automation scripts and code to POST, PUT, and GET information via our open API. The API was introduced as a main feature in v2.6 late summer 2021 and vastly improved in v2.7 released in January 2022 and again in v2.8. Later versions will expand on this as well, as will the examples in this repo. Subscribe to the repo to get notifications on updates.

This repo goes along with the OpenRMF® Professional application and the Developer's Guide from Soteria Software to automate ingest and download of data to/from OpenRMF Professional. Please contact Soteria Software for more information.

How this Repo is Organized

Scenarios

The scenarios folder explains a few scenarios around the APIs to get your creative juices flowing through your brain and getting your team communicating around ideas.

Data

The data for checklists, SCAP scans and Nessus/ACAS scans, and Audit Compliance scans based on DISA or CIS benchmarks is in the data directory. Your scripts can pull from that sample data as examples. There are also example custom checklists created with our Custom Checklist wizard for all the manual policy, process, and procedure requirements in cyber compliance (i.e. NIST Control families like PM, AT, IR, PL, SA, RA).

  • Nessus Patch Vulnerability Scans
  • DISA CKLs
  • Evaluate-STIG checklists
  • Tanium CSV SCAP results
  • Nessus SCAP
  • other SCAP results
  • Nessus audit compliance scans for
  • Software / Container vulnerability data
  • Universal format Patch vulnerability data
  • Lists for hardware, software, ports/protocols/services
  • Lists for mitigation statements
  • Lists for compliance statements
  • Rapid7 Nexpose scan data
  • Reading data from dashboards, scores, and compliance

Each type of technology / language is organized in its own folder for dotnet core, golang, python, and scripts to just show examples. Your folder structure, URL, key, token, systemKey for data may be different but similar.

Sample Dashboards

The dashboards folder show mainly Grafana dashboards pulling data from the OpenRMF® Professional API as well using the JSON API datasource for Grafana.

Sample Applications

The applications folder has an (older) example NodeJS application in it. This was done in VSCode. The .vscode has launch JSON information for the environment variables needed to wrap the API correctly.

  • "LISTENPORT" -- the port that your application listens on for the web interface, can be whatever you want it to be that works
  • "ROOTAPIURL" -- the root URL to the external API based on DNS name, IP, etc. ending in /api/external
  • "APIKEY" -- your API Key created for you, that tracks back to a user in OpenRMF with permissions and roles, especially the ExternalAPI role it needs
  • "APITOKEN" -- the token generated for that API key

Scripts showing API calls

The python folder has python 3 scripts organized to show almost all of the API calls as well as a few combination calls.

The dotnet-core folder has example .NET Core API call examples.

The golant folder has example Go language API call examples.

The scripts folder has bash shell scripts with curl to call APIs with examples as well.

Swagger.json

The swagger.json file in the root of this repo shows calls as of OpenRMF® Professional v2.10 API. Check the Developers Guide for this version to understand the calls and data formats.

Note to Developers

Feel free to Fork this repo, add your own ideas, and do a P/R for us to review and add into the community using this.

The massive manual way we STILL do ATOs and FedRAMP/RMF approvals has passed its expiration date! And it is starting to stink.

We need to do better!

See more information at https://www.soteriasoft.com/ as well as our links on that site to our YouTube videos and scenarios.

openrmfpro-automation's People

Stargazers

 avatar  avatar  avatar  avatar

openrmfpro-automation's Issues

[FEATURE] Add Template Wizard to pick templates and add as bulk checklists with host injection

Is your feature request related to a problem? Please describe.
Add a way to search on templates, select them, add to a listing, and then create bulk checklists while injecting a hostname as well.

Describe the solution you'd like
Have a page that lets you search on tech stack or key words, find templates, add to the listing, and then specify a hostname and click "bulk add" to add them all to a system package.

You can keep the same templates there and change hostname to add a new set as well if you please.

Describe alternatives you've considered
n/a

Additional context
n/a

[FEATURE] Add upload file examples for checklist and patch files

Is your feature request related to a problem? Please describe.
Add a page showing upload of XML or .Nessus files to the API

Describe the solution you'd like
A page with a file upload that lets you upload. The security on the backend will allow/deny it for now.

Describe alternatives you've considered
n/a

Additional context
n/a

[FEATURE] Add an app that requires login/pwd to run and then matches to the API

Is your feature request related to a problem? Please describe.
The NodeJS does not add user/pwd. Add that to another scenario / example.

Describe the solution you'd like
Tie in the Keycloak setup, either current or future realm, to this so login/pwd or CAC is required for external API listing as well.

Describe alternatives you've considered
n/a

Additional context
n/a

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.