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

# Variáveis de ambiente

> Referência das variáveis de ambiente usadas para configurar o Reporter, organizadas por categoria.

Esta referência lista as variáveis de ambiente usadas para configurar o **Reporter**, o serviço que gera relatórios regulatórios, de conformidade e contábeis a partir de templates configuráveis. O Reporter é entregue como um binário único cujas superfícies ativas são selecionadas por `RUN_MODE` — o manager da API, o worker de relatórios ou ambos. Você as define no momento da implantação, por valores Helm, Docker Compose ou pelo ambiente do seu orquestrador. Variáveis marcadas como obrigatórias fazem o servidor falhar na inicialização se não forem definidas.

Para os blocos de configuração que todo produto Lerian compartilha — postura de TLS, OpenTelemetry, autenticação do Access Manager, multi-tenancy, service discovery e streaming de eventos — veja a [referência de configuração BYOC](/pt/reference/byoc-configuration). Esta página foca no que é distintivo do Reporter.

## Modo de execução e portas

`RUN_MODE` decide quais superfícies o processo atende. Rode a API e o worker como um só processo (`all`) para implantações pequenas, ou separe-os em implantáveis distintos (`api` e `worker`) para escalar a geração de relatórios de forma independente. Veja a [referência de saúde e prontidão](/pt/reference/health-and-readiness) para o contrato de sondas.

| Variável                         | Descrição                                                                     | Padrão        | Obrigatória |
| -------------------------------- | ----------------------------------------------------------------------------- | ------------- | ----------- |
| `RUN_MODE`                       | Superfícies a executar: `api`, `worker` ou `all`                              | `all`         | Não         |
| `APP_CONTEXT`                    | Prefixo de rota para a superfície da API                                      | `/manager/v1` | Não         |
| `SERVER_PORT` / `SERVER_ADDRESS` | Porta da API (`RUN_MODE=api`/`all`). Atende `/health`, `/readyz`, `/version`. | `4005`        | Não         |
| `HEALTH_PORT`                    | Porta de saúde do worker (`RUN_MODE=worker`). Atende `/health`, `/readyz`.    | `4006`        | Não         |

## Implantação e TLS

| Variável             | Descrição                                                                                                                                                                                                                                                     | Padrão  | Obrigatória |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------- |
| `DEPLOYMENT_MODE`    | Sabor de implantação: `local`, `byoc` ou `saas`. Em `saas`, o TLS é obrigatório para toda conexão de dependência e o servidor se recusa a iniciar sem ele. Em `byoc`, o TLS é recomendado e alertado em vez de imposto. Também marca a resposta de `/readyz`. | `local` | Não         |
| `ALLOW_INSECURE_TLS` | Ignora a imposição de TLS por conexão nas DSNs de infraestrutura. Deixe sem definir ou `false` em produção.                                                                                                                                                   | `false` | Não         |

## CORS e proxies

| Variável               | Descrição                                                                                                 | Padrão | Obrigatória |
| ---------------------- | --------------------------------------------------------------------------------------------------------- | ------ | ----------- |
| `CORS_ALLOWED_ORIGINS` | Origens CORS permitidas (CSV, ou `*`). Restrinja a origens explícitas em produção.                        | `*`    | Não         |
| `CORS_ALLOWED_METHODS` | Métodos CORS permitidos                                                                                   | varia  | Não         |
| `CORS_ALLOWED_HEADERS` | Headers CORS permitidos                                                                                   | varia  | Não         |
| `TRUSTED_PROXIES`      | CIDRs de proxy confiáveis para a análise de `X-Forwarded-For`. Defina ao rodar atrás de um load balancer. | —      | Não         |
| `SWAGGER_ENABLED`      | Serve a UI do OpenAPI/Swagger                                                                             | `true` | Não         |

## Banco de dados (MongoDB)

Armazena metadados de relatórios, templates e histórico de execuções.

