Pular para o conteúdo principal
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: Esses endpoints são somente leitura. Os operadores configuram as fontes no deploy; a API não as cria nem as atualiza.

Interpretar status e erros

Chame Consultar o status do relatório com REPORT_ID.
StatusSignificadoO que fazer
ProcessingO Reporter está gerando o arquivo.Continue consultando o status em um intervalo razoável.
FinishedA geração foi concluída com sucesso.Baixe o relatório.
PartialO Reporter gerou apenas parte do resultado solicitado.Examine os detalhes da resposta e corrija as seções de dados que falharam antes de gerar novamente.
ErrorA geração falhou.Examine os detalhes do erro, o template, os filtros e a disponibilidade das fontes de dados.
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

SintomaO que verificar
O envio do template é rejeitadoEnvie template, outputFormat e description e confirme se o arquivo usa a extensão .tpl.
A criação do relatório é rejeitadaEnvie templateId e filters. Use "filters": {} quando não precisar filtrar linhas.
O relatório permanece em ProcessingVerifique a saúde do Worker, a conexão com o RabbitMQ e as fontes de dados usadas.
O relatório termina como PartialExamine quais seções falharam e verifique os nomes da fonte, da tabela, do campo e dos filtros.
O relatório termina como ErrorVerifique o erro retornado, a sintaxe do template, os valores dos filtros, as conexões com as fontes de dados e o armazenamento de objetos.
O download é rejeitadoConsulte o status mais recente. O download só está disponível quando o status é Finished.

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.
VariávelDescriçãoPadrão
OBJECT_STORAGE_ENDPOINTEndpoint compatível com S3. Deixe-o vazio para AWS S3.
OBJECT_STORAGE_REGIONRegião da AWS.us-east-1
OBJECT_STORAGE_ACCESS_KEY_IDChave de acesso.
OBJECT_STORAGE_SECRET_KEYChave secreta.
OBJECT_STORAGE_USE_PATH_STYLEUsa URLs no estilo path. MinIO e SeaweedFS geralmente exigem essa opção.false
OBJECT_STORAGE_DISABLE_SSLUsa HTTP em vez de HTTPS quando OBJECT_STORAGE_ENDPOINT não contém um esquema. Um esquema http:// ou https:// explícito tem prioridade.false
OBJECT_STORAGE_BUCKETNome do bucket.reporter-storage
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 cada fonte PostgreSQL ou MongoDB com variáveis de ambiente DATASOURCE_<NAME>_*.
VariávelDescriçãoObrigatória
DATASOURCE_<NAME>_CONFIG_NAMEIdentificador usado nos templates, como midaz_onboarding.Sim
DATASOURCE_<NAME>_HOSTHost do banco de dados.Sim
DATASOURCE_<NAME>_PORTPorta do banco de dados.Sim
DATASOURCE_<NAME>_USERUsuário do banco de dados.Somente quando o banco exige autenticação por usuário
DATASOURCE_<NAME>_PASSWORDSenha do banco de dados.Somente quando o banco exige autenticação por senha
DATASOURCE_<NAME>_DATABASENome do banco de dados.Sim
DATASOURCE_<NAME>_TYPEpostgresql ou mongodb, em letras minúsculas.Sim
DATASOURCE_<NAME>_SSLMODEModo SSL do PostgreSQL, como disable ou require.Apenas PostgreSQL
DATASOURCE_<NAME>_SSLROOTCERTCaminho do certificado raiz do PostgreSQL.Apenas PostgreSQL
DATASOURCE_<NAME>_SSLHabilita SSL no MongoDB.Apenas MongoDB
DATASOURCE_<NAME>_SSLCACaminho do certificado CA do MongoDB.Apenas MongoDB
DATASOURCE_<NAME>_OPTIONSOpções adicionais da URI do MongoDB.Apenas MongoDB
DATASOURCE_<CONFIG_NAME>_SCHEMASSchemas PostgreSQL separados por vírgulas que serão expostos. O prefixo da variável deriva de CONFIG_NAME.Apenas PostgreSQL
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