> ## 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. Defines estas variables en el momento del despliegue. Un reinicio del servicio las aplica. Cada servicio Go de Lerian comparte un backbone universal — servidor, almacenes de datos, multi-tenancy, telemetría, autenticación de plugins y licenciamiento. La [referencia de configuración BYOC](/es/reference/byoc-configuration) documenta ese backbone una sola vez. 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 una variable que debes definir. `—` significa que no hay valor por defecto. Una variable marcada como **Sensible** contiene material de credenciales o claves. Inyéctala desde tu gestor de secretos en el momento del despliegue. 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`. Cuando habilitas la multi-tenancy, también expone `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

Este canal envía a Núclea en línea 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

Este canal recibe los mensajes RSFN entrantes. También observa la 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).                                              |
| `MQ_BRIDGE_URL`                         | **Requerida si el transporte es `mq`** | URL base del puente MQ. Debes declararla explícitamente cuando `RSFN_CONSUMER_TRANSPORT=mq`; no puede heredar `http://localhost:9121`, porque la dirección correcta depende de tu topología de despliegue. |
| `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`                     | `http://localhost:9091`                | 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

El bus SFN retransmite los mensajes SILOC. Esta vía los ingiere. Toda la familia permanece inerte salvo que definas `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`   | valor por defecto propio del servicio                               | Id del grupo de consumidores de Kafka; sobrescríbelo por despliegue cuando haga falta. |
| `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. La clave privada nunca entra en el proceso del servicio. Seleccionas el backend de custodia por despliegue.

| Variable                             | Valor por defecto / Requerida | Descripción                                                                                                                                                                                                                                                                                                                                                                           |
| ------------------------------------ | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SIGNER_URL`                         | `http://localhost:9101`       | 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. El adaptador de KMS en la nube necesita `SIGNER_AWSKMS_REGION`, la región AWS de la clave KMS, que el despliegue estándar deriva 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`             | **Requerida en todos los entornos** | Apertura de la ventana de aceptación de créditos, como hora local de São Paulo `HH:MM` (intervalo semiabierto, límite de apertura inclusivo). Declárala explícitamente para la malla vigente.                                                                      |
| `SCHEDULE_CREDIT_WINDOW_CLOSE`            | **Requerida en todos los entornos** | Cierre de la ventana de aceptación de créditos, como hora local de São Paulo `HH:MM` (exclusivo). Declárala explícitamente para la malla vigente.                                                                                                                  |
| `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_DISPATCH_MAX_TRANSMIT_ATTEMPTS` | `20`                                | Intentos de transmisión que un envío puede consumir antes de que la operación quede aparcada para revisión del operador en lugar de reintentar para siempre. Con el tick por defecto de 30 segundos, 20 intentos son unos diez minutos antes de la primera 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>
  Debes declarar las dos variables de la ventana de crédito, incluso si usas el calendario estándar. El servicio rechaza el arranque si omites algún valor o lo dejas vacío; nunca asume una ventana de crédito a partir de un valor por defecto.
</Note>

<Note>
  Lerian SLC incluye una familia de conmutadores de runtime por driver. Cada conmutador suscribe un flujo 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`. Suscribes cada uno durante la homologación, una vez que el material de Núclea por tenant está listo. La cadencia y los 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_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.                                                                                                          |
