Highlights
- Type-safe getters -
getString,getBoolean,getInt,getDouble,getJson - Secrets - in-memory access via
getSecret, temp-file access viagetSecretFilePath - Feature flags -
getFlagwith safe boolean default - A/B testing - server-side
evaluateABwith user ID and attributes - SSE live updates -
connectStream()pushes config/flag changes in real time - Workload identity federation (WIF) - Kubernetes, AWS IRSA, GCP, Azure, developer mode, and AWS IAM (
aws_iam) for ECS/Fargate/Lambda/plain-EC2 (v0.9.0) - Observability -
NexusObserverhooks for connect, disconnect, reconnect, quarantine, billing events - Resilience - exponential back-off, quarantine pause, billing-overdue pause, TTL fallback
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. Requires the optionalsoftware.amazon.awssdk:auth+:regionsdependencies. See Workload identity.- Azure fix (was requesting an ARM token) - the
azureprovider no longer requests the privilegedmanagement.azure.comresource; it now prefers the projected federated token file ($AZURE_FEDERATED_TOKEN_FILE, AKS) and otherwise requests the configuredapi://<client-id>audience on IMDS, refusing the generic default. - Probe-based auto-detection + hardened metadata client - auto-detect now stats the token files and live-probes the metadata servers (~1 s timeout); the metadata Ktor client no longer follows redirects and does not use a system proxy.
- Security hardening -
NexusClient.createrejects plain-http base URLs (loopback excepted); expired WIF sessions refresh transparently on reads and fail closed; theexpires_in<=60refresh loop is fixed; metadata reads are bounded.
What’s new in v0.8.0
- OpenFeature provider - new
nexus-kotlin-openfeaturesub-module. See OpenFeature.
What’s new in v0.6.0
- SSE reconnect after polling fallback - the SDK re-attempts the SSE stream after falling back
to TTL polling.
sseReconnectCooldowncontrols the delay (clamped 1s-300s).
What’s new in v0.4.0
- Added
evaluateABfor server-side A/B flag evaluation per user - Quarantine support: server-driven pause on
POST /v1/syncand/v1/stream429 responses; the SDK sleeps untilexpiresAtand reconnects without incrementing the failure counter auth_expiringSSE event: proactive WIF session refresh before the session token expiresgetSecretFilePathfor file-type secrets written to a temp directoryNexusObserver.onQuarantined(reason, expiresAt)callbackstreamStatus: StateFlow<StreamStatus>exposed as a public property
Package
Hosted on the GitLab Maven Package Registry. Install:What’s new in v0.5.1
- Security improvements - exception messages contain only status codes;
file-type secret paths are fully hashed so key names are never visible on the filesystem. - Thread-safe WIF session - session state is an atomic reference pair; concurrent token refresh calls are serialised with a
Mutex. - CI improvements - test stage runs on every MR; publish is restricted to
main-branch tags.
What’s new in v0.5.0
- Write API -
setSecret,deleteSecret,deleteSecretVersionfor programmatic secret management. secret keys only; public keys throwNexusPublicKeyExceptionimmediately without a network call. NexusRateLimitedException- new exception for HTTP 429 on write endpoints.
