What’s new in v0.10.0
- Version alignment across the Westyx Nexus SDK suite.
What’s new in v0.9.0
aws_iamWIF provider (AWS IAM Caller Identity) - authenticates non-EKS AWS compute (ECS/Fargate, Lambda, plain EC2) that has IAM credentials but no OIDC token. The SDK SigV4-signs an STSGetCallerIdentityrequest (never sent to AWS) and posts it to/v1/auth/token-exchange; Nexus replays it against a pinned STS endpoint to prove your IAM role. The signedX-Nexus-Server-IDis your service’s own base-URL host - a captured request is valid for that one service only, and there is nothing to configure. UsesAWSSDK.Corefor the credential/region chain only. See Workload identity.- Azure Workload Identity (AKS) - the
Azureprovider now prefers the projected federated token file ($AZURE_FEDERATED_TOKEN_FILE) before falling back to IMDS; auto-detection probes the file too. - Probe-based auto-detection - auto-detect now stats the Kubernetes / AWS-IRSA / Azure token files and live-probes the GCP and Azure metadata servers (~1 s timeout), instead of keying on environment variables absent on real cloud nodes.
- Security hardening -
NexusClient.CreateAsyncrejects plain-httpBaseUrls (loopback excepted); the Azure IMDS path refuses the generic default audience (must beapi://<client-id>); expired WIF sessions fail closed; the metadata client disables redirects and the system proxy; metadata/exchange reads are bounded.
What’s new in v0.8.0
WestyxNexus.OpenFeatureNuGet sub-package - installWestyxNexus.OpenFeaturealongsideWestyxNexusand registerNexusProvideras an OpenFeature provider. Feature flags resolve viaResolveBooleanValue; configs viaResolveString/Double/Integer/StructureValue. All reads are cache-backed. See OpenFeature integration.
What’s new in v0.7.0
- ASP.NET Core
IConfigurationintegration -builder.Configuration.AddWestyx(nexusConfig)plugs Nexus into the standard configuration pipeline. All config values are accessible viaIConfiguration, bindable viaIOptions<T>, and live-reloaded viaIOptionsMonitor<T>when SSE is enabled — no restart needed. See ASP.NET Core configuration.
What’s new in v0.5.1
- Requires .NET 8 or later - target framework widened to
net8.0. Supports .NET 8, 9, 10, and later. - Security improvements - response bodies are no longer embedded in exception messages;
file-type secret paths are fully hashed; key names are never stored on the filesystem. - Reliable
GetSecretAsync- all code paths return a properly awaitableTask, consistent with async/await conventions throughout the SDK. - Thread-safe WIF session - concurrent token refresh calls are serialised to prevent redundant token exchanges.
- CI - test stage runs on every MR; publish is restricted to
main-branch tags.
What’s new in v0.5.0
- Write API -
SetSecretAsync,DeleteSecretAsync,DeleteSecretVersionAsyncfor programmatic secret management. secret keys only; public keys throwNexusPublicKeyExceptionimmediately without a network call. NexusRateLimitedException- new exception for HTTP 429 on write endpoints.
What’s new in v0.3.1
Retry-After-aware SSE 429 handling -RunStreamAsyncnowawait Task.Delay-s the indicated duration (clamped[5 s, 5 min]) and reconnects automatically when the server returns429with a parseableRetry-Afterheader (delta-seconds or HTTP-date form). WithoutRetry-After, the legacy terminate-on-429 + TTL polling fallback is preserved.
What’s new in v0.3.0
- AB Testing add-on - new
EvaluateABAsync(keys, userId, attributes, ct)for batch per-user flag evaluation. ThrowsNexusAbAddonNotAvailableExceptionon 403. - File-type secrets - secrets now carry a
typefield;file-type values are materialised to temp files underPath.GetTempPath()and exposed viaGetSecretFilePath(key). Temp files are cleaned up byDispose().
What’s new in v0.2.0
- Workload Identity Federation - Kubernetes / AWS IRSA / GCP / Azure auto-detected; bearer-JWT auth with automatic refresh.
- Stream observer hooks - opt-in
IStreamObserverfor ops dashboards and load-test tooling. - Service kind awareness -
GetSecretAsyncblocked withNexusServiceKindMismatchExceptiononkind=frontendservices. - 402 Payment Required handling -
NexusBillingExceptionthrown,BillingOverdueflag set, background sync halted, cache served. - Split HTTP clients - a short consumer timeout no longer truncates the SSE stream.
Highlights
- .NET 8.0+ - single package, minimal dependencies
- Thread-safe TTL cache with atomic snapshot replacement and ETag/304 support
- Background refresh - request handlers are never blocked on cache expiry
- SSE live updates - propagates remote changes within milliseconds; falls back to TTL polling after 3 transport errors
- Public-key vs secret-key access control - public-key clients cannot fetch secrets
- ASP.NET Core
IConfigurationintegration (v0.7.0) -AddWestyx()extension method;IOptions<T>binding;IOptionsMonitor<T>live reload - OpenFeature provider (v0.8.0) -
WestyxNexus.OpenFeaturesub-package;NexusProviderwraps an existing client and implements the standardFeatureProviderinterface - Workload Identity Federation (v0.2.0) - Kubernetes / AWS IRSA / GCP / Azure auto-detection; bearer JWT auth; AWS IAM (
aws_iam) for ECS/Fargate/Lambda/plain-EC2 (v0.9.0) - Stream observer hooks (v0.2.0) - structured callbacks for SSE lifecycle events
- AB Testing add-on (v0.3.0) - per-user flag evaluation via
EvaluateABAsync - File-type secrets (v0.3.0) - materialised as temp files with automatic update detection and cleanup
