> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Variables de entorno

> Variables de entorno de despliegue distintivas de Lerian SLC: transporte Núclea/RSFN, el bus entrante SFN, el sidecar de firma y el calendario de liquidación.

Lerian SLC es el rail de liquidación propiedad de Lerian que compensa y liquida sobre el SLC de Núclea a través de la RSFN. Estas variables se definen en el momento del despliegue y requieren reiniciar el servicio para surtir efecto. El backbone universal que comparte cada servicio Go de Lerian —servidor, almacenes de datos, multi-tenancy, telemetría, autenticación de plugins y licenciamiento— se documenta una sola vez en la [referencia de configuración BYOC](/es/reference/byoc-configuration); esta página cubre solo las variables distintivas de Lerian SLC.

En las tablas siguientes, la columna **Valor por defecto / Requerida** muestra el valor por defecto; un calificador en negrita (por ejemplo **Requerida**, **Requerida en producción**) marca las variables que deben definirse. `—` significa que no hay valor por defecto. Cualquier variable marcada como **Sensible** contiene material de credenciales o claves: inyéctala desde tu gestor de secretos en el momento del despliegue y nunca guardes un valor en el repositorio.

## Servicio y runtime

| Variable                        | Valor por defecto / Requerida | Descripción                                                                                                                                                                                                                                                         |
| ------------------------------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SERVER_ADDRESS`                | `:4111`                       | Dirección de escucha HTTP principal. Las sondas de liveness, readiness, métricas y versión se enlazan a este mismo puerto.                                                                                                                                          |
| `SYSTEMPLANE_ENABLED`           | `false`                       | Habilita la API de administración de configuración en tiempo de ejecución de [Systemplane](/es/reference/systemplane/overview) bajo el prefijo `/system` en el puerto principal. Desactivada por defecto (modo solo variables de entorno).                          |
| `TENANT_RUNTIME_CONFIG_ENABLED` | `false`                       | Habilita el almacén de configuración en tiempo de ejecución por tenant y su superficie de administración, resolviendo el transporte de conectividad de cada tenant desde un registro por tenant en lugar de la configuración compartida. Solo selección y política. |

<Note>
  Lerian SLC expone `/health` (liveness) y `/readyz` (readiness) en el puerto principal, además de `/version` y `/metrics` y —cuando la multi-tenancy está habilitada— `GET /readyz/tenant/{id}`. Consulta [Salud y readiness](/es/reference/health-and-readiness) para el contrato de las sondas.
</Note>

## Transporte REST de Núclea

El canal de envío en línea a Núclea a través de TLS mutuo. Deja `NUCLEA_REST_BASE_URL` vacío para mantener el transporte sin cablear.

| Variable                              | Valor por defecto / Requerida    | Descripción                                                                                                                                                        |
| ------------------------------------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `NUCLEA_REST_BASE_URL`                | —                                | URL base del nodo de Núclea. Vacío desactiva el emisor en línea. En producción apunta al endpoint de Núclea; localmente apunta a un simulador.                     |
| `NUCLEA_REST_TIMEOUT_SEC`             | `30`                             | Tiempo de espera por petición en segundos.                                                                                                                         |
| `NUCLEA_REST_CB_CONSECUTIVE_FAILURES` | `5`                              | Fallos consecutivos que abren el circuit breaker.                                                                                                                  |
| `NUCLEA_REST_CB_OPEN_TIMEOUT_SEC`     | `30`                             | Cuánto tiempo permanece abierto el breaker antes de pasar a semiabierto.                                                                                           |
| `NUCLEA_REST_ALLOW_INSECURE_TLS`      | `false`                          | Relaja la verificación TLS de Núclea solo para desarrollo local. El arranque se rechaza cuando esto es `true` bajo `ENV_NAME=production` o `DEPLOYMENT_MODE=saas`. |
| `NUCLEA_REST_CLIENT_CERT_PATH`        | **Requerida en producción/SaaS** | Ruta al certificado de cliente PEM presentado a Núclea para el TLS mutuo.                                                                                          |
| `NUCLEA_REST_CLIENT_KEY_PATH`         | **Requerida en producción/SaaS** | Ruta a la clave privada de cliente PEM para el TLS mutuo. Sensible: el archivo contiene material de clave privada.                                                 |

## Consumidor entrante RSFN

El canal entrante para los mensajes RSFN, más la observación opcional de conformidad XSD.

| Variable                                | Valor por defecto / Requerida | Descripción                                                                                                                                                       |
| --------------------------------------- | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `RSFN_CONSUMER_TRANSPORT`               | `stub`                        | Transporte entrante detrás del puerto del consumidor RSFN: `stub` (un canal REST de desarrollo) o `mq` (el transporte de red RSFN, cableado en homologación).     |
| `RSFN_CONSUMER_BASE_URL`                | —                             | URL base para el transporte `stub`. Vacío deja el consumidor sin cablear.                                                                                         |
| `RSFN_CONSUMER_TIMEOUT_SEC`             | `30`                          | Tiempo de espera por petición en segundos.                                                                                                                        |
| `RSFN_CONSUMER_CB_CONSECUTIVE_FAILURES` | `5`                           | Fallos consecutivos que abren el circuit breaker.                                                                                                                 |
| `RSFN_CONSUMER_CB_OPEN_TIMEOUT_SEC`     | `30`                          | Cuánto tiempo permanece abierto el breaker antes de pasar a semiabierto.                                                                                          |
| `RSFN_CONSUMER_ALLOW_INSECURE_TLS`      | `false`                       | Relaja la verificación TLS del canal stub solo para desarrollo local. Forzada a `false` bajo `ENV_NAME=production` o `DEPLOYMENT_MODE=saas`.                      |
| `RSFN_INBOUND_XSD_VALIDATION_ENABLED`   | `true`                        | Validación XSD de solo observación de los mensajes RSFN/SILOC entrantes contra los esquemas oficiales. Registra y mide la no conformidad sin alterar el despacho. |
| `ASLC_INBOUND_XSD_VALIDATION_ENABLED`   | `true`                        | Validación XSD de solo observación de los mensajes de devolución ASLC entrantes. Registra y mide la no conformidad sin alterar la vía de devolución.              |
| `XSD_VALIDATOR_URL`                     | —                             | URL base del sidecar de validación XSD al que llaman los observadores.                                                                                            |
| `XSD_VALIDATOR_TIMEOUT_SEC`             | `10`                          | Tiempo de espera por petición en segundos para las llamadas de validación XSD.                                                                                    |

## Bus entrante SFN

Ingesta de los mensajes SILOC retransmitidos por el bus SFN. Toda la familia está inerte salvo que `SFN_INGEST_ENABLED=true`.

| Variable               | Valor por defecto / Requerida                                       | Descripción                                                                 |
| ---------------------- | ------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| `SFN_INGEST_ENABLED`   | `false`                                                             | Interruptor maestro de la vía de ingesta SFN (consumidor del bus y driver). |
| `SFN_BUS_PROVIDER`     | `kafka`                                                             | Adaptador de consumidor: `kafka` o `stub` (desarrollo/CI).                  |
| `SFN_KAFKA_BROKERS`    | **Requerida si la ingesta está activada y el proveedor es `kafka`** | Lista de brokers de arranque Kafka/RedPanda separada por comas.             |
| `SFN_KAFKA_TOPIC`      | `siloc.inbound`                                                     | Topic al que publica el relay de SILOC.                                     |
| `SFN_KAFKA_GROUP_ID`   | `—`                                                                 | Id del grupo de consumidores de Kafka; se define por despliegue.            |
| `SFN_KAFKA_BATCH_SIZE` | `100`                                                               | Registros leídos por lote.                                                  |
| `SFN_STUB_TIMEOUT_SEC` | `30`                                                                | Tiempo de espera por petición en segundos para el adaptador `stub`.         |

## Sidecar de firma

Lerian SLC firma el sobre de seguridad SPB a través de un sidecar de firma sin estado, de modo que la clave privada nunca entra en el proceso del servicio. La custodia se puede seleccionar por despliegue.

| Variable                             | Valor por defecto / Requerida | Descripción                                                                                                                                                                                                                                                                         |
| ------------------------------------ | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SIGNER_URL`                         | **Requerida**                 | URL base del sidecar de firma.                                                                                                                                                                                                                                                      |
| `SIGNER_TIMEOUT_SEC`                 | `10`                          | Tiempo de espera por petición en segundos para las llamadas de firma.                                                                                                                                                                                                               |
| `SIGNER_SOFTKEY_PFX_PASSPHRASE`      | —                             | Frase de contraseña para el adaptador de custodia de clave por software. Sensible. La postura de clave por software se rechaza bajo `ENV_NAME=production` salvo que se permita de forma explícita.                                                                                  |
| `SIGNER_SOFTKEY_ALLOW_IN_PRODUCTION` | `false`                       | Permite la postura de clave por software en proceso en producción. Déjala en `false`: una vía de custodia por hardware o KMS en la nube es la postura de producción.                                                                                                                |
| `SIGNER_AWSKMS_DEFAULT_KEY_REF`      | —                             | Referencia de clave de reserva opcional para el adaptador de custodia por KMS en la nube, usada solo cuando una petición no aporta ninguna. El material de clave nunca entra en el proceso; solo se pasa la referencia. La región de custodia proviene del `AWS_REGION` compartido. |

