Skip to content

Releases: authzed/spicedb

v1.2.0

02 Dec 19:12
d31071b
Compare
Choose a tag to compare

Feature Highlights

  • Startup flags have been simplified
  • V1 Watch API added by @jonwhitty
  • Servok no longer required for dispatch
  • Follower read support added to the CockroachDB driver

Docker Images

This release is available at quay.io/authzed/spicedb:v1.2.0 and ghcr.io/authzed/spicedb:v1.2.0

What's Changed

Dependencies

  • Bump golang from 1.17.1-alpine3.13 to 1.17.2-alpine3.13 by @dependabot in #236
  • Bump dependencies by @ecordell in #244
  • bump dependencies by @ecordell in #249
  • Bump golang from 1.17.2-alpine3.13 to 1.17.3-alpine3.13 by @dependabot in #300
  • Bump github.com/Masterminds/squirrel from 1.5.1 to 1.5.2 by @dependabot in #306
  • Bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.6.0 to 2.7.0 by @dependabot in #305
  • Bump alpine from 3.14.2 to 3.15.0 by @dependabot in #301
  • Bump github.com/aws/aws-sdk-go from 1.41.15 to 1.42.16 by @dependabot in #303
  • Bump github.com/jackc/pgtype from 1.8.1 to 1.9.1 by @dependabot in #304
  • Bump github.com/lib/pq from 1.10.3 to 1.10.4 by @dependabot in #308
  • Bump go.opentelemetry.io/otel/trace from 1.1.0 to 1.2.0 by @dependabot in #302
  • Bump github.com/jackc/pgx/v4 from 4.13.0 to 4.14.1 by @dependabot in #309
  • Bump github.com/benbjohnson/clock from 1.2.0 to 1.3.0 by @dependabot in #314
  • Bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.26.0 to 0.27.0 by @dependabot in #313
  • Bump github.com/ory/dockertest/v3 from 3.8.0 to 3.8.1 by @dependabot in #307
  • Bump go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from 0.26.0 to 0.27.0 by @dependabot in #310

New Contributors

Full Changelog: v1.1.0...v1.2.0

v1.1.0

26 Oct 22:12
cb5a345
Compare
Choose a tag to compare

Feature Highlights

  • SpiceDB now hedges requests internally to improve reliability and performance
  • Postgres datastore now supports garbage collection
  • Postgres datastore added an index that improves performance
  • spicedb serve now has serves an HTTP/JSON API on port 8443

Docker Images

This release is available at quay.io/authzed/spicedb:v1.1.0

Changelog

Expand the Changelog

