Skip to content

Releases: authzed/spicedb

v1.51.0

24 Mar 16:27
b041b8f

Choose a tag to compare

Changed

  • Updated DevContext and LSP to support composable schemas (#2965)

Fixed

  • Fix increase in memory usage brought in v1.50.0 due to replacing protoc-gen-validate with protovalidate (#2984)
  • Fix duplicate diagnostics in LSP server when VS Code pulls diagnostics (#2977)
  • In DevContext's schema position mapper, only the first occurrence of a caveat parameter could be found (#2972)

What's Changed

Full Changelog: v1.50.0...v1.51.0

Docker Images

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

v1.50.0

19 Mar 19:32
c4410bc

Choose a tag to compare

⚠️ This release comes with an increase in memory usage that we will mitigate in v1.51.0.

Added

  • Query Planner: New pkg/query/queryopt package for building optimizations (#2970)
  • Added tracing to request validation (#2950)

Changed

  • Updated CI so that Postgres tests run against v18 which is GA and not against v13 which is EOL (#2926)
  • Use protovalidate instead of protoc-gen-validate for request validation (#2863, #2596, #2959)
  • Query Planner optimization: in Check requests, prune branches that cannot lead to the subject type specified (#2968)
  • Added lr and ls to --experimental-query-plan for those endpoints, as well as in-memory statistics for optimizing the plans (#2929)

Fixed

  • Regression introduced in 1.49.2: missing spans in ReadSchema calls (#2947)
  • Long standing bug in the way postgres revisions were being compared. Sometimes revisions that were actually overlapping were erroneously being ordered. (#2958)
  • Prevent panics in schema compiler, which can reproduce if using the VSCode extension or zed (#2971)

What's Changed

New Contributors

Full Changelog: v1.49.2...v1.50.0

Docker Images

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

v1.49.2

02 Mar 15:24
a01eddc

Choose a tag to compare

Added

  • feat(query planner): add recursive direction strategies, and fix IS BFS (#2891)
  • feat(query planner): introduce query plan outlines and canonicalization (#2901)
  • Schema v2: introduces support for PostOrder traversal in walk.go (#2761) and improve PostOrder walker cycle detection (#2902)

Changed

  • Begin deprecation of library "github.com/dlmiddlecote/sqlstats" (#2904).
    NOTE: in a future release, MySQL metrics will change.
  • Add support for imports and partials to the schemadsl package that drives the LSP and development server (#2919).
  • Added support for CRDB 26.1 by fixing how version information is read from the cluster

Fixed

  • enforce graceful shutdown on serve and serve-testing (#2888)
  • Spanner metrics regression (#2329)
  • improve streaming dispatch logging and observability (#2915)

What's Changed

Full Changelog: v1.49.1...v1.49.2

Docker Images

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

v1.49.1

09 Feb 15:05
d842a97

Choose a tag to compare

Highlights

What's Changed

  • fix: update IterSubjects for wildcards and Alias iterators for confomance by @barakmich in #2864
  • ci: use arm runners in integration tests by @tstirrat15 in #2877
  • fix: prevent panic on malformed cursor by @tstirrat15 in #2878
  • fix: improve LR consistency and support multiple resourcetypes by @barakmich in #2875
  • chore: add metrics and tests to all cache implementations by @miparnisari in #2874
  • fix: query both subrelation and ellipses on arrows for IterResources by @barakmich in #2879
  • chore(deps): bump the github-actions group with 5 updates by @dependabot[bot] in #2870
  • feat: finish LR consistency tests with the fix to the recursive iterator by @barakmich in #2881
  • fix: handle self keyword in warnings checks, and check these warnings are error-free in consistency by @barakmich in #2884
  • fix: make sure that use self comes out of formatter when self is used by @tstirrat15 in #2885
  • build: add new mustcallcheck analyzer and fix instances by @tstirrat15 in #2886
  • chore: implement self in schemav2 by @tstirrat15 in #2887

Full Changelog: v1.49.0...v1.49.1

Docker Images

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

v1.49.0

03 Feb 20:16
10cc7f7

Choose a tag to compare

Highlights

Support for self keyword added to permissions

Previously, if you wanted to represent something like "a user should be able to view themselves," this required adding a relation to the schema and then writing a relation from the user to itself. We've added support for a self keyword in permissions that represents this directly, which reduces storage requirements, removes the need for a trip to the database, and removes a relationship that needs to be synced.
For more information, see the Docs and the PR: #2785

Experimental

Postgres Foreign Data Wrapper

In #2806, we added a new experimental command to SpiceDB that serves a Postgres Foreign Data Wrapper: spicedb postgres-fdw [flags].
If you configure your Postgres instance accordingly, it can speak to SpiceDB through the FDW as a proxy, allowing you to write queries like:

-- Check if user:alice has permission to view document:readme
SELECT has_permission
FROM permissions
WHERE resource_type = 'document'
  AND resource_id = 'readme'
  AND permission = 'view'
  AND subject_type = 'user'
  AND subject_id = 'alice';

You can now express checks and lookups as SELECTs and JOINs in your main application code, and you can read, write, and delete relationships using Postgres as the client.
For more information, see the documentation in the repo.

Warnings
  • This feature is experimental. We'd welcome you trying it out and providing feedback, but it will likely change before its final GA'd form.
  • This feature DOES NOT solve the Dual-Write Problem. You can make updates in the context of a Postgres transaction, but Postgres's FDW protocol doesn't support a two-phase commit semantic, which means there are still failure modes where a transactional write will land in SpiceDB but not Postgres or vice-versa.

Query Planner

This release includes the first experimental handle on our new Query Planner. If you run SpiceDB with the new --experimental-query-plan flag, SpiceDB will use the query planner to resolve queries.
This is mostly provided for the curious; there's still work to do on statistics sources and optimizations before we expect that it will provide performance benefits across most workloads.
We don't yet recommend turning on this flag in your system outside of experiments in your local or development environments. We'll continue work and let you know when it's ready for production.

Smaller Things

  • A fix for cockroach's connection pooler where the pooler won't report itself as ready until all connections are ready to be used: #2766
  • A fix for a segfault when providing datastore bootstrap files with caveats in them: #2784
  • Touching an existing relationship and providing an empty expiration field will now clear an existing expiration value in CRDB and MySQL: #2796
  • A fix for lexing Unicode characters in string literals in schemas: #2836
  • We've deprecated datastore hedging, as it didn't provide performance gains and led to a less stable system: #2819
  • There's a new --datastore-watch-change-buffer-maximum-size flag for the Watch API that determines how many changes SpiceDB will buffer in memory before it emits an error. This protects against OOMkills when the backing datastore fails to produce a checkpoint: #2859

What's Changed

Read more

v1.48.0

12 Dec 01:37
12293b4

Choose a tag to compare

Added

  • feat: add Memory Protection Middleware (enabled by default, use --enable-memory-protection-middleware=false to disable) by @miparnisari in #2691.
    ⚠️ Now, if your server's memory usage is too high, incoming requests may be rejected with code "ResourceExhausted" (HTTP 429).

Changed

Fixed

Full Changelog: v1.47.1...v1.48.0

Docker Images

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

v1.47.1

21 Nov 00:35
b55a9f6

Choose a tag to compare

Highlights

  • CVE Fix: Fixed a bug that would result in missing resources in LookupResources when certain permission structures are present (Checks were unaffected)
  • Upgrade Go to latest version to fix CVE by @tstirrat15 in ttps://github.com//pull/2671

Fixed

  • do not warn if requestid middleware errors due to ErrIllegalHeaderWrite by @miparnisari in #2654
  • Spanner: "concurrent write to map error" in Watch API by @miparnisari in #2694
  • Postgres: set missing fields in postgresRevision.MarshalBinary by @ostafen in #2708
  • Postgres & MySQL: duplicate metrics error with read replicas (#2518) by @miparnisari in #2707

Updated

  • Performance improvements for WriteSchema in #2697 and for ReadRelationships in #2632
  • add docker compose setup with grafana dashboard by @miparnisari in #2616
  • disable tracing of health check requests by @ivanauth in #2614

New Contributors

Full Changelog: v1.47.0...v1.47.1

Docker Images

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

v1.46.2

24 Oct 16:23
afd982c

Choose a tag to compare

Added

  • relationship expiration is now on by default by @miparnisari in #2605
  • add man page generation support by @ivanauth in #2595
  • add fgprof wall-clock profiler by @vroldanbet in #2618
  • CRDB: add write backpressure when write pool is overloaded by @ecordell in #2642
    • ⚠️ With this change, Write APIs now return ResourceExhausted errors if there are no available connections in the pool

Updated

Fixed

New Contributors

Full Changelog: v1.46.0...v1.46.2

Docker Images

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

v1.46.0

06 Oct 23:53
5d778d4

Choose a tag to compare

Fixed

Updated

New Contributors

Full Changelog: v1.45.4...v1.46.0

Docker Images

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

v1.45.4

16 Sep 18:18
4ff0d47

Choose a tag to compare

Added

Changed

Fixed

  • fix: improve the cluster error message when errors from all dispatchers by @josephschorr in #2543
  • fix: handling of multiple metadata for a single revision in Watch by @josephschorr in #2563

Full Changelog: v1.45.3...v1.45.4

Docker Images

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