> ## 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

> Referencia de las variables de entorno usadas para configurar Reporter, organizadas por categoría.

Esta referencia enumera las variables de entorno usadas para configurar **Reporter**, el servicio que genera reportes regulatorios, de cumplimiento y contables a partir de plantillas configurables. Reporter se entrega como un único binario cuyas superficies activas se seleccionan mediante `RUN_MODE`: el gestor de API, el worker de reportes, o ambos. Las defines en el momento del despliegue, mediante valores de Helm, Docker Compose o el entorno de tu orquestador. Las variables marcadas como requeridas hacen que el servidor falle al arrancar si no se definen.

Para los bloques de configuración que comparte cada producto de Lerian —postura de TLS, OpenTelemetry, autenticación de Access Manager, multi-tenancy, descubrimiento de servicios y streaming de eventos— consulta la [referencia de configuración BYOC](/es/reference/byoc-configuration). Esta página se centra en lo que es distintivo de Reporter.

## Modo de ejecución y puertos

`RUN_MODE` decide qué superficies sirve el proceso. Ejecuta la API y el worker como un solo proceso (`all`) para despliegues pequeños, o divídelos en desplegables separados (`api` y `worker`) para escalar la generación de reportes de forma independiente. Consulta la [referencia de salud y readiness](/es/reference/health-and-readiness) para el contrato de las sondas.

| Variable                         | Descripción                                                                      | Valor por defecto | Requerida |
| -------------------------------- | -------------------------------------------------------------------------------- | ----------------- | --------- |
| `RUN_MODE`                       | Superficies a ejecutar: `api`, `worker` o `all`                                  | `all`             | No        |
| `APP_CONTEXT`                    | Prefijo de ruta para la superficie de API                                        | `/manager/v1`     | No        |
| `SERVER_PORT` / `SERVER_ADDRESS` | Puerto de la API (`RUN_MODE=api`/`all`). Sirve `/health`, `/readyz`, `/version`. | `4005`            | No        |
| `HEALTH_PORT`                    | Puerto de salud del worker (`RUN_MODE=worker`). Sirve `/health`, `/readyz`.      | `4006`            | No        |

## Despliegue y TLS

| Variable             | Descripción                                                                                                                                                                                                                                                                     | Valor por defecto | Requerida |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | --------- |
| `DEPLOYMENT_MODE`    | Sabor de despliegue: `local`, `byoc` o `saas`. En `saas`, el TLS es obligatorio para cada conexión a una dependencia y el servidor se niega a arrancar sin él. En `byoc`, el TLS se recomienda y se advierte en lugar de imponerse. También etiqueta la respuesta de `/readyz`. | `local`           | No        |
| `ALLOW_INSECURE_TLS` | Omite la imposición de TLS por conexión en los DSN de infraestructura. Déjala sin definir o en `false` en producción.                                                                                                                                                           | `false`           | No        |

## CORS y proxies

| Variable               | Descripción                                                                                                               | Valor por defecto | Requerida |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------- | ----------------- | --------- |
| `CORS_ALLOWED_ORIGINS` | Orígenes CORS permitidos (CSV, o `*`). Restringe a orígenes explícitos en producción.                                     | `*`               | No        |
| `CORS_ALLOWED_METHODS` | Métodos CORS permitidos                                                                                                   | varía             | No        |
| `CORS_ALLOWED_HEADERS` | Cabeceras CORS permitidas                                                                                                 | varía             | No        |
| `TRUSTED_PROXIES`      | CIDR de proxy de confianza para el análisis de `X-Forwarded-For`. Defínela al ejecutar detrás de un balanceador de carga. | —                 | No        |
| `SWAGGER_ENABLED`      | Sirve la interfaz de OpenAPI/Swagger                                                                                      | `true`            | No        |

## Base de datos (MongoDB)

Almacena metadatos de reportes, plantillas e historial de ejecuciones.

