Skip to main content
Use este guia para o fluxo recorrente do Reporter: gerenciar um template, gerar um relatório, verificar o resultado e baixar o arquivo concluído.

Pré-requisitos

Antes de começar, verifique se:
  • O Reporter está em execução e você consegue se autenticar na API.
  • Um operador configurou pelo menos uma fonte para os dados consultados pelo seu template.
  • Você tem um arquivo .tpl correspondente ao formato de saída esperado. Consulte os exemplos de templates e a referência de templates.

Gerenciar templates

O Reporter usa arquivos .tpl enviados para definir o conteúdo e o layout dos relatórios.

Enviar um template

Chame Enviar um template com uma requisição multipart que contenha os três campos obrigatórios:
  • template: o arquivo .tpl.
  • outputFormat: o formato do arquivo gerado, como HTML, PDF, XML, CSV ou TXT.
  • description: uma descrição legível do template.
O Reporter retorna o identificador do template que você usará para gerar relatórios.

Manter templates existentes

Use os endpoints de templates para: A exclusão de um template é lógica. O Reporter o remove 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 no envio do template.
  • filters: as condições agrupadas por fonte de dados, tabela e campo.
A requisição a seguir limita o relatório a uma transação:
Para gerar um relatório sem filtrar linhas, envie um objeto vazio. Não omita o campo:
O Reporter retorna o identificador do relatório no campo id. Guarde esse valor como REPORT_ID para consultar o status da geração e recuperar o resultado. Consulte Filtragem avançada para conhecer os operadores compatíveis e a estrutura dos filtros.

Descobrir schemas das fontes de dados

Examine as fontes configuradas antes de criar templates ou interfaces de filtros dinâmicos:
  • 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 por dataSourceId; as credenciais permanecem ocultas.
  • GET /v1/data-sources/{dataSourceId}/schema inspeciona as tabelas ou coleções ativas e os campos tipados.
A API gerencia todo o ciclo de vida do registro: crie uma fonte, atualize-a parcialmente, teste a conexão, inspecione o schema ou exclua-a logicamente. O Reporter recusa a exclusão enquanto um template ativo ainda usar a fonte. Deployments de tenant único também podem semear entradas a partir de variáveis DATASOURCE_* na inicialização; deployments multi-tenant criam as entradas por tenant pela API.

Interpretar status e erros

Chame Consultar o status do relatório com REPORT_ID. Considere apenas Finished como disponível para download. Um resultado Partial exige investigação mesmo que o Reporter tenha gerado alguns dados.

Verificar e baixar o relatório

Quando o status for Finished:
  1. Chame Baixar um relatório com REPORT_ID.
  2. Confirme se a resposta tem o tipo de conteúdo esperado e o header Content-Disposition.
  3. Abra o arquivo e verifique se os dados e o layout correspondem ao template e aos filtros.
O endpoint de download entrega apenas relatórios com status Finished.

Solução de problemas


Configuração para operadores

As opções de deploy a seguir são destinadas a operadores. Você não precisa delas para o fluxo de geração de relatórios.

Configurar o armazenamento de objetos

O Reporter armazena templates e relatórios gerados em um bucket compatível com S3. Ele usa os prefixos templates/ e reports/. O Reporter é compatível com AWS S3, MinIO e SeaweedFS.
Os exemplos de MinIO e SeaweedFS a seguir usam HTTP apenas para desenvolvimento local. Deploys de produção exigem HTTPS e TLS.
O S3 não é compatível com TTL por objeto. Configure políticas de ciclo de vida do bucket S3 se os relatórios gerados precisarem expirar automaticamente.

Configurar fontes de dados externas

Defina DATASOURCE_CRED_ENC_KEY com uma chave AES hexadecimal e persistente antes de iniciar o Reporter. Gere uma chave de 32 bytes com openssl rand -hex 32; o Manager não inicia se a chave estiver ausente ou malformada. Mantenha a mesma chave disponível para cada runtime do Reporter que ler o registro, porque as senhas armazenadas são criptografadas com ela. Use a API para o ciclo de vida normal das fontes de dados. No modo multi-tenant, o Reporter ignora a semeadura por variáveis de ambiente, e cada tenant cria as suas entradas pela API. No modo de tenant único, você pode semear entradas PostgreSQL ou MongoDB na inicialização com variáveis DATASOURCE_<NAME>_*: Para uma fonte cujo CONFIG_NAME é midaz_onboarding:
Referencie a fonte em um template pelo CONFIG_NAME:
Para usar vários schemas do PostgreSQL, derive a variável de schemas do CONFIG_NAME. Por exemplo, external_db corresponde a DATASOURCE_EXTERNAL_DB_SCHEMAS:
Use database:schema.table nos templates e schema.table como chave da tabela nos filtros:
Quando a variável de schemas não está definida, o Reporter usa o schema public. O Manager carrega a configuração das fontes de dados e se conecta sob demanda. O Worker se conecta durante a inicialização e repete as tentativas para fontes indisponíveis. Ele pode continuar com funcionalidade reduzida se uma fonte continuar indisponível.

Tarefas relacionadas