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

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/17 10:23] – created 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 provider-specific deployment behavior through a plugin that conforms to the applicable 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 uses a weak primary verb.+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** 
 +  * Replaces the weak verb **support** with **provide** 
 +  * Uses the defined [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_plugin|Provider Plugin]] concept 
 +  * Preserves plugins as the source-required extension mechanism
  
-  * **The system** does not use the defined system name +No other substantive normalization is required.
-  * **shall** does not follow the established uppercase normative convention +
-  * **Support** is a weak verb +
-  * **Provider-specific extensions** does not identify the behavior supplied by the extension +
-  * **Plugins** identifies the extension form but does not identify the contract governing the plugin +
-  * The source statement does not prescribe a programming language, packaging format, loading mechanism, provider, or plugin implementation+
  
-The normalized Statement:+===== Rationale =====
  
-  * Replaces **The system** with [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] +Providers expose capabilities, interfaces, parameters, and lifecycle operations that differ from those exposed by other Providers.
-  * Replaces **support** with the direct behavior **load** +
-  * Identifies provider-specific deployment behavior +
-  * Retains the required plugin mechanism +
-  * Requires conformance to the applicable provider contract +
-  * Preserves implementation independence outside the source-mandated plugin constraint +
- +
-The term **Plugin** and the project-specific concept **Provider Contract** should receive glossary definitions if they recur elsewhere. +
- +
-===== Rationale =====+
  
-cloud provider may expose capabilities or parameters that do not have a common representation across all providers.+[[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.
  
-A provider-specific plugin may implement:+Provider-specific extensions can address:
  
-  * Resource-type mappings +  * Provider resource types 
-  * Provider API 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
 +  * Provider-specific deployment operations
   * Provider-specific validation   * Provider-specific validation
   * Provider-specific error handling   * Provider-specific error handling
  
-The provider contract defines the behavior and information exchange required between Crucible and the plugin.+This requirement establishes Provider Plugins as the extension mechanism without prescribing:
  
-Provider-specific plugins preserve separation between:+  * 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
  
-  * Platform-independent Crucible behavior +Separate requirements, architecture specifications, or interface definitions govern those subjects.
-  * Common deployment intent +
-  * Provider-specific deployment behavior +
-  * Provider-specific parameters+
  
 ===== Applies To ===== ===== Applies To =====
Line 70: 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 plugins +  * Provider-specific extensions 
-  * Provider contracts +  * [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_plugin|Provider Plugins]] 
-  * Provider-specific deployment behavior +  * Provider-specific behavior
-  * Provider-specific parameters +
-  * [[dido:99_annexes:annex-b-terms-and-definitions:p:provider_implementation|Provider Implementations]] +
-  * Cloud providers +
-  * Deployment workflows+
  
 ===== Verification ===== ===== Verification =====
  
-  - Verification SHALL confirm that the tested provider-specific deployment behavior resides in a plugin +Verification confirms that:
-  - Verification SHALL confirm that [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] loads the tested plugin +
-  - Verification SHALL confirm that the tested plugin conforms to the applicable provider contract +
-  - Verification SHALL confirm that Crucible invokes the provider-specific deployment behavior through the applicable provider contract +
-  - Verification SHALL confirm that provider-specific behavior does not require modification of unrelated provider-independent Crucible components+
  
-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]] 
-  * 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 tests +  - The observed behavior demonstrates a provider-specific extension supplied through the Provider Plugin
-  * Provider implementation tests +
-  * Interface conformance inspection +
-  * Static dependency analysis +
-  * Provider deployment tests +
-  * Plugin replacement tests +
- +
-The verification record SHALL identify: +
- +
-  - The tested plugin +
-  - The applicable provider +
-  - The applicable provider contract +
-  - The provider-specific behavior +
-  - The plugin conformance result +
-  - The deployment 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 Traceability should be derived dynamically from backlinks.+{{backlinks>.#dido:02-crusible}}
  
-===== ConOps Relationship =====+===== Implementation Status =====
  
-The Crucible Concept of Operations permits provider-specific realization while preserving common deployment intent.+Implemented and Verified
  
-FR-MC-002 establishes the plugin boundary through which Crucible loads provider-specific deployment behavior.+===== Requirement Status =====
  
-===== Delivery Phase =====+<todo>Review and approve FR-MC-002 as a leaf requirement.</todo>
  
-Phase 1+---- 
 +===== Issues =====
  
-===== Implementation Status ===== +<todo>Determine whether separate requirements govern Provider Plugin discovery, installation, loading, and activation.</todo>
- +
-Not Assessed +
- +
-===== Requirement Status =====+
  
-Draft+<todo>Determine whether separate requirements require Provider Plugins to conform to a Provider Contract.</todo>
  
 ---- ----
 ===== Notes for Editors ===== ===== Notes for Editors =====
  
-This requirement page should retain the stable requirement identifier ''FR-MC-002''.+This requirement page retains the stable requirement identifier ''FR-MC-002''.
  
-The source explicitly requires plugins. Changes should not generalize the extension mechanism without corresponding change to the controlling requirement.+This page is leaf requirement page and omits a trailing '':start'' from its namespace.
  
-Requirements for plugin discovery, installation, activation, version compatibility, isolation, signing, and removal should remain separate unless added by the controlling source.+The Statement preserves the source-required use of plugins for provider-specific extensions. 
 + 
 +Do not generalize the extension mechanism beyond Provider Plugins without a corresponding change to the controlling requirement. 
 + 
 +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 157: 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.1784309015.txt.gz
  • Last modified: 2026/07/17 10:23
  • by nick_dido