HistorianGateway is now the sole historian backend (read + alarm SendEvent + continuous WriteLiveValues). Document the final state and retire the Wonderware sidecar from the docs/config/labels: - CLAUDE.md: rewrite the Historian section — ServerHistorian / ContinuousHistorization / AlarmHistorian config keys, the IHistorianProvisioning EnsureTags hook, the GatewayAlarmHistorianWriter SendEvent path + ReadEvents dependency on gateway RuntimeDb:EventReadsEnabled=true, gateway-side prerequisites (RuntimeDb flags + historian:read/write/tags:write scopes), migration note, and two KNOWN-LIMITATION callouts (live-validation gate + empty historized-ref-set recorder follow-on). - appsettings.json: fix the stale ServerHistorian block (Host/Port/SharedSecret/ ServerCertThumbprint -> Endpoint/ApiKey/UseTls/AllowUntrustedServerCertificate/ CaCertificatePath/CallTimeout, keep MaxTieClusterOverfetch); add a disabled ContinuousHistorization block; prune the orphaned Wonderware keys from AlarmHistorian (keep the SQLite knobs). ApiKey env-supplied via ServerHistorian__ApiKey (commented; valid strict JSON via _comment keys). - README.md + docs (Historian.md, AlarmHistorian.md, Configuration.md, ServiceHosting.md, DriverLifecycle.md, drivers/README.md, Uns.md, VirtualTags.md, AlarmTracking.md, Client.UI.md, README.md, TestConnectProbes.md): retire the Wonderware historian backend from current-backend descriptions; fix the stale ServerHistorian/AlarmHistorian config tables (now gateway shape); convert drivers/Historian.Wonderware.md to a retired stub pointing at the gateway. - Source/UI labels (descriptive text only, no behavior change): OtOpcUaServerHostedService.cs, HistoryPaging.cs, OtOpcUaSdkServer.cs, HistorianAdapterActor.cs, VirtualTagModal.razor, ScriptedAlarmModal.razor, AlarmsHistorian.razor now name the HistorianGateway backend. Build clean (0 errors); AdminUI.Tests green (514 passed). Claude-Session: https://claude.ai/code/session_012SDSQ3AcaXqPcBtDESBRii
2.6 KiB
Wonderware Historian Backend — RETIRED
This backend has been retired. The bespoke Wonderware TCP/ArchestrA historian sidecar (
OtOpcUaWonderwareHistorian) and itsDriver.Historian.Wonderware*projects — plus the vestigialHistorian.Wonderwaredriver type — were removed. HistorianGateway is now the sole historian backend for OtOpcUa (read, alarm-write, and continuous historization).
What replaced it
OtOpcUa now consumes the ZB.MOM.WW.HistorianGateway sidecar through the Gitea-feed
ZB.MOM.WW.HistorianGateway.Client gRPC package (historian_gateway.v1), behind the
IHistorianGatewayClient seam in ZB.MOM.WW.OtOpcUa.Driver.Historian.Gateway:
- HistoryRead →
GatewayHistorianDataSourceover theServerHistorianappsettings section. - Alarm history →
GatewayAlarmHistorianWriter(the gatewaySendEventpath) behind the durableSqliteStoreAndForwardSink; alarm-historyReadEventsneeds the gateway runningRuntimeDb:EventReadsEnabled=true. - Continuous historization → a crash-safe FasterLog outbox +
ContinuousHistorizationRecorderdraining to the gateway'sWriteLiveValues(ContinuousHistorizationsection); needs the gateway runningRuntimeDb:Enabled=true. - Tag provisioning →
AddressSpaceApplierfires a non-blockingIHistorianProvisioningEnsureTagshook for added historized tags.
The gateway API key must carry the scopes historian:read, historian:write, historian:tags:write.
Where to read now
- ../Historian.md — the full historian guide (read path, alarm path, continuous historization, config keys, migration note).
- README.md — driver / back-end overview.
- ../ServiceHosting.md — deployment (the historian backend is the external HistorianGateway, not an installed sidecar).
Migration
Deployments that carried the old ServerHistorian Wonderware keys must rename them:
| Old (Wonderware) key | New (gateway) key |
|---|---|
ServerHistorian:Host + :Port |
ServerHistorian:Endpoint (https://host:5222) |
ServerHistorian:SharedSecret |
ServerHistorian:ApiKey (supply via env ServerHistorian__ApiKey) |
ServerHistorian:ServerCertThumbprint |
ServerHistorian:CaCertificatePath (+ UseTls / AllowUntrustedServerCertificate) |
The AlarmHistorian section's old Wonderware connection keys (Host/Port/UseTls/ServerCertThumbprint/SharedSecret)
were pruned — remove them; the SQLite store-and-forward knobs are retained and the downstream connection is
now sourced from ServerHistorian.