Skip to main content
Use este guia para o workflow recorrente do Reporter: gerencie um template, gere um relatório, verifique o resultado e baixe o arquivo finalizado.

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 .tpl que 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, como HTML, PDF, XML, CSV ou TXT.
  • description: uma descrição legível do template.
O Reporter retorna o identificador do template que você usa ao gerar relatórios.

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.
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. 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}/schema inspeciona as tabelas ou coleções ativas e seus campos tipados.
A API controla o ciclo de vida do registro: criar uma fonte de dados, atualizá-la parcialmente, testar a conexão, inspecionar seu esquema ou excluí-la de forma lógica. O Reporter recusa a exclusão enquanto um Template ativo ainda referencia a fonte. Deployments single-tenant também podem popular entradas a partir das variáveis 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 com REPORT_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 for Finished:
  1. Chame Baixar um relatório com REPORT_ID.
  2. Confirme que 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 atende apenas relatórios com status 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 prefixos templates/ e reports/. O Reporter aceita AWS S3, MinIO e SeaweedFS.
Os exemplos de MinIO e SeaweedFS abaixo usam HTTP apenas para desenvolvimento local. Deployments de produção exigem HTTPS e TLS.
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

Defina DATASOURCE_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:
Referencie-a em um template pelo CONFIG_NAME:
Para múltiplos esquemas do PostgreSQL, derive a variável de esquema a partir de CONFIG_NAME. Por exemplo, external_db mapeia para DATASOURCE_EXTERNAL_DB_SCHEMAS:
Use database:schema.table nos templates e schema.table como a chave de tabela do filtro:
Quando a variável de esquema não está definida, o Reporter usa o esquema 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.

Tarefas relacionadas