docs(libs): refresh stale adoption-status text in hosted library docs (scadaproj#17)
Verified 2026-11-09 against each app's origin default branch pins (OtOpcUa origin/master c904472a, mxaccessgw origin/main de86f8b8, ScadaBridge origin/main 7153a197, HistorianGateway origin/main 4d6a9ad) and the Gitea NuGet feed: - Audit README: consumer matrix no longer says "adoption deferred" (all four apps pin 0.1.0, DEEP-adopted 2026-06-02; HistorianGateway row added); dead ~/Desktop/scadaproj-audit paths fixed. - Configuration CLAUDE.md: drop "not yet pushed to remotes"; all four pin 0.1.0. - Telemetry README/CLAUDE.md: all four apps call AddZbTelemetry and pin 0.1.0; HistorianGateway added to the consumer matrix. - Secrets CLAUDE.md: lead now says family 0.6.3 on the feed, all four apps pin 0.6.2, none pins 0.6.3 or Replicator.Grpc. Claude-Session: https://claude.ai/code/session_01GT67AEHd2Acv1YPwGfXEoV
This commit is contained in:
@@ -16,11 +16,15 @@ Canonical audit event model, best-effort writer seam, and redactor seam for the
|
||||
|
||||
| Consumer | ZB.MOM.WW.Audit |
|
||||
|---|:---:|
|
||||
| **OtOpcUa** | yes (adoption deferred; stale → #17) |
|
||||
| **MxAccessGateway** | yes (adoption deferred; stale → #17) |
|
||||
| **ScadaBridge** | yes (adoption deferred — "align, don't replace"; stale → #17) |
|
||||
| **OtOpcUa** | yes — DEEP-adopted 2026-06-02 (canonical record + `AuditWriterActor : IAuditWriter`), pins `0.1.0` |
|
||||
| **MxAccessGateway** | yes — DEEP-adopted 2026-06-02 (canonical SQLite `audit_event` store + `IAuditWriter`), pins `0.1.0` |
|
||||
| **ScadaBridge** | yes — DEEP-adopted 2026-06-02 (audit-subsystem re-architecture onto the canonical record), pins `0.1.0` |
|
||||
| **HistorianGateway** | yes — `AddZbAudit` + `IAuditWriter`, pins `0.1.0` |
|
||||
|
||||
Adoption is tracked in `components/audit/GAPS.md` in the outer `scadaproj` workspace. Each app brings its own transport (Akka broadcast / SQLite append / SQL ingest) and domain vocabulary (channels / kinds / event-types) — those stay per-project. The shared library provides the canonical record and the two seams that decouple "what to audit" from "how to store it".
|
||||
All four apps pin `0.1.0` (the only version on the Gitea feed), verified against each repo's origin default
|
||||
branch 2026-11-09. The 2026-06-02 adoption was merged and pushed on 2026-06-03.
|
||||
|
||||
Adoption history is in `components/audit/GAPS.md` in the outer `scadaproj` workspace. Each app brings its own transport (Akka broadcast / SQLite append / SQL ingest) and domain vocabulary (channels / kinds / event-types) — those stay per-project. The shared library provides the canonical record and the two seams that decouple "what to audit" from "how to store it".
|
||||
|
||||
---
|
||||
|
||||
@@ -53,7 +57,7 @@ dotnet test ZB.MOM.WW.Audit.slnx
|
||||
|
||||
Full design docs live in the `components/audit` folder of the SCADA project workspace:
|
||||
|
||||
- `~/Desktop/scadaproj-audit/components/audit/spec/SPEC.md` — overall audit specification
|
||||
- `~/Desktop/scadaproj-audit/components/audit/spec/EVENT-MODEL.md` — field-by-field event model + per-project mapping table
|
||||
- `~/Desktop/scadaproj-audit/components/audit/shared-contract/ZB.MOM.WW.Audit.md` — public API contract (on paper)
|
||||
- `~/Desktop/scadaproj-audit/components/audit/GAPS.md` — adoption backlog
|
||||
- `~/Desktop/scadaproj/components/audit/spec/SPEC.md` — overall audit specification
|
||||
- `~/Desktop/scadaproj/components/audit/spec/EVENT-MODEL.md` — field-by-field event model + per-project mapping table
|
||||
- `~/Desktop/scadaproj/components/audit/shared-contract/ZB.MOM.WW.Audit.md` — public API contract (on paper)
|
||||
- `~/Desktop/scadaproj/components/audit/GAPS.md` — adoption backlog
|
||||
|
||||
@@ -4,7 +4,7 @@ Startup configuration-validation library for the **ZB.MOM.WW SCADA family** (OtO
|
||||
|
||||
The library normalizes the three-project configuration-validation surface: a failure-accumulating `IValidateOptions` base, reusable rule primitives, a bind+validate+`ValidateOnStart` DI extension, and a pre-host `ConfigPreflight` aggregator for raw `IConfiguration` — so the plumbing is written once and domain rules stay per-project.
|
||||
|
||||
**Built at 0.1.0. Adopted by OtOpcUa, MxAccessGateway, and ScadaBridge on 2026-06-01** (local default branches; not yet pushed to remotes — stale → #17). Adoption tracked in `~/Desktop/scadaproj/components/configuration/GAPS.md`.
|
||||
**Built at 0.1.0. Adopted by OtOpcUa, MxAccessGateway, and ScadaBridge on 2026-06-01, and by HistorianGateway since;** all four pin `0.1.0` (the only feed version) on their pushed origin default branches (verified 2026-11-09). Adoption tracked in `~/Desktop/scadaproj/components/configuration/GAPS.md`.
|
||||
|
||||
---
|
||||
|
||||
@@ -66,7 +66,7 @@ ZB.MOM.WW.Configuration/
|
||||
|
||||
## Status
|
||||
|
||||
Part of the **scadaproj component-normalization family** — this is the configuration + validation component. Built at **0.1.0**. **Adopted by OtOpcUa, MxAccessGateway, and ScadaBridge on 2026-06-01** (local default branches; not yet pushed to remotes — stale → #17) — per-app result is tracked in:
|
||||
Part of the **scadaproj component-normalization family** — this is the configuration + validation component. Built at **0.1.0**. **Adopted by OtOpcUa, MxAccessGateway, and ScadaBridge on 2026-06-01** (since pushed; HistorianGateway also pins `0.1.0` — all four verified on their origin default branches 2026-11-09) — per-app result is tracked in:
|
||||
|
||||
- `~/Desktop/scadaproj/components/configuration/GAPS.md`
|
||||
|
||||
@@ -97,7 +97,8 @@ The shared library is **built and lives in this repo** at [`ZB.MOM.WW.Configurat
|
||||
The implementation plan is at
|
||||
[`docs/plans/2026-06-01-zb-mom-ww-configuration-shared-library.md`](docs/plans/2026-06-01-zb-mom-ww-configuration-shared-library.md).
|
||||
**Adopted across all three apps on 2026-06-01** (OtOpcUa, MxAccessGateway, ScadaBridge) on each repo's
|
||||
local default branch (`main`/`master`) — merged, **not yet pushed** to remotes (stale → #17); the package was first
|
||||
local default branch (`main`/`master`) — merged, and since pushed to origin (the "not yet pushed" caveat this
|
||||
record carried is stale; all four apps, HistorianGateway included, pin `0.1.0` on their origin default branches as of 2026-11-09); the package was first
|
||||
published to the Gitea feed. Behaviour-preserving onto `OptionsValidatorBase`/`AddValidatedOptions`
|
||||
for MxGateway + ScadaBridge (validator messages byte-identical), `StartupValidator` → `ConfigPreflight`
|
||||
for ScadaBridge, and net-new `Ldap`/`OpcUa` validators for OtOpcUa. Per-app result tracked in
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -2,7 +2,7 @@
|
||||
|
||||
Observability libraries for the **ZB.MOM.WW SCADA family** (OtOpcUa, MxAccessGateway, ScadaBridge). These are **libraries, not a service** — each package is linked directly into the consuming application at build time. There is no central telemetry process; instrumentation runs in-process alongside the application.
|
||||
|
||||
**Backlog / open work:** lives in Gitea issues on `dohertj2/scadaproj` (`tea issues list --repo dohertj2/scadaproj`) — currently #13 (OTel collector / OTLP end to end), #17 (stale README text). The history below is a record, not a status tracker; file new follow-ups as issues.
|
||||
**Backlog / open work:** lives in Gitea issues on `dohertj2/scadaproj` (`tea issues list --repo dohertj2/scadaproj`) — currently #13 (OTel collector / OTLP end to end). The history below is a record, not a status tracker; file new follow-ups as issues.
|
||||
|
||||
The library normalizes the three-project observability surface: a shared OpenTelemetry Resource driven by a single identity triple (`service.name` / `site.id` / `node.role`), standard instrumentation wiring, Prometheus and OTLP export, and a Serilog bootstrap with enrichers and `TraceContextEnricher` for trace↔log correlation.
|
||||
|
||||
@@ -26,8 +26,9 @@ The library normalizes the three-project observability surface: a shared OpenTel
|
||||
| **OtOpcUa** | ✅ adopted | ✅ adopted (`AddZbSerilog`) |
|
||||
| **MxAccessGateway** | ✅ adopted (`GatewayMetrics` exported) | ✅ adopted (MEL→Serilog migrated in this pass) |
|
||||
| **ScadaBridge** | ✅ adopted (both roots) | ⚠️ referenced for `TraceContextEnricher` only — keeps `LoggerConfigurationFactory`, does **not** call `AddZbSerilog` |
|
||||
| **HistorianGateway** | ✅ adopted | ✅ adopted (`AddZbSerilog`) |
|
||||
|
||||
All three adopted on 2026-06-01 (branch `feat/adopt-zb-telemetry` per repo). ScadaBridge's logging
|
||||
All three adopted on 2026-06-01 (branch `feat/adopt-zb-telemetry` per repo); HistorianGateway adopted since. All four pin both packages at `0.1.0` on their origin default branches (verified 2026-11-09). ScadaBridge's logging
|
||||
deviates: it keeps its own `LoggerConfigurationFactory` (min-level governance contract) and only
|
||||
adds the shared `TraceContextEnricher`. See `components/observability/GAPS.md` for the full result.
|
||||
|
||||
|
||||
@@ -170,9 +170,12 @@ lockstep from `Directory.Build.props`.
|
||||
|
||||
## Status
|
||||
|
||||
**Built at 0.1.0. MxAccessGateway logging adopted (MEL → Serilog migration, on its own branch).
|
||||
Broader OtOpcUa and ScadaBridge telemetry adoption deferred.** (stale → #17) Adoption is tracked in the
|
||||
component backlog:
|
||||
**`0.1.0` is on the Gitea feed and adopted by all four apps** (OtOpcUa, MxAccessGateway, ScadaBridge,
|
||||
HistorianGateway): each pins `ZB.MOM.WW.Telemetry` + `ZB.MOM.WW.Telemetry.Serilog` `0.1.0` and calls
|
||||
`AddZbTelemetry`; all but ScadaBridge call `AddZbSerilog` (ScadaBridge keeps its own
|
||||
`LoggerConfigurationFactory` and adds only `TraceContextEnricher`). Verified against each repo's origin default
|
||||
branch 2026-11-09. **`0.2.0`** (the `AddZbSerilog` minimum-level governance hook, scadaproj#12) is built here but
|
||||
**not published**. Adoption history is in the component backlog:
|
||||
|
||||
- `~/Desktop/scadaproj/components/observability/GAPS.md`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user