====== FR-COMP-008a — Compliance Scanning Abstraction ====== [[dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-06-compliance-management:fr-comp-008:start|Go to FR-COMP-008 — Operating-System-Independent Compliance Scanning]] ===== Statement ===== [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] SHALL provide a Compliance Scanning Abstraction. ===== Derived From ===== This requirement derives from: * [[dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-06-compliance-management:fr-comp-008:start|FR-COMP-008 — Operating-System-Independent Compliance Scanning]] * Crucible System Requirements Specification, Version 1.1 Draft, Functional Requirements, FR-COMP-008 The Original Requirement states: > //The system shall provide an operating-system-agnostic compliance scanning abstraction. Compliance scanning shall not be limited to a single operating system (the current OpenSCAP/RHEL-9 integration is one concrete provider behind this abstraction).//[[dido:02-crusible:99-annexes:annex-b:cr-001|[C1]]] FR-COMP-008a: * Replaces **The system** with the defined system name [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] * Changes **shall** to the established uppercase normative form **SHALL** * Retains the direct behavior **provide** * Extracts provision of the Compliance Scanning Abstraction as an independently verifiable requirement * Assigns operating-system coverage to FR-COMP-008b * Excludes the OpenSCAP and RHEL 9 implementation example from the normative Statement ===== Rationale ===== A Compliance Scanning Abstraction separates Crucible compliance scanning operations from a particular scanning tool or operating-system-specific implementation. The abstraction allows Crucible to use different compliance scanning implementations through a common architectural boundary. This requirement establishes provision of the abstraction without prescribing: * A particular Compliance Scanning Tool * A particular operating system * A particular provider * A plugin mechanism * A provider discovery mechanism * An application programming interface * A command-line interface * A data exchange format * A common Compliance Finding format * Dynamic provider loading * Automatic operating-system detection Separate requirements, architecture specifications, and interface definitions govern those subjects and behaviors. ===== Applies To ===== This requirement applies to: * [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] * Compliance scanning operations * Compliance scanning implementations * Compliance Scanning Tools ===== Verification ===== Verification confirms that: - A compliance scanning operation is selected for testing - Two compliance scanning implementations are configured behind the Compliance Scanning Abstraction - [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] initiates the selected compliance scanning operation through the Compliance Scanning Abstraction - The selected compliance scanning operation can use either configured implementation without changing the Crucible operation that invokes the abstraction - Each configured implementation returns an observable scanning result through the abstraction ===== Referenced By ===== The following pages reference this requirement: {{backlinks>.#dido:02-crusible}} ===== Implementation Status ===== Implemented and Verified ===== Requirement Status ===== Review and approve FR-COMP-008a as a leaf requirement. ---- ===== Issues ===== Determine whether Compliance Scanning Abstraction requires a controlled definition in the shared Terms and Definitions corpus. Determine whether the architecture defines the operations and information exposed by the Compliance Scanning Abstraction. ---- ===== Notes for Editors ===== This requirement page retains the derived requirement identifier ''FR-COMP-008a''. This page is a leaf requirement page and omits a trailing '':start'' from its namespace. The Statement addresses only provision of the Compliance Scanning Abstraction. FR-COMP-008b governs compliance scanning across two or more operating systems. The OpenSCAP and RHEL 9 reference in the Original Requirement describes one implementation of the abstraction and does not create a requirement to use either technology. Do not add provider loading, provider discovery, plugin registration, operating-system detection, interface protocol, data-format, or result-normalization obligations unless the controlling requirement changes through an approved requirements process. To reference this requirement Statement from another wiki page, insert: {{section>dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-06-compliance-management:fr-comp-008:fr-comp-008a#Statement&noheader&nofooter&noeditbtn}} ---- © 2026 Dido Solutions, Inc. and Jackrabbit Consulting, Inc.