> ## 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 para Lerian SCR: el canal de consulta de BACEN, los almacenes de datos, el streaming de eventos, el secret store, y las claves en reposo.

Lerian SCR es el riel propiedad de Lerian que consulta las posiciones de los prestatarios en BACEN. Estas variables se configuran en el momento del despliegue. Un reinicio del servicio hace que surtan efecto. El system plane contiene un segundo conjunto de perillas que un operador cambia después del despliegue. Consulta [Operaciones](/es/rails/scr/scr-operations) y [System plane](/es/reference/platform/systemplane/overview).

En las tablas siguientes, la columna **Predeterminado / Obligatorio** muestra el valor por defecto. `—` significa que no hay valor por defecto. Un calificador en negrita marca un valor que debes establecer. Una fila marcada `Sensitive.` lleva material de credencial o de clave. Inyéctalo desde tu gestor de secretos en el momento del despliegue, y nunca hagas commit de un valor.

La postura estricta cubre un nombre de entorno de producción y el modo de despliegue `saas`. **Obligatorio en producción** marca un valor que la postura estricta exige. Un valor faltante o inseguro ahí rechaza el arranque.

## Servicio y tiempo de ejecución

***

| Variable                       | Predeterminado / Obligatorio           | Descripción                                                                                                                                                                                                                                                                      |
| ------------------------------ | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SERVICE_NAME`                 | `br-scr`                               | Identidad del servicio grabada en los logs y la telemetría.                                                                                                                                                                                                                      |
| `ENV_NAME`                     | `development`                          | Entorno de despliegue. Los valores `production` y `prod` seleccionan la postura estricta.                                                                                                                                                                                        |
| `LOG_LEVEL`                    | `info`                                 | Nivel mínimo de log. Uno de `debug`, `info`, `warn`, `error`. Otro valor rechaza el arranque.                                                                                                                                                                                    |
| `SERVER_PORT`                  | `3003`                                 | Puerto de escucha HTTP entrante.                                                                                                                                                                                                                                                 |
| `DEPLOYMENT_MODE`              | `local`, **Obligatorio en producción** | Postura TLS. Uno de `local`, `byoc`, `saas`. El valor `saas` selecciona la postura estricta. La postura estricta exige un valor explícito.                                                                                                                                       |
| `TRUSTED_PROXIES`              | —                                      | Direcciones de proxy o rangos CIDR separados por comas cuya IP de cliente reenviada confía el servicio. Vacío no confía en ningún proxy y lee el peer directo. Un rango comodín rechaza un arranque estricto.                                                                    |
| `PROXY_HEADER`                 | `X-Forwarded-For`                      | Header desde el que el servicio lee la IP del cliente. Se aplica solo cuando la lista de proxies confiables está definida.                                                                                                                                                       |
| `MULTI_TENANT_ENABLED`         | `false`                                | El valor `true` sirve a varias instituciones desde una instancia a través del directorio de tenants. El valor `false` sirve a una sola.                                                                                                                                          |
| `MULTI_TENANT_URL`             | **Obligatorio con multi-tenancy**      | URL base del directorio de tenants.                                                                                                                                                                                                                                              |
| `MULTI_TENANT_SERVICE_API_KEY` | **Obligatorio con multi-tenancy**      | Clave de servicio enviada como `X-API-Key` en cada solicitud al directorio de tenants. Sensible.                                                                                                                                                                                 |
| `READYZ_DRAIN_DELAY`           | `3s`                                   | Ventana que se mantiene abierta después de que readiness responde 503 al apagar, antes de que el listener se cierre. Un `0` desactiva la espera. Un valor inválido o negativo vuelve al valor por defecto. El servicio limita la ventana a un tercio del presupuesto de apagado. |

<Note>
  Lerian SCR expone `/health`, `/readyz`, y `/version` en el puerto principal. Consulta [Health y readiness](/es/reference/health-and-readiness) para el contrato de las sondas, y [Operaciones](/es/rails/scr/scr-operations) para las comprobaciones de readiness.
</Note>

## Postgres

***

Postgres contiene el registro de auditoría, los metadatos de la credencial, y el outbox. Un operador aplica el esquema antes del primer arranque. El servicio lee el esquema y nunca lo crea.

| Variable                  | Predeterminado / Obligatorio             | Descripción                                                                                               |
| ------------------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| `POSTGRES_HOST`           | **Obligatorio en producción**            | Host de la base de datos.                                                                                 |
| `POSTGRES_PORT`           | `5432`                                   | Puerto de la base de datos.                                                                               |
| `POSTGRES_USER`           | **Obligatorio en producción**            | Usuario de la base de datos.                                                                              |
| `POSTGRES_PASSWORD`       | —                                        | Contraseña de ese usuario. Sensible.                                                                      |
| `POSTGRES_DB`             | **Obligatorio en producción**            | Nombre de la base de datos.                                                                               |
| `POSTGRES_SSLMODE`        | `disable`, **Obligatorio en producción** | Modo TLS de la conexión. La postura estricta acepta solo `require`, `verify-ca`, o `verify-full`.         |
| `POSTGRES_MAX_OPEN_CONNS` | `25`                                     | Máximo de conexiones abiertas en el pool. Un valor de `0` o menor restaura el valor por defecto.          |
| `POSTGRES_MAX_IDLE_CONNS` | `10`                                     | Máximo de conexiones inactivas en el pool. Un valor de `0` o menor restaura el valor por defecto.         |
| `POSTGRES_CONN_LIFETIME`  | `30m`                                    | Vida máxima de una conexión del pool. Un valor no parseable vuelve al valor por defecto.                  |
| `POSTGRES_CONN_IDLE_TIME` | `5m`                                     | Tiempo máximo de inactividad de una conexión del pool. Un valor no parseable vuelve al valor por defecto. |

## Redis

***

Redis respalda la caché de resultados, la ventana de idempotencia, y el límite de tasa entrante.

| Variable             | Predeterminado / Obligatorio           | Descripción                                                                                                                                                                          |
| -------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `REDIS_HOST`         | **Obligatorio**                        | Host de la caché. Todo modo de despliegue lo exige, a menos que el operador declare la exclusión explícita indicada abajo. Un host en blanco rechaza el arranque en caso contrario.  |
| `REDIS_PORT`         | `6379`                                 | Puerto de la caché.                                                                                                                                                                  |
| `REDIS_PASSWORD`     | —                                      | Contraseña de la caché. Sensible.                                                                                                                                                    |
| `REDIS_TLS_ENABLED`  | `false`, **Obligatorio en producción** | La postura estricta exige `true` cuando Redis está configurado.                                                                                                                      |
| `SCR_REDIS_DISABLED` | `false`                                | El valor `true` es la declaración explícita de que este despliegue funciona sin Redis. La caché de resultados, la ventana de idempotencia, y el límite de tasa entonces se degradan. |

## Streaming

***

El despachador del outbox publica los eventos de consulta. Ninguna variable establece el topic, porque el servicio lo deriva de la fuente del evento. Las primeras cinco variables pertenecen a Lerian SCR. El resto pertenece a la librería de streaming, que aplica el TLS del broker y las credenciales SASL a la conexión.

| Variable                          | Predeterminado / Obligatorio           | Descripción                                                                                                                                                                                                      |
| --------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SCR_STREAMING_BROKERS`           | **Obligatorio**                        | Direcciones de brokers separadas por comas. Todo modo de despliegue las exige, a menos que el operador declare la exclusión explícita indicada abajo. Una lista en blanco rechaza el arranque en caso contrario. |
| `SCR_STREAMING_CLIENT_ID`         | `br-scr`                               | Identificador de cliente del productor.                                                                                                                                                                          |
| `SCR_STREAMING_SOURCE`            | `br-scr`                               | Fuente de CloudEvents, y el origen del nombre del topic. El arranque rechaza cualquier otro valor. El servicio compara el valor sin procesar, por lo que un relleno también rechaza el arranque.                 |
| `SCR_STREAMING_TLS`               | `false`, **Obligatorio en producción** | La postura estricta exige `true` cuando hay brokers configurados. Un `true` aquí también exige `STREAMING_TLS_ENABLED=true`.                                                                                     |
| `SCR_STREAMING_EMISSION_DISABLED` | `false`                                | El valor `true` detiene al despachador. Los eventos permanecen como filas pendientes del outbox, y se envían en cuanto se configura un broker.                                                                   |
| `STREAMING_TLS_ENABLED`           | `false`                                | Habilita la conexión TLS hacia el broker.                                                                                                                                                                        |
| `STREAMING_TLS_CA_CERT`           | —                                      | Autoridad certificadora PEM codificada en base64. Un broker detrás de una autoridad privada la necesita. Sin ella, solo valida un certificado de broker de confianza pública.                                    |
| `STREAMING_SASL_MECHANISM`        | —                                      | Mecanismo SASL para el productor. Sin un mecanismo, el productor se conecta de forma anónima y no presenta ningún principal para el permiso de escritura.                                                        |
| `STREAMING_SASL_USERNAME`         | —                                      | Usuario SASL.                                                                                                                                                                                                    |
| `STREAMING_SASL_PASSWORD`         | —                                      | Contraseña SASL. Sensible.                                                                                                                                                                                       |
| `STREAMING_SASL_ALLOW_PLAINTEXT`  | `false`                                | El valor `true` pone las credenciales SASL en la red en texto claro. Mantenlo en `false`.                                                                                                                        |

