Skip to content

Configuration

The proxy configuration defines three things:

  1. Buckets — Virtual buckets that map client-visible names to backend object stores
  2. Roles — Trust policies for OIDC token exchange via AssumeRoleWithWebIdentity
  3. Credentials — Long-lived access keys for service accounts and internal tools

Config Format

The server runtime uses TOML:

toml
[[buckets]]
name = "public-data"
backend_type = "s3"
anonymous_access = true

[buckets.backend_options]
endpoint = "https://s3.us-east-1.amazonaws.com"
bucket_name = "my-public-assets"
region = "us-east-1"

The CF Workers runtime uses JSON (as an environment variable or wrangler.toml object):

json
{
  "buckets": [{
    "name": "public-data",
    "backend_type": "s3",
    "anonymous_access": true,
    "backend_options": {
      "endpoint": "https://s3.us-east-1.amazonaws.com",
      "bucket_name": "my-public-assets",
      "region": "us-east-1"
    }
  }]
}

Config Providers

The proxy can load configuration from multiple backends. See Config Providers for details.

ProviderFeature FlagUse Case
Static File(always available)Simple deployments, baked-in config
HTTP APIconfig-httpCentralized config service
DynamoDBconfig-dynamodbAWS-native infrastructure
PostgreSQLconfig-postgresDatabase-backed config

All providers can be wrapped with a cache for performance.

Full Example

See the annotated config example for a complete configuration file with all options documented.