Pular para o conteúdo principal
Esta referência lista as variáveis de ambiente usadas para configurar o Reporter, o serviço que gera relatórios regulatórios, de compliance e contábeis a partir de templates configuráveis. O Reporter é distribuído como um binário único, e RUN_MODE seleciona suas superfícies ativas: o gerenciador de API, o worker de relatórios, ou ambos. Você define essas variáveis no momento do deploy, por meio de valores do Helm, Docker Compose ou do 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, service discovery e event streaming), veja a referência de configuração BYOC. Esta página foca no que é específico 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 único processo (all) para deploys pequenos, ou separe-os em deployables distintos (api e worker) para escalar a geração de relatórios de forma independente. Veja a referência de health e readiness para o contrato de probes.

Deploy e TLS

Licença

Cada processo do Reporter precisa alcançar o serviço de licenças da Lerian. Abra a regra de saída que o License Manager descreve. Quando a licença deixa de ser válida depois da inicialização, /readyz informa a licença como indisponível, e a API recusa todas as rotas, exceto /health, /readyz e /version. Um processo que executa o worker é encerrado.

CORS e proxies

Paginação da API

Envio de templates

Previews de template

Calendário de relatórios

Banco de dados (MongoDB)

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

Message broker (RabbitMQ)

Transporta a fila de comandos de geração de relatório entre a API e o worker.

Armazenamento de objetos (compatível com S3)

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

Cache (Redis / Valkey)

Renderização de PDF (worker)

Limites de extração (worker)

Reaper de relatórios parados

Um worker registra um heartbeat em cada relatório que gera. O Manager move para Error com RPT-0160 um relatório em Processing cujo heartbeat está desatualizado. O Manager e o Worker devem ter os mesmos valores de heartbeat.

Gatilho de prazos (Manager)

Catálogo regulatório

Sem uma origem de catálogo, o deploy não carrega nenhum documento regulatório.

Declaração de permissões

Na inicialização, a superfície da API pode publicar a declaração de permissões do Reporter no Access Manager. O worker não lê estas variáveis. Com IDP_DECLARATION_ENABLED=true, a superfície da API não sobe quando uma das outras três variáveis está vazia, ou quando PLUGIN_AUTH_ENABLED não é true. Ela também precisa do endereço do Access Manager em PLUGIN_AUTH_HOST, ou em PLUGIN_AUTH_ADDRESS quando PLUGIN_AUTH_HOST está vazia. Quando o Access Manager recusa a publicação ou não responde, o Reporter sobe mesmo assim.

Datasources de relatório

Os relatórios leem de datasources PostgreSQL e MongoDB no registro persistido. Crie e gerencie entradas comuns pela API de data source. O bloco de ambiente abaixo é um caminho opcional de bootstrap. DATASOURCE_{NAME}_CONFIG_NAME faz um bloco de seed de ambiente existir. O Reporter varre chaves que correspondem a DATASOURCE_*_CONFIG_NAME. O prefixo conta tanto quanto o sufixo, então uma chave que apenas termina em _CONFIG_NAME não declara nada. Na inicialização do Manager, um bloco completo semeia seu configName apenas quando nenhuma entrada no registro, incluindo uma com soft delete, já usa esse nome. O valor é o nome que seus templates usam para endereçar a fonte. Dentro de um bloco, as variáveis marcadas como obrigatórias são as que o Reporter precisa antes de ler o bloco. Um bloco completo de seed por datasource segue abaixo. Defina o DATASOURCE_CRED_ENC_KEY global separadamente, como descrito acima. Recomendamos usar o mesmo nome para CONFIG_NAME e {NAME}, com o segmento da variável de ambiente em maiúsculas (por exemplo, ONBOARDING para CONFIG_NAME=onboarding). Isso mantém a chave de schema intuitiva, porque SCHEMAS usa o valor de CONFIG_NAME como chave, enquanto todo o resto dos campos usa {NAME}:
Um template então endereça essa fonte pelo seu nome de config, como em {{ onboarding.accounts }}. Use a API para adicionar ou atualizar uma datasource comum. Um bloco de ambiente apenas semeia uma entrada previamente ausente. Ele nunca sobrescreve uma entrada gerenciada pela API nem restaura uma com soft delete.

Datasource CRM reservada

plugin_crm é a datasource CRM reservada, gerenciada por ambiente. Não a crie nem faça PATCH nela pela API comum de data source: o Reporter rejeita esse caminho com RPT-0073. Um template de CRM deve usar exatamente o nome de config plugin_crm e um bloco MongoDB completo:
Coloque DATASOURCE_CRM_PASSWORD, CRYPTO_HASH_SECRET_KEY_CRM e CRYPTO_ENCRYPT_SECRET_KEY_CRM no seu secret store. Os valores de criptografia do CRM devem ser as mesmas chaves já usadas pelo CRM. Não gere chaves substitutas para o Reporter. Mantenha DATASOURCE_CRED_ENC_KEY estável também: alterá-la impede que o Reporter descriptografe as credenciais de datasource armazenadas. O Manager usa esse bloco na inicialização para semear plugin_crm e preencher um metadata.midazOrganizationId ausente ou vazio. Um ID de organização persistido e não vazio prevalece e não é sobrescrito pelo ambiente. Se estiver errado, pare e use o caminho de recuperação de engenharia aprovado. Não use a API comum para alterá-lo. Para definir essas variáveis com o chart do Reporter, consulte o README do chart do Reporter. Para templates que usam plugin_crm, valide o caminho completo: importe ou salve o template, gere um relatório, confirme que os campos de CRM descriptografam e confirme que os registros ficam com escopo restrito à organização Midaz pretendida.

Configuração compartilhada entre produtos

Os blocos a seguir são idênticos entre os produtos Lerian. A referência de configuração BYOC os documenta por completo. Ficam desabilitados por padrão.
  • Autenticação do Access Manager: PLUGIN_AUTH_ENABLED, PLUGIN_AUTH_ADDRESS. Habilite em produção.
  • Service discovery: SD_* (Consul, e o Reporter também aceita os aliases legados SD_ADVERTISE_* / CONSUL_ADDR). Desabilitado por padrão.
  • Event streaming: STREAMING_ENABLED, STREAMING_BROKERS, STREAMING_CLOUDEVENTS_SOURCE, além de RABBITMQ_REPORT_EVENTS_EXCHANGE para a exchange de eventos e STREAMING_KAFKA_BROKERS para a cópia opcional no Kafka de report.finished e report.partial. Desabilitado por padrão.
  • OpenTelemetry: ENABLE_TELEMETRY, OTEL_*, OTEL_INSECURE_EXPORTER. A telemetria é OTLP push.