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
.tplcorrespondente 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, comoHTML,PDF,XML,CSVouTXT.description: uma descrição legível do template.
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.
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}/schemainspeciona as tabelas ou coleções ativas e os campos tipados.
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 comREPORT_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 forFinished:
- Chame Baixar um relatório com
REPORT_ID. - Confirme se 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 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 prefixostemplates/ e reports/. O Reporter é compatível com 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 é 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
DefinaDATASOURCE_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:
CONFIG_NAME:
CONFIG_NAME. Por exemplo, external_db corresponde a DATASOURCE_EXTERNAL_DB_SCHEMAS:
database:schema.table nos templates e schema.table como chave da tabela nos filtros:
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.

