Pré-requisitos
Antes de começar, confirme que:- O Reporter está em execução e você consegue se autenticar na API dele.
- Um operador configurou pelo menos uma fonte de dados para os dados que seu template consulta.
- Você tem um arquivo
.tplque corresponde ao formato de saída pretendido. Para saída em PDF, escreva o template como HTML. Veja Exemplos de template e a referência de template.
Gerenciar templates
O Reporter usa arquivos.tpl enviados para definir o conteúdo e o layout do relatório.
Enviar um template
Chame Enviar um template como uma requisição multipart com os três campos obrigatórios:template: o arquivo.tpl.outputFormat: o formato do arquivo gerado, comoHTML,PDF,XML,CSVouTXT.description: uma descrição legível do template.
Manter templates existentes
Use os endpoints de template para: Excluir um template é uma exclusão lógica. O Reporter o exclui das consultas padrão, mas preserva os relatórios já criados a partir dele.Gerar um relatório com filtros
Chame Criar um relatório com os dois campos obrigatórios:templateId: o identificador retornado quando você enviou o template.filters: as condições agrupadas por fonte de dados, tabela e campo.
id. Armazene esse valor como REPORT_ID para verificar o status da geração e obter a saída.
Veja Filtragem avançada para os operadores aceitos e a estrutura de filtro.
Descobrir esquemas de fontes de dados
Inspecione as fontes de dados configuradas antes de criar templates ou interfaces de filtro dinâmicas:- Listar fontes de dados retorna uma página de conexões registradas sem credenciais.
- Consultar uma fonte de dados retorna a configuração de uma conexão pelo
dataSourceId. As credenciais permanecem ocultas. GET /v1/data-sources/{dataSourceId}/schemainspeciona as tabelas ou coleções ativas e seus campos tipados.
DATASOURCE_* na inicialização. Deployments multi-tenant criam entradas por tenant através da API.
Interpretar status e erros dos relatórios
Chame Verificar status do relatório comREPORT_ID.
Trate apenas
Finished como disponível para download. Um resultado Partial exige investigação mesmo quando o Reporter produziu alguns dados.
Verificar e baixar o relatório
Quando o status forFinished:
- Chame Baixar um relatório com
REPORT_ID. - Confirme que a resposta tem o tipo de conteúdo esperado e o header
Content-Disposition. - Abra o arquivo e verifique se os dados e o layout correspondem ao template e aos filtros.
Finished.
Solução de problemas
Configuração para operadores
As configurações de deploy a seguir são para operadores. Os usuários da aplicação não precisam delas para o workflow de geração de relatórios.Configurar object storage
O Reporter armazena templates e relatórios gerados em um bucket compatível com S3. Ele usa os prefixostemplates/ e reports/. O Reporter aceita AWS S3, MinIO e SeaweedFS.
AWS S3
AWS S3
MinIO (desenvolvimento local)
MinIO (desenvolvimento local)
SeaweedFS (desenvolvimento local)
SeaweedFS (desenvolvimento local)
O S3 não oferece suporte a TTL por objeto. Configure as políticas de ciclo de vida de bucket do S3 se os relatórios gerados precisarem expirar automaticamente.
Configurar fontes de dados externas
DefinaDATASOURCE_CRED_ENC_KEY com uma chave AES hexadecimal persistente antes de o Reporter iniciar. Gere uma chave de 32 bytes com openssl rand -hex 32. O Manager falha a inicialização quando a chave está ausente ou malformada. Mantenha a mesma chave disponível para cada runtime do Reporter que lê o registro, porque as senhas armazenadas são criptografadas com ela.
Use a API para o ciclo de vida normal da fonte de dados. No modo multi-tenant, o Reporter ignora o povoamento via variáveis de ambiente e cada tenant cria suas próprias entradas através da API. No modo single-tenant, você pode popular entradas do PostgreSQL ou do MongoDB na inicialização com as variáveis DATASOURCE_<NAME>_*:
Para uma fonte cujo
CONFIG_NAME é midaz_onboarding:
CONFIG_NAME:
CONFIG_NAME. Por exemplo, external_db mapeia para DATASOURCE_EXTERNAL_DB_SCHEMAS:
database:schema.table nos templates e schema.table como a chave de tabela do filtro:
public.
O Manager carrega a configuração da fonte de dados e conecta sob demanda. O Worker conecta durante a inicialização e faz novas tentativas para fontes indisponíveis. Ele pode continuar com funcionalidade reduzida quando uma fonte permanece indisponível.

