WestyxNexus.Extensions.Configuration
The SDK ships an IConfigurationSource / IConfigurationProvider implementation. With a single AddWestyx(...) call, all Nexus config values are exposed through IConfiguration — bind them to IOptions<T> classes, read them via configuration["key"], and receive live IOptionsMonitor<T> updates when a value changes in the console.
Since v0.11.0 this lives in its own package.
Microsoft.Extensions.Configuration left the core package, so run dotnet add package WestyxNexus.Extensions.Configuration. The namespace is unchanged (Westyx.Nexus), so no code edit is needed.IConfiguration by default.
Basic setup
AddWestyx performs a blocking initial sync inside Build() — the same pattern used by Azure App Configuration and other standard providers. All Nexus config values are available from the moment builder.Build() returns.
The SSE live-update stream starts automatically (enableStream: true is the default). Turn it off if you prefer TTL-only polling:
Binding to IOptions<T>
After callingAddWestyx, bind Nexus configs to a strongly-typed class the same way you would bind any other configuration section:
IOptions<DatabaseSettings> where you need it:
Live reload with IOptionsMonitor<T>
When the SSE stream is running, the configuration provider callsIConfiguration.Reload() automatically after every sync that returns new data. This means IOptionsMonitor<T> receives change notifications within milliseconds of a value being updated in the Nexus console — without a restart.
Live reload requires
ConnectStream() to be active. AddWestyx(config) starts the stream automatically. If you use the pre-created client overload, call client.ConnectStream() yourself before registering the source.Pre-created client (WIF, advanced lifetime)
If you need WIF authentication or want to manage the client lifetime yourself, pass an existingNexusClient to the overload:
builder.Services.AddSingleton(client) registration ensures the host shuts the client down cleanly.
Reading configs directly from IConfiguration
You can also read Nexus config values directly without binding to a class:Key shapes
A Nexus keydatabase.host is reachable two ways, and both are supported deliberately:
Before v0.11.0 only the middle row worked, which is why
GetSection("database") came back empty.
Nested objects and arrays
A JSON object or array config value is flattened the way the built-in JSON provider does it, so it binds to a POCO or a collection:Value type serialization
Nexus config values are JSON. The provider serializes them to strings for IConfiguration:
Standard binding (
IOptions<T>) handles all of these natively. Objects and arrays no longer need manual parsing — that was a limitation of the pre-v0.11.0 raw-JSON representation.
Combining with other configuration sources
AddWestyx stacks with the other sources in the builder. The last source wins for duplicate keys — so to let local environment variables override Nexus values (useful during development), add Nexus before environment variables:
appsettings.json but lower than environment variables:
