====== FR-UI-001 — Shared Interface Operations ======
[[dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-11-management-interfaces:start|Go to C.3.11 Crucible Interfaces]]
===== Statement =====
[[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] SHALL expose the same operations through its [[dido:99_annexes:annex-b-terms-and-definitions:c:cli|Command-Line Interface (CLI)]] and [[dido:99_annexes:annex-b-terms-and-definitions:w:web_ui|Web-Based User Interface (Web UI)]].
===== Derived From =====
This requirement derives from:
* Crucible System Requirements Specification, Version 1.1 Draft, Functional Requirements, FR-UI-002
The Original Requirement requires the web-based interface to use the same engine and command-line capabilities as the primary command-line interface.[[dido:02-crusible:99-annexes:annex-b:cr-001|[C1]]]
FR-UI-001:
* Replaces the combined implementation and interface wording with an externally observable requirement for shared operations
* Identifies [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] as the required system
* Identifies the [[dido:99_annexes:annex-b-terms-and-definitions:c:cli|Command-Line Interface (CLI)]] and [[dido:99_annexes:annex-b-terms-and-definitions:w:web_ui|Web-Based User Interface (Web UI)]] as the interface paths
* Separates shared interface behavior from the requirements to provide each interface
* Avoids requiring duplicated implementations or a particular internal engine architecture
FR-UI-002 separately requires the Command-Line Interface.
FR-UI-003 separately requires the Web-Based User Interface.
===== Rationale =====
Exposing the same operations through the [[dido:99_annexes:annex-b-terms-and-definitions:c:cli|Command-Line Interface (CLI)]] and [[dido:99_annexes:annex-b-terms-and-definitions:w:web_ui|Web-Based User Interface (Web UI)]] provides consistent access to Crucible capabilities.
Shared interface operations allow users and automated processes to select an interface based on operational needs without receiving materially different Crucible capabilities solely because of the selected interface.
The Command-Line Interface supports textual invocation by people, scripts, [[dido:99_annexes:annex-b-terms-and-definitions:w:workflow|Workflows]], and [[dido:99_annexes:annex-b-terms-and-definitions:c:ci_cd_pipeline|CI/CD Pipelines]].
The Web-Based User Interface supports browser-based interaction by a person.
This requirement establishes parity between the operations exposed through the two interfaces without prescribing:
* A particular internal engine
* A particular software architecture
* Identical interface presentation
* Identical input syntax
* Identical output formatting
* Identical interaction sequences
* Identical authentication mechanisms
* Identical implementation code
* Duplication of operation implementations
* The interface through which an operation must be invoked
Separate requirements, architecture specifications, interface specifications, and security requirements govern those subjects.
===== Applies To =====
This requirement applies to:
* [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]]
* [[dido:99_annexes:annex-b-terms-and-definitions:c:cli|Command-Line Interface (CLI)]]
* [[dido:99_annexes:annex-b-terms-and-definitions:w:web_ui|Web-Based User Interface (Web UI)]]
* Crucible operations exposed through either interface
===== Verification =====
Verification confirms that:
- The operations exposed through the [[dido:99_annexes:annex-b-terms-and-definitions:c:cli|Command-Line Interface (CLI)]] are identified
- The operations exposed through the [[dido:99_annexes:annex-b-terms-and-definitions:w:web_ui|Web-Based User Interface (Web UI)]] are identified
- Each operation exposed through the Command-Line Interface has a corresponding operation exposed through the Web-Based User Interface
- Each operation exposed through the Web-Based User Interface has a corresponding operation exposed through the Command-Line Interface
- Corresponding operations produce functionally equivalent results when supplied with equivalent inputs
- Differences in presentation, syntax, formatting, or interaction do not change the operation performed
===== Referenced By =====
The following pages reference this requirement:
{{backlinks>.#dido:02-crusible}}
===== Implementation Status =====
Implemented and Verified
===== Requirement Status =====
Review and approve FR-UI-001 as a leaf requirement.
----
===== Issues =====
Confirm whether the controlling source requires complete operational parity or permits interface-specific operations.
Confirm whether the controlling source requires a shared internal engine in addition to shared externally observable operations.
Determine whether security, administrative, or diagnostic operations can be restricted to one interface.
----
===== Notes for Editors =====
This requirement page retains the stable requirement identifier ''FR-UI-001''.
This page is a leaf requirement page and omits a trailing '':start'' from its namespace.
The Statement uses the following controlling Terms and Definitions entries:
* [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]]
* [[dido:99_annexes:annex-b-terms-and-definitions:c:cli|Command-Line Interface (CLI)]]
* [[dido:99_annexes:annex-b-terms-and-definitions:w:web_ui|Web-Based User Interface (Web UI)]]
The Statement specifies externally observable operational parity between the Command-Line Interface and Web-Based User Interface.
The Statement does not require the two interfaces to:
* Present operations in the same manner
* Accept identical syntax
* Produce identically formatted output
* Use identical interaction sequences
* Contain duplicate implementations
FR-UI-002 governs provision of the Command-Line Interface.
FR-UI-003 governs provision of the Web-Based User Interface.
Do not replace the externally observable parity requirement with a specific internal engine architecture unless the controlling source explicitly requires that architecture.
To reference this requirement Statement from another wiki page, insert:
{{section>dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-11-crucible-interfaces:fr-ui-001#Statement&noheader&nofooter&noeditbtn}}
----
© 2026 Dido Solutions, Inc. and Jackrabbit Consulting, Inc.