dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-01-configuration-management:fr-cfg-002

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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:05] – created nick_didodido: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
Line 5: Line 5:
 ===== Statement ===== ===== Statement =====
  
-[[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] SHALL manage each [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_configuration|Infrastructure Configuration]] as a uniquely identified, 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]] that authorized workflows can validate, compare, review, approve, and apply to an [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_environment|Infrastructure Environment]].+[[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 =====
Line 23: Line 23:
   * **The system** does not use the defined system name   * **The system** does not use the defined system name
   * **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 managed as code +  * **Infrastructure-as-Code** does not identify the infrastructure information represented as code 
-  * **Methodologies** does not identify the required operations, 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 require unique identification or [[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 identify the validation, comparison, review, or approval activities applied to the configuration +  * The source statement does not distinguish artifact representation from revision-history preservation
-  * The source statement does not identify how an approved configuration relates to the resulting Infrastructure Environment +
-  * 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 **manage**, identifies the Infrastructure Configuration as the controlled Artifact, and defines the operations required to treat infrastructure configuration as code.+The normalized Statement
 + 
 +  * 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 =====
  
-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 Infrastructure Configuration that exists only as an informal document, manually executed procedure, or untracked script cannot provide reliable review, comparison, approval, reuse, 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]] manages Infrastructure Configurations as machine-readable Artifacts that authorized workflows can:+machine-readable representation allows an authorized tool or workflow to process the Infrastructure Configuration without manual transcription.
  
-  * Create +[[dido:99_annexes:annex-b-terms-and-definitions:v:version_control|Version Control]] places the Infrastructure Configuration Artifact under controlled revision management.
-  * Validate +
-  * Compare +
-  * Review +
-  * Approve +
-  * Version +
-  * Retrieve +
-  * Apply +
-  * Reuse +
-  * Retire+
  
-The managed configuration records:+The machine-readable, version-controlled representation provides a foundation for separately defined behaviors such as:
  
-  * A stable identifier +  * Configuration reuse 
-  * A revision identifier +  * Configuration inheritance 
-  * The configuration content +  * Configuration revision preservation 
-  * The applicable schema or validation rules +  * Configuration comparison 
-  * The source repository +  * Infrastructure deployment 
-  * The author or automated process +  * Environment reconstruction
-  * The review and approval status +
-  * The relationship to preceding and succeeding revisions +
-  * The applicable [[dido:99_annexes:annex-b-terms-and-definitions:b:baseline|Baseline]] references +
-  * The Infrastructure Environments created or modified using the configuration+
  
-This treatment allows organizations to apply familiar software engineering controls to infrastructure changes before those changes affect an operational environment.+This representation contributes to:
  
-Infrastructure as Code supports: +  Consistent automated processing 
- +  * Controlled configuration change 
-  Automated validation +  * Configuration reuse
-  * Peer review +
-  * Change approval +
-  * Configuration comparison +
-  * Controlled reuse +
-  * Rollback +
-  * Drift detection+
   * [[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]]
  
Line 86: Line 72:
  
   * [[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:c:crucible_description|Crucible Descriptions]] 
-  * [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_environment|Infrastructure Environments]] 
-  * [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_baseline|Infrastructure Baselines]] 
-  * [[dido:99_annexes:annex-b-terms-and-definitions:b:baseline|Baselines]] 
   * [[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
   * [[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]] 
-  * Configuration validation 
-  * Configuration comparison 
-  * Configuration review 
-  * Configuration approval 
-  * Configuration application 
-  * Configuration rollback 
-  * Configuration retirement 
-  * [[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]] 
-  * [[dido:99_annexes:annex-b-terms-and-definitions:c:ci_cd_pipeline|CI/CD Pipelines]] 
-  * [[dido:99_annexes:annex-b-terms-and-definitions:o:operational_lifecycle|Operational Lifecycle]] 
  
 ===== Verification ===== ===== Verification =====
  
-  - Verification SHALL confirm that each tested Infrastructure Configuration has a unique identifier +  - 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 each tested Infrastructure Configuration has revision identifier +  - Verification SHALL confirm that each tested Infrastructure Configuration Artifact uses a machine-readable representation 
-  - Verification SHALL confirm that each tested Infrastructure Configuration uses a machine-readable representation +  - Verification SHALL confirm that an authorized tool can parse the machine-readable representation without manual transcription 
-  - Verification SHALL confirm that the applicable Version Control system preserves the content associated with each 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 the Version Control system records the source and author of each tested revision +  - Verification SHALL confirm that an authorized user or process can retrieve the identified revision
-  - Verification SHALL confirm that Crucible validates an Infrastructure Configuration before applying it +
-  - Verification SHALL confirm that Crucible rejects an Infrastructure Configuration that violates an applicable schema, constraint, or validation rule +
-  Verification SHALL confirm that an authorized workflow can compare two Infrastructure Configuration revisions +
-  Verification SHALL confirm that the configuration record identifies the applicable review and approval status +
-  - Verification SHALL confirm that Crucible applies only an authorized Infrastructure Configuration revision to the target Infrastructure Environment +
-  - Verification SHALL confirm that the resulting environment record identifies the Infrastructure Configuration identifier and revision used +
-  - Verification SHALL confirm that a change to approved configuration content creates a separately identified revision +
-  - Verification SHALL confirm that an authorized user can retrieve a prior Infrastructure Configuration revision +
-  - Verification SHALL confirm that a prior authorized revision can be selected for rollback when the applicable rollback criteria are satisfied +
-  - Verification SHALL confirm that the configuration and environment records preserve the applicable Provenance, Evidence, Auditability, and Traceability+
  
 Verification may include: Verification may include:
  
-  * Configuration identifier inspection +  * Artifact inspection
-  * Revision identifier inspection+
   * Machine-readable format inspection   * Machine-readable format inspection
-  * Repository history inspection +  * Automated parsing tests 
-  * Configuration schema validation +  * Version Control repository inspection 
-  * Constraint validation +  * Revision identification tests 
-  * Invalid configuration tests +  * Revision retrieval tests
-  * Configuration comparison +
-  * Change review inspection +
-  * Approval record inspection +
-  * Unauthorized revision tests +
-  * Configuration application tests +
-  * Prior revision retrieval tests +
-  * Rollback tests +
-  * Environment record inspection +
-  * End-to-end [[dido:99_annexes:annex-b-terms-and-definitions:c:ci_cd_pipeline|CI/CD Pipeline]] tests+
  
 The verification record SHALL identify: The verification record SHALL identify:
  
   - The tested Infrastructure Configuration   - The tested Infrastructure Configuration
-  - The configuration identifier +  - The corresponding Artifact
-  - The configuration revision identifier+
   - The machine-readable representation   - The machine-readable representation
-  - The configuration source location +  - The tool used to parse the representation 
-  - The configuration author or automated process +  - The parsing result 
-  - The preceding revision +  - The applicable Version Control system 
-  - The succeeding revision, when applicable +  - The tested revision identifier 
-  - The applicable schema and validation rules +  - The revision retrieval result
-  - The validation results +
-  - The review status +
-  - The approval status +
-  - The target Infrastructure Environment +
-  - The applied configuration revision +
-  - The resulting environment record +
-  - The rollback result, when applicable+
   - 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]]
