feat: HistorianGateway as the OtOpcUa historian backend (read/write/alarms + continuous historization); retire Wonderware #423

Merged
dohertj2 merged 40 commits from feat/historian-gateway-backend into master 2026-06-27 11:09:04 -04:00
Showing only changes of commit 1030d00b3f - Show all commits
@@ -166,7 +166,12 @@ T19 pruned the Wonderware-shaped fields and reworked `AlarmHistorianRegistration
covered by a test (the sibling warnings for `DrainIntervalSeconds`/`Capacity`/`DeadLetterRetentionDays`
are). Add a `Validate_warns_on_non_positive_max_attempts` case. Trivial.
### FU-5 — Pre-existing `Host.IntegrationTests` failure (NOT ours — track separately)
### FU-5 — Pre-existing `Host.IntegrationTests` failure (NOT ours)✅ TRACKED via Gitea issue [#424](https://gitea.dohertylan.com/dohertj2/lmxopcua/issues/424) (2026-06-27)
> **Outcome:** re-confirmed pre-existing — the test still fails (`Accepted` expected, `Rejected` actual) and
> `git diff --stat master..HEAD` shows this branch touches **none** of the Modbus/`DraftValidator`/
> `ConfigComposer`/equipment-materialization path. Filed as a standalone tracking issue (#424) so the
> `DraftValidator` rejection root-cause is owned separately from the historian work. No code change here.
`EquipmentNamespaceMaterializationTests.Deploying_an_equipment_namespace_carries_the_signal_into_the_artifact`
fails (`Rejected` vs expected `Accepted`) on a **Modbus-only** namespace via `DraftValidator`/
`ConfigComposer` — untouched by this branch. **Verified failing identically on `master`** (via