| Variável              | Descrição                                                                     | Padrão        | Obrigatória |
| --------------------- | ----------------------------------------------------------------------------- | ------------- | ----------- |
| `MONGO_URI`           | Esquema de conexão: `mongodb` ou `mongodb+srv`                                | `mongodb`     | Não         |
| `MONGO_HOST`          | Host do MongoDB                                                               | —             | Sim         |
| `MONGO_PORT`          | Porta do MongoDB                                                              | —             | Sim         |
| `MONGO_USER`          | Usuário do banco de dados                                                     | —             | Sim         |
| `MONGO_PASSWORD`      | Senha do banco de dados. Sensível.                                            | —             | Sim         |
| `MONGO_NAME`          | Nome do banco de dados                                                        | `reporter-db` | Sim         |
| `MONGO_MAX_POOL_SIZE` | Tamanho máximo do pool de conexões                                            | varia         | Não         |
| `MONGO_TLS_CA_CERT`   | Certificado CA PEM codificado em Base64 para TLS (por exemplo AWS DocumentDB) | —             | Não         |

## Message broker (RabbitMQ)

Carrega a fila de comandos de geração de relatórios entre a API e o worker.

| Variável                      | Descrição                                                       | Padrão | Obrigatória |
| ----------------------------- | --------------------------------------------------------------- | ------ | ----------- |
| `RABBITMQ_HOST`               | Host do broker                                                  | —      | Sim         |
| `RABBITMQ_PORT_AMQP`          | Porta AMQP                                                      | —      | Sim         |
| `RABBITMQ_PORT_HOST`          | Porta de gerenciamento/HTTP                                     | —      | Não         |
| `RABBITMQ_URI`                | Esquema de conexão: `amqp` ou `amqps`. Use `amqps` em produção. | `amqp` | Não         |
| `RABBITMQ_DEFAULT_USER`       | Usuário do broker                                               | —      | Sim         |
| `RABBITMQ_DEFAULT_PASS`       | Senha do broker. Sensível.                                      | —      | Sim         |
| `RABBITMQ_NUMBERS_OF_WORKERS` | Concorrência de consumidores do worker                          | `5`    | Não         |

## Object storage (compatível com S3)

Onde os relatórios renderizados são armazenados. Funciona com qualquer endpoint compatível com S3.

| Variável                        | Descrição                                                                       | Padrão      | Obrigatória |
| ------------------------------- | ------------------------------------------------------------------------------- | ----------- | ----------- |
| `OBJECT_STORAGE_ENDPOINT`       | URL do endpoint compatível com S3                                               | —           | Sim         |
| `OBJECT_STORAGE_REGION`         | Região de armazenamento                                                         | `us-east-1` | Não         |
| `OBJECT_STORAGE_BUCKET`         | Bucket para os relatórios renderizados                                          | —           | Sim         |
| `OBJECT_STORAGE_ACCESS_KEY_ID`  | ID da chave de acesso. Sensível.                                                | —           | Sim         |
| `OBJECT_STORAGE_SECRET_KEY`     | Chave de acesso secreta. Sensível.                                              | —           | Sim         |
| `OBJECT_STORAGE_USE_PATH_STYLE` | Usa endereçamento path-style (necessário para alguns stores compatíveis com S3) | `true`      | Não         |
| `OBJECT_STORAGE_DISABLE_SSL`    | Desativa o TLS para o endpoint de armazenamento. Deixe `false` em produção.     | `true`      | Não         |

## Cache (Redis / Valkey)

| Variável            | Descrição                                              | Padrão  | Obrigatória |
| ------------------- | ------------------------------------------------------ | ------- | ----------- |
| `REDIS_HOST`        | Host e porta do Redis/Valkey                           | —       | Sim         |
| `REDIS_PASSWORD`    | Senha de autenticação. Sensível.                       | —       | Não         |
| `REDIS_DB`          | Índice do banco de dados lógico                        | `0`     | Não         |
| `REDIS_PROTOCOL`    | Versão do protocolo RESP                               | varia   | Não         |
| `REDIS_TLS`         | Ativa o TLS para a conexão                             | `false` | Não         |
| `REDIS_CA_CERT`     | Certificado CA PEM codificado em Base64 para TLS       | —       | Não         |
| `REDIS_MASTER_NAME` | Nome do master do Sentinel (implantações com Sentinel) | —       | Não         |
| `REDIS_USE_GCP_IAM` | Autentica no GCP Memorystore com IAM em vez de senha   | `false` | Não         |

