From 639f511cfc9f95f057c53fd2626fba32ff1efd59 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Fri, 13 Nov 2026 00:09:27 -0500 Subject: [PATCH] docs(evidence): #694/#700/#746 live AVEVA gate through HistorianGateway dffb5e2 on 4c8e977e Read-only. Native TimeAverage/Total forward/reverse, clipped, sub-ms clipped, fractional-ms and all-NULL intervals vs a step-held raw reference; #700 missing / existing / typed history, future AtTime, outage statuses, strict-ceiling stopped-tag reverse (10 calls, bound 12) and lowered/raised limits with the aggregate cooldown; #746 server-capped events paging (0 abandoned streams vs 81 with the cap removed). Discrete-tag finding filed as #897. Claude-Session: https://claude.ai/code/session_01GT67ACmpMR7b9LGRPLijMi --- docs/Historian.md | 2 +- .../aveva-gate-801-4c8e977e.json.gz | Bin 0 -> 36651 bytes .../aveva-gate-followups-4c8e977e.json.gz | Bin 0 -> 5762 bytes ...ups-mutation-adapter-no-max-events.json.gz | Bin 0 -> 5866 bytes .../aveva-gate-strict-4c8e977e.json.gz | Bin 0 -> 1187 bytes .../aveva-gate.md | 114 ++++++++++++++++++ 6 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 docs/plans/evidence/2026-11-12-historian-694-700-746/aveva-gate-801-4c8e977e.json.gz create mode 100644 docs/plans/evidence/2026-11-12-historian-694-700-746/aveva-gate-followups-4c8e977e.json.gz create mode 100644 docs/plans/evidence/2026-11-12-historian-694-700-746/aveva-gate-followups-mutation-adapter-no-max-events.json.gz create mode 100644 docs/plans/evidence/2026-11-12-historian-694-700-746/aveva-gate-strict-4c8e977e.json.gz create mode 100644 docs/plans/evidence/2026-11-12-historian-694-700-746/aveva-gate.md diff --git a/docs/Historian.md b/docs/Historian.md index ced29a8ca..41315775b 100644 --- a/docs/Historian.md +++ b/docs/Historian.md @@ -200,7 +200,7 @@ Processed read is `BadAggregateNotSupported` and no history aggregate functions | Key | Type | Default | Description | |---|---|---|---| -| `Gateway:EnableNativeTimeWeighted` | bool | `true` | Serve HistoryRead-Processed `TimeAverage` / `Total` through AVEVA's native retrieval modes. ⚠️ **On by default since #694 (client-visible: both are advertised and served again).** The gateway interval fix historiangw#27 (gateway server `9f711c1`+) is live-verified: forward and reverse per-interval values, clipped, sub-millisecond clipped and fractional-millisecond intervals against a step-held reference, and all-NULL intervals ⇒ `BadNoData` ([evidence](plans/evidence/2026-11-12-historian-694-700-746/aveva-gate.md)). `false` is the kill switch for a gateway older than the fix (it answers one Good-status whole-span value on the earliest interval): both are then `BadAggregateNotSupported` and **not advertised**. On a discrete (Boolean) AVEVA tag AVEVA refuses both modes and the node answers `BadHistoryOperationUnsupported` (counted as a backend failure). | +| `Gateway:EnableNativeTimeWeighted` | bool | `true` | Serve HistoryRead-Processed `TimeAverage` / `Total` through AVEVA's native retrieval modes. ⚠️ **On by default since #694 (client-visible: both are advertised and served again).** The gateway interval fix historiangw#27 (gateway server `9f711c1`+) is live-verified: forward and reverse per-interval values, clipped, sub-millisecond clipped and fractional-millisecond intervals against a step-held reference, and all-NULL intervals ⇒ `BadNoData` ([evidence](plans/evidence/2026-11-12-historian-694-700-746/aveva-gate.md)). `false` is the kill switch for a gateway older than the fix (it answers one Good-status whole-span value on the earliest interval): both are then `BadAggregateNotSupported` and **not advertised**. On a discrete (Boolean) AVEVA tag AVEVA refuses both modes and the node answers `BadHistoryOperationUnsupported` (counted as a backend failure; #897). | | `Gateway:ProbeInterval` | TimeSpan | `00:00:30` | How often the read client calls the gateway's `ProbeAsync` for the historian health snapshot (`ProcessConnectionOpen` / `EventConnectionOpen`, shown on `/hosts`). The first probe runs at start-up, so a node that has served no HistoryRead yet — or only writes (continuous historization) — reports a healthy gateway as open; it used to read closed until some client happened to read. The latest observation (probe or read outcome) wins; probes never count as queries or failures. Zero/negative = no probe (read outcomes only, the previous behaviour). | | `Gateway:EventDrainBudget` | int | `10000` | Since #746 a capped HistoryReadEvents read sends cap + 1 as the server-side `max_events` and the gateway completes the stream there, so this budget applies only to the uncapped fallback read (an ambiguous server-capped answer — foreign rows filtered out of a stream the server cut — or a gateway refusing the cap) and to a stream that runs past the `max_events` it was sent. It is the number of stream rows such a read consumes (and discards) past its page cap before it abandons the gateway stream; an **abandoned** stream cancels the RPC and the gateway evicts its pooled historian session (the next read reconnects; concurrent reads on that session fail). The usual small overshoot is drained to the stream's end; past the budget the stream is abandoned, so a page over a window far larger than the page does not stream the whole window. Rows of another source never count before the "more events" signal is seen, so an abandoned stream never answers a page as complete. `0` = abandon at the cap (the previous behaviour); negative counts as `0` (a `Validate()` warning). | diff --git a/docs/plans/evidence/2026-11-12-historian-694-700-746/aveva-gate-801-4c8e977e.json.gz b/docs/plans/evidence/2026-11-12-historian-694-700-746/aveva-gate-801-4c8e977e.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..07663406df608a559bd6776af4287faa95d1e8a2 GIT binary patch literal 36651 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 N^NF-w(Q-7X{|6rA%g6u# literal 0 HcmV?d00001 diff --git a/docs/plans/evidence/2026-11-12-historian-694-700-746/aveva-gate-followups-4c8e977e.json.gz b/docs/plans/evidence/2026-11-12-historian-694-700-746/aveva-gate-followups-4c8e977e.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..b9ad8f89c4949bb0ff727e278b9fedefde968c38 GIT binary patch literal 5762 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 literal 0 HcmV?d00001 diff --git a/docs/plans/evidence/2026-11-12-historian-694-700-746/aveva-gate-followups-mutation-adapter-no-max-events.json.gz b/docs/plans/evidence/2026-11-12-historian-694-700-746/aveva-gate-followups-mutation-adapter-no-max-events.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..891f69e2ce745b329a1ab78bca607b6466826df6 GIT binary patch literal 5866 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�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/hgpub -p:UseAppHost=false +docker run -d --name zb-historiangw-h694 --env-file HistorianGateway/docker/histgw.secrets.env --env-file \ + -p 5232:5220 -p 5233:5221 +# gw.env: the docker-compose environment plus ApiKeys__Mode=Disabled, Historian__LiveWritesEnabled=false, Dashboard__DisableLogin=true +# (the second --env-file wins). Strict fixture: the same with +# -e Historian__ReadLimits__MaxValuesCeiling= -e Historian__ReadLimits__AllowStreamingBeyondCeiling=false -p 5236:5220 -p 5237:5221 + +export HISTGW_GATEWAY_ENDPOINT=http://localhost:5233 HISTGW_GATEWAY_APIKEY=auth-disabled +export OTOPCUA_AVEVA_GATE_OUT=/tmp/aveva-gate OTOPCUA_AVEVA_GATE_LABEL=$(git rev-parse --short HEAD) +export OTOPCUA_AVEVA_GATE_STRICT_ENDPOINT=http://localhost:5237 OTOPCUA_AVEVA_GATE_STRICT_CONTAINER=zb-historiangw-h694-strict +export OTOPCUA_AVEVA_GATE_STRICT_SET_CEILING=