docs(index): record ZB.MOM.WW.Overview — the hosted family dashboard, now deployed to wonder
This repo hosts one application besides its shared libraries, and the index did not mention it at all. Adds what it is, that its registry ships empty by design, and the two constraints that bit during the first real deployment: publish self-contained (wonder has no .NET 10 runtime), and do not put co-located instances on a shared host name, because leader-to-instance resolution matches on host only and the first match wins the chip for every group.
This commit is contained in:
@@ -304,6 +304,36 @@ by the shared lib (the `galaxy_repository.v1` wire contract is already identical
|
||||
clients are unaffected). Build/test from `ZB.MOM.WW.GalaxyRepository/`: `dotnet test`.
|
||||
Consumer matrix: HistorianGateway (initial); mxaccessgw (follow-on adoption).
|
||||
|
||||
## Hosted application: ZB.MOM.WW.Overview (family dashboard)
|
||||
|
||||
Besides the shared libraries, this repo hosts one **application**:
|
||||
[`ZB.MOM.WW.Overview/`](ZB.MOM.WW.Overview/) — a Blazor Server single-pane dashboard that polls
|
||||
every registered instance's anonymous `/health/ready` + `/health/active`, caches one snapshot
|
||||
(pages never poll) and renders per-cluster state including the Akka **leader chip**, which is what
|
||||
the `ZB.MOM.WW.Health` `0.2.0`/`0.3.0` per-entry `data` work exists to feed. **No login, strictly
|
||||
read-only, holds no credentials** — a requirement, not an omission; it references no Auth/Audit/
|
||||
Secrets package. Design + impl plan: `docs/plans/2026-07-22-overview-dashboard-{design,impl-plan}.md`
|
||||
(ledger 19/20; the open task is Phase 4 live acceptance, recorded in `41013dc` as 7 of 9 design §9
|
||||
checks passing, 2 blocked on an OtOpcUa rig redeploy).
|
||||
|
||||
The `Applications` registry ships **empty** on purpose: a deployment supplying none fails startup
|
||||
naming the key rather than booting an empty dashboard. Per-deployment overlays are committed —
|
||||
`appsettings.Docker.json` (the local rigs, joined via external networks) and
|
||||
`appsettings.Wonder.json`.
|
||||
|
||||
**Deployed to `wonder-app-vd03` 2026-08-11** (`main @ 4f97e72`) as that box's **fifth** app:
|
||||
service `ZbOverview` on **:5320** under the shared NSSM, `ASPNETCORE_ENVIRONMENT=Wonder`,
|
||||
5/5 instances Up. Two constraints worth carrying to any future box:
|
||||
|
||||
- **Publish self-contained** (`-r win-x64 --self-contained true`). wonder has **no .NET 10 runtime**
|
||||
— every app there carries its own. An FDD publish installs fine and then fails at service start.
|
||||
- **Registry `BaseUrl` must not put co-located instances on a shared host name.** Leader-address →
|
||||
instance resolution matches on **host only** (Akka and HTTP ports differ by design), which assumes
|
||||
distinct hosts per instance — true on the rig, false on a single box, where the fleet-wide scan
|
||||
lets the first matching entry win the chip for *every* group. On wonder that made ScadaBridge's
|
||||
**site** card claim `Leader · central`, a different Akka cluster. Fixed by using `127.0.0.1`,
|
||||
which matches nothing, so each chip falls back to the raw Akka address.
|
||||
|
||||
## Per-project primary commands
|
||||
|
||||
Run these from inside each project directory (not from `scadaproj`).
|
||||
@@ -339,6 +369,13 @@ dotnet test ZB.MOM.WW.HistorianGateway.slnx --filter "Category=LiveIntegration"
|
||||
dotnet publish src/ZB.MOM.WW.HistorianGateway.Server/ZB.MOM.WW.HistorianGateway.Server.csproj -c Release -o docker/publish -p:UseAppHost=false
|
||||
cd docker && docker compose up -d --build # dashboard/health/metrics :5220, gRPC h2c :5221 (needs host VPN for egress)
|
||||
|
||||
# ZB.MOM.WW.Overview (~/Desktop/scadaproj/ZB.MOM.WW.Overview — the hosted family dashboard)
|
||||
dotnet build ZB.MOM.WW.Overview.slnx
|
||||
dotnet test ZB.MOM.WW.Overview.slnx # 177 tests, fully offline
|
||||
cd docker && docker compose up -d --build # local rigs → http://localhost:5320 (start the rigs first)
|
||||
# wonder deploy artifact — SELF-CONTAINED, the box has no .NET 10 runtime:
|
||||
dotnet publish src/ZB.MOM.WW.Overview/ZB.MOM.WW.Overview.csproj -c Release -r win-x64 --self-contained true -o <out>
|
||||
|
||||
# ZB.MOM.WW.LocalDb (~/Desktop/scadaproj/ZB.MOM.WW.LocalDb — a hosted shared lib)
|
||||
dotnet build ZB.MOM.WW.LocalDb.slnx
|
||||
dotnet test ZB.MOM.WW.LocalDb.slnx # 149 tests, fully offline (no live deps)
|
||||
|
||||
Reference in New Issue
Block a user