dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-04-multi-cloud-management:fr-mc-002

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-04-multi-cloud-management:fr-mc-002 [2026/07/18 08:28] nick_didodido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-04-multi-cloud-management:fr-mc-002 [2026/07/30 05:52] (current) nick_dido
Line 5: Line 5:
 ===== Statement ===== ===== Statement =====
  
-[[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] SHALL load a [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_plugin|Provider Plugin]] that conforms to the applicable [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_contract|Provider Contract]].+[[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] SHALL provide provider-specific extensions through [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_plugin|Provider Plugins]].
  
-===== Source Statement =====+===== Derived From =====
  
-> The system shall support provider-specific extensions through plugins.+This requirement derives from:
  
-===== Source =====+  * Crucible System Requirements Specification, Version 1.1 Draft, Functional Requirements, FR-MC-002
  
-Crucible System Requirements Specification, Version 1.1 Draft, Functional Requirements, FR-MC-002.+The Original Requirement states:
  
-===== Assessment =====+> //The system shall support provider-specific extensions through plugins.//[[dido:02-crusible:99-annexes:annex-b:cr-001|[C1]]]
  
-The source statement identifies the intended extension mechanism but does not provide a fully testable formulation.+FR-MC-002:
  
-The following Specification Discipline and Authoring findings apply: +  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** 
-  * **The system** does not use the defined system name +  * Replaces the weak verb **support** with **provide**
-  * **shall** does not follow the established uppercase normative convention +
-  * **Support** is a weak verb that does not identify the required behavior +
-  * **Provider-specific extensions** does not identify the architectural subject that realizes the extension +
-  * **Plugins** does not use the defined [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_plugin|Provider Plugin]] concept +
-  * The source statement does not identify the contract governing the Provider Plugin +
-  The source statement does not prescribe a programming language, packaging format, loading mechanism, [[dido:99_annexes:annex-b-terms-and-definitions:p:provider|Provider]], or plugin implementation +
- +
-The normalized Statement: +
- +
-  Replaces **The system** with [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] +
-  * Replaces **support** with the direct behavior **load**+
   * Uses the defined [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_plugin|Provider Plugin]] concept   * Uses the defined [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_plugin|Provider Plugin]] concept
-  * Requires conformance to the applicable [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_contract|Provider Contract]] +  * Preserves plugins as the source-required extension mechanism
-  * Retains the source-required plugin extension mechanism +
-  * Preserves implementation independence outside the source-mandated plugin boundary +
-  * Retains one primary required behavior+
  
-The normalized Statement does not independently require Provider Plugin discovery, installation, activation, replacement, isolation, signing, version negotiation, or removal.+No other substantive normalization is required.
  
 ===== Rationale ===== ===== Rationale =====
  
-A [[dido:99_annexes:annex-b-terms-and-definitions:p:provider|Provider]] may expose capabilities, interfaces, parameters, and lifecycle operations that differ from those exposed by another Provider.+Providers expose capabilities, interfaces, parameters, and lifecycle operations that differ from those exposed by other Providers.
  
-A [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_plugin|Provider Plugin]] isolates those provider-specific details from the core Crucible behavior.+A [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_plugin|Provider Plugin]] allows Crucible to provide provider-specific behavior without incorporating that behavior directly into provider-independent Crucible components.
  
-Provider Plugin may implement:+Provider-specific extensions can address:
  
-  * Resource type mappings +  * Provider resource types 
-  * Provider interface interactions +  * Provider interfaces 
-  * Authentication behavior +  * Provider authentication 
-  * Region selection +  * Provider regions 
-  * Network configuration +  * Provider networking 
-  * Storage configuration +  * Provider storage 
-  * Machine type selection+  * Provider machine types
   * Provider-managed services   * Provider-managed services
-  * Image conversion +  * Provider-specific deployment operations
-  * Image upload +
-  * Image signing +
-  * Image verification +
-  * Image promotion +
-  * Infrastructure initialization +
-  * Deployment operations +
-  * Teardown operations+
   * Provider-specific validation   * Provider-specific validation
   * Provider-specific error handling   * Provider-specific error handling
  