## Calendario de liquidación

Lerian SLC controla el despacho a las ventanas de liquidación de Núclea y ejecuta un worker de calendario por tenant.

| Variable                         | Valor por defecto / Requerida | Descripción                                                                                                                                  |
| -------------------------------- | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `SCHEDULE_CREDIT_WINDOW_OPEN`    | `00:30`                       | Apertura de la ventana de aceptación de créditos, como hora local de São Paulo `HH:MM` (intervalo semiabierto, inclusivo).                   |
| `SCHEDULE_CREDIT_WINDOW_CLOSE`   | `17:30`                       | Cierre de la ventana de aceptación de créditos, como hora local de São Paulo `HH:MM` (exclusivo).                                            |
| `SCHEDULE_WORKER_ENABLED`        | `true`                        | Habilita el worker de calendario recurrente por tenant (alertas de corte y, cuando están habilitados, los drivers de despacho y devolución). |
| `SCHEDULE_WORKER_INTERVAL_SEC`   | `30`                          | Período de tick del worker de calendario en segundos.                                                                                        |
| `SCHEDULE_GRID_GATE_ENABLED`     | `false`                       | Controla el despacho según la malla STR respaldada por calendario en lugar de la única ventana de crédito.                                   |
| `SCHEDULE_CUTOFF_ALERT_LEAD_MIN` | `30`                          | Minutos antes de un corte STR en los que la ventana entra en pre-corte y se emite una alerta.                                                |
| `SCHEDULE_HOLIDAYS`              | —                             | Feriados bancarios `YYYY-MM-DD` separados por comas en hora local de São Paulo; la malla nunca abre una ventana en un feriado.               |

