In the tables below, the Default / Required column shows the default value; a bold qualifier (for example Required) marks variables you must set.
— means no default. 🔒 marks a secret — inject it at deploy time from your secret store, never commit it. This page lists variable names and behavior only; it prints no secret values.This rail does not mount the systemplane admin API. It uses the shared
POSTGRES_* datastore shape — see Datastores.Server and port
The service listens on the address inSERVER_ADDRESS (default :8080). The liveness, readiness, and version probes bind this same port. Multi-tenancy is toggled with MULTI_TENANCY_ENABLED (note the MULTI_TENANCY_ spelling; the Tenant Manager connection uses the shared MULTI_TENANT_* variables). See Multi-tenancy and Default network ports.
BTG integration
Endpoints and credentials for the connection to BTG, plus the background refresh intervals for the BTG access token and synced credentials.Credential encryption and internal API keys
The rail encrypts stored credentials at rest and authenticates internal (worker-to-API) calls with an API key. Both support a_PREVIOUS slot so you can rotate the active value without downtime.
Midaz ledger binding
Reconciliation
Webhook dispatch and idempotency
Migrations
Health and readiness
The rail exposesGET /health (liveness) and GET /readyz (readiness) on the main port. When multi-tenancy is enabled, it adds an auth-gated per-tenant probe at GET /readyz/tenant/{id}. See Health and readiness for the response shape and startup/drain behavior.
