github authzed/spicedb v1.54.0

6 hours ago

Security

  • Prevent cache poisoning. The dispatch Check cache key now incorporates check hints. See GHSA-4vrg-r928-h5vv

Added

  • Query Planner: fast serialize/deserialize for query plans (#3122)

Changed

  • Cache: switch to otter as the primary cache implementation (#3112)
  • Server handles: GRPCDialContext as a handle on the server used deprecated gRPC methods. We modernized it and renamed it to NewClient (#3147)

Fixed

  • The watching schema cache (--enable-experimental-watchable-schema-cache) no longer enters permanent fallback on transient watch errors. A new supervisor restarts the watch cycle with bounded exponential backoff and only treats caller-driven cancellation or unsupported-watch as terminal (#3134)
  • Watch consumers that request WatchCheckpoints now eventually observe every revision returned by WriteRelationships as a checkpoint. MemDB regressed this in #2578 for no-op writes and MySQL never emitted checkpoints at all prior to now. Both now emit a checkpoint at the new revision. (#3114)
  • When Query Planner evaluates a union, short-circuit if one of the branches yields a positive un-caveated result (#3120)
  • DispatchQueryPlan previously did not try to use the singleflight middleware for check calls. (#3119)
  • Fixed regression introduced in 1.53.0. Postgres HeadRevision no longer allocates a new transaction ID on every call (#3127)
  • Fixed regression introduced in 1.53.0 for MySQL migration scripts (#3129)
  • Query Planner: LookupSubjects no longer returns a subject excluded from a wildcard (e.g. viewer:* - banned) when the exclusion feeds an intersection (experimental --experimental-query-plan ls) (#3136)
  • Tracing: When server is shutting down, flush traces. Also, elide the need for setting OTEL_EXPORTER_OTLP_ENDPOINT. (#3108)
  • Fixed a LookupSubjects issue in the query planner around the handling of wildcards in compound permissions (#3140)
  • MySQL: identifiers (object/subject IDs and relationship counter names) are now stored with a case-sensitive (binary) collation, matching the Postgres, CockroachDB, and Spanner datastores. Previously, identifiers differing only in letter case (e.g. Foo and foo) incorrectly collided in unique indexes and lookups. ⚠️ The migration rebuilds the relation_tuple table in place via ALTER TABLE, which can hold a metadata/table lock for a long time on large datasets — run the upgrade in a low-traffic window, or apply it with an online schema-change tool (e.g. gh-ost). (#3161)
  • server.NewConfigWithOptionsAndDefaults now populates Config and its embedded structs with the same defaults as the CLI flags, fixing zero-value behavior when embedding SpiceDB as a library. (#3156)

What's Changed

New Contributors

Full Changelog: v1.53.0...v1.54.0

Docker Images

This release is available at authzed/spicedb:v1.54.0, quay.io/authzed/spicedb:v1.54.0, ghcr.io/authzed/spicedb:v1.54.0

What's Changed

New Contributors

Full Changelog: v1.53.0...v1.54.0

Docker Images

This release is available at authzed/spicedb:v1.54.0, quay.io/authzed/spicedb:v1.54.0, ghcr.io/authzed/spicedb:v1.54.0

Don't miss a new spicedb release

NewReleases is sending notifications on new releases.