docs: register ZB.MOM.WW.Configuration in indexes
This commit is contained in:
@@ -6,11 +6,12 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|||||||
|
|
||||||
`scadaproj` is primarily an umbrella/index workspace that aggregates a family of
|
`scadaproj` is primarily an umbrella/index workspace that aggregates a family of
|
||||||
related SCADA / OT / Wonderware / OPC UA "sister projects" that live as **sibling
|
related SCADA / OT / Wonderware / OPC UA "sister projects" that live as **sibling
|
||||||
directories under `~/Desktop/`**. It now also **hosts four pieces of source itself** —
|
directories under `~/Desktop/`**. It now also **hosts five pieces of source itself** —
|
||||||
the shared [`ZB.MOM.WW.Auth/`](ZB.MOM.WW.Auth/) library, the shared
|
the shared [`ZB.MOM.WW.Auth/`](ZB.MOM.WW.Auth/) library, the shared
|
||||||
[`ZB.MOM.WW.Theme/`](ZB.MOM.WW.Theme/) UI kit, the shared
|
[`ZB.MOM.WW.Theme/`](ZB.MOM.WW.Theme/) UI kit, the shared
|
||||||
[`ZB.MOM.WW.Health/`](ZB.MOM.WW.Health/) health-check library, and the shared
|
[`ZB.MOM.WW.Health/`](ZB.MOM.WW.Health/) health-check library, the shared
|
||||||
[`ZB.MOM.WW.Telemetry/`](ZB.MOM.WW.Telemetry/) observability library — all the realized output of their
|
[`ZB.MOM.WW.Telemetry/`](ZB.MOM.WW.Telemetry/) observability library, and the shared
|
||||||
|
[`ZB.MOM.WW.Configuration/`](ZB.MOM.WW.Configuration/) config-validation library — all the realized output of their
|
||||||
respective component normalizations (see [Component normalization](#component-normalization)).
|
respective component normalizations (see [Component normalization](#component-normalization)).
|
||||||
The point of this file is to give a high-level scan of each sister project — its purpose,
|
The point of this file is to give a high-level scan of each sister project — its purpose,
|
||||||
location, stack, and primary commands — so a fresh Claude Code session can orient across
|
location, stack, and primary commands — so a fresh Claude Code session can orient across
|
||||||
@@ -123,6 +124,7 @@ each project's **code-verified current state**, and the **gaps** between. See
|
|||||||
| UI Theme (layout / tokens / components) | Built (lib `0.1.0`) | Shared `ZB.MOM.WW.Theme` RCL | [`components/ui-theme/`](components/ui-theme/) | [`ZB.MOM.WW.Theme/`](ZB.MOM.WW.Theme/) |
|
| UI Theme (layout / tokens / components) | Built (lib `0.1.0`) | Shared `ZB.MOM.WW.Theme` RCL | [`components/ui-theme/`](components/ui-theme/) | [`ZB.MOM.WW.Theme/`](ZB.MOM.WW.Theme/) |
|
||||||
| Health (readiness / liveness / active-node) | Built (lib `0.1.0`) | Shared `ZB.MOM.WW.Health` lib | [`components/health/`](components/health/) | [`ZB.MOM.WW.Health/`](ZB.MOM.WW.Health/) |
|
| Health (readiness / liveness / active-node) | Built (lib `0.1.0`) | Shared `ZB.MOM.WW.Health` lib | [`components/health/`](components/health/) | [`ZB.MOM.WW.Health/`](ZB.MOM.WW.Health/) |
|
||||||
| Observability (metrics / traces / logs) | Built (lib `0.1.0`) | Shared `ZB.MOM.WW.Telemetry` lib + `.Serilog` | [`components/observability/`](components/observability/) | [`ZB.MOM.WW.Telemetry/`](ZB.MOM.WW.Telemetry/) |
|
| Observability (metrics / traces / logs) | Built (lib `0.1.0`) | Shared `ZB.MOM.WW.Telemetry` lib + `.Serilog` | [`components/observability/`](components/observability/) | [`ZB.MOM.WW.Telemetry/`](ZB.MOM.WW.Telemetry/) |
|
||||||
|
| Config + validation (options / startup validation) | Built (lib `0.1.0`) | Shared `ZB.MOM.WW.Configuration` lib | [`components/configuration/`](components/configuration/) | [`ZB.MOM.WW.Configuration/`](ZB.MOM.WW.Configuration/) |
|
||||||
| Audit (event model + writer seam) | Built (lib `0.1.0`) | Shared `ZB.MOM.WW.Audit` lib | [`components/audit/`](components/audit/) | [`ZB.MOM.WW.Audit/`](ZB.MOM.WW.Audit/) |
|
| Audit (event model + writer seam) | Built (lib `0.1.0`) | Shared `ZB.MOM.WW.Audit` lib | [`components/audit/`](components/audit/) | [`ZB.MOM.WW.Audit/`](ZB.MOM.WW.Audit/) |
|
||||||
|
|
||||||
The auth component is fully populated: a normalized [`spec`](components/auth/spec/SPEC.md), a
|
The auth component is fully populated: a normalized [`spec`](components/auth/spec/SPEC.md), a
|
||||||
@@ -187,6 +189,25 @@ follow-on, tracked in [`components/observability/GAPS.md`](components/observabil
|
|||||||
Build/test from `ZB.MOM.WW.Telemetry/`: `dotnet test`. Consumer matrix: all three apps consume both
|
Build/test from `ZB.MOM.WW.Telemetry/`: `dotnet test`. Consumer matrix: all three apps consume both
|
||||||
packages after adoption (OtOpcUa, MxGateway Server, ScadaBridge Host + any instrumented project).
|
packages after adoption (OtOpcUa, MxGateway Server, ScadaBridge Host + any instrumented project).
|
||||||
|
|
||||||
|
The configuration component is fully populated: a normalized [`spec`](components/configuration/spec/SPEC.md), a
|
||||||
|
[`shared-contract`](components/configuration/shared-contract/ZB.MOM.WW.Configuration.md), three
|
||||||
|
[`current-state`](components/configuration/current-state/) docs, and an adoption [`GAPS`](components/configuration/GAPS.md)
|
||||||
|
backlog. Shared = the `IValidateOptions<T>` failure-accumulation base (`OptionsValidatorBase<T>`) +
|
||||||
|
reusable rule primitives (`ValidationBuilder`: port / host:port / required / positive-duration / one-of /
|
||||||
|
min-count) + `AddValidatedOptions<TOptions,TValidator>()` (bind + validate + `ValidateOnStart`) + the
|
||||||
|
pre-host `ConfigPreflight` aggregator (generalizes ScadaBridge's `StartupValidator`, byte-compatible
|
||||||
|
message); left per-project = each app's options classes + domain rules, and OtOpcUa's runtime
|
||||||
|
draft/snapshot validation.
|
||||||
|
|
||||||
|
The shared library is **built and lives in this repo** at [`ZB.MOM.WW.Configuration/`](ZB.MOM.WW.Configuration/)
|
||||||
|
(.NET 10; single package `ZB.MOM.WW.Configuration`; 27 tests; `dotnet pack` → 1 nupkg @ 0.1.0).
|
||||||
|
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).
|
||||||
|
**Not yet adopted** by the three apps — that's the follow-on tracked in [`components/configuration/GAPS.md`](components/configuration/GAPS.md).
|
||||||
|
Build/test from `ZB.MOM.WW.Configuration/`: `dotnet test`. Consumer matrix: all three apps consume the
|
||||||
|
single package; ScadaBridge is the heaviest adopter (per-module validators + `StartupValidator` →
|
||||||
|
`ConfigPreflight`); OtOpcUa adoption is additive (it has no `IValidateOptions` usage today).
|
||||||
|
|
||||||
The audit component is fully populated: a normalized [`spec`](components/audit/spec/SPEC.md), an
|
The audit component is fully populated: a normalized [`spec`](components/audit/spec/SPEC.md), an
|
||||||
[`event-model`](components/audit/spec/EVENT-MODEL.md) reference, a
|
[`event-model`](components/audit/spec/EVENT-MODEL.md) reference, a
|
||||||
[`shared-contract`](components/audit/shared-contract/ZB.MOM.WW.Audit.md), three
|
[`shared-contract`](components/audit/shared-contract/ZB.MOM.WW.Audit.md), three
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ specs and analyses that *drive* changes made in the individual repos.
|
|||||||
| UI Theme (layout / tokens / components) | Draft | OtOpcUa, MxAccessGateway, ScadaBridge | Path to shared code (`ZB.MOM.WW.Theme`) | [`ui-theme/`](ui-theme/) |
|
| UI Theme (layout / tokens / components) | Draft | OtOpcUa, MxAccessGateway, ScadaBridge | Path to shared code (`ZB.MOM.WW.Theme`) | [`ui-theme/`](ui-theme/) |
|
||||||
| Health (readiness / liveness / active-node) | Draft | OtOpcUa, MxAccessGateway, ScadaBridge | Shared `ZB.MOM.WW.Health` lib (3 packages) | [`health/`](health/) |
|
| Health (readiness / liveness / active-node) | Draft | OtOpcUa, MxAccessGateway, ScadaBridge | Shared `ZB.MOM.WW.Health` lib (3 packages) | [`health/`](health/) |
|
||||||
| Observability (metrics / traces / logs) | Draft | OtOpcUa, MxAccessGateway, ScadaBridge | Shared `ZB.MOM.WW.Telemetry` lib (2 packages) | [`observability/`](observability/) |
|
| Observability (metrics / traces / logs) | Draft | OtOpcUa, MxAccessGateway, ScadaBridge | Shared `ZB.MOM.WW.Telemetry` lib (2 packages) | [`observability/`](observability/) |
|
||||||
|
| Config + validation (options / startup validation) | Draft | OtOpcUa, MxAccessGateway, ScadaBridge | Shared `ZB.MOM.WW.Configuration` lib (1 package) | [`configuration/`](configuration/) |
|
||||||
| Audit (event model + writer seam) | Draft | OtOpcUa, MxAccessGateway, ScadaBridge | Path to shared code (`ZB.MOM.WW.Audit`) | [`audit/`](audit/) |
|
| Audit (event model + writer seam) | Draft | OtOpcUa, MxAccessGateway, ScadaBridge | Path to shared code (`ZB.MOM.WW.Audit`) | [`audit/`](audit/) |
|
||||||
|
|
||||||
> Add a row when you start normalizing a new component. Status: `Draft` → `Reviewed` → `Adopting` → `Converged`.
|
> Add a row when you start normalizing a new component. Status: `Draft` → `Reviewed` → `Adopting` → `Converged`.
|
||||||
|
|||||||
+1
-2
@@ -77,8 +77,7 @@ cross-repo interop checks, distinct from the others.
|
|||||||
family is being delivered as `ZB.MOM.WW.Telemetry.Serilog` by the health/observability normalization
|
family is being delivered as `ZB.MOM.WW.Telemetry.Serilog` by the health/observability normalization
|
||||||
pass ([`components/health/`](components/health/)), not as a standalone `ZB.MOM.WW.Logging` lib —
|
pass ([`components/health/`](components/health/)), not as a standalone `ZB.MOM.WW.Logging` lib —
|
||||||
a separate Logging candidate is not expected.
|
a separate Logging candidate is not expected.
|
||||||
- **Config validation conventions:** all three use IOptions + `IValidateOptions` + `ValidateOnStart`;
|
- ~~**Config validation conventions:**~~ **Done** — `ZB.MOM.WW.Configuration` built @ 0.1.0 (1 package, 27 tests): `OptionsValidatorBase` + `ValidationBuilder` primitives + `AddValidatedOptions` (`ValidateOnStart`) + pre-host `ConfigPreflight` (generalizes ScadaBridge's `StartupValidator`). Design: [`components/configuration/`](components/configuration/); implementation: [`../ZB.MOM.WW.Configuration/`](../ZB.MOM.WW.Configuration/). Adoption tracked in [`components/configuration/GAPS.md`](components/configuration/GAPS.md).
|
||||||
a shared validation base + startup-validation helper is reusable and pairs with the Auth options pattern.
|
|
||||||
|
|
||||||
## Skip / defer
|
## Skip / defer
|
||||||
- **Result/error primitives** — trivially shareable but low-stakes and bikeshed-prone.
|
- **Result/error primitives** — trivially shareable but low-stakes and bikeshed-prone.
|
||||||
|
|||||||
Reference in New Issue
Block a user