| Variable              | Descripción                                                                   | Valor por defecto | Requerida |
| --------------------- | ----------------------------------------------------------------------------- | ----------------- | --------- |
| `MONGO_URI`           | Esquema de conexión: `mongodb` o `mongodb+srv`                                | `mongodb`         | No        |
| `MONGO_HOST`          | Host de MongoDB                                                               | —                 | Sí        |
| `MONGO_PORT`          | Puerto de MongoDB                                                             | —                 | Sí        |
| `MONGO_USER`          | Usuario de la base de datos                                                   | —                 | Sí        |
| `MONGO_PASSWORD`      | Contraseña de la base de datos. Sensible.                                     | —                 | Sí        |
| `MONGO_NAME`          | Nombre de la base de datos                                                    | `reporter-db`     | Sí        |
| `MONGO_MAX_POOL_SIZE` | Tamaño máximo del pool de conexiones                                          | varía             | No        |
| `MONGO_TLS_CA_CERT`   | Certificado CA PEM codificado en base64 para TLS (por ejemplo AWS DocumentDB) | —                 | No        |

## Broker de mensajes (RabbitMQ)

Transporta la cola de comandos de generación de reportes entre la API y el worker.

| Variable                      | Descripción                                                       | Valor por defecto | Requerida |
| ----------------------------- | ----------------------------------------------------------------- | ----------------- | --------- |
| `RABBITMQ_HOST`               | Host del broker                                                   | —                 | Sí        |
| `RABBITMQ_PORT_AMQP`          | Puerto AMQP                                                       | —                 | Sí        |
| `RABBITMQ_PORT_HOST`          | Puerto de gestión/HTTP                                            | —                 | No        |
| `RABBITMQ_URI`                | Esquema de conexión: `amqp` o `amqps`. Usa `amqps` en producción. | `amqp`            | No        |
| `RABBITMQ_DEFAULT_USER`       | Usuario del broker                                                | —                 | Sí        |
| `RABBITMQ_DEFAULT_PASS`       | Contraseña del broker. Sensible.                                  | —                 | Sí        |
| `RABBITMQ_NUMBERS_OF_WORKERS` | Concurrencia de consumidores del worker                           | `5`               | No        |

## Almacenamiento de objetos (compatible con S3)

Donde se almacenan los reportes renderizados. Funciona con cualquier endpoint compatible con S3.

| Variable                        | Descripción                                                                             | Valor por defecto | Requerida |
| ------------------------------- | --------------------------------------------------------------------------------------- | ----------------- | --------- |
| `OBJECT_STORAGE_ENDPOINT`       | URL del endpoint compatible con S3                                                      | —                 | Sí        |
| `OBJECT_STORAGE_REGION`         | Región de almacenamiento                                                                | `us-east-1`       | No        |
| `OBJECT_STORAGE_BUCKET`         | Bucket para los reportes renderizados                                                   | —                 | Sí        |
| `OBJECT_STORAGE_ACCESS_KEY_ID`  | ID de clave de acceso. Sensible.                                                        | —                 | Sí        |
| `OBJECT_STORAGE_SECRET_KEY`     | Clave de acceso secreta. Sensible.                                                      | —                 | Sí        |
| `OBJECT_STORAGE_USE_PATH_STYLE` | Usa direccionamiento de tipo path (necesario para algunos almacenes compatibles con S3) | `true`            | No        |
| `OBJECT_STORAGE_DISABLE_SSL`    | Deshabilita TLS hacia el endpoint de almacenamiento. Déjala en `false` en producción.   | `true`            | No        |

## Caché (Redis / Valkey)

| Variable            | Descripción                                                       | Valor por defecto | Requerida |
| ------------------- | ----------------------------------------------------------------- | ----------------- | --------- |
| `REDIS_HOST`        | Host y puerto de Redis/Valkey                                     | —                 | Sí        |
| `REDIS_PASSWORD`    | Contraseña de autenticación. Sensible.                            | —                 | No        |
| `REDIS_DB`          | Índice de la base de datos lógica                                 | `0`               | No        |
| `REDIS_PROTOCOL`    | Versión del protocolo RESP                                        | varía             | No        |
| `REDIS_TLS`         | Habilita TLS para la conexión                                     | `false`           | No        |
| `REDIS_CA_CERT`     | Certificado CA PEM codificado en base64 para TLS                  | —                 | No        |
| `REDIS_MASTER_NAME` | Nombre del master de Sentinel (despliegues Sentinel)              | —                 | No        |
| `REDIS_USE_GCP_IAM` | Autentícate en GCP Memorystore con IAM en lugar de una contraseña | `false`           | No        |

