Skip to content

Configuration keys

See Configuration for loading, environment expansion, and tenant refresh. Keys without defaults are required.

Main configuration

KeyDefaultPurpose
bucket.uriPermanent object and index store
bucket.credentialsnoneStore access key and secret
database.urlPostgres URL
database.max_connections10Connection-pool limit
database.migrateautooff blocks automatic migrations
hooks.signing_keyPEM Ed25519 private key
hooks.timeout_secs10Hook response timeout in seconds
tenants.uriTenant-file URL
tenants.refresh_secs30Tenant reload and revocation window
tenants.headerx-enroute-tenantAPI tenant header
listen.api0.0.0.0:50051gRPC listener
listen.git0.0.0.0:8080Git HTTP listener
maintenance.grace_secs21600Orphan retention window
maintenance.deleted_grace_secs86400Deleted repository retention window
sync.allow_private_remotesfalsePermit HTTP and private remote addresses

Implementation choices

Configure exactly one table in each group.

GroupKeys
Ingestioningest.local.scratch or ingest.lambda.function, .region, .handoff.uri, .handoff.credentials, .max_pack_bytes, .qualifier
Maintenancemaintenance.run.in-process.interval_secs or empty maintenance.run.off
Telemetrytelemetry.endpoint, .headers, .sample_ratio

tenants.<id> configures a tenant ID, its hook_endpoint_url, and exact or wildcard domains. Tenant files are limited to 1 MiB.

Lambda ingestion reads ENROUTE_SECRET_ID, DATABASE_MAX_CONNECTIONS, and OTEL_EXPORTER_OTLP_TRACES_ENDPOINT. Its referenced secret contains DATABASE_URL, STORAGE_ACCESS_KEY_ID, STORAGE_SECRET_ACCESS_KEY, and OTEL_EXPORTER_OTLP_HEADERS.

FlagProgramPurpose
--configallConfiguration URL; also ENROUTE_CONFIG
--dry-runschema and maintenance toolsReport work without changes
--everymaintenance toolRun at this interval

Generated from docs/reference/configuration-keys.md at ead0474