From 6d38e89be0b39a2224559dd50922751ccd8df2ed Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Fri, 7 Aug 2026 08:36:57 -0400 Subject: [PATCH] =?UTF-8?q?deps(secrets):=200.4.1=20=E2=80=94=20hub=20deni?= =?UTF-8?q?al=20warning=20(live-gate=20check=204)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 2026-08-07 live gate's check 4 failed one clause of three: both auth negatives were denied with a byte-identical Unauthenticated status and no token or plaintext reached any log, but the hub recorded a denial only at Information level, via Grpc.AspNetCore.Server rather than the gate itself. A follower whose token was mis-rotated would therefore stop converging while central showed nothing above INF. That was a property of the library, not of this branch, so it was fixed there and shipped as 0.4.1 (scadaproj main c86cead): SecretsHubAuthInterceptor now emits a rate-limited Warning summarising each denial window, breaking the count down by cause, with the first denial after startup or a quiet window warning immediately so a single probe is never silent. Wire behaviour is untouched - the denial is still one uniform Unauthenticated with one detail, and still carries no token material - so this is additive on the server's diagnostics only and nothing a follower observes changes. All five ZB.MOM.WW.Secrets* pins move together. Splitting them is not an option worth having: Abstractions carries the StoredSecret shape the Grpc wire mirror is written against, so a mixed set is a silent structural mismatch rather than a build error. Build clean at 0 warnings; the secrets wiring + hub-mapping pins are 31/31. Claude-Session: https://claude.ai/code/session_014WNM4vjoVksyyBraTXSZE1 --- Directory.Packages.props | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 336d3679..5d1900f5 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -104,11 +104,11 @@ - - - - - + + + + +