{ "Serilog": { "Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ], "WriteTo": [ { "Name": "Console" }, { "Name": "File", "Args": { "path": "logs/otopcua-.log", "rollingInterval": "Day" } } ] }, "Security": { "Auth": { "DisableLogin": false } }, "ServerHistorian": { "_comment": "Server-side HistoryRead backend (the ZB.MOM.WW.HistorianGateway gRPC client). Disabled => NullHistorianDataSource (historized nodes return GoodNoData). The gateway must run RuntimeDb:EventReadsEnabled=true for alarm-history ReadEvents, and the API key must carry historian:read + historian:write + historian:tags:write scopes.", "Enabled": false, "Endpoint": "", "ApiKey": "", "_ApiKeyComment": "NEVER commit a real key. Supply via the environment variable ServerHistorian__ApiKey.", "UseTls": true, "AllowUntrustedServerCertificate": false, "CaCertificatePath": null, "CallTimeout": "00:00:30", "MaxTieClusterOverfetch": 65536 }, "ContinuousHistorization": { "_comment": "Continuous historization of driver (non-Galaxy) tag values: a crash-safe FasterLog outbox + recorder draining to the ServerHistorian gateway's WriteLiveValues. Disabled => no recorder is spawned. Requires ServerHistorian to be configured; the gateway connection (endpoint/key/TLS) is sourced from the ServerHistorian section, not here.", "Enabled": false, "OutboxPath": "", "_OutboxPathComment": "Directory holding the FasterLog segment + commit files. Required when Enabled=true. In production set an ABSOLUTE path on durable storage.", "CommitMode": "PerEntry", "CommitIntervalMs": 100, "DrainBatchSize": 64, "DrainIntervalSeconds": 2, "Capacity": 0, "MinBackoffSeconds": 1, "MaxBackoffSeconds": 30 }, "AlarmHistorian": { "_comment": "Durable SQLite store-and-forward alarm sink. Drains alarm events to the ServerHistorian gateway's SendEvent path; the downstream connection (endpoint/key/TLS) is sourced from the ServerHistorian section.", "Enabled": false, "DatabasePath": "alarm-historian.db", "DrainIntervalSeconds": 5, "Capacity": 1000000, "DeadLetterRetentionDays": 30 }, "Deployment": { "_comment": "R2-11 (05/CONV-2): deploy-gate TagConfig strictness. Warn (default) = non-blocking warnings logged + appended to the deployment result message; Error = a config with a typo'd enum or unparseable TagConfig is rejected at the draft gate. Running servers are untouched; the gate only sees re-deploys.", "TagConfigValidationMode": "Warn" } }