version 0.1.0
This is a reusable compliance component library. It contains (either or both) OpenControl and NIST OSCAL component definitions and ancillary information such as control verification methods.
A collection of free and open source (FOSS) tools are being built that will enable library access and component review and selection. These include:
NIST OSCAL defines a component as:
- A description of the controls that are supported in a given implementation of a hardware, software, service, policy, process, procedure, or compliance artifact (e.g., FIPS 140-2 validation).
 - A component can be either a technical component, or a documentary component.
- A technical component is a component that is implemented in hardware (physical or virtual) or software.
 - A documentary component is a component implemented in a document, such as a process, procedure, or policy.
 
 
A perhaps simpler way to think of a component is as:
- A reusable grouping of partial or complete control implementation statements (or justifications, possibly in template form) that deal with specific security requirements of a defined technology, function and/or process.
 
- 
README.md- This file.
 
 - 
code.json- The format of this file is defined in https://code.gov/agency-compliance/compliance/inventory-code.
 - We expect that there will be a number of component libraries offering reusable, general-purpose components.
 - A 
code.jsonfile providing a manifest enhanced with additional metadata will support the indexing and selection of appropriate component defintions. - Suggested tags:
OSCAL Component LibraryNIST SP 800-53r4NIST SP 800-53r5CMS ARS 5.0OpenControlOSCAL v1.0.x
 
 - 
example-org-metadata.json- Metadata, defined by an agency, organization or group, that can provide defaults when viewng component definitions or assembling them into SSPs.
 
 - 
component-name/- The name of a component-definition in the library, e.g. "
django". - Note that there may be several instances of the 
component-namewith different uses, inheritance, impact levels, etc. Initially we will manage these as branches. - We could instead add a level of indirection: 
component-name/unique-descriptive-tag/such as:component-name/aws-moderate/component-name/azure-high/component-name/vendor-default/
 
 - The name of a component-definition in the library, e.g. "
 - 
component-name/opencontrol/component.yaml- The OpenControl reusable component in machine readable YAML. Can be used either:
- during refactoring of an existing SSP into known components, or
 - when creating a new SSP that employs the component's technology (policy/process/etc).
 
 
 - The OpenControl reusable component in machine readable YAML. Can be used either:
 - 
component-name/oscal/- Location for the OSCAL reusable component (similar to OpenControl above).
 
 - 
scripts/oc_to_oscal.shconverts OpenControl components in library to OSCAL-1.0.2validate.shvalidates components in library to be OSCAL-1.0.2 compliant
 
odp-defaults/- A folder of global odp.json files for completing templates with "organizational defined parameters".
 
component-name/odp/- A folder of default odp.json files for completing the 
component-nametemplate. 
- A folder of default odp.json files for completing the 
 component-name/template/- A location for OpenControl and/or OSCAL templates enabling greater reusability.