-The applicable [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_contract|Provider Contract]] specifies the capabilities, operations, inputs, outputs, constraints, errors, compatibility rules, and lifecycle behaviors that govern interaction with the Provider.+This requirement establishes Provider Plugins as the extension mechanism without prescribing:
  
-The [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_abstraction|Provider Abstraction]] defines the provider-independent architectural boundary. The Provider Contract formalizes that boundary, and the Provider Plugin realizes the contract for a particular Provider or class of Providers.+  * Plugin discovery 
 +  * Plugin installation 
 +  * Plugin loading 
 +  * Plugin activation 
 +  * A [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_contract|Provider Contract]] 
 +  * Version compatibility 
 +  * Plugin isolation 
 +  * Plugin signing 
 +  * Plugin substitution 
 +  * Plugin removal 
 +  * A programming language or packaging format
  
-Provider Plugins preserve separation among: +Separate requirements, architecture specifications, or interface definitions govern those subjects.
- +
-  * Provider-independent Crucible behavior +
-  * Common deployment intent +
-  * The Provider Abstraction +
-  * Provider-specific deployment behavior +
-  * Provider-specific parameters +
-  * Provider interfaces and software development kits+
  
 ===== Applies To ===== ===== Applies To =====
Line 86: Line 68:
  
   * [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]]   * [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]]
 +  * Provider-specific extensions
   * [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_plugin|Provider Plugins]]   * [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_plugin|Provider Plugins]]
-  * [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_contract|Provider Contracts]] +  * Provider-specific behavior
-  * [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_abstraction|Provider Abstractions]] +
-  * [[dido:99_annexes:annex-b-terms-and-definitions:p:provider|Providers]] +
-  * Provider-specific deployment behavior +
-  * Provider-specific parameters +
-  * Provider interfaces +
-  * Provider deployment workflows+
  
 ===== Verification ===== ===== Verification =====
  
-  - Verification SHALL confirm that the tested provider-specific behavior resides in a [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_plugin|Provider Plugin]] +Verification confirms that:
-  - Verification SHALL confirm that [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] loads the tested Provider Plugin +
-  - Verification SHALL confirm that the tested Provider Plugin conforms to the applicable [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_contract|Provider Contract]]+
  
-Verification may include: +  - Provider-specific behavior is selected for testing 
- +  - The tested provider-specific behavior is provided through a [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_plugin|Provider Plugin]] 
-  * Provider Plugin loading tests +  - [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] uses the Provider Plugin to provide the tested provider-specific behavior 
-  * Provider Contract conformance tests +  - The observed behavior demonstrates a provider-specific extension supplied through the Provider Plugin
-  * Provider interface tests +
-  * Interface conformance inspection +
-  * Static dependency analysis +
-  * Provider deployment tests +
-  * Provider Plugin substitution tests +
- +
-The verification record SHALL identify: +
- +
-  - The tested Provider Plugin +
-  The applicable [[dido:99_annexes:annex-b-terms-and-definitions:p:provider|Provider]] +
-  - The applicable Provider Contract +
-  - The Provider Plugin loading operation +
-  - The Provider Contract conformance result +
-  - The observed result +
-  - The generated [[dido:99_annexes:annex-b-terms-and-definitions:e:evidence|Evidence]] +
- +
-===== Outgoing Traceability ===== +
- +
-This requirement realizes: +
- +
-  * [[dido:02-crusible:99-annexes:annex-c-requirements:01-mission-objectives:mo-003|MO-003]] +
-  * [[dido:02-crusible:99-annexes:annex-c-requirements:01-mission-objectives:mo-006|MO-006]] +
- +
-This requirement relates to: +
- +
-  * [[dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-04-multi-cloud-management:fr-mc-001|FR-MC-001 — Cloud Provider Abstraction]] +
-  * [[dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-04-multi-cloud-management:fr-mc-003|FR-MC-003 — Deployment Portability Across Cloud Providers]] +
-  * [[dido:02-crusible:07-infrastructure-and-deployment:start|7. Infrastructure and Deployment]]+
  
 ===== Referenced By ===== ===== Referenced By =====
  
