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 paraError 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}:
{{ 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:
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 legadosSD_ADVERTISE_*/CONSUL_ADDR). Desabilitado por padrão. - Event streaming:
STREAMING_ENABLED,STREAMING_BROKERS,STREAMING_CLOUDEVENTS_SOURCE, além deRABBITMQ_REPORT_EVENTS_EXCHANGEpara a exchange de eventos eSTREAMING_KAFKA_BROKERSpara a cópia opcional no Kafka dereport.finishedereport.partial. Desabilitado por padrão. - OpenTelemetry:
ENABLE_TELEMETRY,OTEL_*,OTEL_INSECURE_EXPORTER. A telemetria é OTLP push.

