a permissions database: store relationships, ask who may do what, get an answer in milliseconds.
SpiceDB is an open source permissions database inspired by the system Google described in its Zanzibar paper. Rather than scattering permission checks through application code, you store relationships such as a user being a reader of a document, describe in a schema how those relations compose into permissions, and then ask the server whether a given subject may perform a given action on a given object. It answers a check for a single decision, and lookup queries when you need to filter a list to exactly what someone is allowed to see. Permissions can be computed rather than stored, so granting someone the right to edit can grant the right to view without a second record existing anywhere. It exposes a gRPC interface, which every official client speaks, alongside an HTTP and JSON gateway, and ships with the zed command line client.
SpiceDB refuses to start without a pre shared key, so there is no default credential to inherit; the risk is an image that bakes one in, and this one never does. The key, the database password and the certificate are all generated on the first boot of every instance and written to a root only file, so no two deployments share a credential. Both interfaces are served over TLS, because a pre shared key travels on the wire with every request. Two upstream defaults that suit a cluster rather than an appliance are corrected: the Prometheus and pprof debug endpoint is bound to the loopback address instead of every interface, and telemetry reporting to an external endpoint is switched off. A co located PostgreSQL keeps the schema and relationships durable across restarts, the image carries executable self tests that are each proven against a known bad input, a paired deploy guide walks through the whole workflow, and 24/7 cloudimg support is included.