## Autenticación

***

| Variable              | Predeterminado / Obligatorio           | Descripción                                                                                                             |
| --------------------- | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `PLUGIN_AUTH_ENABLED` | `false`, **Obligatorio en producción** | El valor `true` habilita el ida y vuelta de autorización en cada solicitud protegida. La postura estricta exige `true`. |
| `PLUGIN_AUTH_ADDRESS` | **Obligatorio en producción**          | URL base del servidor de autorización. La postura estricta exige un esquema `https`.                                    |

## Canal de BACEN

***

El canal saliente llega al servicio web de consulta de BACEN sobre HTTPS con credenciales HTTP Basic. El servicio lee las dos variables de credencial solo cuando el tipo de secret store es el de entorno.

| Variable                     | Predeterminado / Obligatorio                                 | Descripción                                                                                                                                                                                                                                        |
| ---------------------------- | ------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SCR_WSSCR2N_BASE_URL`       | **Obligatorio en producción**                                | URL base completa, incluida la ruta de contexto de BACEN. El adaptador añade solo la ruta de la operación. El host de homologación es `www9.bcb.gov.br` y el host de producción es `scr.bcb.gov.br`. La postura estricta exige un esquema `https`. |
| `SCR_WSSCR2N_BASIC_USER`     | **Obligatorio en producción con el secret store de entorno** | El usuario de servicio virtual de la institución, en el formato `UUUUUDDDD.OPERADOR` de BACEN. No es el nombre de la transacción de Sisbacen.                                                                                                      |
| `SCR_WSSCR2N_BASIC_PASSWORD` | **Obligatorio en producción con el secret store de entorno** | Contraseña de ese usuario de servicio. Sensible.                                                                                                                                                                                                   |

## Secret store

***

El secret store resuelve la credencial del canal de BACEN.

| Variable              | Predeterminado / Obligatorio                          | Descripción                                                                                                                                                                                                              |
| --------------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `SECRET_STORE_KIND`   | `env`                                                 | Respaldo de la credencial. El valor `env` lee la credencial desde el entorno. El valor `aws` la lee por institución desde el vault gestionado, y habilita las operaciones de credencial. Otro valor rechaza el arranque. |
| `AWS_REGION`          | **Obligatorio en producción con el vault gestionado** | Región desde la que el cliente del vault gestionado resuelve su endpoint.                                                                                                                                                |
| `SECRET_STORE_PREFIX` | —                                                     | Prefijo de ruta del vault para las credenciales por institución. No es un secreto.                                                                                                                                       |

## Cifrado en reposo

***

El registro de auditoría cifra los datos del prestatario y los indexa de forma ciega. Dos claves independientes hacen ese trabajo. Una sola clave para ambas cosas filtraría la relación entre el texto cifrado y el índice. Fuera de la postura estricta, el servicio recurre a claves de desarrollo conocidas, que nunca deben llegar a un runtime regulado.

| Variable                     | Predeterminado / Obligatorio  | Descripción                                                                                                                              |
| ---------------------------- | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `SCR_ATREST_ENCRYPTION_KEY`  | **Obligatorio en producción** | Clave de sobre AES-256, en base64 o como 32 bytes sin procesar. Sensible.                                                                |
| `SCR_ATREST_BLIND_INDEX_KEY` | **Obligatorio en producción** | Clave HMAC para el índice buscable del documento. Debe tener al menos 32 caracteres, y debe ser distinta de la clave de sobre. Sensible. |

## Telemetría y métricas

***

| Variable                      | Predeterminado / Obligatorio | Descripción                                                                                      |
| ----------------------------- | ---------------------------- | ------------------------------------------------------------------------------------------------ |
| `ENABLE_TELEMETRY`            | `false`                      | El valor `true` conecta los proveedores de OpenTelemetry.                                        |
| `OTEL_EXPORTER_OTLP_ENDPOINT` | —                            | Endpoint del colector. Con la telemetría activada, la postura estricta exige un esquema `https`. |
| `METRICS_PROMETHEUS_ENABLED`  | `false`                      | El valor `true` activa explícitamente un listener de scrape dedicado de Prometheus.              |
| `METRICS_PROMETHEUS_ADDRESS`  | `127.0.0.1:9075`             | Dirección de bind de ese listener. El puerto de la aplicación no lleva ninguna ruta `/metrics`.  |
