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_ENABLED toggles multi-tenancy (note the MULTI_TENANCY_ spelling). The Tenant Manager connection uses the shared MULTI_TENANT_* variables. See Multi-tenancy and Default network ports.
BTG integration
These variables set the endpoints and credentials for the BTG connection. They also set the background refresh intervals for the BTG access token and the synced credentials.Credential encryption and internal API keys
The rail encrypts stored credentials at rest. It authenticates internal calls between the worker and API pods with an API key. Both keys 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. If you enable multi-tenancy, 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.
