Configure S3

Configure Ursula cold storage with S3-compatible object storage.

Ursula keeps recent data in the hot payload backend and flushes cold chunks and snapshot blobs to the configured cold backend. Multi-node clusters should use S3 or an S3-compatible object store.

Minimal S3 config

[cold]
backend = "s3"
s3_bucket = "ursula-prod"
s3_region = "us-east-1"

Ursula reads standard AWS credentials from the process environment through the AWS SDK stack. For explicit credentials in the config, prefer environment references:

[cold]
backend = "s3"
s3_bucket = "ursula-prod"
s3_region = "us-east-1"
s3_access_key_id = "$URSULA_AWS_ACCESS_KEY_ID"
s3_secret_access_key = "$URSULA_AWS_SECRET_ACCESS_KEY"
s3_session_token = "$URSULA_AWS_SESSION_TOKEN"

If an environment reference is missing, startup fails instead of silently running with an incomplete credential.

S3-compatible endpoints

Set s3_endpoint for compatible stores:

[cold]
backend = "s3"
s3_bucket = "ursula-dev"
s3_region = "us-east-1"
s3_endpoint = "http://127.0.0.1:9000"

Local development

Single-node development can use the filesystem backend:

[cold]
backend = "fs"

Do not use the filesystem cold backend for multi-node clusters.