45c8c7d .github: add CLA workflow
82d63c1 .github: add kubeval linting
ac135ea .github: disable flaky caching in golangci action
09686bd .github: label hidden files as tooling
c30113c .github: split linting and building actions
b906977 Add Dispose method on datastore in prep for GC worker for postgres
061db12 Add Must* methods for any methods that can panic in tuple pkg
daf7807 Add a selecting a datastore document
72d3901 Add additional docs on ZedTokens and LookupResources
d841e87 Add an integration test for the test server
708dab5 Add background garbage collection to Postgres data store
51ef755 Add documentation about ZedTokens/Zookies and consistency
21e1b85 Add gauges for transaction and relationship count removed by GC
75b5a6f Add prometheus metric for postgres GC duration
42019c0 Adds index on transations table timestamp
1458362 Cleanup the CachingDispatcher when binary shuts down
359afaa Fix ordering of zed arguments in the dashboard
dcdae72 Fix: small error
fd4749a Follow same name convention as exixting indexes
968a8b7 Make sure to cleanup goroutine generated by the namespace manager and the parser
df88351 Make sure to use the checked possibly-nil pointer in memdb
56f3feb Merge pull request #115 from authzed/testserver-test
4f18a6b Merge pull request #151 from jzelinskie/dashboard-fix
3740c6c Merge pull request #152 from ecordell/fix-brew-head
79a9682 Merge pull request #155 from mterron/dockerfile-improvementes
9068372 Merge pull request #157 from ecordell/brew-completion
a34ab44 Merge pull request #159 from authzed/dependabot/go_modules/github.com/aws/aws-sdk-go-1.40.53
ec097e4 Merge pull request #160 from authzed/dependabot/go_modules/google.golang.org/grpc-1.41.0
9df7471 Merge pull request #162 from NickUfer/fix_spelling
8931d76 Merge pull request #164 from ecordell/e2e-timeout
72fd40a Merge pull request #165 from ecordell/fix-bad-zookie-flake
baa854d Merge pull request #166 from ecordell/ds-timeout
ddeee97 Merge pull request #168 from authzed/postgres-gc
39b64ef Merge pull request #169 from jzelinskie/simple-k8s
5fcd7ff Merge pull request #172 from authzed/selecting-a-datastore
f82f5c4 Merge pull request #173 from jzelinskie/separate-lint
e264e9c Merge pull request #174 from authzed/zedtoken-docs
713a97c Merge pull request #175 from ecordell/badzookie-flake
424037a Merge pull request #176 from authzed/must-tuple
ed2e4d5 Merge pull request #178 from ecordell/transaction-ttl
d926ca4 Merge pull request #181 from authzed/further-cleanup
00d2cf6 Merge pull request #184 from 0xflotus/patch-1
ca82b60 Merge pull request #187 from authzed/request-hedging
4e70dde Merge pull request #188 from jzelinskie/gateway
1347927 Merge pull request #190 from authzed/zed-args
6a69f8d Merge pull request #193 from jzelinskie/fix-golangci
f8122b9 Merge pull request #194 from josephschorr/memdb-nil-guards
2ff33fc Merge pull request #195 from ecordell/multiarch
2ea1f2e Merge pull request #197 from authzed/postgres-prom
f2cfaf9 Merge pull request #198 from josephschorr/update-dockertest
ec71855 Merge pull request #201 from jzelinskie/bump-grpcutil
1d52699 Merge pull request #206 from jzelinskie/cla
5b5ace0 Merge pull request #211 from costap/main
eff4d2f Merge pull request #212 from jzelinskie/distroless
9af26b2 Merge pull request #213 from ecordell/fix-dockerrelease
b15bb9c Merge pull request #214 from ecordell/rm-nsswitch
bc40650 Merge pull request #215 from josephschorr/cleanup-dispatcher-cache
eab6524 Merge pull request #216 from josephschorr/zedtoken-lookup
833a3d4 Merge pull request #218 from ecordell/release-dockerfile-simplify
cb5a345 Merge pull request #219 from ecordell/multiplatform
49a1105 Switch to use the temporary branch of Ristretto until dgraph-io/ristretto#286 is merged
bc195ca Typo fix
5ced015 Update handling of datastore Close to disconnect connections and change to use an errgroup to clean up Postgres GC worker
b370632 Update the dockertest version
fd1cfe0 Use Docker entrypoint instead of CMD. Enables using spicedb from docker directly. docker run quay.io/authzed/spicedb serve --grpc-preshared-key "somerandomkeyhere" --grpc-no-tls
bbc2c05 add JSON/HTTP API server via gRPC gateway
0bc713b add a datastore proxy which does request hedging
0dcfe48 add prometheus metrics to the heding datastore
2756965 add request hedging as an option to the serve command
ad7e1fd allow head install from brew
58b8c69 build(deps): bump github.com/aws/aws-sdk-go from 1.40.47 to 1.40.53
56b4198 build(deps): bump google.golang.org/grpc from 1.40.0 to 1.41.0
bf75774 bump testreadbadzookie timeout
06fee34 cmd: add TLS flags for gateway server
e9b164a cmd: default HTTP server to 8443
89576ad cmd: expand all string input
c1e10de dashboard: correct zed usage
0b66478 docs: fixes minor spelling mistakes
7edfd0c e2e: plumb http server flags
e0fee1e ensure e2e doesn't time out when it would have succeeded
2089465 fix TestReadBadZookieFlake
6472d7a fix docker release images
5750c29 fix the postgres prom GC metrics to respect enable prom option
fddec6b gateway: add config docstrings
699c683 gateway: appease the linter
f42234a gateway: extract into package and add metrics
c36faef gateway: serve OpenAPI Schema at /openapi.json
377c53a gomod: bump grpcutil
5532b44 gomod: bump to authzed-go v0.3.0
e103240 increase gc window for revision expiration
fd42ad4 install completions when installing via brew
536b4a2 internal/auth: remove authn annotator
f119e2a internal/gateway: add otel middleware
4e604f5 internal/gateway: test tracing propagation
66372f8 internal/gateway: use prom namespace & subsystem
5405258 k8s: init basic deployment
c682e67 lint: lint all markdown files
b1eb53a multiarch docker image releases
321077d release: support additional platforms
1e6d62e remove nsswitch file from release image
5f3e1ad set a very short ttl in the crdb e2e tests
b3a6931 simplify release dockerfile
3250215 track original and hedged datastore request durations separately
364708f use mocked time for testing request hedging