Line 175: Line 113:
 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:
Line 207: Line 145:
 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 version-controlled, machine-readable infrastructure configuration to:+The Phase 1 workflow uses machine-readable, version-controlled Infrastructure Configuration Artifacts as controlled inputs for activities such as:
  
-  * Select the applicable configuration revision +  * Selecting an identified configuration revision 
-  * Validate the configuration +  * Composing selected [[dido:99_annexes:annex-b-terms-and-definitions:b:baseline|Baselines]] 
-  * Review configuration changes +  * Building [[dido:99_annexes:annex-b-terms-and-definitions:m:machine_image|Machine Images]] 
-  * Compose selected Baselines +  * Preparing deployment inputs 
-  * Build [[dido:99_annexes:annex-b-terms-and-definitions:m:machine_image|Machine Images]] +  * Performing [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_deployment|Infrastructure Deployment]]
-  * Prepare deployment inputs +
-  * Perform [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_deployment|Infrastructure Deployment]] +
-  * Record the configuration revision used by the deployment +
-  * Preserve deployment results and Evidence+
  
-This workflow applies software engineering controls to infrastructure configuration before Crucible applies the configuration to an Infrastructure Environment.+The machine-readable representation allows automated processing. Version Control provides controlled identification and retrieval of the Artifact revision used by the workflow.
  
 ===== Delivery Phase ===== ===== Delivery Phase =====
  
-Phase 1 and subsequent phases+Implemented and Verified
  
 ===== Implementation Status ===== ===== Implementation Status =====
Line 229: Line 163:
 Not Assessed Not Assessed
  
-Implementation status requires verification that Crucible manages Infrastructure Configurations as uniquely identified, machine-readable, version-controlled Artifacts that authorized workflows can validate, compare, review, approve, and apply.+Implementation status requires verification that [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] represents each Infrastructure Configuration as machine-readable, version-controlled Artifact.
  
 ===== Requirement Status ===== ===== Requirement Status =====
Line 244: Line 178:
 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, acceptance 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.
 +
 +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.
  • dido/02-crusible/99-annexes/annex-c-requirements/03-functional-requirements/03-01-configuration-management/fr-cfg-002.1784214305.txt.gz
  • Last modified: 2026/07/16 08:05
  • by nick_dido