A Python Flask app for creating OSCAL compliance components.
Flask is a lightweight Python web application framework using the Jinja templating language and the Werkzeug WSGI toolkit and SQLite.
The application's dependencies and virtual environments are managed using Python Poetry.
- Clone the repe
- Change directory into the repo:
cd component_creator
- Run
poetry install
to install the project dependencies. - Create a directory named
instance
where the databases will be installed. - Run the application by running
poetry run flask --app app run
,
To run tests,
poetry run python -m pytest
To run tests with coverage,
poetry run coverage run -m pytest && poetry run coverage report -m
To run tests,
python -m pytest
To run tests with coverage,
coverage run -m pytest && coverage report -m
This application is designed to OSCAL formatted Catalog specific Components. You will need to import at least one Catalog. NIST has several resolved catalogs in their Github repository which you can use. Choose a JSON file from either the rev5 or rev4 directory, but make sure to choose a Catalog, not a Profile. For example NIST_SP-800-53_rev5_HIGH-baseline-resolved-profile_catalog.json. These Catalogs are availble to you but the system should be able to handle any OSCAL formatted Catalog.
Once you have a Catalog you can import it into the system by clicking Catalogs -> Add a Catalog from the main menu and uploading the file. Once you have uploaded the file you will be redirected to the Catalog details page that show information about the catalog including a list of Controls.
All Catalogs imported into the system will be listed on the /catalogs
page available from the main menu.
- Tom Camp - Tom-Camp
This project is licensed under the GNU General Public License version 3 or any later version - see the LICENSE file for details. Some portions of this code are dedicated to the public domain under the terms of the Creative Commons Zero v1.0 Universal.
SPDX-License-Identifier: GPL-3.0-or-later
Copyright 2019-2021 CivicActions, Inc.