v1.0.0

30 Sep 13:53
b629365
Compare
Choose a tag to compare

For Authzed's first birthday, our gift isn't for us, but the community.

Today, we're as excited as we've ever been.

Today, the database powering the core of Authzed, SpiceDB, is now open source!

SpiceDB is the most faithful implementation of Google's Zanzibar paper outside of the original system at Google.

Developers create a schema that models their permissions requirements and use a client library to apply the schema to the database, insert data into the database, and query the data to efficiently check permissions in their applications. Leveraging a system like SpiceDB has become an industry best-practice and is being used to great success at companies large (Google, GitHub, Airbnb) and small (Carta, Authzed).

As we develop SpiceDB, we will not only maintain compatibility with the original paper, but continue to introduce innovations that improve overall user experience. An example of this is our Schema Language, which compiles to Zanzibar's Namespace Configs, but adds far more intuitive syntax and type-safety. However, these types of features cannot be created in a vacuum, thus all future development on SpiceDB will be done entirely in the open.

We invite everyone to collaborate with us on GitHub and join our discussions on the Zanzibar Discord.

Initial features included in SpiceDB that distinguish it from other systems include:

Getting Started

Get a taste of the schema language

Learn how to integrate an application

Installation

Installing SpiceDB

SpiceDB is currently packaged by Homebrew for both macOS and Linux.
Individual releases and other formats are also available on the releases page.

brew install authzed/tap/spicedb

SpiceDB is also available as a container image:

docker pull quay.io/authzed/spicedb:latest

For production usage, we highly recommend using a tag that corresponds to the latest release, rather than latest.

Running SpiceDB locally

spicedb serve --grpc-preshared-key "somerandomkeyhere" --grpc-no-tls

Visit http://localhost:8080 to see next steps, including loading the schema

Changelog

Expand the Changelog

