Highlights
Introducing
📊 Native histograms for gRPC server metrics
🏥 Smarter health checks with user-specified set of safe migrations
🧹 Remove LookupResources v1 implementation
🗃️ Improvements for transaction metadata
Foundational work
⌛ Expiring relationships: foundational work to natively support defining relations in schema that last for set amount of time. This release introduces core system updates and changes to the type system and schema compiler.
🎼 Composable schemas: initial steps to support multi-part SpiceDB schemas by implementing local import functionality in this release.
Features
- Type system changes for first-class expiration support by @josephschorr in #2145
- Parser changes for supporting relationship expiration by @josephschorr in #2141
- Schema compiler support for relationship expiration trait by @josephschorr in #2142
- Add explicit option to enable expiration in schema by @josephschorr in #2144
- Add support to the core and tuple packages for relationship expiration by @josephschorr in #2146
- Copy old schema package into new package by @tstirrat15 in #2101
- Implement parsing of local imports by @tstirrat15 in #2103
- Update compiler to consume local imports by @tstirrat15 in #2116
- Handle circular and duplicate imports by @tstirrat15 in #2123
- Enable native histograms in server latency metrics by @bison in #2102
- Make all and any into keywords by @tstirrat15 in #2105
- Adds postgres index to support efficient querying via Watch API by @vroldanbet in #2143
- Add subject filters in schema relation delete to force use of the index by @josephschorr in #2131
- Introduce emission strategy into CockroachDB Watch API by @vroldanbet in #2120
- Introduces ByteSortable method in Revision by @vroldanbet in #2125
Enhancements
- Increase the aggressive postgres instantiation timeout of 5 seconds to 30 seconds #2094 by @anoopsundial in #2095
- Change from using protos to structs for relationships, ONRs and RRs by @josephschorr in #2081
- Updates to tuple helpers by @tstirrat15 in #2107
- Add relationtuple stringifying function by @tstirrat15 in #2112
- Add currently-enabled workflow to release windows by @tstirrat15 in #2087
- Add a new consistency middleware for full-consistency-only callers by @josephschorr in #2109
- Move consistency middleware into pkg so embedded uses can override by @josephschorr in #2110
- Remove internal label from consistency middleware to allow it to be replaced by @josephschorr in #2111
- Small improvements for transaction metadata by @josephschorr in #2115
- Add a flag to allow spicedb to run against non-head migrations by @ecordell in #2137
-Issue a checkpoint when head revision moved outside an application transaction by @vroldanbet in #2139 - Ensure caveats are read in bulk import by @josephschorr in #2147
Fixes
- Fix MySQL test breakage caused by daylight savings change by @josephschorr in #2117
- Change the trivy database to work around rate limits by @josephschorr in #2104
- Remove LookupResources v1 implementation by @tstirrat15 in #2099
- Fix signature of MustParseV1Rel by @tstirrat15 in #2108
- Use complete sentence in error by @drigz in #2118
- Improve PG serialization error on writes by @josephschorr in #2126
- Fix HCLRevision mismatch on zero logical clock by @vroldanbet in #2122
- Add missing limit in schema delta checking by @josephschorr in #2130
- Postgres watch: checkpoints should move the high watermark revision by @vroldanbet in #2140
- Fix cache inconsistency segfault by @tstirrat15 in #2148
- Fix: schema watch causes incorrect delete event for schema changes by @vroldanbet in #2149
- Changes to address flaky DB tests by @josephschorr in #2154
- Remove duplicate clause from namespace deletion in PG driver by @josephschorr in #2153
- Remove t.Parallel from pgbouncer tests to fix flakes by @josephschorr in #2155
- Add missing service label in metrics for consistency by @josephschorr in #2156
Updated dependencies
- pkg/proto: adopt CodecV2 and gRPC buffer pooling by @jzelinskie in #2070
- Bump golang from 1.23.1-alpine3.20 to 1.23.2-alpine3.20 in the docker group by @dependabot in #2114
- Bump the go-mod group across 1 directory with 23 updates by @dependabot in #2119
- Bump golang from 1.23.2-alpine3.20 to 1.23.3-alpine3.20 in the docker group by @dependabot in #2151
- Bump the go-mod group with 18 updates by @dependabot in #2150
New Contributors
- @anoopsundial made their first contribution in #2095
- @drigz made their first contribution in #2118
Full Changelog: v1.38.0...v1.39.0