Skip to main content
DevOps sets these variables at deploy time. A change requires a service restart. Runtime and business settings live in Configuration. In the tables below, the Default / Required column shows the default value. A bold qualifier (for example Required, Required in production, Required if enabled) marks a variable you must set. means no default.

Infrastructure configuration


This section is for DevOps teams. DevOps sets these variables at deploy time. A change takes effect only after a service restart.

Application

TLS

Proxy headers

Set these when the service runs behind a load balancer or reverse proxy. They let the service read the real client IP for rate limiting and audit logs.

Authentication

This plugin delegates authorization to plugin-auth. Configure the connection with the variables below.
When PLUGIN_AUTH_ENABLED=true, PLUGIN_AUTH_ADDRESS must use HTTPS in production environments. The service rejects an HTTP address at startup.

Test admin (non-production only)

BTF_TEST_ADMIN_ENABLED must remain false in production. It exposes test-only admin endpoints (for example POST /admin/test/circuit-breakers/reset) that carry no tenant and bypass production authentication. Only the docker-compose mock-lane enables it, for E2E tests. Any deployment with this flag true outside a sealed test network is a misconfiguration.

Idempotency

Multi-tenancy

BYOC single-tenant:
SaaS multi-tenant:

PostgreSQL

PostgreSQL replica

Configure a read replica for query offloading. All fields fall back to primary values when unset.

MongoDB

The service requires MongoDB to persist transfer audit events. It does not start without a valid MongoDB connection.

Redis

Redis is a mandatory dependency. It caches idempotency keys and detects duplicates. If Redis is unavailable at startup, or becomes unreachable at runtime, the service reports as DOWN to the readiness probe. It then stops accepting requests.

JD SPB connection

You must set these variables for BYOC deployments. In SaaS mode, Lerian manages the JD connection.

JD polling

JD_POLLING_ENABLED defaults to false for safer deployments. In single-tenant mode, set ORGANIZATION_ID before you enable it. Background workers inject that value into the context for downstream CRM and Midaz calls. In multi-tenant mode, the TED IN poller manager finds each active tenant through the multi-tenancy platform service. It then starts one poller per tenant and resolves each tenant’s JD configuration.

External services (Midaz)

External services (CRM)

External services (Fees)

BTF_FEE_ENABLED is the master switch. When false (default), the plugin builds no Fees adapter and every transfer proceeds with fee=0 and no HTTP call. The other FEES_* variables take effect only when BTF_FEE_ENABLED=true.

RabbitMQ

The plugin can publish transfer lifecycle events to RabbitMQ for downstream consumers.

Streaming outbox

The streaming subsystem publishes transfer events to a Redpanda/Kafka broker through a transactional outbox. You must enable it for outbound webhook delivery (WEBHOOK_ENABLED=true requires STREAMING_ENABLED=true).

Webhook delivery

Outbound webhook delivery requires both RabbitMQ and the streaming outbox. The webhook worker consumes events from a RabbitMQ queue and delivers them to subscriber endpoints.

Telemetry (OpenTelemetry)

License

Encryption

Field-level encryption for sensitive data at rest. Each key must be a hex-encoded 32-byte AES-256 key (64 hex characters). Leave a key empty to disable encryption for that field.