f9fa9a2 *.yaml: lint all YAML files
af8a479 *: migrate to new v1.RelationshipFilter
871436b *: use grpc health packages
6711fad .github: add API labels
f61bf2d .github: add step for diffing go generate output
3defadd .github: add yamllint
6dfed06 .github: auto label tests
24d226b .github: enforce linting with whitelisted TODOs
eb52959 .github: fix buf push action
6963abc .github: fix go mod tidy check
cbaee60 .github: init
f16d042 .github: properly set release as output
936992a .github: tag container with release output
6393c87 Add ExpandPermissionTree to the V1 API
3a1d882 Add Limit support to tuple queries and set Limit(1) on WriteConfig checks
e98407b Add ListNamespaces and remove IsEmpty
c6f8d90 Add Lookup in zed-testserver
6518be1 Add ONR serialization and use it everywhere possible.
b35f569 Add REDACTED example and fix loading issues associated with it
63c3120 Add a benchmark for check operations.
d4e5ba5 Add a better first run experience that shows the command to run when no other arguments are specified
021d2cc Add a call to verify the test server is properly stripped
55dc464 Add a check dispatcher and implementation.
a49fb56 Add a concurrent graph expander.
63735c7 Add a datastore Revision method.
18884a0 Add a datastore proxy that validates all calls
b190dd2 Add a flexible postgres config system.
67f7026 Add a jaeger service and the ability to report stats to it.
c1ae3c3 Add a maximum recursion depth.
7345b1e Add a namespace cache to graph evaluations.
0e8d30a Add a postgres database query benchmark.
8a3c21e Add a secrets package which mimicks python's.
f149da2 Add a test for datastore write preconditions.
7b42d15 Add a test for namespace delete. Refactor memdb tests to a separate package.
5135d29 Add a test for updating a schema and its checks on relationships
9bdeca1 Add a zed-test binary tool for writing unit tests against
ac37782 Add a zookie encoding/decoding library.
6fb5dad Add additional comments and some cleanup to the validationfile pkg
a4423dc Add additional tests for typesystem and lookup and fix some smaller items as per code review
d7f50e6 Add arch suffix to released zed-testserver binaries
e96a676 Add auto-release of zed-testserver on any releases in monorepo
a43a814 Add automatic query splitting when the SQL query grows beyond a defined boundary in size
7521fd9 Add basic dashboard for guidance to new users
c707af5 Add basic lexer and parser for the Schema DSL
f54dbd7 Add basic proto -> DSL generator
d7ef928 Add basic tracing to SpiceDB
241aad8 Add better tracing to first party services.
7b6670f Add consistency tests and fix bugs discovered as a result
527593a Add context to datastore interface and thread everywhere.
a18dd55 Add datastore attr to tracing span
48ab5de Add datastore tuple query tests for reverse queries, and add limits for faster verification in WriteConfig
a11df78 Add datastore url config for postgres support.
f854f5a Add datastore watch and the watch RPC.
9aea9e4 Add developer CI and remove REDACTED CI
22d5d71 Add developer-service subcommand
fa2ff18 Add error test cases to Lookup test in ACL tests
33305ed Add format button to Playground
ced742e Add full consistency testing of the developer API
99501d9 Add go generate to CI
c7d958c Add grpc server metrics to spicedb.
cb044e7 Add initial support for lookup across intersection and exclusion
d0ca4e1 Add latency simulator to the memdb datastore.
e73cd23 Add log tracer
ef5c296 Add logging to lookup shared issues
f8beaaf Add migration with new reverse lookup indexes for Postgres
432fead Add namespace and relation identifier validation.
6798707 Add namespace diff system
99251c4 Add namespace validator.
bdb50ab Add ok status to DSL generator indicating whether the generation had any legacy issues
9ad5c99 Add packaging to run spicedb service.
13ad9cd Add pgx timezone comment
2bdf6cd Add pgxpool stat collector for prometheus
c04621d Add pkg for tuple serialization and deserialization.
e772729 Add position information to parsed assertions
634d94c Add preshared key auth to spicedb.
e05d378 Add proto validation rules for all requests. Validate request messages for all handlers. Remove the old namespace definition validation code.
6abf320 Add readonly port to zed-testserver
f54d70e Add relation type to the metadata on construction
42f317a Add revision fuzzing and test.
dd84050 Add schema service to zed-testserver
dac9fdb Add shared errors interfaces and use the new types in the services
e1ba314 Add source position mapper for use once we read source files
ca9d6f8 Add support for cross-tenant references and have generator always produce the fully cross-tenanted defs
dee7b5c Add support for loading in schema and Relationships string list from the validation file format
8707d34 Add support for metadata on namespaces and relations
ae58bd8 Add support for recursive expansion
3cf04a0 Add...

Read more