-The wiki Backlinks function provides the current list of pages that reference ''FR-MC-002''+The following pages reference this requirement:
- +
-Incoming [[dido:99_annexes:annex-b-terms-and-definitions:t:traceability|Traceability]] should be derived dynamically from backlinks rather than maintained as a duplicate manual list. +
- +
-Backlinks identify incoming references but do not define the semantics of each relationship. Referencing pages should identify whether the relationship represents realization, refinement, verification, dependency, or another defined traceability relationship. +
- +
-===== ConOps Relationship ===== +
- +
-The Crucible Concept of Operations permits provider-specific realization while preserving provider-independent deployment intent. +
- +
-FR-MC-002 establishes the extension boundary through which Crucible loads a Provider Plugin that conforms to the applicable Provider Contract. +
- +
-The Provider Abstraction defines the provider-independent architectural boundary, while the Provider Plugin implements provider-specific behavior for a particular Provider or class of Providers. +
- +
-===== Delivery Phase =====+
  
-Phase 1+{{backlinks>.#dido:02-crusible}}
  
 ===== Implementation Status ===== ===== Implementation Status =====
  
-Not Assessed +Implemented and Verified
- +
-Implementation status requires verification that [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] loads a [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_plugin|Provider Plugin]] that conforms to the applicable [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_contract|Provider Contract]].+
  
 ===== Requirement Status ===== ===== Requirement Status =====
  
-Draft +<todo>Review and approve FR-MC-002 as a leaf requirement.</todo>
- +
-The source System Requirements Specification identifies Version 1.1 as a draft.+
  
 ---- ----
-===== Notes for Editors =====+===== Issues =====
  
-This requirement page should retain the stable requirement identifier ''FR-MC-002''.+<todo>Determine whether separate requirements govern Provider Plugin discovery, installation, loading, and activation.</todo>
  
-Changes to the Statement SHALL preserve the approved intent of the source requirement.+<todo>Determine whether separate requirements require Provider Plugins to conform to a Provider Contract.</todo>
  
-The Source Statement should preserve the original wording from the controlling System Requirements Specification.+---- 
 +===== Notes for Editors =====
  
-The source explicitly requires plugins. Changes should not generalize the extension mechanism without a corresponding change to the controlling requirement.+This requirement page retains the stable requirement identifier ''FR-MC-002''.
  
-The Statement should remain limited to loading Provider Plugin that conforms to the applicable Provider Contract.+This page is leaf requirement page and omits a trailing '':start'' from its namespace.
  
-Requirements for Provider Plugin discovery, installation, activation, version compatibility, isolation, signing, substitution, and removal should remain separate unless added by the controlling source.+The Statement preserves the source-required use of plugins for provider-specific extensions.
  
-Verification criteria should test only the behavior stated in the normalized Statement and should not introduce additional normative obligations.+Do not generalize the extension mechanism beyond Provider Plugins without a corresponding change to the controlling requirement.
  
-Incoming Traceability should use the wiki Backlinks function rather than a manually maintained list.+Do not add Provider Plugin discovery, installation, loading, activation, Provider Contract conformance, version compatibility, isolation, signing, substitution, or removal obligations unless the controlling requirement changes through an approved requirements process.
  
 To reference this requirement Statement from another wiki page, insert: To reference this requirement Statement from another wiki page, insert:
Line 190: Line 120:
 {{section>dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-04-multi-cloud-management:fr-mc-002#Statement&noheader&nofooter&noeditbtn}} {{section>dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-04-multi-cloud-management:fr-mc-002#Statement&noheader&nofooter&noeditbtn}}
 </code> </code>
- 
-Do not rename this page after an external citation unless a redirect or move plan is in place. 
  
 ---- ----
  • dido/02-crusible/99-annexes/annex-c-requirements/03-functional-requirements/03-04-multi-cloud-management/fr-mc-002.1784388531.txt.gz
  • Last modified: 2026/07/18 08:28
  • by nick_dido