> ## 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 en tiempo de despliegue propias de Lerian SLC: el transporte de Núclea/RSFN, el bus entrante de SFN, el sidecar de firma y el calendario de liquidación.

Lerian SLC es el riel de liquidación propiedad de Lerian que compensa y liquida a través del SLC de Núclea en la RSFN. Configuras estas variables en tiempo de despliegue. Un reinicio del servicio las aplica. Todo servicio Go de Lerian comparte una base común: servidor, almacenes de datos, multi-tenancy, telemetría, autenticación de plugins y licenciamiento. [Fundamentos de configuración de BYOC](/es/reference/byoc-configuration) documenta esa base común una sola vez. Esta página cubre solo las variables propias de Lerian SLC.

En las tablas siguientes, la columna **Predeterminado / Obligatorio** muestra el valor predeterminado. Un calificador en negrita (p. ej. **Obligatorio**, **Obligatorio en producción**) marca una variable que debes configurar. `—` significa que no hay valor predeterminado. Una variable marcada como **Sensible** lleva material de credenciales o claves. Inyéctala desde tu gestor de secretos en tiempo de despliegue. Nunca hagas commit de un valor.

## Servicio y runtime

| Variable                        | Predeterminado / Obligatorio | Descripción                                                                                                                                                                                                                                                              |
| ------------------------------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `SERVER_ADDRESS`                | `:4111`                      | Dirección de escucha HTTP principal. Los probes 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/platform/systemplane/overview) bajo el prefijo `/system` en el puerto principal. Desactivado de forma predeterminada (modo de 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, y resuelve el transporte de conectividad de cada tenant a partir de 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 multi-tenancy, también expone `GET /readyz/tenant/{id}`. Consulta [Health and readiness](/es/reference/health-and-readiness) para conocer el contrato del probe.
</Note>

## Transporte REST de Núclea

Este canal envía a Núclea en línea mediante TLS mutuo. Deja `NUCLEA_REST_BASE_URL` vacío para mantener el transporte sin conectar.

| Variable                              | Predeterminado / Obligatorio       | 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`                               | Timeout por solicitud, 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 este valor es `true` bajo `ENV_NAME=production` o `DEPLOYMENT_MODE=saas`. |
| `NUCLEA_REST_CLIENT_CERT_PATH`        | **Obligatorio en producción/SaaS** | Ruta al certificado de cliente PEM que se presenta a Núclea para el TLS mutuo.                                                                                            |
| `NUCLEA_REST_CLIENT_KEY_PATH`         | **Obligatorio en producción/SaaS** | Ruta a la clave privada de cliente PEM para el TLS mutuo. Sensible: el archivo lleva material de clave privada.                                                           |

## Consumidor entrante de RSFN

Este canal recibe mensajes entrantes de RSFN. También observa la conformidad con XSD.

| Variable                                | Predeterminado / Obligatorio             | Descripción                                                                                                                                                                                                                                                                                         |
| --------------------------------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `RSFN_CONSUMER_TRANSPORT`               | `stub`                                   | Transporte entrante detrás del puerto del consumidor de RSFN: `stub` (un canal REST de desarrollo) o `mq` (el transporte de red de RSFN, conectado en homologación).                                                                                                                                |
| `MQ_BRIDGE_URL`                         | **Obligatorio si el transporte es `mq`** | URL base del bridge de MQ. Debes declararla explícitamente cuando `RSFN_CONSUMER_TRANSPORT=mq`; no puede heredar `http://localhost:9121`, porque la dirección correcta depende de la topología de tu despliegue.                                                                                    |
| `RSFN_CONSUMER_BASE_URL`                | —                                        | URL base para el transporte `stub`. Vacío deja el consumidor sin conectar.                                                                                                                                                                                                                          |
| `RSFN_CONSUMER_TIMEOUT_SEC`             | `30`                                     | Timeout por solicitud, en segundos.                                                                                                                                                                                                                                                                 |
| `CIRCUIT_BREAKER_ENABLED`               | `false`                                  | Habilita el gestor de circuit breaker compartido. El gestor protege más que a este consumidor: el arranque falla de forma cerrada cuando el consumidor de RSFN (`stub` o `mq`), el canal REST de Núclea (`NUCLEA_REST_BASE_URL` configurado) o la ruta de Connect:Direct están configurados sin él. |
| `RSFN_CONSUMER_CB_CONSECUTIVE_FAILURES` | `5`                                      | Fallos consecutivos que abren el breaker del consumidor de RSFN cuando `CIRCUIT_BREAKER_ENABLED=true`.                                                                                                                                                                                              |
| `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. Forzado 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 entrantes de RSFN/SILOC 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 retorno entrantes de ASLC. Registra y mide la no conformidad sin alterar el pipeline de retorno.                                                                                                                                              |
| `XSD_VALIDATOR_URL`                     | `http://localhost:9091`                  | URL base del sidecar de validación XSD al que llaman los observadores.                                                                                                                                                                                                                              |
| `XSD_VALIDATOR_TIMEOUT_SEC`             | `10`                                     | Timeout por solicitud, en segundos, para las llamadas de validación XSD.                                                                                                                                                                                                                            |

## Bus entrante de SFN

El bus de SFN transmite mensajes de SILOC. Esta ruta los ingiere. Toda la familia permanece inerte a menos que configures `SFN_INGEST_ENABLED=true`.

| Variable               | Predeterminado / Obligatorio                                          | Descripción                                                                        |
| ---------------------- | --------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| `SFN_INGEST_ENABLED`   | `false`                                                               | Interruptor maestro de la ruta de ingesta de SFN (consumidor del bus y driver).    |
| `SFN_BUS_PROVIDER`     | `kafka`                                                               | Adaptador de consumidor: `kafka` o `stub` (desarrollo/CI).                         |
| `SFN_KAFKA_BROKERS`    | **Obligatorio si la ingesta está activada y el proveedor es `kafka`** | Lista de brokers bootstrap de Kafka/RedPanda separados por comas.                  |
| `SFN_KAFKA_TOPIC`      | `siloc.inbound`                                                       | Topic al que publica el relay de SILOC.                                            |
| `SFN_KAFKA_GROUP_ID`   | predeterminado propio del servicio                                    | Id del grupo de consumidores de Kafka; anúlalo por despliegue cuando lo necesites. |
| `SFN_KAFKA_BATCH_SIZE` | `100`                                                                 | Registros leídos por lote.                                                         |
| `SFN_STUB_TIMEOUT_SEC` | `30`                                                                  | Timeout por solicitud, en segundos, para el adaptador `stub`.                      |

## Sidecar de firma

Lerian SLC firma el envelope de seguridad de SPB mediante un sidecar de firma sin estado. La clave privada nunca entra al proceso del servicio. Seleccionas el backend de custodia por despliegue.

| Variable                             | Predeterminado / Obligatorio | Descripción                                                                                                                                                                                                                                                                                                                                                                                |
| ------------------------------------ | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `SIGNER_URL`                         | `http://localhost:9101`      | URL base del sidecar de firma.                                                                                                                                                                                                                                                                                                                                                             |
| `SIGNER_TIMEOUT_SEC`                 | `10`                         | Timeout por solicitud, en segundos, para las llamadas de firma.                                                                                                                                                                                                                                                                                                                            |
| `SIGNER_SOFTKEY_PFX_PASSPHRASE`      | —                            | Passphrase para el adaptador de custodia de clave de software. Sensible. La postura de clave de software se rechaza bajo `ENV_NAME=production` a menos que se permita explícitamente.                                                                                                                                                                                                      |
| `SIGNER_SOFTKEY_ALLOW_IN_PRODUCTION` | `false`                      | Permite la postura de clave de software en proceso en producción. Déjalo en `false`: una ruta de custodia por hardware o cloud KMS es la postura de producción.                                                                                                                                                                                                                            |
| `SIGNER_AWSKMS_DEFAULT_KEY_REF`      | —                            | Referencia de clave de respaldo opcional para el adaptador de custodia de cloud KMS, usada solo cuando una solicitud no aporta ninguna. El material de clave nunca entra al proceso: solo se pasa la referencia. El adaptador de cloud KMS necesita `SIGNER_AWSKMS_REGION`, la región de AWS de la clave de KMS, que el despliegue estándar deriva de la variable compartida `AWS_REGION`. |

## Calendario de liquidación

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

| Variable                                  | Predeterminado / Obligatorio          | Descripción                                                                                                                                                                                                                                                            |
| ----------------------------------------- | ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SCHEDULE_CREDIT_WINDOW_OPEN`             | **Obligatorio en todos los entornos** | Apertura de la ventana de aceptación de crédito, como `HH:MM` hora local de São Paulo (intervalo semiabierto, el límite de apertura es inclusivo). Declárala explícitamente para la grade vigente.                                                                     |
| `SCHEDULE_CREDIT_WINDOW_CLOSE`            | **Obligatorio en todos los entornos** | Cierre de la ventana de aceptación de crédito, como `HH:MM` hora local de São Paulo (exclusivo). Declárala explícitamente para la grade vigente.                                                                                                                       |
| `SCHEDULE_WORKER_ENABLED`                 | `true`                                | Habilita el worker de calendario por tenant recurrente (alertas de cutoff y, cuando está habilitado, los drivers de despacho y retorno).                                                                                                                               |
| `SCHEDULE_WORKER_INTERVAL_SEC`            | `30`                                  | Período del tick del worker de calendario, en segundos.                                                                                                                                                                                                                |
| `SCHEDULE_GRID_GATE_ENABLED`              | `false`                               | Condiciona el despacho a la grilla del STR respaldada por calendario en lugar de la única ventana de crédito.                                                                                                                                                          |
| `SCHEDULE_CUTOFF_ALERT_LEAD_MIN`          | `30`                                  | Minutos antes de un cutoff del STR en los que la ventana entra en pre-cutoff y se emite una alerta.                                                                                                                                                                    |
| `SCHEDULE_DISPATCH_MAX_TRANSMIT_ATTEMPTS` | `20`                                  | Intentos de transmisión que un despacho puede agotar antes de que la operación quede aparcada para revisión del operador en lugar de reintentar para siempre. Con el tick predeterminado 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 grilla nunca abre una ventana en un feriado.                                                                                                                                       |

<Note>
  Debes declarar ambas variables de ventana de crédito, incluso cuando uses el calendario vigente. El servicio se rehúsa a arrancar si falta o está en blanco alguno de los valores. Nunca asume una grade de crédito a partir de un valor predeterminado.
</Note>

<Note>
  Lerian SLC incluye una familia de interruptores de runtime por driver. Cada interruptor incorpora un flujo al worker de calendario: despacho y reenvío de crédito y débito, anticipación, cancelación, relay de estado, confirmación D+1 y alertas de operación atascada. Cada uno es un switch `SCHEDULE_*_ENABLED` que por defecto es `false`. Incorporas cada uno durante la homologación, una vez que el material de Núclea por tenant está listo. Los controles de cadencia y 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 mediante su propio secret de Kubernetes.

| Variable                         | Predeterminado / Obligatorio                       | Descripción                                                                                                                                                                    |
| -------------------------------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `WEBHOOK_WORKER_ENABLED`         | `false`                                            | Habilita el worker de entrega de webhooks por tenant.                                                                                                                          |
| `WEBHOOK_DELIVERY_PROVIDER`      | `direct`                                           | Adaptador de entrega: `direct` (HMAC HTTP de BYOC) o `notifications` (SaaS).                                                                                                   |
| `WEBHOOK_API_KEY`                | **Obligatorio si se entrega**                      | API key definida por el cliente, enviada en el encabezado de API key del webhook. Sensible.                                                                                    |
| `WEBHOOK_API_KEY_FILE`           | —                                                  | Ruta a un archivo que contiene la API key (un volumen de secret montado). Cuando está configurada, se ignora el valor en línea.                                                |
| `WEBHOOK_HMAC_SECRET`            | **Obligatorio si se 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 secret montado). Cuando está configurada, se ignora el valor en línea.                                           |
| `WEBHOOK_MAX_ATTEMPTS`           | `6`                                                | Presupuesto de reintentos por suscripción antes de que una entrega quede aparcada en la cola dead-letter.                                                                      |
| `WEBHOOK_ALLOW_PRIVATE_NETWORK`  | `false`                                            | Relajación solo para 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` | **Obligatorio si el proveedor es `notifications`** | URL base del servicio de notificaciones usado por el proveedor de SaaS.                                                                                                        |
