chore(docker): both rigs' centrals on the shared SQL Server inbound key store; delete sync-inbound-api-keys.sh (superseded); verify-delmia-notifier.sh preflight is now the proof that both nodes see a key minted on one — drill green with no file copy, takeover 28 s

Claude-Session: https://claude.ai/code/session_013L3XdmVii9i5sY4FChU8pB
This commit is contained in:
Joseph Doherty
2026-09-02 23:31:21 -04:00
parent d6fd8c400c
commit a83cc8613d
5 changed files with 36 additions and 54 deletions
+12
View File
@@ -99,6 +99,12 @@ services:
# out-of-band (env/secret store), never from source control — see
# docs/operations/inbound-api-key-reissue.md. Both Central nodes share one pepper.
ScadaBridge__InboundApi__ApiKeyPepper: "dev-only-insecure-pepper-docker-cluster-0001"
# Shared inbound API key store (design 2026-09-02, register row 108): both centrals read and
# write ONE zbauth schema in the configuration database, so a key minted on either node
# survives a central failover and a revoke is cluster-wide. The SqlServer connection string
# is deliberately NOT set: it defaults to ScadaBridge__Database__ConfigurationDb below.
# Each node's legacy per-node SQLite file is imported once at boot and renamed *.imported.
ScadaBridge__InboundApi__ApiKeyStore__Provider: "SqlServer"
# DEV-ONLY local-cluster secrets — NOT real secrets. Relocated out of the mounted
# appsettings.Central.json (G-4 T5 secrets cleanup) so that app-config file carries no
# plaintext credentials. Env overrides layer over JSON BEFORE the ${secret:} pre-host
@@ -160,6 +166,12 @@ services:
# out-of-band (env/secret store), never from source control — see
# docs/operations/inbound-api-key-reissue.md. Both Central nodes share one pepper.
ScadaBridge__InboundApi__ApiKeyPepper: "dev-only-insecure-pepper-docker-cluster-0001"
# Shared inbound API key store (design 2026-09-02, register row 108): both centrals read and
# write ONE zbauth schema in the configuration database, so a key minted on either node
# survives a central failover and a revoke is cluster-wide. The SqlServer connection string
# is deliberately NOT set: it defaults to ScadaBridge__Database__ConfigurationDb below.
# Each node's legacy per-node SQLite file is imported once at boot and renamed *.imported.
ScadaBridge__InboundApi__ApiKeyStore__Provider: "SqlServer"
# DEV-ONLY local-cluster secrets — NOT real secrets. Relocated out of the mounted
# appsettings.Central.json (G-4 T5 secrets cleanup) so that app-config file carries no
# plaintext credentials. Env overrides layer over JSON BEFORE the ${secret:} pre-host