fix(options): canonicalize Communication/DataConnection config sections to ScadaBridge:*; drop the duplicate Host bindings that were masking the drift (plan R2-08 T9, arch-review 08r2 NF8)
This commit is contained in:
@@ -149,7 +149,9 @@ public static class SiteServiceRegistration
|
||||
ServiceDescriptor.Singleton<IValidateOptions<SiteRuntime.Tracking.OperationTrackingOptions>,
|
||||
SiteRuntime.Tracking.OperationTrackingOptionsValidator>());
|
||||
|
||||
services.Configure<DataConnectionOptions>(config.GetSection("ScadaBridge:DataConnection"));
|
||||
// NF8: DataConnectionOptions is now bound by AddDataConnectionLayer() itself
|
||||
// (canonical ScadaBridge:DataConnection section) — the duplicate Host binding
|
||||
// that used to mask the SCE's wrong section name is deleted.
|
||||
|
||||
services.AddOptions<StoreAndForwardOptions>()
|
||||
.Bind(config.GetSection("ScadaBridge:StoreAndForward"))
|
||||
@@ -184,12 +186,17 @@ public static class SiteServiceRegistration
|
||||
services.AddOptions<DatabaseOptions>().Bind(config.GetSection("ScadaBridge:Database")).ValidateOnStart();
|
||||
services.TryAddEnumerable(
|
||||
ServiceDescriptor.Singleton<IValidateOptions<DatabaseOptions>, DatabaseOptionsValidator>());
|
||||
services.Configure<CommunicationOptions>(config.GetSection("ScadaBridge:Communication"));
|
||||
// NF8: CommunicationOptions is now bound by AddCommunication() itself (canonical
|
||||
// ScadaBridge:Communication section) — the duplicate Host binding that used to mask
|
||||
// the SCE's wrong section name is deleted.
|
||||
// Bind + eagerly validate: HealthMonitoringOptionsValidator is registered (TryAddEnumerable)
|
||||
// by the HealthMonitoring module, so chaining ValidateOnStart() here makes a bad
|
||||
// ScadaBridge:HealthMonitoring section fail fast at host build instead of lazily on first resolve.
|
||||
services.AddOptions<HealthMonitoringOptions>().Bind(config.GetSection("ScadaBridge:HealthMonitoring")).ValidateOnStart();
|
||||
services.Configure<NotificationOptions>(config.GetSection("ScadaBridge:Notification"));
|
||||
// NF8: NotificationOptions is bound by AddNotificationService() (central-only,
|
||||
// canonical ScadaBridge:Notification section). Sites don't deliver notifications
|
||||
// and have no IOptions<NotificationOptions> consumer, so the redundant Host
|
||||
// duplicate that bound it on both paths is deleted.
|
||||
// Bind + eagerly validate: an unrecognised MinimumLevel would silently fall back
|
||||
// to Information; fail fast at boot so the operator's intended floor is honoured
|
||||
// (arch-review 08r2 NF4).
|
||||
|
||||
Reference in New Issue
Block a user