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. PLUGIN_AUTH_ENABLED defaults to true, and production forces it on. See Default network ports.
License
A license is mandatory in every environment. The boot fails when either variable is blank. License Manager describes how the product checks the license.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
Internal Midaz outbox
The rail always initializes an internal PostgreSQL outbox for asynchronous Midaz ledger operations. This is an internal work queue, not an external CloudEvents or Streaming Hub catalog. Startup validates the retry and processing-time budgets together and rejects unsafe combinations.Reconciliation
Webhook dispatch and idempotency
Bill consult
These variables configurePOST /v1/payments/consult. The rate limit counts consults per caller, and each replica counts on its own.
Migrations
Health and readiness
The rail exposesGET /health (liveness) and GET /readyz (readiness) on the main port. See Health and readiness for the response shape.
