This project provides a script to generate an OSCAL compliant catalog from the FedRAMP Machine-Readable Documentation (FRMR) JSON.
The primary purpose of this tool is to automate the conversion of FedRAMP documentation into a standardized OSCAL JSON format, specifically focusing on requirements that affect Providers.
The script performs the following actions:
- Fetches the latest
FRMR.documentation.jsonfrom the FedRAMP documentation repository. - Filters and collects requirements using an ID pattern (e.g.,
XXX-XXX-XXX). - Maps each requirement to an OSCAL control structure (including statements, definitions, updates, and notes).
- Outputs the final OSCAL catalog to
frmr.catalog.oscal.json.
- Python 3.7+
- Dependencies:
requests: Used for fetching the remote JSON data.json,uuid,datetime,os,re: Standard library modules.
- Clone the repository.
- (Optional but recommended) Create and activate a virtual environment:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
- Install the required dependencies:
pip install requests
To generate the OSCAL catalog, run the following command:
python generate_oscal_catalog.pyUpon successful execution, the file frmr.catalog.oscal.json will be created in the project root.
- TODO: No automated tests are currently implemented.
- TODO: Add unit tests for
item_to_controlandcollect_requirements. - TODO: Add integration tests for the full conversion pipeline with mocked network requests.
This project is licensed under the MIT License - see the LICENSE file for details.