v0.16.2
This release includes a security hardening pass, shard splitting support, and multiple stability improvements around Kubernetes config watching, namespace placement, notification trimming, and coordinator behavior.
Compatibility
- Security hardening may reject invalid namespace names, TLS versions below TLS 1.2, inconsistent TLS min/max settings, and malformed authority metadata that was previously accepted.
- TLS CA certificate loading now processes all certificates in multi-cert PEM bundles.
Requirements
- TLS configuration must use TLS 1.2 or newer.
- Namespace names must satisfy the stricter validation pattern.
- Review internal/admin authentication settings if those APIs should be protected; optional auth configuration is now supported.
Security Fixes
- Enforced OIDC audience validation and documented the multi-audience check path (#1024).
- Redacted bearer tokens from authentication failure logs (#1025).
- Fixed TLS CA chain parsing for multi-cert PEM bundles (#1026).
- Fixed session heartbeat race that could panic under concurrent session close and keepalive (#1027).
- Hardened namespace validation, standalone authority validation, enum handling, context cancellation, and TLS version validation (#1028, #1030, #1031, #1032).
- Updated vulnerable dependencies and Alpine/OpenSSL base packages (#950, #995, #1007, #1023).
Public API Changes
- Added shard splitting data server support, coordinator orchestration, and client re-routing to child shards after split (#945, #957, #970).
- Added custom gRPC resolver support through client dial options (#949).
- Added
--random-payloadflag tooxia perf(#968). - Internal and admin gRPC servers now support optional authentication configuration (#1029).
Metrics Changes
- Metrics endpoints now support optional TLS configuration.
- No metric names or labels were removed in this release.
Operational Changes
- Coordinator now reacts to ConfigMap cluster config changes and reconnects Kubernetes watches after expiration.
- Namespace status is published during initial placement.
- Notification trimming handles offset gaps more safely.
- Leader selection, RF=1 load balancing, Kubernetes metadata updates, and status resource handling were hardened.
- Replaced a status-resource CAS loop with atomic
ApplyChangesand used vtproto for notification batch unmarshalling.
Changes Since v0.16.1
- security: fix OIDC, token logging, TLS chain, heartbeat, namespace, authority, enum, and TLS validation issues (#1024-#1032)
- split: add shard split observer/snapshot, orchestration, and client re-routing support (#945, #957, #970)
- client: add custom gRPC resolver support (#949)
- perf: add random payload generation (#968)
- coordinator: fix ConfigMap watch/update and namespace placement behavior (#1013, #1014, #1021)
- dataserver: fix notification trimming and node/member handling (#1018, #1020, #1011)
- dependencies: update vulnerable packages and Alpine/OpenSSL base image (#950, #995, #1007, #1023)
Full Changelog: v0.16.1...v0.16.2