Highlights
- PHP 8.3+ - pure PHP, no framework required
- Guzzle 7 HTTP client with configurable timeouts
- TTL cache with ETag/304 support - reads never block the network after the first sync
- SSE live updates via
connectStream()(long-running CLI daemons and queue workers only) - Public-key vs secret-key access control - public-key clients get
NexusPublicKeyExceptionfromgetSecret - Workload Identity Federation - Kubernetes / AWS IRSA / GCP / Azure auto-detected; AWS IAM (
aws_iam) for ECS/Fargate/Lambda/plain-EC2 (v0.9.0) - Write API (
setSecret,deleteSecret,deleteSecretVersion) for secret keys - A/B testing (
evaluateAb) for the AB Testing add-on - File-type secrets (
getSecretFilePath) - materialised to a temp file; cleaned up in__destruct - 402/429 handling with quarantine detection (
NexusQuarantinedExceptionwith$reasonand$expiresAt)
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 optionalaws/aws-sdk-phppackage. See Workload identity.- Security hardening - the base URL must be
https://(loopback excepted); expired WIF sessions refresh transparently on every request path and fail closed (a WIF-only client never falls back to an empty API key); the GCP metadata and token-exchange reads are size-bounded; auto-detection stats the AWS/Azure token files instead of trusting a bare env var; a non-positiveexpires_inis clamped.
What’s new in v0.8.2
- WIF GCP fix - the
gcpprovider now fetches a real Google-signed OIDC identity token from the GCE metadata server. It previously read theGOOGLE_APPLICATION_CREDENTIALSkey file, which is not a JWT and was rejected by the token exchange. Auto-detection was aligned with the actual token sources. Verified end-to-end against a real GCE workload.
What’s new in v0.8.1
- Docs fix - corrected the example service base URL from the non-existent
https://<slug>.api.westyx.devto the correcthttps://<slug>.westyx.dev(the deployed host format). No API or behavior change.
What’s new in v0.8.0
- OpenFeature provider - new
westyx/nexus-openfeatureComposer package implementing the OpenFeature PHP SDK provider interface. Install separately; wraps an existingNexusClientwith no additional network calls.
What’s new in v0.5.1
- Requires PHP 8.3+ - PHP 8.1 and 8.2 are EOL; the SDK now requires PHP 8.3 or later.
- Security improvements - exception messages contain only status codes; file-type secret paths are fully hashed.
- Reliable streaming - improved quarantine handling and full SSE event coverage.
What’s new in v0.5.0
- Path prefix update - API endpoints use
/v1/; update yourbaseUrlto<slug>.westyx.dev. - Quarantine handling - new
429quarantine response pauses sync until expiry;NexusQuarantinedExceptionexposes$reasonand$expiresAt. - Write API -
setSecret,deleteSecret,deleteSecretVersionfor services using a secret key. is_publicremoved - PK keys now see all configs and flags without theis_publicfilter.
Installation
composer.json - see Installation for the full setup.
Latest release: v0.10.0 (2026-07-05 - version alignment across the Westyx Nexus SDK suite).
