docs(m4.4): clear stale deferred/no-op markers for shipped features (relay, bundle-import audit, M5 redaction, audit drill-in, Transport CLI, traceability)
- SiteCallAudit/ServiceCollectionExtensions.cs: drop "still deferred" note on relay; point to SiteCallAuditActor where it lives - Transport/Import/BundleImporter.cs: update "Only LoadAsync implemented" to reflect all three phases shipped - SiteRuntime/Scripts/AuditingDbCommand.cs: replace two M5-deferred redaction comments with accurate references to AuditLogOptions.PerTargetOverrides - SiteRuntime/Scripts/ScriptRuntimeContext.cs: replace "M5 will layer redaction" note with accurate description of shipped redactor - CentralUI/AuditLogPage.razor.cs: replace "Bundle C wires… no-op seam" with accurate description of HandleRowSelected implementation - docs/plans/2026-05-24-transport-design.md §13: update from "CLI Deferred / not built in v1" to reflect shipped BundleCommands.cs; update Open Questions entry - docs/plans/2026-05-24-transport.md: convert Out-of-Scope "Do NOT build CLI" reminder to a factual note that it shipped - docs/plans/2026-05-24-transport.md.tasks.json: flip all 30 tasks from pending → done (entire Transport feature shipped)
This commit is contained in:
@@ -332,21 +332,23 @@ Import flows through the **same audited repository methods** the UI and CLI use,
|
||||
|
||||
---
|
||||
|
||||
## 13. CLI (Deferred)
|
||||
## 13. CLI
|
||||
|
||||
The `ZB.MOM.WW.ScadaBridge.Transport` library is callable from both Razor pages and `ZB.MOM.WW.ScadaBridge.CLI`. CLI commands are **not** built in v1 but the design leaves a clean path:
|
||||
The `ZB.MOM.WW.ScadaBridge.Transport` library is callable from both Razor pages and `ZB.MOM.WW.ScadaBridge.CLI`. CLI commands are implemented in `BundleCommands.cs` under the `bundle` sub-command group (note: shipped as `bundle` rather than `transport` to match the script-facing vocabulary):
|
||||
|
||||
```
|
||||
scadabridge transport export \
|
||||
scadabridge bundle export \
|
||||
--templates Pump,Pump.WaterPump \
|
||||
--shared-scripts PumpUtils \
|
||||
--out bundle.scadabundle \
|
||||
--passphrase-file /run/secrets/p
|
||||
--passphrase mypassphrase
|
||||
|
||||
scadabridge transport import bundle.scadabundle \
|
||||
--passphrase-file /run/secrets/p \
|
||||
--on-conflict overwrite|skip|rename \
|
||||
--dry-run
|
||||
scadabridge bundle preview bundle.scadabundle \
|
||||
--passphrase mypassphrase
|
||||
|
||||
scadabridge bundle import bundle.scadabundle \
|
||||
--passphrase mypassphrase \
|
||||
--on-conflict overwrite|skip|rename
|
||||
```
|
||||
|
||||
Same auth model via the Management API.
|
||||
@@ -400,7 +402,7 @@ Same auth model via the Management API.
|
||||
- **Site-scoped artifact transport** (Instances, Areas, bindings, DataConnections). Requires a name-mapping subsystem (source-env-site → target-env-site). Deferred until concrete demand.
|
||||
- **Direct cluster-to-cluster pull** as an alternative to file handoff. Same `ZB.MOM.WW.ScadaBridge.Transport` library can back it; needs cross-env auth design.
|
||||
- **Bundle signing** with an asymmetric keypair (separate from passphrase encryption) for stronger non-repudiation. Manifest content hash is sufficient for v1 tamper detection.
|
||||
- **CLI commands** (`scadabridge transport export/import`). Shape pre-decided in §13; not built in v1.
|
||||
- **CLI commands** (`scadabridge bundle export/preview/import`). Shipped in `BundleCommands.cs`; see §13.
|
||||
- **Differential bundles** ("only what changed since last export"). YAGNI for v1.
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user