<Note>
  Lerian SLC incluye una familia de conmutadores de runtime por driver que suscriben cada flujo de liquidación al worker de calendario: despacho y reenvío de crédito y débito, anticipación, cancelación, retransmisión de estado, confirmación D+1 y alertas de operaciones atascadas. Cada uno es un conmutador `SCHEDULE_*_ENABLED` que por defecto es `false` y se suscribe durante la homologación una vez que se aprovisiona el material de Núclea por tenant. Su cadencia y sus ajustes de lote siguen el patrón `*_INTERVAL_SEC` / `*_BATCH_SIZE` / `*_PAGE_SIZE`.
</Note>

## Webhooks

Lerian SLC puede entregar eventos de liquidación a un endpoint suscriptor. En BYOC el cliente aporta el material de credenciales a través de su propio secreto de Kubernetes.

| Variable                         | Valor por defecto / Requerida                    | Descripción                                                                                                                                                                   |
| -------------------------------- | ------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `WEBHOOK_WORKER_ENABLED`         | `false`                                          | Habilita el worker de entrega de webhooks por tenant.                                                                                                                         |
| `WEBHOOK_DELIVERY_PROVIDER`      | `direct`                                         | Adaptador de entrega: `direct` (HTTP con HMAC en BYOC) o `notifications` (SaaS).                                                                                              |
| `WEBHOOK_API_KEY`                | **Requerida si hay entrega**                     | Clave de API definida por el cliente enviada en el encabezado de clave de API del webhook. Sensible.                                                                          |
| `WEBHOOK_API_KEY_FILE`           | —                                                | Ruta a un archivo que contiene la clave de API (un volumen de secreto montado). Cuando se define, se ignora el valor en línea.                                                |
| `WEBHOOK_HMAC_SECRET`            | **Requerida si hay entrega**                     | Secreto compartido definido por el cliente usado para firmar cada webhook. Sensible. Nunca proviene del plano de configuración en tiempo de ejecución ni de la base de datos. |
| `WEBHOOK_HMAC_SECRET_FILE`       | —                                                | Ruta a un archivo que contiene el secreto HMAC (un volumen de secreto montado). Cuando se define, se ignora el valor en línea.                                                |
| `WEBHOOK_DELIVERY_TIMEOUT_SEC`   | `10`                                             | Límite de un único intento de POST de webhook, en segundos.                                                                                                                   |
| `WEBHOOK_MAX_ATTEMPTS`           | `6`                                              | Presupuesto de reintentos por suscripción antes de aparcar una entrega en la cola de mensajes muertos.                                                                        |
| `WEBHOOK_ALLOW_PRIVATE_NETWORK`  | `false`                                          | Relajación solo de desarrollo del bloqueo SSRF de entrega. Debe permanecer en `false` en producción/SaaS: de lo contrario el arranque falla de forma cerrada.                 |
| `WEBHOOK_NOTIFICATIONS_BASE_URL` | **Requerida si el proveedor es `notifications`** | URL base del servicio de notificaciones usado por el proveedor SaaS.                                                                                                          |
