Differences
This shows you the differences between two versions of the page.
| 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_dido | dido: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: | + | [[dido: |
| - | ===== Source Statement | + | ===== Derived From ===== |
| - | > The system shall support provider-specific extensions through plugins. | + | This requirement derives from: |
| - | ===== Source ===== | + | * Crucible System Requirements Specification, |
| - | Crucible System Requirements Specification, | + | The Original Requirement states: |
| - | ===== Assessment ===== | + | > //The system shall support provider-specific extensions through plugins.// |
| - | The source statement identifies the intended extension mechanism but uses a weak primary verb. | + | FR-MC-002: |
| - | The following Specification Discipline | + | * Replaces **The system** with the defined system name [[dido: |
| + | * Changes **shall** to the established uppercase normative form **SHALL** | ||
| + | * Replaces the weak verb **support** with **provide** | ||
| + | * Uses the defined [[dido: | ||
| + | * Preserves plugins as the source-required extension mechanism | ||
| - | * **The system** does not use the defined system name | + | No other substantive normalization |
| - | * **shall** does not follow the established uppercase normative convention | + | |
| - | * **Support** | + | |
| - | * **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: | + | Providers expose capabilities, |
| - | * 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 ===== | + | |
| - | A cloud provider | + | A [[dido: |
| - | A provider-specific | + | Provider-specific |
| - | * Resource-type mappings | + | * Provider resource types |
| - | * Provider | + | * Provider |
| - | * 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 | + | 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: | ||
| + | * Version compatibility | ||
| + | * Plugin isolation | ||
| + | * Plugin signing | ||
| + | * Plugin substitution | ||
| + | * Plugin removal | ||
| + | * A programming language or packaging format | ||
| - | * Platform-independent Crucible behavior | + | Separate requirements, |
| - | * Common deployment intent | + | |
| - | * Provider-specific deployment behavior | + | |
| - | * Provider-specific parameters | + | |
| ===== Applies To ===== | ===== Applies To ===== | ||
| Line 70: | Line 68: | ||
| * [[dido: | * [[dido: | ||
| - | * Provider-specific | + | * Provider-specific |
| - | * Provider contracts | + | * [[dido: |
| - | * Provider-specific deployment behavior | + | * Provider-specific behavior |
| - | * Provider-specific parameters | + | |
| - | * [[dido: | + | |
| - | * Cloud providers | + | |
| - | * Deployment workflows | + | |
| ===== Verification ===== | ===== Verification ===== | ||
| - | - Verification | + | Verification |
| - | - Verification SHALL confirm that [[dido:99_annexes: | + | |
| - | - 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: | + | |
| - | + | - The tested provider-specific behavior | |
| - | * Plugin-loading tests | + | |
| - | * Provider-contract tests | + | - The observed behavior demonstrates a provider-specific extension supplied through the Provider |
| - | * Provider implementation tests | + | |
| - | * Interface conformance inspection | + | |
| - | * Static dependency analysis | + | |
| - | * Provider deployment tests | + | |
| - | * Plugin replacement tests | + | |
| - | + | ||
| - | The verification record SHALL identify: | + | |
| - | + | ||
| - | - The tested | + | |
| - | - The applicable provider | + | |
| - | - The applicable provider contract | + | |
| - | - The provider-specific behavior | + | |
| - | - The plugin conformance result | + | |
| - | - The deployment result | + | |
| - | - The generated | + | |
| - | + | ||
| - | ===== Outgoing Traceability ===== | + | |
| - | + | ||
| - | This requirement realizes: | + | |
| - | + | ||
| - | | + | |
| - | * [[dido: | + | |
| - | + | ||
| - | This requirement relates | + | |
| - | + | ||
| - | | + | |
| - | * [[dido: | + | |
| - | * [[dido: | + | |
| ===== Referenced By ===== | ===== Referenced By ===== | ||
| - | The wiki Backlinks function provides the current list of pages that reference | + | The following |
| - | Incoming Traceability should be derived dynamically from backlinks. | + | {{backlinks>.# |
| - | ===== 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 ===== | + | < |
| - | Phase 1 | + | ---- |
| + | ===== Issues ===== | ||
| - | ===== Implementation Status ===== | + | < |
| - | + | ||
| - | Not Assessed | + | |
| - | + | ||
| - | ===== Requirement Status ===== | + | |
| - | Draft | + | < |
| ---- | ---- | ||
| ===== Notes for Editors ===== | ===== Notes for Editors ===== | ||
| - | This requirement page should retain | + | This requirement page retains |
| - | The source explicitly requires plugins. Changes should not generalize the extension mechanism without | + | This page is a leaf requirement |
| - | Requirements | + | The Statement preserves the source-required use of plugins |
| + | |||
| + | Do not generalize the extension mechanism beyond Provider Plugins without a corresponding change to the controlling requirement. | ||
| + | |||
| + | Do not add Provider Plugin | ||
| 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> | {{section> | ||
| </ | </ | ||
| - | |||
| - | Do not rename this page after an external citation unless a redirect or move plan is in place. | ||
| ---- | ---- | ||