## Renderizado de PDF (worker)

| Variable              | Descripción                                          | Valor por defecto | Requerida |
| --------------------- | ---------------------------------------------------- | ----------------- | --------- |
| `PDF_POOL_WORKERS`    | Workers concurrentes de renderizado de PDF           | `5`               | No        |
| `PDF_TIMEOUT_SECONDS` | Timeout de renderizado de PDF por reporte (segundos) | `30`              | No        |

## Fuentes de datos de reportes

Los reportes pueden leer directamente de fuentes de datos single-tenant declaradas con un prefijo dinámico. Sustituye `{NAME}` por el identificador de tu fuente de datos; declara un bloque por fuente.

| Variable                        | Descripción                                                            | Valor por defecto | Requerida |
| ------------------------------- | ---------------------------------------------------------------------- | ----------------- | --------- |
| `DATASOURCE_{NAME}_HOST`        | Host de la fuente de datos                                             | —                 | No        |
| `DATASOURCE_{NAME}_PORT`        | Puerto de la fuente de datos                                           | —                 | No        |
| `DATASOURCE_{NAME}_USER`        | Usuario de la fuente de datos                                          | —                 | No        |
| `DATASOURCE_{NAME}_PASSWORD`    | Contraseña de la fuente de datos. Sensible.                            | —                 | No        |
| `DATASOURCE_{NAME}_DATABASE`    | Nombre de la base de datos                                             | —                 | No        |
| `DATASOURCE_{NAME}_TYPE`        | Tipo de motor de la fuente de datos                                    | —                 | No        |
| `DATASOURCE_{NAME}_SSLMODE`     | Modo SSL para la conexión a la fuente de datos                         | —                 | No        |
| `DATASOURCE_{NAME}_SSLROOTCERT` | Ruta al certificado raíz SSL de la fuente de datos                     | —                 | No        |
| `DATASOURCE_{NAME}_SCHEMAS`     | Esquemas a exponer desde la fuente de datos                            | —                 | No        |
| `CRYPTO_HASH_SECRET_KEY_CRM`    | Clave de hashing para leer la PII de la fuente de datos CRM. Sensible. | —                 | No        |
| `CRYPTO_ENCRYPT_SECRET_KEY_CRM` | Clave de cifrado para leer la PII de la fuente de datos CRM. Sensible. | —                 | No        |

## Base de configuración compartida

Los siguientes bloques son idénticos en todos los productos de Lerian y están documentados por completo en la [referencia de configuración BYOC](/es/reference/byoc-configuration). Están desactivados por defecto.

* **Autenticación de Access Manager** — `PLUGIN_AUTH_ENABLED`, `PLUGIN_AUTH_ADDRESS`. Habilítala en producción.
* **Multi-tenancy** — `MULTI_TENANT_*`, más `RABBITMQ_MULTI_TENANT_SYNC_INTERVAL` y `RABBITMQ_MULTI_TENANT_DISCOVERY_TIMEOUT`. Desactivado por defecto.
* **Descubrimiento de servicios** — `SD_*` (Consul; Reporter también acepta los alias heredados `SD_ADVERTISE_*` / `CONSUL_ADDR`). Desactivado por defecto.
* **Streaming de eventos** — `STREAMING_ENABLED`, `STREAMING_BROKERS`, `STREAMING_CLOUDEVENTS_SOURCE`, más `RABBITMQ_REPORT_EVENTS_EXCHANGE` para el exchange de eventos. Desactivado por defecto.
* **OpenTelemetry** — `ENABLE_TELEMETRY`, `OTEL_*`, `OTEL_INSECURE_EXPORTER`. La telemetría es push OTLP.
