| Both sides previous revision Previous revision Next revision | Previous revision |
| dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-01-configuration-management:fr-cfg-002 [2026/07/16 08:12] – nick_dido | dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-01-configuration-management:fr-cfg-002 [2026/07/30 05:18] (current) – [Delivery Phase] nick_dido |
|---|
| ===== Statement ===== | ===== Statement ===== |
| |
| [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] SHALL represent each [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_configuration|Infrastructure Configuration]] as a machine-readable, [[dido:99_annexes:annex-b-terms-and-definitions:v:version_control|version-controlled]] [[dido:99_annexes:annex-b-terms-and-definitions:a:artifact|Artifact]]. | [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] SHALL represent each [[dido:99_annexes:annex-b-terms-and-definitions:i:iac]] as a machine-readable, [[dido:99_annexes:annex-b-terms-and-definitions:v:version_control|version-controlled]] [[dido:99_annexes:annex-b-terms-and-definitions:a:artifact|Artifact]]. |
| |
| ===== Source Statement ===== | ===== Source Statement ===== |
| * **Support** is a weak verb that does not identify the behavior [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] performs | * **Support** is a weak verb that does not identify the behavior [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] performs |
| * **Infrastructure-as-Code** does not identify the infrastructure information represented as code | * **Infrastructure-as-Code** does not identify the infrastructure information represented as code |
| * **Methodologies** does not identify the required representation, controls, records, or outcomes | * **Methodologies** does not identify the required representation or observable result |
| * The source statement does not identify whether the infrastructure representation must be machine-readable | * The source statement does not identify whether the infrastructure representation must be machine-readable |
| * The source statement does not identify whether the representation must be maintained through [[dido:99_annexes:annex-b-terms-and-definitions:v:version_control|Version Control]] | * The source statement does not identify whether the representation must be controlled through [[dido:99_annexes:annex-b-terms-and-definitions:v:version_control|Version Control]] |
| * The source statement does not distinguish the representation of infrastructure configuration from the separate behaviors used to validate, compare, review, approve, authorize, apply, or retire that configuration | * The source statement does not distinguish artifact representation from revision-history preservation |
| * The source statement does not identify the records required to preserve [[dido:99_annexes:annex-b-terms-and-definitions:p:provenance|Provenance]], [[dido:99_annexes:annex-b-terms-and-definitions:a:auditability|Auditability]], and [[dido:99_annexes:annex-b-terms-and-definitions:t:traceability|Traceability]] | |
| |
| The normalized Statement replaces the weak verb with **represent**, identifies the [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_configuration|Infrastructure Configuration]] as the controlled [[dido:99_annexes:annex-b-terms-and-definitions:a:artifact|Artifact]], and defines machine readability and [[dido:99_annexes:annex-b-terms-and-definitions:v:version_control|Version Control]] as required characteristics of the representation. | The normalized Statement: |
| |
| The source statement does not identify validation, comparison, review, approval, authorization, application, rollback, or retirement behavior. These candidate obligations require evaluation against ''FR-CFG-003'' through ''FR-CFG-005'' before allocation to this requirement or creation of derived requirements. | * Replaces **The system** with the defined system name |
| | * Replaces **support** with the direct behavior **represent** |
| | * Identifies the [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_configuration|Infrastructure Configuration]] as the represented information |
| | * Identifies a machine-readable [[dido:99_annexes:annex-b-terms-and-definitions:a:artifact|Artifact]] as the required representation |
| | * Requires the Artifact to remain under [[dido:99_annexes:annex-b-terms-and-definitions:v:version_control|Version Control]] |
| | |
| | This requirement governs the representation and control of the Infrastructure Configuration Artifact. ''FR-CFG-005'' separately governs preservation of configuration revisions and the relationships among successive revisions. |
| |
| ===== Rationale ===== | ===== Rationale ===== |
| |
| [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_as_code|Infrastructure as Code]] applies software configuration management disciplines to infrastructure definitions. | [[dido:99_annexes:annex-b-terms-and-definitions:i:iac|Infrastructure as Code]] applies software configuration management practices to infrastructure definitions. |
| |
| An [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_configuration|Infrastructure Configuration]] that exists only as an informal document, manually executed procedure, or untracked script cannot provide reliable reuse, comparison, governance, or reconstruction. | An [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_configuration|Infrastructure Configuration]] that exists only as an informal document, manually executed procedure, or untracked script cannot serve as a consistently processable and controlled infrastructure definition. |
| | |
| [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] represents Infrastructure Configurations as machine-readable, version-controlled [[dido:99_annexes:annex-b-terms-and-definitions:a:artifact|Artifacts]]. | |
| |
| A machine-readable representation allows an authorized tool or workflow to process the Infrastructure Configuration without manual transcription. | A machine-readable representation allows an authorized tool or workflow to process the Infrastructure Configuration without manual transcription. |
| |
| [[dido:99_annexes:annex-b-terms-and-definitions:v:version_control|Version Control]] preserves the configuration content associated with each revision and the relationships among successive revisions. | [[dido:99_annexes:annex-b-terms-and-definitions:v:version_control|Version Control]] places the Infrastructure Configuration Artifact under controlled revision management. |
| |
| This representation provides a foundation for separately defined configuration management behaviors such as: | The machine-readable, version-controlled representation provides a foundation for separately defined behaviors such as: |
| |
| * Configuration validation | |
| * Configuration comparison | |
| * Configuration review | |
| * Configuration approval | |
| * Configuration application | |
| * Configuration reuse | * Configuration reuse |
| * Configuration rollback | * Configuration inheritance |
| * Configuration retirement | * Configuration revision preservation |
| * Drift detection | * Configuration comparison |
| | * Infrastructure deployment |
| | * Environment reconstruction |
| |
| The machine-readable, version-controlled representation supports: | This representation contributes to: |
| |
| | * Consistent automated processing |
| | * Controlled configuration change |
| | * Configuration reuse |
| * [[dido:99_annexes:annex-b-terms-and-definitions:r:reproducibility|Reproducibility]] | * [[dido:99_annexes:annex-b-terms-and-definitions:r:reproducibility|Reproducibility]] |
| * [[dido:99_annexes:annex-b-terms-and-definitions:p:provenance|Provenance]] | * [[dido:99_annexes:annex-b-terms-and-definitions:p:provenance|Provenance]] |
| * [[dido:99_annexes:annex-b-terms-and-definitions:a:auditability|Auditability]] | |
| * [[dido:99_annexes:annex-b-terms-and-definitions:t:traceability|Traceability]] | * [[dido:99_annexes:annex-b-terms-and-definitions:t:traceability|Traceability]] |
| |
| |
| * [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] | * [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] |
| * [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_as_code|Infrastructure as Code]] | * [[dido:99_annexes:annex-b-terms-and-definitions:i:iac|Infrastructure as Code]] |
| * [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_configuration|Infrastructure Configurations]] | * [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_configuration|Infrastructure Configurations]] |
| * [[dido:99_annexes:annex-b-terms-and-definitions:d:declarative_configuration|Declarative Configuration]] | |
| * [[dido:99_annexes:annex-b-terms-and-definitions:a:artifact|Artifacts]] | * [[dido:99_annexes:annex-b-terms-and-definitions:a:artifact|Artifacts]] |
| * Machine-readable representations | * Machine-readable representations |
| * [[dido:99_annexes:annex-b-terms-and-definitions:v:version_control|Version Control]] | * [[dido:99_annexes:annex-b-terms-and-definitions:v:version_control|Version Control]] |
| * [[dido:99_annexes:annex-b-terms-and-definitions:r:revision|Revisions]] | |
| * [[dido:99_annexes:annex-b-terms-and-definitions:r:revision_history|Revision History]] | |
| * [[dido:99_annexes:annex-b-terms-and-definitions:c:configuration_management|Configuration Management]] | |
| * [[dido:99_annexes:annex-b-terms-and-definitions:p:provenance|Provenance]] | |
| * [[dido:99_annexes:annex-b-terms-and-definitions:a:auditability|Auditability]] | |
| * [[dido:99_annexes:annex-b-terms-and-definitions:r:reproducibility|Reproducibility]] | |
| * [[dido:99_annexes:annex-b-terms-and-definitions:t:traceability|Traceability]] | |
| |
| ===== Verification ===== | ===== Verification ===== |
| |
| - Verification SHALL confirm that each tested [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_configuration|Infrastructure Configuration]] uses a machine-readable representation | - Verification SHALL confirm that each tested [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_configuration|Infrastructure Configuration]] exists as an identifiable [[dido:99_annexes:annex-b-terms-and-definitions:a:artifact|Artifact]] |
| - Verification SHALL confirm that an authorized tool can process the machine-readable representation without requiring manual transcription | - Verification SHALL confirm that each tested Infrastructure Configuration Artifact uses a machine-readable representation |
| - Verification SHALL confirm that each tested Infrastructure Configuration is maintained by the applicable [[dido:99_annexes:annex-b-terms-and-definitions:v:version_control|Version Control]] system | - Verification SHALL confirm that an authorized tool can parse the machine-readable representation without manual transcription |
| - Verification SHALL confirm that the Version Control system preserves the content associated with each tested configuration revision | - Verification SHALL confirm that each tested Infrastructure Configuration Artifact is maintained under the applicable [[dido:99_annexes:annex-b-terms-and-definitions:v:version_control|Version Control]] system |
| - Verification SHALL confirm that the Version Control system preserves the relationship between successive configuration revisions | - Verification SHALL confirm that the Version Control system assigns an identifiable revision to the tested Infrastructure Configuration Artifact |
| - Verification SHALL confirm that an authorized user can retrieve a tested configuration revision | - Verification SHALL confirm that an authorized user or process can retrieve the identified revision |
| - Verification SHALL confirm that the configuration record preserves the applicable [[dido:99_annexes:annex-b-terms-and-definitions:p:provenance|Provenance]] and [[dido:99_annexes:annex-b-terms-and-definitions:t:traceability|Traceability]] | |
| |
| Verification may include: | Verification may include: |
| |
| | * Artifact inspection |
| * Machine-readable format inspection | * Machine-readable format inspection |
| * Automated parsing tests | * Automated parsing tests |
| * Automated processing tests | |
| * Version Control repository inspection | * Version Control repository inspection |
| * Repository history inspection | * Revision identification tests |
| * Revision content inspection | * Revision retrieval tests |
| * Revision relationship inspection | |
| * Prior revision retrieval tests | |
| |
| The verification record SHALL identify: | The verification record SHALL identify: |
| |
| - The tested [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_configuration|Infrastructure Configuration]] | - The tested Infrastructure Configuration |
| | - The corresponding Artifact |
| - The machine-readable representation | - The machine-readable representation |
| - The tool used to process the representation | - The tool used to parse the representation |
| - The processing result | - The parsing result |
| - The Version Control repository | - The applicable Version Control system |
| - The tested revision | - The tested revision identifier |
| - The preceding revision, when applicable | |
| - The succeeding revision, when applicable | |
| - The revision retrieval result | - The revision retrieval result |
| - The applicable [[dido:99_annexes:annex-b-terms-and-definitions:p:provenance|Provenance]] | |
| - The observed results | - The observed results |
| - The generated [[dido:99_annexes:annex-b-terms-and-definitions:e:evidence|Evidence]] | - The generated [[dido:99_annexes:annex-b-terms-and-definitions:e:evidence|Evidence]] |
| This requirement refines: | This requirement refines: |
| |
| * [[dido:02-crusible:99-annexes:annex-c-requirements:01-mission-objectives:mo-001|MO-001 — Repeatable, Compliant, and Secure Infrastructure Environments]] | * [[dido:02-crusible:99-annexes:annex-c-requirements:01-mission-objectives:mo-001:start|MO-001 — Repeatable, Compliant, and Secure Infrastructure Environments]] |
| * [[dido:02-crusible:99-annexes:annex-c-requirements:01-mission-objectives:mo-002|MO-002 — Reduced Platform Deployment Timelines]] | * [[dido:02-crusible:99-annexes:annex-c-requirements:01-mission-objectives:mo-002:start|MO-002 — Reduced Platform Deployment Timelines]] |
| * [[dido:02-crusible:99-annexes:annex-c-requirements:01-mission-objectives:mo-003|MO-003 — Platform Independent Deployment]] | * [[dido:02-crusible:99-annexes:annex-c-requirements:01-mission-objectives:mo-003:start|MO-003 — Platform Independent Deployment]] |
| * [[dido:02-crusible:99-annexes:annex-c-requirements:01-mission-objectives:mo-005|MO-005 — Reusable and Version-Controlled Infrastructure]] | * [[dido:02-crusible:99-annexes:annex-c-requirements:01-mission-objectives:mo-005:start|MO-005 — Reusable and Version-Controlled Infrastructure]] |
| * [[dido:02-crusible:99-annexes:annex-c-requirements:01-mission-objectives:mo-006|MO-006 — Infrastructure Lifecycle Management]] | * [[dido:02-crusible:99-annexes:annex-c-requirements:01-mission-objectives:mo-006:start|MO-006 — Infrastructure Lifecycle Management]] |
| |
| This requirement operates within the conditions established by: | This requirement operates within the conditions established by: |
| |
| * [[dido:02-crusible:99-annexes:annex-c-requirements:02-operational-requirements:or-001|OR-001 — Operational Roles]] | * [[dido:02-crusible:99-annexes:annex-c-requirements:02-operational-requirements:or-001:start|OR-001 — Operational Roles]] |
| * [[dido:02-crusible:99-annexes:annex-c-requirements:02-operational-requirements:or-002|OR-002 — Deployment Environments]] | * [[dido:02-crusible:99-annexes:annex-c-requirements:02-operational-requirements:or-002:start|OR-002 — Deployment Environments]] |
| * [[dido:02-crusible:99-annexes:annex-c-requirements:02-operational-requirements:or-003|OR-003 — Classified and Unclassified Environments]] | * [[dido:02-crusible:99-annexes:annex-c-requirements:02-operational-requirements:or-003:start|OR-003 — Classified and Unclassified Environments]] |
| * [[dido:02-crusible:99-annexes:annex-c-requirements:02-operational-requirements:or-004|OR-004 — Concurrent Environment Management]] | * [[dido:02-crusible:99-annexes:annex-c-requirements:02-operational-requirements:or-004:start|OR-004 — Concurrent Environment Management]] |
| * [[dido:02-crusible:99-annexes:annex-c-requirements:02-operational-requirements:or-005|OR-005 — Distributed Environment Management]] | * [[dido:02-crusible:99-annexes:annex-c-requirements:02-operational-requirements:or-005:start|OR-005 — Distributed Environment Management]] |
| |
| This requirement also relates to: | This requirement also relates to: |
| The Crucible Concept of Operations describes Phase 1 as a command-line utility invoked through [[dido:99_annexes:annex-b-terms-and-definitions:c:ci_cd_pipeline|CI/CD Pipeline]] steps. | The Crucible Concept of Operations describes Phase 1 as a command-line utility invoked through [[dido:99_annexes:annex-b-terms-and-definitions:c:ci_cd_pipeline|CI/CD Pipeline]] steps. |
| |
| The Phase 1 workflow uses machine-readable, version-controlled Infrastructure Configurations as controlled inputs for activities such as: | The Phase 1 workflow uses machine-readable, version-controlled Infrastructure Configuration Artifacts as controlled inputs for activities such as: |
| |
| * Selecting applicable configuration revisions | * Selecting an identified configuration revision |
| * Composing selected [[dido:99_annexes:annex-b-terms-and-definitions:b:baseline|Baselines]] | * Composing selected [[dido:99_annexes:annex-b-terms-and-definitions:b:baseline|Baselines]] |
| * Building [[dido:99_annexes:annex-b-terms-and-definitions:m:machine_image|Machine Images]] | * Building [[dido:99_annexes:annex-b-terms-and-definitions:m:machine_image|Machine Images]] |
| * Preparing deployment inputs | * Preparing deployment inputs |
| * Performing [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_deployment|Infrastructure Deployment]] | * Performing [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_deployment|Infrastructure Deployment]] |
| * Recording the configuration revision associated with an execution | |
| * Preserving execution results and [[dido:99_annexes:annex-b-terms-and-definitions:e:evidence|Evidence]] | |
| |
| The machine-readable, version-controlled representation provides the controlled Infrastructure Configuration input required by these activities. | The machine-readable representation allows automated processing. Version Control provides controlled identification and retrieval of the Artifact revision used by the workflow. |
| | |
| Configuration validation, review, approval, authorization, application, and rollback remain separate functional behaviors subject to allocation across the remaining Configuration Management requirements. | |
| |
| ===== Delivery Phase ===== | ===== Delivery Phase ===== |
| |
| Phase 1 and subsequent phases | Implemented and Verified |
| |
| ===== Implementation Status ===== | ===== Implementation Status ===== |
| Not Assessed | Not Assessed |
| |
| Implementation status requires verification that [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] represents Infrastructure Configurations as machine-readable, version-controlled Artifacts. | Implementation status requires verification that [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] represents each Infrastructure Configuration as a machine-readable, version-controlled Artifact. |
| |
| ===== Requirement Status ===== | ===== Requirement Status ===== |
| Changes to the Statement SHALL preserve the approved intent of the source requirement. | Changes to the Statement SHALL preserve the approved intent of the source requirement. |
| |
| Material changes should receive review and should update the related outbound traceability, verification criteria, configuration records, and source records. | Material changes should receive review and should update the related outbound traceability, verification criteria, and source records. |
| |
| The Source Statement should preserve the original wording from the controlling System Requirements Specification. | The Source Statement should preserve the original wording from the controlling System Requirements Specification. |
| |
| The Configuration Management completeness review should evaluate whether validation, comparison, review, approval, authorization, application, rollback, and retirement obligations are allocated to ''FR-CFG-003'' through ''FR-CFG-005'' or require derived requirements. | Verification criteria should test only the Artifact representation, machine readability, and Version Control behavior defined by the Statement. |
| | |
| | Revision-content preservation and relationships among successive revisions belong to ''FR-CFG-005'' and should not be duplicated as normative behavior on this page. |
| |
| Incoming traceability should use the wiki Backlinks function rather than a manually maintained list. | Incoming traceability should use the wiki Backlinks function rather than a manually maintained list. |