From 92246c97344c3701750dbacf6a031d4f312b315e Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Fri, 14 Aug 2026 12:39:14 -0400 Subject: [PATCH] =?UTF-8?q?docs(inventory):=20full=20QA=20=C2=A77.1=20refr?= =?UTF-8?q?esh=20for=20the=202026-08-14=20VQ04=20singleton=20clone=20?= =?UTF-8?q?=E2=80=94=2010-instance=20fleet,=20psbridge=20:6150=20+=20glaut?= =?UTF-8?q?h=20:3893=20port=20rows,=20VQ04=E2=86=92VQ03=20Galaxy/alarm=20d?= =?UTF-8?q?ependency;=20CLAUDE.md=20Overview=20note=20updated?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CLAUDE.md | 6 ++++-- deployment.md | 32 +++++++++++++++++++++++++------- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 64a63f3..1b979e3 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -337,8 +337,10 @@ service `ZbOverview` on **:5320** under the shared NSSM, `ASPNETCORE_ENVIRONMENT **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. -**A second instance runs on the QA box `wonder-app-vq03:5320`** (observed live 2026-08-13, watching -**8 instances across 4 applications**, all Up — it is the fastest way to read QA's whole topology). +**QA runs an instance on EACH pair node — `wonder-app-vq03:5320` and (since 2026-08-14) +`wonder-app-vq04:5320`** — both watching the same registry, now **10 instances across 4 +applications** after the 2026-08-14 VQ04 singleton clone (MxGateway + HistorianGateway added on +vq04; see `deployment.md` §7.1). It is the fastest way to read QA's whole topology. Its registry uses **real FQDNs**, and that is correct rather than a divergence: the `127.0.0.1` rule above exists only because VD03 co-locates every instance on one host. QA is a **2-node pair** (`vq03`/`vq04`) with genuinely distinct hosts, so leader resolution works as designed and the chips diff --git a/deployment.md b/deployment.md index 3727f55..0456951 100644 --- a/deployment.md +++ b/deployment.md @@ -356,14 +356,18 @@ DEV gRPC on `wonder-app-vd03:5120`, QA on `wonder-app-vq03:5120`. SSH: windev/fi ### 7.1 QA port map: VQ03 and VQ04 -Established **2026-08-13** from two independent live sources, neither of them a config file — treat -connection strings and service names as unverified. Rows are marked with how each was established: +Established **2026-08-13** from two independent live sources, neither of them a config file, and +**updated 2026-08-14** when the three singleton services were cloned onto VQ04 (that update IS from +the boxes' live NSSM config + health probes, so its rows are verified). Rows are marked with how +each was established: - **`scan`** — TCP port scan of both hosts, plus a `/health/ready` GET where one was served. - **`dash`** — read off the **QA Overview dashboard** (`vq03:5320`), which was already polling the QA fleet and reports each instance's endpoint, health entries and active/standby state. Stronger evidence than a scan for these rows: the dashboard is successfully talking to the service, not merely finding an open socket. These ports were never scanned by me. +- **`svc` / `live`** — added 2026-08-14: read from the boxes' own service registry (NSSM + `AppEnvironmentExtra` / `Win32_Service`) or exercised end-to-end during the VQ04 singleton setup. | Port | VQ03 | VQ04 | How | Service | |---|---|---|---|---| @@ -377,18 +381,32 @@ connection strings and service names as unverified. Rows are marked with how eac | 5120 / 5130 | ✅ | ✅ | scan | **MxAccessGateway** gRPC / dashboard (VQ04 added 2026-08-14, cloned from VQ03) | | 5220 / 5221 | ✅ | ✅ | scan | **HistorianGateway** dashboard / gRPC h2c (VQ04 added 2026-08-14) | | 5320 | ✅ | ✅ | scan | **Overview** dashboard (one per node since 2026-08-14; both watch the same 10-instance registry) | -| 1433 | ✅ | ✗ | scan | SQL Server | -| 2222 | ⚠️ | ⚠️ | scan | servecli SSH — **TCP-open but NOT serving SSH** (see below) | +| 1433 | ✅ | ✗ | scan | SQL Server (**ZB Galaxy repo DB — VQ03 only**; VQ04's gateways point their Galaxy connection strings here) | +| 3893 | ✅ | ✅ | svc | glauth LDAP (`ScadaBridge-LDAP` service, loopback-only, `dc=scadabridge,dc=local` — one per box, configs identical) | +| **6150** | ✅ | ✅ | live | **psbridge** remote-admin bridge (`server.exe`, root jail `E:\psrem`) — **the supported access path**; see §2.1 | +| 2222 | ⚠️ | ⚠️ | scan | servecli SSH — **retired; TCP-open but NOT serving SSH** (see below) | -**Live state at capture** (`8 instances across 4 applications`, all Up): +**Live state at the 2026-08-13 capture** (`8 instances across 4 applications`, all Up; since +2026-08-14 the registry is **10 instances** — MxAccessGateway and HistorianGateway run on both +nodes, verified Healthy at setup): | Application | VQ03 | VQ04 | |---|---|---| | OtOpcUa (cluster `MAIN`) | node-a — **Standby** (`active 503`) | node-b — **Active** (`active 200`) | | ScadaBridge `central` | central-a — **Active** | central-b — Standby | | ScadaBridge `site` | site-a — **Active** | site-b — Standby | -| MxAccessGateway | Active | — | -| HistorianGateway | Up | — | +| MxAccessGateway | Active | Active (since 2026-08-14; independent gateways, no cluster) | +| HistorianGateway | Up | Up (since 2026-08-14) | +| Overview | Up (`:5320`) | Up (`:5320`, since 2026-08-14; same 10-instance registry) | + +**The 2026-08-14 VQ04 clone, in one paragraph:** MxAccessGw + HistorianGateway + ZbOverview were +copied from VQ03 (same `E:\ApiInstall\...` layout, NSSM `AppEnvironmentExtra` config, LocalSystem) +**including the API-key stores and peppers, so the same `mxgw_…`/`histgw_…` tokens verify on both +boxes** — proven with positive + negative controls. The only config deltas: both apps' Galaxy SQL +connection strings point at VQ03 (`Server=wonder-app-vq03…;Database=ZB` — VQ04 has no local SQL +Server) and mxgw's alarm subscription stays `\\wonder-app-vq03\Galaxy!NAM`. **So VQ04's gateways +depend on VQ03 for Galaxy browse + alarms**; Historian/Runtime-DB traffic goes to `wonder-sql-vq03` +independently. Deploy record: `E:\ApiInstall\_DEPLOY-NOTES-20260814-singletons-added.txt` on VQ04. Three things worth carrying forward: