Skip to content

v0.16.2

Choose a tag to compare

@github-actions github-actions released this 13 Apr 09:45
· 116 commits to main since this release
980fa7d

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-payload flag to oxia 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 ApplyChanges and 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