## Renderização de PDF (worker)

| Variável              | Descrição                                               | Padrão | Obrigatória |
| --------------------- | ------------------------------------------------------- | ------ | ----------- |
| `PDF_POOL_WORKERS`    | Workers concorrentes de renderização de PDF             | `5`    | Não         |
| `PDF_TIMEOUT_SECONDS` | Timeout de renderização de PDF por relatório (segundos) | `30`   | Não         |

## Datasources de relatórios

Os relatórios podem ler diretamente de datasources single-tenant declarados com um prefixo dinâmico. Substitua `{NAME}` pelo identificador do seu datasource; declare um bloco por fonte.

| Variável                        | Descrição                                                          | Padrão | Obrigatória |
| ------------------------------- | ------------------------------------------------------------------ | ------ | ----------- |
| `DATASOURCE_{NAME}_HOST`        | Host do datasource                                                 | —      | Não         |
| `DATASOURCE_{NAME}_PORT`        | Porta do datasource                                                | —      | Não         |
| `DATASOURCE_{NAME}_USER`        | Usuário do datasource                                              | —      | Não         |
| `DATASOURCE_{NAME}_PASSWORD`    | Senha do datasource. Sensível.                                     | —      | Não         |
| `DATASOURCE_{NAME}_DATABASE`    | Nome do banco de dados                                             | —      | Não         |
| `DATASOURCE_{NAME}_TYPE`        | Tipo de engine do datasource                                       | —      | Não         |
| `DATASOURCE_{NAME}_SSLMODE`     | Modo SSL para a conexão do datasource                              | —      | Não         |
| `DATASOURCE_{NAME}_SSLROOTCERT` | Caminho para o certificado raiz SSL do datasource                  | —      | Não         |
| `DATASOURCE_{NAME}_SCHEMAS`     | Schemas a expor do datasource                                      | —      | Não         |
| `CRYPTO_HASH_SECRET_KEY_CRM`    | Chave de hashing para ler os PII do datasource CRM. Sensível.      | —      | Não         |
| `CRYPTO_ENCRYPT_SECRET_KEY_CRM` | Chave de criptografia para ler os PII do datasource CRM. Sensível. | —      | Não         |

## Base de configuração compartilhada

Os blocos a seguir são idênticos entre os produtos Lerian e estão documentados por completo na [referência de configuração BYOC](/pt/reference/byoc-configuration). Eles vêm desativados.

* **Autenticação do Access Manager** — `PLUGIN_AUTH_ENABLED`, `PLUGIN_AUTH_ADDRESS`. Ative em produção.
* **Multi-tenancy** — `MULTI_TENANT_*`, mais `RABBITMQ_MULTI_TENANT_SYNC_INTERVAL` e `RABBITMQ_MULTI_TENANT_DISCOVERY_TIMEOUT`. Desativado por padrão.
* **Service discovery** — `SD_*` (Consul; o Reporter também aceita os aliases legados `SD_ADVERTISE_*` / `CONSUL_ADDR`). Desativado por padrão.
* **Streaming de eventos** — `STREAMING_ENABLED`, `STREAMING_BROKERS`, `STREAMING_CLOUDEVENTS_SOURCE`, mais `RABBITMQ_REPORT_EVENTS_EXCHANGE` para o exchange de eventos. Desativado por padrão.
* **OpenTelemetry** — `ENABLE_TELEMETRY`, `OTEL_*`, `OTEL_INSECURE_EXPORTER`. A telemetria é push OTLP.
