Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
spicedb / usr / share / man / man1 / spicedb.1
Size: Mime:
.TH SPICEDB 1 "2026-05-13" "spicedb" "A modern permissions database"
.SH NAME
spicedb - A modern permissions database
.SH SYNOPSIS
\fBspicedb\fP [\fIoptions\&.\&.\&.\fP] [\fIargument\&.\&.\&.\fP]
.SH DESCRIPTION
A database that stores and computes permissions
.SH OPTIONS
.TP
\fB--log-format\fP
format of logs ("auto", "console", "json")
.TP
\fB--log-level\fP
verbosity of logging ("trace", "debug", "info", "warn", "error")
.TP
\fB--skip-release-check\fP
if true, skips checking for new SpiceDB releases
.SH COMMANDS
.TP
\fBcompletion\fP
.RS 4
Generate the autocompletion script for the specified shell
.RE
.TP
\fBCOMMANDS\fP
.RS 4
\fBbash\fP
.RS 4
Generate the autocompletion script for bash
.RE
.TP
\fBOPTIONS\fP
.RS 4
\fB--no-descriptions\fP
disable completion descriptions
.RE
.TP
\fBfish\fP
.RS 4
Generate the autocompletion script for fish
.RE
.TP
\fBOPTIONS\fP
.RS 4
\fB--no-descriptions\fP
disable completion descriptions
.RE
.TP
\fBpowershell\fP
.RS 4
Generate the autocompletion script for powershell
.RE
.TP
\fBOPTIONS\fP
.RS 4
\fB--no-descriptions\fP
disable completion descriptions
.RE
.TP
\fBzsh\fP
.RS 4
Generate the autocompletion script for zsh
.RE
.TP
\fBOPTIONS\fP
.RS 4
\fB--no-descriptions\fP
disable completion descriptions
.RE
.RE
.TP
\fBdatastore\fP
.RS 4
datastore operations
.RE
.TP
\fBCOMMANDS\fP
.RS 4
\fBgc\fP
.RS 4
executes garbage collection
.RE
.TP
\fBOPTIONS\fP
.RS 4
\fB--datastore-allowed-migrations\fP
migration levels that will not fail the health check (in addition to the current head migration)
.TP
\fB--datastore-bootstrap-files\fP
bootstrap data yaml files to load
.TP
\fB--datastore-bootstrap-overwrite\fP
overwrite any existing data with bootstrap data (this can be quite slow)
.TP
\fB--datastore-bootstrap-timeout\fP
maximum duration before timeout for the bootstrap data to be written
.TP
\fB--datastore-conn-healthcheck-interval\fP
amount of time between connection health checks in a remote datastore's connection pool
.TP
\fB--datastore-conn-max-idletime\fP
maximum amount of time a connection can idle in a remote datastore's connection pool
.TP
\fB--datastore-conn-max-lifetime\fP
maximum amount of time a connection can live in a remote datastore's connection pool
.TP
\fB--datastore-conn-max-lifetime-jitter\fP
waits rand(0, jitter) after a connection is open for max lifetime to actually close the connection (default: 20%!o(MISSING)f max lifetime, 30m for CockroachDB)
.TP
\fB--datastore-conn-max-open\fP
number of concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-conn-min-open\fP
number of minimum concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-read-healthcheck-interval\fP
amount of time between connection health checks in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-read-max-idletime\fP
maximum amount of time a connection can idle in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-read-max-lifetime\fP
maximum amount of time a connection can live in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-read-max-lifetime-jitter\fP
waits rand(0, jitter) after a connection is open for max lifetime to actually close the connection (default: 20%!o(MISSING)f max lifetime, 30m for CockroachDB)
.TP
\fB--datastore-conn-pool-read-max-open\fP
number of concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-read-min-open\fP
number of minimum concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-write-healthcheck-interval\fP
amount of time between connection health checks in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-write-max-idletime\fP
maximum amount of time a connection can idle in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-write-max-lifetime\fP
maximum amount of time a connection can live in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-write-max-lifetime-jitter\fP
waits rand(0, jitter) after a connection is open for max lifetime to actually close the connection (default: 20%!o(MISSING)f max lifetime, 30m for CockroachDB)
.TP
\fB--datastore-conn-pool-write-max-open\fP
number of concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-write-min-open\fP
number of minimum concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-conn-uri\fP
connection string used by remote datastores (e\&.g\&. "postgres://postgres:password@localhost:5432/spicedb")
.TP
\fB--datastore-connect-rate\fP
rate at which new connections are allowed to the datastore (at a rate of 1/duration) (CockroachDB driver only)
.TP
\fB--datastore-connection-balancing\fP
enable connection balancing between database nodes (CockroachDB driver only)
.TP
\fB--datastore-credentials-provider-name\fP
retrieve datastore credentials dynamically using ("aws-iam")
.TP
\fB--datastore-disable-stats\fP
disable recording relationship counts to the stats table
.TP
\fB--datastore-disable-watch-support\fP
disable watch support (only enable if you absolutely do not need watch)
.TP
\fB--datastore-engine\fP
type of datastore to initialize ("cockroachdb", "mysql", "postgres", "spanner")
.TP
\fB--datastore-experimental-column-optimization\fP
enable experimental column optimization
.TP
\fB--datastore-follower-read-delay-duration\fP
amount of time to subtract from non-sync revision timestamps to ensure they are sufficiently in the past to enable follower reads (CockroachDB and Spanner drivers only) or read replicas (Postgres and MySQL drivers only)
.TP
\fB--datastore-gc-interval\fP
amount of time between passes of garbage collection (Postgres driver only)
.TP
\fB--datastore-gc-max-operation-time\fP
maximum amount of time a garbage collection pass can operate before timing out (Postgres driver only)
.TP
\fB--datastore-gc-window\fP
amount of time before revisions are garbage collected
.TP
\fB--datastore-include-query-parameters-in-traces\fP
include query parameters in traces (Postgres and CockroachDB drivers only)
.TP
\fB--datastore-max-tx-retries\fP
number of times a retriable transaction should be retried
.TP
\fB--datastore-migration-phase\fP
datastore-specific flag that should be used to signal to a datastore which phase of a multi-step migration it is in
.TP
\fB--datastore-mysql-table-prefix\fP
prefix to add to the name of all SpiceDB database tables
.TP
\fB--datastore-prometheus-metrics\fP
set to false to disable metrics from the datastore (do not use for Spanner; setting to false will disable metrics to the configured metrics store in Spanner)
.TP
\fB--datastore-query-userset-batch-size\fP
number of usersets after which a relationship query will be split into multiple queries
.TP
\fB--datastore-read-replica-conn-pool-healthcheck-interval\fP
amount of time between connection health checks in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-max-idletime\fP
maximum amount of time a connection can idle in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-max-lifetime\fP
maximum amount of time a connection can live in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-max-lifetime-jitter\fP
waits rand(0, jitter) after a connection is open for max lifetime to actually close the connection (default: 20%!o(MISSING)f max lifetime, 30m for CockroachDB)
.TP
\fB--datastore-read-replica-conn-pool-max-open\fP
number of concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-min-open\fP
number of minimum concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-read-healthcheck-interval\fP
amount of time between connection health checks in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-read-max-idletime\fP
maximum amount of time a connection can idle in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-read-max-lifetime\fP
maximum amount of time a connection can live in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-read-max-lifetime-jitter\fP
waits rand(0, jitter) after a connection is open for max lifetime to actually close the connection (default: 20%!o(MISSING)f max lifetime, 30m for CockroachDB)
.TP
\fB--datastore-read-replica-conn-pool-read-max-open\fP
number of concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-read-min-open\fP
number of minimum concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-uri\fP
connection string used by remote datastores for read replicas (e\&.g\&. "postgres://postgres:password@localhost:5432/spicedb")\&. (Postgres and MySQL drivers only)\&.
.TP
\fB--datastore-read-replica-credentials-provider-name\fP
retrieve datastore credentials dynamically using ("aws-iam")
.TP
\fB--datastore-readonly\fP
set the service to read-only mode
.TP
\fB--datastore-relationship-integrity-current-key-filename\fP
current key filename for relationship integrity checks
.TP
\fB--datastore-relationship-integrity-current-key-id\fP
current key id for relationship integrity checks
.TP
\fB--datastore-relationship-integrity-enabled\fP
enables relationship integrity checks\&. (CockroachDB driver only)
.TP
\fB--datastore-relationship-integrity-expired-keys\fP
config for expired keys for relationship integrity checks
.TP
\fB--datastore-relaxed-isolation-level\fP
used to relax the isolation level used in transactions (Postgres driver only)
.TP
\fB--datastore-request-hedging\fP
enable request hedging
.TP
\fB--datastore-request-hedging-initial-slow-value\fP
initial value to use for slow datastore requests, before statistics have been collected
.TP
\fB--datastore-request-hedging-max-requests\fP
maximum number of historical requests to consider
.TP
\fB--datastore-request-hedging-quantile\fP
quantile of historical datastore request time over which a request will be considered slow
.TP
\fB--datastore-revision-fuzzing-duration\fP
amount of time to advertize stale revisions
.TP
\fB--datastore-revision-quantization-interval\fP
boundary interval to which to round the quantized revision
.TP
\fB--datastore-revision-quantization-max-staleness-percent\fP
float percentage (where 1 = 100%!)(MISSING) of the revision quantization interval where we may opt to select a stale revision for performance reasons\&. Defaults to 0\&.1 (representing 10%!)(MISSING)
.TP
\fB--datastore-spanner-credentials\fP
path to service account key credentials file with access to the cloud spanner instance (omit to use application default credentials)
.TP
\fB--datastore-spanner-emulator-host\fP
URI of spanner emulator instance used for development and testing (e\&.g\&. localhost:9010)
.TP
\fB--datastore-spanner-max-sessions\fP
maximum number of sessions across all Spanner gRPC connections the client can have at a given time
.TP
\fB--datastore-spanner-metrics\fP
configure the metrics that are emitted by the Spanner datastore ("none", "native", "otel")
.TP
\fB--datastore-spanner-min-sessions\fP
minimum number of sessions across all Spanner gRPC connections the client can have at a given time
.TP
\fB--datastore-tx-overlap-key\fP
static key to touch when writing to ensure transactions overlap (only used if --datastore-tx-overlap-strategy=static is set; CockroachDB driver only)
.TP
\fB--datastore-tx-overlap-strategy\fP
strategy to generate transaction overlap keys ("request", "prefix", "static", "insecure") (CockroachDB driver only - see https://spicedb\&.dev/d/crdb-overlap for details)
.TP
\fB--datastore-watch-buffer-length\fP
how large the watch buffer should be before blocking
.TP
\fB--datastore-watch-buffer-write-timeout\fP
how long the watch buffer should queue before forcefully disconnecting the reader
.TP
\fB--datastore-watch-change-buffer-maximum-size\fP
how much memory to reserve for the watch change buffer, either as a quantity of bytes (e\&.g\&. 5Gi) or a percentage of available memory (e\&.g\&. 50%!)(MISSING)\&. if this value is exceeded, the watch will error and must be restarted\&.
.TP
\fB--datastore-watch-connect-timeout\fP
how long the watch connection to the underlying datastore should wait before timing out (CockroachDB driver only)
.TP
\fB--otel-endpoint\fP
OpenTelemetry collector endpoint - the endpoint can also be set by using enviroment variables
.TP
\fB--otel-insecure\fP
connect to the OpenTelemetry collector in plaintext
.TP
\fB--otel-jaeger-endpoint\fP
OpenTelemetry collector endpoint - the endpoint can also be set by using enviroment variables
.TP
\fB--otel-jaeger-service-name\fP
service name for trace data
.TP
\fB--otel-provider\fP
OpenTelemetry provider for tracing ("none", "otlphttp", "otlpgrpc")
.TP
\fB--otel-sample-ratio\fP
ratio of traces that are sampled
.TP
\fB--otel-service-name\fP
service name for trace data
.TP
\fB--otel-trace-propagator\fP
OpenTelemetry trace propagation format ("b3", "w3c", "ottrace")\&. Add multiple propagators separated by comma\&.
.TP
\fB--pprof-block-profile-rate\fP
sets the block profile sampling rate (between 0 and 1)
.TP
\fB--pprof-mutex-profile-rate\fP
sets the mutex profile sampling rate (between 0 and 1)
.TP
\fB--termination-log-path\fP
local path to the termination log file, which contains a JSON payload to surface as reason for termination
.TP
\fB--write-conn-acquisition-timeout\fP
amount of time that the server will wait for a connection to the datastore to become available when performing a write operation before throwing a ResourceExhausted error\&. 0 means wait indefinitely\&. (CockroachDB driver only)
.RE
.TP
\fBhead\fP
.RS 4
compute the head (latest) database migration revision available
.RE
.TP
\fBOPTIONS\fP
.RS 4
\fB--datastore-engine\fP
type of datastore to initialize ("cockroachdb", "mysql", "postgres", "spanner")
.TP
\fB--otel-endpoint\fP
OpenTelemetry collector endpoint - the endpoint can also be set by using enviroment variables
.TP
\fB--otel-insecure\fP
connect to the OpenTelemetry collector in plaintext
.TP
\fB--otel-jaeger-endpoint\fP
OpenTelemetry collector endpoint - the endpoint can also be set by using enviroment variables
.TP
\fB--otel-jaeger-service-name\fP
service name for trace data
.TP
\fB--otel-provider\fP
OpenTelemetry provider for tracing ("none", "otlphttp", "otlpgrpc")
.TP
\fB--otel-sample-ratio\fP
ratio of traces that are sampled
.TP
\fB--otel-service-name\fP
service name for trace data
.TP
\fB--otel-trace-propagator\fP
OpenTelemetry trace propagation format ("b3", "w3c", "ottrace")\&. Add multiple propagators separated by comma\&.
.TP
\fB--pprof-block-profile-rate\fP
sets the block profile sampling rate (between 0 and 1)
.TP
\fB--pprof-mutex-profile-rate\fP
sets the mutex profile sampling rate (between 0 and 1)
.TP
\fB--termination-log-path\fP
local path to the termination log file, which contains a JSON payload to surface as reason for termination
.RE
.TP
\fBmigrate\fP [revision]
.RS 4
execute datastore schema migrations
.RE
.TP
\fBOPTIONS\fP
.RS 4
\fB--datastore-conn-uri\fP
connection string used by remote datastores (e\&.g\&. "postgres://postgres:password@localhost:5432/spicedb")
.TP
\fB--datastore-credentials-provider-name\fP
retrieve datastore credentials dynamically using ("aws-iam")
.TP
\fB--datastore-engine\fP
type of datastore to initialize ("cockroachdb", "mysql", "postgres", "spanner")
.TP
\fB--datastore-mysql-table-prefix\fP
prefix to add to the name of all mysql database tables
.TP
\fB--datastore-spanner-credentials\fP
path to service account key credentials file with access to the cloud spanner instance (omit to use application default credentials)
.TP
\fB--datastore-spanner-emulator-host\fP
URI of spanner emulator instance used for development and testing (e\&.g\&. localhost:9010)
.TP
\fB--migration-backfill-batch-size\fP
number of items to migrate per iteration of a datastore backfill
.TP
\fB--migration-timeout\fP
defines a timeout for the execution of the migration, set to 1 hour by default
.TP
\fB--otel-endpoint\fP
OpenTelemetry collector endpoint - the endpoint can also be set by using enviroment variables
.TP
\fB--otel-insecure\fP
connect to the OpenTelemetry collector in plaintext
.TP
\fB--otel-jaeger-endpoint\fP
OpenTelemetry collector endpoint - the endpoint can also be set by using enviroment variables
.TP
\fB--otel-jaeger-service-name\fP
service name for trace data
.TP
\fB--otel-provider\fP
OpenTelemetry provider for tracing ("none", "otlphttp", "otlpgrpc")
.TP
\fB--otel-sample-ratio\fP
ratio of traces that are sampled
.TP
\fB--otel-service-name\fP
service name for trace data
.TP
\fB--otel-trace-propagator\fP
OpenTelemetry trace propagation format ("b3", "w3c", "ottrace")\&. Add multiple propagators separated by comma\&.
.TP
\fB--pprof-block-profile-rate\fP
sets the block profile sampling rate (between 0 and 1)
.TP
\fB--pprof-mutex-profile-rate\fP
sets the mutex profile sampling rate (between 0 and 1)
.TP
\fB--termination-log-path\fP
local path to the termination log file, which contains a JSON payload to surface as reason for termination
.RE
.TP
\fBrepair\fP
.RS 4
executes datastore repair
.RE
.TP
\fBOPTIONS\fP
.RS 4
\fB--datastore-allowed-migrations\fP
migration levels that will not fail the health check (in addition to the current head migration)
.TP
\fB--datastore-bootstrap-files\fP
bootstrap data yaml files to load
.TP
\fB--datastore-bootstrap-overwrite\fP
overwrite any existing data with bootstrap data (this can be quite slow)
.TP
\fB--datastore-bootstrap-timeout\fP
maximum duration before timeout for the bootstrap data to be written
.TP
\fB--datastore-conn-healthcheck-interval\fP
amount of time between connection health checks in a remote datastore's connection pool
.TP
\fB--datastore-conn-max-idletime\fP
maximum amount of time a connection can idle in a remote datastore's connection pool
.TP
\fB--datastore-conn-max-lifetime\fP
maximum amount of time a connection can live in a remote datastore's connection pool
.TP
\fB--datastore-conn-max-lifetime-jitter\fP
waits rand(0, jitter) after a connection is open for max lifetime to actually close the connection (default: 20%!o(MISSING)f max lifetime, 30m for CockroachDB)
.TP
\fB--datastore-conn-max-open\fP
number of concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-conn-min-open\fP
number of minimum concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-read-healthcheck-interval\fP
amount of time between connection health checks in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-read-max-idletime\fP
maximum amount of time a connection can idle in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-read-max-lifetime\fP
maximum amount of time a connection can live in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-read-max-lifetime-jitter\fP
waits rand(0, jitter) after a connection is open for max lifetime to actually close the connection (default: 20%!o(MISSING)f max lifetime, 30m for CockroachDB)
.TP
\fB--datastore-conn-pool-read-max-open\fP
number of concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-read-min-open\fP
number of minimum concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-write-healthcheck-interval\fP
amount of time between connection health checks in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-write-max-idletime\fP
maximum amount of time a connection can idle in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-write-max-lifetime\fP
maximum amount of time a connection can live in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-write-max-lifetime-jitter\fP
waits rand(0, jitter) after a connection is open for max lifetime to actually close the connection (default: 20%!o(MISSING)f max lifetime, 30m for CockroachDB)
.TP
\fB--datastore-conn-pool-write-max-open\fP
number of concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-write-min-open\fP
number of minimum concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-conn-uri\fP
connection string used by remote datastores (e\&.g\&. "postgres://postgres:password@localhost:5432/spicedb")
.TP
\fB--datastore-connect-rate\fP
rate at which new connections are allowed to the datastore (at a rate of 1/duration) (CockroachDB driver only)
.TP
\fB--datastore-connection-balancing\fP
enable connection balancing between database nodes (CockroachDB driver only)
.TP
\fB--datastore-credentials-provider-name\fP
retrieve datastore credentials dynamically using ("aws-iam")
.TP
\fB--datastore-disable-stats\fP
disable recording relationship counts to the stats table
.TP
\fB--datastore-disable-watch-support\fP
disable watch support (only enable if you absolutely do not need watch)
.TP
\fB--datastore-engine\fP
type of datastore to initialize ("cockroachdb", "mysql", "postgres", "spanner")
.TP
\fB--datastore-experimental-column-optimization\fP
enable experimental column optimization
.TP
\fB--datastore-follower-read-delay-duration\fP
amount of time to subtract from non-sync revision timestamps to ensure they are sufficiently in the past to enable follower reads (CockroachDB and Spanner drivers only) or read replicas (Postgres and MySQL drivers only)
.TP
\fB--datastore-gc-interval\fP
amount of time between passes of garbage collection (Postgres driver only)
.TP
\fB--datastore-gc-max-operation-time\fP
maximum amount of time a garbage collection pass can operate before timing out (Postgres driver only)
.TP
\fB--datastore-gc-window\fP
amount of time before revisions are garbage collected
.TP
\fB--datastore-include-query-parameters-in-traces\fP
include query parameters in traces (Postgres and CockroachDB drivers only)
.TP
\fB--datastore-max-tx-retries\fP
number of times a retriable transaction should be retried
.TP
\fB--datastore-migration-phase\fP
datastore-specific flag that should be used to signal to a datastore which phase of a multi-step migration it is in
.TP
\fB--datastore-mysql-table-prefix\fP
prefix to add to the name of all SpiceDB database tables
.TP
\fB--datastore-prometheus-metrics\fP
set to false to disable metrics from the datastore (do not use for Spanner; setting to false will disable metrics to the configured metrics store in Spanner)
.TP
\fB--datastore-query-userset-batch-size\fP
number of usersets after which a relationship query will be split into multiple queries
.TP
\fB--datastore-read-replica-conn-pool-healthcheck-interval\fP
amount of time between connection health checks in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-max-idletime\fP
maximum amount of time a connection can idle in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-max-lifetime\fP
maximum amount of time a connection can live in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-max-lifetime-jitter\fP
waits rand(0, jitter) after a connection is open for max lifetime to actually close the connection (default: 20%!o(MISSING)f max lifetime, 30m for CockroachDB)
.TP
\fB--datastore-read-replica-conn-pool-max-open\fP
number of concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-min-open\fP
number of minimum concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-read-healthcheck-interval\fP
amount of time between connection health checks in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-read-max-idletime\fP
maximum amount of time a connection can idle in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-read-max-lifetime\fP
maximum amount of time a connection can live in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-read-max-lifetime-jitter\fP
waits rand(0, jitter) after a connection is open for max lifetime to actually close the connection (default: 20%!o(MISSING)f max lifetime, 30m for CockroachDB)
.TP
\fB--datastore-read-replica-conn-pool-read-max-open\fP
number of concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-read-min-open\fP
number of minimum concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-uri\fP
connection string used by remote datastores for read replicas (e\&.g\&. "postgres://postgres:password@localhost:5432/spicedb")\&. (Postgres and MySQL drivers only)\&.
.TP
\fB--datastore-read-replica-credentials-provider-name\fP
retrieve datastore credentials dynamically using ("aws-iam")
.TP
\fB--datastore-readonly\fP
set the service to read-only mode
.TP
\fB--datastore-relationship-integrity-current-key-filename\fP
current key filename for relationship integrity checks
.TP
\fB--datastore-relationship-integrity-current-key-id\fP
current key id for relationship integrity checks
.TP
\fB--datastore-relationship-integrity-enabled\fP
enables relationship integrity checks\&. (CockroachDB driver only)
.TP
\fB--datastore-relationship-integrity-expired-keys\fP
config for expired keys for relationship integrity checks
.TP
\fB--datastore-relaxed-isolation-level\fP
used to relax the isolation level used in transactions (Postgres driver only)
.TP
\fB--datastore-request-hedging\fP
enable request hedging
.TP
\fB--datastore-request-hedging-initial-slow-value\fP
initial value to use for slow datastore requests, before statistics have been collected
.TP
\fB--datastore-request-hedging-max-requests\fP
maximum number of historical requests to consider
.TP
\fB--datastore-request-hedging-quantile\fP
quantile of historical datastore request time over which a request will be considered slow
.TP
\fB--datastore-revision-fuzzing-duration\fP
amount of time to advertize stale revisions
.TP
\fB--datastore-revision-quantization-interval\fP
boundary interval to which to round the quantized revision
.TP
\fB--datastore-revision-quantization-max-staleness-percent\fP
float percentage (where 1 = 100%!)(MISSING) of the revision quantization interval where we may opt to select a stale revision for performance reasons\&. Defaults to 0\&.1 (representing 10%!)(MISSING)
.TP
\fB--datastore-spanner-credentials\fP
path to service account key credentials file with access to the cloud spanner instance (omit to use application default credentials)
.TP
\fB--datastore-spanner-emulator-host\fP
URI of spanner emulator instance used for development and testing (e\&.g\&. localhost:9010)
.TP
\fB--datastore-spanner-max-sessions\fP
maximum number of sessions across all Spanner gRPC connections the client can have at a given time
.TP
\fB--datastore-spanner-metrics\fP
configure the metrics that are emitted by the Spanner datastore ("none", "native", "otel")
.TP
\fB--datastore-spanner-min-sessions\fP
minimum number of sessions across all Spanner gRPC connections the client can have at a given time
.TP
\fB--datastore-tx-overlap-key\fP
static key to touch when writing to ensure transactions overlap (only used if --datastore-tx-overlap-strategy=static is set; CockroachDB driver only)
.TP
\fB--datastore-tx-overlap-strategy\fP
strategy to generate transaction overlap keys ("request", "prefix", "static", "insecure") (CockroachDB driver only - see https://spicedb\&.dev/d/crdb-overlap for details)
.TP
\fB--datastore-watch-buffer-length\fP
how large the watch buffer should be before blocking
.TP
\fB--datastore-watch-buffer-write-timeout\fP
how long the watch buffer should queue before forcefully disconnecting the reader
.TP
\fB--datastore-watch-change-buffer-maximum-size\fP
how much memory to reserve for the watch change buffer, either as a quantity of bytes (e\&.g\&. 5Gi) or a percentage of available memory (e\&.g\&. 50%!)(MISSING)\&. if this value is exceeded, the watch will error and must be restarted\&.
.TP
\fB--datastore-watch-connect-timeout\fP
how long the watch connection to the underlying datastore should wait before timing out (CockroachDB driver only)
.TP
\fB--otel-endpoint\fP
OpenTelemetry collector endpoint - the endpoint can also be set by using enviroment variables
.TP
\fB--otel-insecure\fP
connect to the OpenTelemetry collector in plaintext
.TP
\fB--otel-jaeger-endpoint\fP
OpenTelemetry collector endpoint - the endpoint can also be set by using enviroment variables
.TP
\fB--otel-jaeger-service-name\fP
service name for trace data
.TP
\fB--otel-provider\fP
OpenTelemetry provider for tracing ("none", "otlphttp", "otlpgrpc")
.TP
\fB--otel-sample-ratio\fP
ratio of traces that are sampled
.TP
\fB--otel-service-name\fP
service name for trace data
.TP
\fB--otel-trace-propagator\fP
OpenTelemetry trace propagation format ("b3", "w3c", "ottrace")\&. Add multiple propagators separated by comma\&.
.TP
\fB--pprof-block-profile-rate\fP
sets the block profile sampling rate (between 0 and 1)
.TP
\fB--pprof-mutex-profile-rate\fP
sets the mutex profile sampling rate (between 0 and 1)
.TP
\fB--termination-log-path\fP
local path to the termination log file, which contains a JSON payload to surface as reason for termination
.TP
\fB--write-conn-acquisition-timeout\fP
amount of time that the server will wait for a connection to the datastore to become available when performing a write operation before throwing a ResourceExhausted error\&. 0 means wait indefinitely\&. (CockroachDB driver only)
.RE
.RE
.TP
\fBhelp\fP [command]
.RS 4
Help about any command
.RE
.TP
\fBlsp\fP
.RS 4
serve language server protocol
.RE
.TP
\fBOPTIONS\fP
.RS 4
\fB--addr\fP
address to listen on to serve LSP
.TP
\fB--stdio\fP
enable stdio mode for LSP
.RE
.TP
\fBman\fP
.RS 4
Generate man page
.RE
.TP
\fBOPTIONS\fP
.RS 4
\fB-h, --help\fP
help for man
.TP
\fB--log-format\fP
format of logs ("auto", "console", "json")
.TP
\fB--log-level\fP
verbosity of logging ("trace", "debug", "info", "warn", "error")
.TP
\fB--skip-release-check\fP
if true, skips checking for new SpiceDB releases
.RE
.TP
\fBpostgres-fdw\fP
.RS 4
serve a Postgres Foreign Data Wrapper for SpiceDB (EXPERIMENTAL)
.RE
.TP
\fBOPTIONS\fP
.RS 4
\fB--postgres-access-token-secret\fP
(required) The password that Postgres will use to authenticate to the FDW proxy (configured in the Postgres FDW extension's OPTIONS)
.TP
\fB--postgres-endpoint\fP
The endpoint at which to serve the Postgres protocol
.TP
\fB--postgres-username\fP
The username that Postgres will use to connect to the FDW proxy
.TP
\fB--spicedb-access-token-secret\fP
(required) Access token for calling the SpiceDB API
.TP
\fB--spicedb-api-endpoint\fP
SpiceDB API endpoint
.TP
\fB--spicedb-insecure\fP
Use insecure connection to SpiceDB API
.RE
.TP
\fBserve\fP
.RS 4
serve the permissions database
.RE
.TP
\fBOPTIONS\fP
.RS 4
\fB--dashboard-addr\fP
address to listen on to serve dashboard
.TP
\fB--dashboard-enabled\fP
enable http dashboard server
.TP
\fB--dashboard-tls-cert-path\fP
local path to the TLS certificate used to serve dashboard
.TP
\fB--dashboard-tls-key-path\fP
local path to the TLS key used to serve dashboard
.TP
\fB--datastore-allowed-migrations\fP
migration levels that will not fail the health check (in addition to the current head migration)
.TP
\fB--datastore-bootstrap-files\fP
bootstrap data yaml files to load
.TP
\fB--datastore-bootstrap-overwrite\fP
overwrite any existing data with bootstrap data (this can be quite slow)
.TP
\fB--datastore-bootstrap-timeout\fP
maximum duration before timeout for the bootstrap data to be written
.TP
\fB--datastore-conn-healthcheck-interval\fP
amount of time between connection health checks in a remote datastore's connection pool
.TP
\fB--datastore-conn-max-idletime\fP
maximum amount of time a connection can idle in a remote datastore's connection pool
.TP
\fB--datastore-conn-max-lifetime\fP
maximum amount of time a connection can live in a remote datastore's connection pool
.TP
\fB--datastore-conn-max-lifetime-jitter\fP
waits rand(0, jitter) after a connection is open for max lifetime to actually close the connection (default: 20%!o(MISSING)f max lifetime, 30m for CockroachDB)
.TP
\fB--datastore-conn-max-open\fP
number of concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-conn-min-open\fP
number of minimum concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-read-healthcheck-interval\fP
amount of time between connection health checks in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-read-max-idletime\fP
maximum amount of time a connection can idle in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-read-max-lifetime\fP
maximum amount of time a connection can live in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-read-max-lifetime-jitter\fP
waits rand(0, jitter) after a connection is open for max lifetime to actually close the connection (default: 20%!o(MISSING)f max lifetime, 30m for CockroachDB)
.TP
\fB--datastore-conn-pool-read-max-open\fP
number of concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-read-min-open\fP
number of minimum concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-write-healthcheck-interval\fP
amount of time between connection health checks in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-write-max-idletime\fP
maximum amount of time a connection can idle in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-write-max-lifetime\fP
maximum amount of time a connection can live in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-write-max-lifetime-jitter\fP
waits rand(0, jitter) after a connection is open for max lifetime to actually close the connection (default: 20%!o(MISSING)f max lifetime, 30m for CockroachDB)
.TP
\fB--datastore-conn-pool-write-max-open\fP
number of concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-conn-pool-write-min-open\fP
number of minimum concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-conn-uri\fP
connection string used by remote datastores (e\&.g\&. "postgres://postgres:password@localhost:5432/spicedb")
.TP
\fB--datastore-connect-rate\fP
rate at which new connections are allowed to the datastore (at a rate of 1/duration) (CockroachDB driver only)
.TP
\fB--datastore-connection-balancing\fP
enable connection balancing between database nodes (CockroachDB driver only)
.TP
\fB--datastore-credentials-provider-name\fP
retrieve datastore credentials dynamically using ("aws-iam")
.TP
\fB--datastore-disable-stats\fP
disable recording relationship counts to the stats table
.TP
\fB--datastore-disable-watch-support\fP
disable watch support (only enable if you absolutely do not need watch)
.TP
\fB--datastore-engine\fP
type of datastore to initialize ("cockroachdb", "mysql", "postgres", "spanner")
.TP
\fB--datastore-experimental-column-optimization\fP
enable experimental column optimization
.TP
\fB--datastore-follower-read-delay-duration\fP
amount of time to subtract from non-sync revision timestamps to ensure they are sufficiently in the past to enable follower reads (CockroachDB and Spanner drivers only) or read replicas (Postgres and MySQL drivers only)
.TP
\fB--datastore-gc-interval\fP
amount of time between passes of garbage collection (Postgres driver only)
.TP
\fB--datastore-gc-max-operation-time\fP
maximum amount of time a garbage collection pass can operate before timing out (Postgres driver only)
.TP
\fB--datastore-gc-window\fP
amount of time before revisions are garbage collected
.TP
\fB--datastore-include-query-parameters-in-traces\fP
include query parameters in traces (Postgres and CockroachDB drivers only)
.TP
\fB--datastore-max-tx-retries\fP
number of times a retriable transaction should be retried
.TP
\fB--datastore-migration-phase\fP
datastore-specific flag that should be used to signal to a datastore which phase of a multi-step migration it is in
.TP
\fB--datastore-mysql-table-prefix\fP
prefix to add to the name of all SpiceDB database tables
.TP
\fB--datastore-prometheus-metrics\fP
set to false to disable metrics from the datastore (do not use for Spanner; setting to false will disable metrics to the configured metrics store in Spanner)
.TP
\fB--datastore-query-userset-batch-size\fP
number of usersets after which a relationship query will be split into multiple queries
.TP
\fB--datastore-read-replica-conn-pool-healthcheck-interval\fP
amount of time between connection health checks in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-max-idletime\fP
maximum amount of time a connection can idle in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-max-lifetime\fP
maximum amount of time a connection can live in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-max-lifetime-jitter\fP
waits rand(0, jitter) after a connection is open for max lifetime to actually close the connection (default: 20%!o(MISSING)f max lifetime, 30m for CockroachDB)
.TP
\fB--datastore-read-replica-conn-pool-max-open\fP
number of concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-min-open\fP
number of minimum concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-read-healthcheck-interval\fP
amount of time between connection health checks in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-read-max-idletime\fP
maximum amount of time a connection can idle in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-read-max-lifetime\fP
maximum amount of time a connection can live in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-read-max-lifetime-jitter\fP
waits rand(0, jitter) after a connection is open for max lifetime to actually close the connection (default: 20%!o(MISSING)f max lifetime, 30m for CockroachDB)
.TP
\fB--datastore-read-replica-conn-pool-read-max-open\fP
number of concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-pool-read-min-open\fP
number of minimum concurrent connections open in a remote datastore's connection pool
.TP
\fB--datastore-read-replica-conn-uri\fP
connection string used by remote datastores for read replicas (e\&.g\&. "postgres://postgres:password@localhost:5432/spicedb")\&. (Postgres and MySQL drivers only)\&.
.TP
\fB--datastore-read-replica-credentials-provider-name\fP
retrieve datastore credentials dynamically using ("aws-iam")
.TP
\fB--datastore-readonly\fP
set the service to read-only mode
.TP
\fB--datastore-relationship-integrity-current-key-filename\fP
current key filename for relationship integrity checks
.TP
\fB--datastore-relationship-integrity-current-key-id\fP
current key id for relationship integrity checks
.TP
\fB--datastore-relationship-integrity-enabled\fP
enables relationship integrity checks\&. (CockroachDB driver only)
.TP
\fB--datastore-relationship-integrity-expired-keys\fP
config for expired keys for relationship integrity checks
.TP
\fB--datastore-relaxed-isolation-level\fP
used to relax the isolation level used in transactions (Postgres driver only)
.TP
\fB--datastore-request-hedging\fP
enable request hedging
.TP
\fB--datastore-request-hedging-initial-slow-value\fP
initial value to use for slow datastore requests, before statistics have been collected
.TP
\fB--datastore-request-hedging-max-requests\fP
maximum number of historical requests to consider
.TP
\fB--datastore-request-hedging-quantile\fP
quantile of historical datastore request time over which a request will be considered slow
.TP
\fB--datastore-revision-fuzzing-duration\fP
amount of time to advertize stale revisions
.TP
\fB--datastore-revision-quantization-interval\fP
boundary interval to which to round the quantized revision
.TP
\fB--datastore-revision-quantization-max-staleness-percent\fP
float percentage (where 1 = 100%!)(MISSING) of the revision quantization interval where we may opt to select a stale revision for performance reasons\&. Defaults to 0\&.1 (representing 10%!)(MISSING)
.TP
\fB--datastore-schema-watch-heartbeat\fP
heartbeat time on the schema watch in the datastore (if supported)\&. 0 means to default to the datastore's minimum\&.
.TP
\fB--datastore-spanner-credentials\fP
path to service account key credentials file with access to the cloud spanner instance (omit to use application default credentials)
.TP
\fB--datastore-spanner-emulator-host\fP
URI of spanner emulator instance used for development and testing (e\&.g\&. localhost:9010)
.TP
\fB--datastore-spanner-max-sessions\fP
maximum number of sessions across all Spanner gRPC connections the client can have at a given time
.TP
\fB--datastore-spanner-metrics\fP
configure the metrics that are emitted by the Spanner datastore ("none", "native", "otel")
.TP
\fB--datastore-spanner-min-sessions\fP
minimum number of sessions across all Spanner gRPC connections the client can have at a given time
.TP
\fB--datastore-tx-overlap-key\fP
static key to touch when writing to ensure transactions overlap (only used if --datastore-tx-overlap-strategy=static is set; CockroachDB driver only)
.TP
\fB--datastore-tx-overlap-strategy\fP
strategy to generate transaction overlap keys ("request", "prefix", "static", "insecure") (CockroachDB driver only - see https://spicedb\&.dev/d/crdb-overlap for details)
.TP
\fB--datastore-watch-buffer-length\fP
how large the watch buffer should be before blocking
.TP
\fB--datastore-watch-buffer-write-timeout\fP
how long the watch buffer should queue before forcefully disconnecting the reader
.TP
\fB--datastore-watch-change-buffer-maximum-size\fP
how much memory to reserve for the watch change buffer, either as a quantity of bytes (e\&.g\&. 5Gi) or a percentage of available memory (e\&.g\&. 50%!)(MISSING)\&. if this value is exceeded, the watch will error and must be restarted\&.
.TP
\fB--datastore-watch-connect-timeout\fP
how long the watch connection to the underlying datastore should wait before timing out (CockroachDB driver only)
.TP
\fB--disable-v1-schema-api\fP
disables the V1 schema API
.TP
\fB--disable-version-response\fP
disables version response support in the API
.TP
\fB--dispatch-cache-enabled\fP
enable caching of dispatch calls this server makes to other servers
.TP
\fB--dispatch-cache-kind-for-testing\fP
choose a different kind of cache, for testing
.TP
\fB--dispatch-cache-max-cost\fP
upper bound (in bytes or as a percent of available memory) of the cache for dispatch calls this server makes to other servers
.TP
\fB--dispatch-cache-metrics\fP
enable metrics for the cache for dispatch calls this server makes to other servers
.TP
\fB--dispatch-cache-num-counters\fP
number of counters for tracking access frequency in the cache for dispatch calls this server makes to other servers\&. A higher number means more accurate eviction decisions but more memory usage
.TP
\fB--dispatch-check-permission-concurrency-limit\fP
maximum number of parallel goroutines to create for each check request or subrequest\&. defaults to --dispatch-concurrency-limit
.TP
\fB--dispatch-chunk-size\fP
maximum number of object IDs in a dispatched request
.TP
\fB--dispatch-cluster-addr\fP
address to listen on to serve dispatch
.TP
\fB--dispatch-cluster-cache-enabled\fP
enable caching of dispatch calls this server receives from other servers
.TP
\fB--dispatch-cluster-cache-kind-for-testing\fP
choose a different kind of cache, for testing
.TP
\fB--dispatch-cluster-cache-max-cost\fP
upper bound (in bytes or as a percent of available memory) of the cache for dispatch calls this server receives from other servers
.TP
\fB--dispatch-cluster-cache-metrics\fP
enable metrics for the cache for dispatch calls this server receives from other servers
.TP
\fB--dispatch-cluster-cache-num-counters\fP
number of counters for tracking access frequency in the cache for dispatch calls this server receives from other servers\&. A higher number means more accurate eviction decisions but more memory usage
.TP
\fB--dispatch-cluster-enabled\fP
enable dispatch gRPC server
.TP
\fB--dispatch-cluster-max-conn-age\fP
how long a connection serving dispatch should be able to live
.TP
\fB--dispatch-cluster-max-workers\fP
set the number of workers for this server (0 value means 1 worker per request)
.TP
\fB--dispatch-cluster-network\fP
network type to serve dispatch ("tcp", "tcp4", "tcp6", "unix", "unixpacket")
.TP
\fB--dispatch-cluster-tls-cert-path\fP
local path to the TLS certificate used to serve dispatch
.TP
\fB--dispatch-cluster-tls-key-path\fP
local path to the TLS key used to serve dispatch
.TP
\fB--dispatch-concurrency-limit\fP
maximum number of parallel goroutines to create for each request or subrequest
.TP
\fB--dispatch-hashring-replication-factor\fP
set the replication factor of the consistent hasher used for the dispatcher
.TP
\fB--dispatch-hashring-spread\fP
set the spread of the consistent hasher used for the dispatcher
.TP
\fB--dispatch-lookup-resources-concurrency-limit\fP
maximum number of parallel goroutines to create for each lookup resources request or subrequest\&. defaults to --dispatch-concurrency-limit
.TP
\fB--dispatch-lookup-subjects-concurrency-limit\fP
maximum number of parallel goroutines to create for each lookup subjects request or subrequest\&. defaults to --dispatch-concurrency-limit
.TP
\fB--dispatch-max-depth\fP
maximum recursion depth for nested calls
.TP
\fB--dispatch-reachable-resources-concurrency-limit\fP
maximum number of parallel goroutines to create for each reachable resources request or subrequest\&. defaults to --dispatch-concurrency-limit
.TP
\fB--dispatch-upstream-addr\fP
upstream grpc address to dispatch to
.TP
\fB--dispatch-upstream-ca-path\fP
local path to the TLS CA used when connecting to the dispatch cluster
.TP
\fB--dispatch-upstream-timeout\fP
maximum duration of a dispatch call an upstream cluster before it times out
.TP
\fB--enable-experimental-lookup-resources\fP
do not use; this flag is unused and will be removed in a future version
.TP
\fB--enable-experimental-relationship-expiration\fP
enables experimental support for relationship expiration
.TP
\fB--enable-experimental-watchable-schema-cache\fP
enables the experimental schema cache, which uses the Watch API to keep the schema up to date
.TP
\fB--enable-memory-protection-middleware\fP
enables middleware that does a best effort at preventing OOM (Out of Memory) if the server's memory usage is too high by returning ResourceExhausted on incoming requests
.TP
\fB--enable-performance-insight-metrics\fP
enables performance insight metrics, which are used to track the latency of API calls by shape
.TP
\fB--enable-revision-heartbeat\fP
enables support for revision heartbeat, used to create a synthetic revision on an interval defined by the quantization window (Postgres driver only)
.TP
\fB--experimental-dispatch-secondary-maximum-primary-hedging-delays\fP
maximum number of hedging delays to use for each request type to delay the primary request\&. default is 5ms
.TP
\fB--experimental-dispatch-secondary-upstream-addrs\fP
secondary upstream addresses for dispatches, each with a name
.TP
\fB--experimental-dispatch-secondary-upstream-exprs\fP
map from request type to its associated CEL expression, which returns the secondary upstream(s) to be used for the request
.TP
\fB--experimental-lookup-resources-version\fP
if non-empty, the version of the experimental lookup resources API to use: `lr3` or empty
.TP
\fB--experimental-query-plan\fP
comma-separated list of operations to route through the experimental query plan engine; valid values are `check`, `lr` (LookupResources), and `ls` (LookupSubjects)
.TP
\fB--experimental-schema-mode\fP
schema storage mode for migration to unified schema: read-legacy-write-legacy, read-legacy-write-both, read-new-write-both, read-new-write-new
.TP
\fB--grpc-addr\fP
address to listen on to serve gRPC
.TP
\fB--grpc-enabled\fP
enable gRPC gRPC server
.TP
\fB--grpc-log-requests-enabled\fP
enable logging of API request payloads
.TP
\fB--grpc-log-responses-enabled\fP
enable logging of API response payloads
.TP
\fB--grpc-max-conn-age\fP
how long a connection serving gRPC should be able to live
.TP
\fB--grpc-max-workers\fP
set the number of workers for this server (0 value means 1 worker per request)
.TP
\fB--grpc-network\fP
network type to serve gRPC ("tcp", "tcp4", "tcp6", "unix", "unixpacket")
.TP
\fB--grpc-preshared-key\fP
(required) preshared key(s) that must be provided by clients to authenticate requests
.TP
\fB--grpc-shutdown-grace-period\fP
time limit given to the server to shutdown gracefully after it receives SIGINT or SIGTERM\&. A value of zero means no limit
.TP
\fB--grpc-tls-cert-path\fP
local path to the TLS certificate used to serve gRPC
.TP
\fB--grpc-tls-key-path\fP
local path to the TLS key used to serve gRPC
.TP
\fB--http-addr\fP
address to listen on to serve proxy
.TP
\fB--http-cors-allowed-origins\fP
Set CORS allowed origins for http gateway, defaults to all origins
.TP
\fB--http-cors-enabled\fP
DANGEROUS: Enable CORS on the http gateway
.TP
\fB--http-enabled\fP
enable http proxy server
.TP
\fB--http-tls-cert-path\fP
local path to the TLS certificate used to serve proxy
.TP
\fB--http-tls-key-path\fP
local path to the TLS key used to serve proxy
.TP
\fB--http-upstream-override-addr\fP
Override the upstream to point to a different gRPC server
.TP
\fB--http-upstream-override-tls-cert-path\fP
Override the upstream TLS certificate
.TP
\fB--lookup-resources-chunk-cache-enabled\fP
enable caching of LookupResources3 chunks
.TP
\fB--lookup-resources-chunk-cache-kind-for-testing\fP
choose a different kind of cache, for testing
.TP
\fB--lookup-resources-chunk-cache-max-cost\fP
upper bound (in bytes or as a percent of available memory) of the cache for LookupResources3 chunks
.TP
\fB--lookup-resources-chunk-cache-metrics\fP
enable metrics for the cache for LookupResources3 chunks
.TP
\fB--lookup-resources-chunk-cache-num-counters\fP
number of counters for tracking access frequency in the cache for LookupResources3 chunks\&. A higher number means more accurate eviction decisions but more memory usage
.TP
\fB--max-bulk-export-relationships-limit\fP
maximum number of relationships that can be exported in a single request
.TP
\fB--max-caveat-context-size\fP
maximum allowed size of request caveat context in bytes\&. A value of zero or less means no limit
.TP
\fB--max-datastore-read-page-size\fP
limit on the maximum page size that we will load into memory from the datastore at one time
.TP
\fB--max-delete-relationships-limit\fP
maximum number of relationships that can be deleted in a single request
.TP
\fB--max-lookup-resources-limit\fP
maximum number of resources that can be looked up in a single request
.TP
\fB--max-read-relationships-limit\fP
maximum number of relationships that can be read in a single request
.TP
\fB--max-relationship-context-size\fP
maximum allowed size of the context to be stored in a relationship
.TP
\fB--metrics-addr\fP
address to listen on to serve metrics
.TP
\fB--metrics-enabled\fP
enable http metrics server
.TP
\fB--metrics-tls-cert-path\fP
local path to the TLS certificate used to serve metrics
.TP
\fB--metrics-tls-key-path\fP
local path to the TLS key used to serve metrics
.TP
\fB--mismatch-zed-token-behavior\fP
behavior to enforce when an API call receives a zedtoken that was originally intended for a different kind of datastore\&. One of: full-consistency (treat as a full-consistency call, ignoring the zedtoken), min-latency (treat as a min-latency call, ignoring the zedtoken), error (return an error)\&. defaults to full-consistency for safety\&.
.TP
\fB--ns-cache-enabled\fP
enable caching of schema
.TP
\fB--ns-cache-expiration\fP
amount of time a namespace entry should remain cached
.TP
\fB--ns-cache-kind-for-testing\fP
choose a different kind of cache, for testing
.TP
\fB--ns-cache-max-cost\fP
upper bound (in bytes or as a percent of available memory) of the cache for schema
.TP
\fB--ns-cache-metrics\fP
enable metrics for the cache for schema
.TP
\fB--ns-cache-num-counters\fP
number of counters for tracking access frequency in the cache for schema\&. A higher number means more accurate eviction decisions but more memory usage
.TP
\fB--otel-endpoint\fP
OpenTelemetry collector endpoint - the endpoint can also be set by using enviroment variables
.TP
\fB--otel-insecure\fP
connect to the OpenTelemetry collector in plaintext
.TP
\fB--otel-jaeger-endpoint\fP
OpenTelemetry collector endpoint - the endpoint can also be set by using enviroment variables
.TP
\fB--otel-jaeger-service-name\fP
service name for trace data
.TP
\fB--otel-provider\fP
OpenTelemetry provider for tracing ("none", "otlphttp", "otlpgrpc")
.TP
\fB--otel-sample-ratio\fP
ratio of traces that are sampled
.TP
\fB--otel-service-name\fP
service name for trace data
.TP
\fB--otel-trace-propagator\fP
OpenTelemetry trace propagation format ("b3", "w3c", "ottrace")\&. Add multiple propagators separated by comma\&.
.TP
\fB--pprof-block-profile-rate\fP
sets the block profile sampling rate (between 0 and 1)
.TP
\fB--pprof-mutex-profile-rate\fP
sets the mutex profile sampling rate (between 0 and 1)
.TP
\fB--schema-prefixes-required\fP
require prefixes on all object definitions in schemas
.TP
\fB--stored-schema-cache-enabled\fP
enable caching of stored schema
.TP
\fB--stored-schema-cache-kind-for-testing\fP
choose a different kind of cache, for testing
.TP
\fB--stored-schema-cache-max-cost\fP
upper bound (in bytes or as a percent of available memory) of the cache for stored schema
.TP
\fB--stored-schema-cache-metrics\fP
enable metrics for the cache for stored schema
.TP
\fB--stored-schema-cache-num-counters\fP
number of counters for tracking access frequency in the cache for stored schema\&. A higher number means more accurate eviction decisions but more memory usage
.TP
\fB--streaming-api-response-delay-timeout\fP
maximum time that streaming APIs (LookupSubjects, LookupResources, ReadRelationships and ExportBulkRelationships) can be allowed to run but no response be sent to the client before the stream times out
.TP
\fB--telemetry-ca-override-path\fP
path to a custom CA to use with the telemetry endpoint
.TP
\fB--telemetry-endpoint\fP
endpoint to which telemetry is reported, empty string to disable
.TP
\fB--telemetry-interval\fP
approximate period between telemetry reports, minimum 1 minute
.TP
\fB--termination-log-path\fP
local path to the termination log file, which contains a JSON payload to surface as reason for termination
.TP
\fB--testing-only-schema-additive-writes\fP
append new definitions to the existing schema, rather than overwriting it
.TP
\fB--update-relationships-max-preconditions-per-call\fP
maximum number of preconditions allowed for WriteRelationships and DeleteRelationships calls
.TP
\fB--watch-api-heartbeat\fP
heartbeat time on the watch in the API\&. 0 means to default to the datastore's minimum\&.
.TP
\fB--write-conn-acquisition-timeout\fP
amount of time that the server will wait for a connection to the datastore to become available when performing a write operation before throwing a ResourceExhausted error\&. 0 means wait indefinitely\&. (CockroachDB driver only)
.TP
\fB--write-relationships-max-updates-per-call\fP
maximum number of updates allowed for WriteRelationships calls
.RE
.TP
\fBEXAMPLES\fP
.RS 4
	No TLS and in-memory datastore:
.PP
		spicedb serve --grpc-preshared-key "somerandomkeyhere"
.PP
.PP
	TLS and HTTP enabled, and a real datastore:
.PP
		spicedb serve --grpc-preshared-key "realkeyhere" \e
.PP
		--grpc-tls-cert-path path/to/tls/cert --grpc-tls-key-path path/to/tls/key \e
.PP
		--http-enabled http-tls-cert-path path/to/tls/cert --http-tls-key-path path/to/tls/key \e
.PP
		--datastore-engine postgres \e
.PP
		--datastore-conn-uri "postgres-connection-string-here"
.PP
.RE
.TP
\fBserve-testing\fP
.RS 4
test server with an in-memory datastore
.RE
.TP
\fBOPTIONS\fP
.RS 4
\fB--grpc-addr\fP
address to listen on to serve gRPC
.TP
\fB--grpc-enabled\fP
enable gRPC gRPC server
.TP
\fB--grpc-max-conn-age\fP
how long a connection serving gRPC should be able to live
.TP
\fB--grpc-max-workers\fP
set the number of workers for this server (0 value means 1 worker per request)
.TP
\fB--grpc-network\fP
network type to serve gRPC ("tcp", "tcp4", "tcp6", "unix", "unixpacket")
.TP
\fB--grpc-shutdown-grace-period\fP
time limit given to the server to shutdown gracefully after it receives SIGINT or SIGTERM\&. A value of zero means no limit
.TP
\fB--grpc-tls-cert-path\fP
local path to the TLS certificate used to serve gRPC
.TP
\fB--grpc-tls-key-path\fP
local path to the TLS key used to serve gRPC
.TP
\fB--http-addr\fP
address to listen on to serve http
.TP
\fB--http-enabled\fP
enable http http server
.TP
\fB--http-tls-cert-path\fP
local path to the TLS certificate used to serve http
.TP
\fB--http-tls-key-path\fP
local path to the TLS key used to serve http
.TP
\fB--load-configs\fP
configuration yaml files to load
.TP
\fB--max-bulk-export-relationships-limit\fP
maximum number of relationships that can be exported in a single request
.TP
\fB--max-caveat-context-size\fP
maximum allowed size of request caveat context in bytes\&. A value of zero or less means no limit
.TP
\fB--max-delete-relationships-limit\fP
maximum number of relationships that can be deleted in a single request
.TP
\fB--max-lookup-resources-limit\fP
maximum number of resources that can be looked up in a single request
.TP
\fB--max-read-relationships-limit\fP
maximum number of relationships that can be read in a single request
.TP
\fB--max-relationship-context-size\fP
maximum allowed size of the context to be stored in a relationship
.TP
\fB--otel-endpoint\fP
OpenTelemetry collector endpoint - the endpoint can also be set by using enviroment variables
.TP
\fB--otel-insecure\fP
connect to the OpenTelemetry collector in plaintext
.TP
\fB--otel-jaeger-endpoint\fP
OpenTelemetry collector endpoint - the endpoint can also be set by using enviroment variables
.TP
\fB--otel-jaeger-service-name\fP
service name for trace data
.TP
\fB--otel-provider\fP
OpenTelemetry provider for tracing ("none", "otlphttp", "otlpgrpc")
.TP
\fB--otel-sample-ratio\fP
ratio of traces that are sampled
.TP
\fB--otel-service-name\fP
service name for trace data
.TP
\fB--otel-trace-propagator\fP
OpenTelemetry trace propagation format ("b3", "w3c", "ottrace")\&. Add multiple propagators separated by comma\&.
.TP
\fB--pprof-block-profile-rate\fP
sets the block profile sampling rate (between 0 and 1)
.TP
\fB--pprof-mutex-profile-rate\fP
sets the mutex profile sampling rate (between 0 and 1)
.TP
\fB--readonly-grpc-addr\fP
address to listen on to serve read-only gRPC
.TP
\fB--readonly-grpc-enabled\fP
enable read-only gRPC gRPC server
.TP
\fB--readonly-grpc-max-conn-age\fP
how long a connection serving read-only gRPC should be able to live
.TP
\fB--readonly-grpc-max-workers\fP
set the number of workers for this server (0 value means 1 worker per request)
.TP
\fB--readonly-grpc-network\fP
network type to serve read-only gRPC ("tcp", "tcp4", "tcp6", "unix", "unixpacket")
.TP
\fB--readonly-grpc-tls-cert-path\fP
local path to the TLS certificate used to serve read-only gRPC
.TP
\fB--readonly-grpc-tls-key-path\fP
local path to the TLS key used to serve read-only gRPC
.TP
\fB--readonly-http-addr\fP
address to listen on to serve read-only HTTP
.TP
\fB--readonly-http-enabled\fP
enable http read-only HTTP server
.TP
\fB--readonly-http-tls-cert-path\fP
local path to the TLS certificate used to serve read-only HTTP
.TP
\fB--readonly-http-tls-key-path\fP
local path to the TLS key used to serve read-only HTTP
.TP
\fB--termination-log-path\fP
local path to the termination log file, which contains a JSON payload to surface as reason for termination
.TP
\fB--update-relationships-max-preconditions-per-call\fP
maximum number of preconditions allowed for WriteRelationships and DeleteRelationships calls
.TP
\fB--write-relationships-max-updates-per-call\fP
maximum number of updates allowed for WriteRelationships calls
.RE
.TP
\fBversion\fP
.RS 4
displays the version of SpiceDB
.RE
.TP
\fBOPTIONS\fP
.RS 4
\fB--include-deps\fP
include dependencies' versions
.RE
.SH EXAMPLES
.TP
	No TLS and in-memory datastore:
.PP
		spicedb serve --grpc-preshared-key "somerandomkeyhere"
.PP
.PP
	TLS and HTTP enabled, and a real datastore:
.PP
		spicedb serve --grpc-preshared-key "realkeyhere" \e
.PP
		--grpc-tls-cert-path path/to/tls/cert --grpc-tls-key-path path/to/tls/key \e
.PP
		--http-enabled http-tls-cert-path path/to/tls/cert --http-tls-key-path path/to/tls/key \e
.PP
		--datastore-engine postgres \e
.PP
		--datastore-conn-uri "postgres-connection-string-here"
.PP