Uso típico
Passo 1 — Crie o arquivo .tpl
Escreva um template correspondente ao formato de saída desejado (HTML, XML, CSV ou TXT). O template deve incorporar blocos do Reporter e seguir a sintaxe apropriada para o formato de saída escolhido. Consulte os Exemplos de templates para orientação.
O arquivo deve ser salvo com a extensão
.tpl. Isso é obrigatório para o processamento correto.Passo 2 — Faça o upload do template
Quando estiver pronto, faça o upload do arquivo.tpl usando o endpoint Upload a Template. Defina o campo outputFormat para especificar o formato do relatório. O sistema atribui um nome de arquivo UUID (por exemplo, 0196159b-4f26-7300-b3d9-f4f68a7c85f3.tpl).
Endpoints de gerenciamento de templates:
- List Templates — Visualize os templates da organização.
- Retrieve Template details — Acesse informações de um template específico.
- Update a Template — Modifique o arquivo
.tpl, a descrição ou o formato de saída. - Delete a Template — Marque templates como excluídos por meio do timestamp
deletedAt.
Passo 3 — Gere o relatório
Use o endpoint Create a Report para iniciar a geração. Envie umtemplateId e, opcionalmente, filters no corpo da requisição:
reportId para acompanhamento e recuperação do resultado.
Passo 4 — Verifique o status do relatório
O endpoint Check Report Status monitora o progresso, exibindo se o relatório está emprocessing ou finished.
Passo 5 — Baixe o relatório
Quando estiverfinished, baixe o relatório usando o endpoint Download a Report. O arquivo aparece no corpo da resposta com os headers Content-Disposition apropriados.
Mapeamento de fontes de dados para filtros dinâmicos
Dois endpoints auxiliares possibilitam a filtragem dinâmica:
- List Data Sources — Lista as fontes de dados disponíveis com seus schemas e tabelas.
- Retrieve a Data Source by id — Retorna o schema de uma fonte de dados específica, incluindo tabelas e campos.
Esses endpoints são opcionais e projetados para casos de uso avançados, como a construção de interfaces personalizadas ou a automação de fluxos de trabalho de relatórios com base em dados de schema.
Configurando o armazenamento
O Reporter armazena templates e relatórios gerados em armazenamento de objetos compatível com S3. Ele suporta AWS S3, MinIO e SeaweedFS nativamente. Todos os arquivos são armazenados em um único bucket com prefixos internos:
templates/— para arquivos de template enviadosreports/— para arquivos de relatório gerados
Variáveis de ambiente de armazenamento
| Variável | Descrição | Padrão |
|---|---|---|
OBJECT_STORAGE_ENDPOINT | URL do endpoint compatível com S3. Deixe vazio para AWS S3. | — |
OBJECT_STORAGE_REGION | Região da AWS | us-east-1 |
OBJECT_STORAGE_ACCESS_KEY_ID | Chave de acesso para autenticação | — |
OBJECT_STORAGE_SECRET_KEY | Chave secreta para autenticação | — |
OBJECT_STORAGE_USE_PATH_STYLE | Usar URLs no estilo path. Obrigatório para MinIO e SeaweedFS. | false |
OBJECT_STORAGE_DISABLE_SSL | Desabilitar verificação SSL. Use apenas para desenvolvimento local. | false |
OBJECT_STORAGE_BUCKET | Nome do bucket | reporter-storage |
Exemplos de configuração por provedor
AWS S3
AWS S3
MinIO
MinIO
SeaweedFS (desenvolvimento local)
SeaweedFS (desenvolvimento local)
O S3 não suporta TTL por objeto. Para expirar automaticamente os relatórios gerados, configure políticas de ciclo de vida do bucket S3 no seu bucket.
Configurando fontes de dados externas
O Reporter se conecta a bancos de dados externos (PostgreSQL e MongoDB) como fontes de dados para seus templates. Cada fonte de dados é configurada por meio de variáveis de ambiente seguindo o padrão
DATASOURCE_<NAME>_*.
Variáveis de ambiente de fontes de dados
| Variável | Descrição | Obrigatório |
|---|---|---|
DATASOURCE_<NAME>_CONFIG_NAME | Identificador único usado nos templates (por exemplo, midaz_onboarding) | Sim |
DATASOURCE_<NAME>_HOST | Host do banco de dados | Sim |
DATASOURCE_<NAME>_PORT | Porta do banco de dados | Sim |
DATASOURCE_<NAME>_USER | Usuário do banco de dados | Sim |
DATASOURCE_<NAME>_PASSWORD | Senha do banco de dados | Sim |
DATASOURCE_<NAME>_DATABASE | Nome do banco de dados | Sim |
DATASOURCE_<NAME>_TYPE | Tipo do banco de dados: postgresql ou mongodb | Sim |
DATASOURCE_<NAME>_SSLMODE | Modo SSL para PostgreSQL (disable, require) | Apenas PostgreSQL |
DATASOURCE_<NAME>_SSLROOTCERT | Caminho do certificado raiz SSL para PostgreSQL | Apenas PostgreSQL |
DATASOURCE_<NAME>_SSL | Habilitar SSL para MongoDB (true ou false) | Apenas MongoDB |
DATASOURCE_<NAME>_SSLCA | Caminho do arquivo de certificado CA para MongoDB | Apenas MongoDB |
DATASOURCE_<NAME>_OPTIONS | Opções adicionais de URI para MongoDB | Apenas MongoDB |
DATASOURCE_<NAME>_SCHEMAS | Lista de schemas separados por vírgula para expor | Apenas PostgreSQL |
Exemplo com uma única fonte de dados
midaz_onboarding:
Fonte de dados com múltiplos schemas
Para consultar tabelas em múltiplos schemas do PostgreSQL, defina a variávelDATASOURCE_<NAME>_SCHEMAS com uma lista separada por vírgulas:
database:schema.table:
schema.table como chave da tabela:
Quando
DATASOURCE_<NAME>_SCHEMAS não está definido, o Reporter utiliza apenas o schema public por padrão.Comportamento de conexão
O Reporter utiliza duas estratégias de inicialização:- Componente Manager (lazy): Carrega a configuração sem conectar. Conecta sob demanda quando um template referencia a fonte de dados. Isso proporciona uma inicialização mais rápida.
- Componente Worker (eager): Tenta conectar na inicialização com retry de backoff exponencial (até 5 tentativas). Continua com funcionalidade degradada se uma fonte de dados estiver indisponível.
Referência completa de variáveis de ambiente
Aplicação
| Variável | Descrição | Padrão |
|---|---|---|
ENV_NAME | Nome do ambiente | development |
LOG_LEVEL | Nível de log (debug, info, warn, error) | debug |
SERVER_PORT | Porta HTTP do Manager | 4005 |
SERVER_ADDRESS | Endereço de bind do Manager | :4005 |
Armazenamento de objetos (compatível com S3)
| Variável | Descrição | Padrão |
|---|---|---|
OBJECT_STORAGE_ENDPOINT | URL do endpoint S3 | — |
OBJECT_STORAGE_REGION | Região da AWS | us-east-1 |
OBJECT_STORAGE_ACCESS_KEY_ID | Chave de acesso | — |
OBJECT_STORAGE_SECRET_KEY | Chave secreta | — |
OBJECT_STORAGE_USE_PATH_STYLE | URLs no estilo path | false |
OBJECT_STORAGE_DISABLE_SSL | Desabilitar SSL | false |
OBJECT_STORAGE_BUCKET | Nome do bucket | reporter-storage |
MongoDB
| Variável | Descrição | Padrão |
|---|---|---|
MONGO_URI | Esquema de URI (mongodb ou mongodb+srv) | — |
MONGO_HOST | Host do MongoDB | — |
MONGO_NAME | Nome do banco de dados | — |
MONGO_USER | Usuário do banco de dados | — |
MONGO_PASSWORD | Senha do banco de dados | — |
MONGO_PORT | Porta do banco de dados | — |
MONGO_MAX_POOL_SIZE | Tamanho do pool de conexões | 1000 |
MONGO_PARAMETERS | Parâmetros adicionais de URI | — |
RabbitMQ
| Variável | Descrição | Padrão |
|---|---|---|
RABBITMQ_URI | Esquema de URI (amqp) | — |
RABBITMQ_HOST | Host do RabbitMQ | — |
RABBITMQ_PORT_AMQP | Porta AMQP | — |
RABBITMQ_PORT_HOST | Porta de gerenciamento | — |
RABBITMQ_DEFAULT_USER | Usuário | — |
RABBITMQ_DEFAULT_PASS | Senha | — |
RABBITMQ_GENERATE_REPORT_QUEUE | Nome da fila para geração de relatórios | — |
RABBITMQ_NUMBERS_OF_WORKERS | Número de workers consumidores (apenas worker) | 5 |
Redis / Valkey
| Variável | Descrição | Padrão |
|---|---|---|
REDIS_HOST | Host do Redis com porta (por exemplo, host:6379) | — |
REDIS_PASSWORD | Senha do Redis | — |
REDIS_DB | Número do banco de dados | 0 |
REDIS_PROTOCOL | Versão do protocolo Redis | 3 |
REDIS_MASTER_NAME | Nome do master Sentinel (se usando Sentinel) | — |
REDIS_TLS | Habilitar TLS | false |
Geração de PDF (apenas worker)
| Variável | Descrição | Padrão |
|---|---|---|
PDF_POOL_WORKERS | Número de workers paralelos para geração de PDF | 2 |
PDF_TIMEOUT_SECONDS | Timeout por geração de PDF em segundos | 90 |
Telemetria (OpenTelemetry)
| Variável | Descrição | Padrão |
|---|---|---|
OTEL_RESOURCE_SERVICE_NAME | Nome do serviço para traces | — |
OTEL_LIBRARY_NAME | Nome da biblioteca de instrumentação | — |
OTEL_RESOURCE_SERVICE_VERSION | Versão do serviço | — |
OTEL_RESOURCE_DEPLOYMENT_ENVIRONMENT | Ambiente de deploy | — |
OTEL_EXPORTER_OTLP_ENDPOINT | Endpoint do exportador OTLP | — |
ENABLE_TELEMETRY | Habilitar coleta de telemetria | false |
Autenticação
| Variável | Descrição | Padrão |
|---|---|---|
PLUGIN_AUTH_ADDRESS | URL do serviço de autenticação | — |
PLUGIN_AUTH_ENABLED | Habilitar autenticação | false |
Licença
| Variável | Descrição | Padrão |
|---|---|---|
LICENSE_KEY | Chave de licença do Reporter | — |
ORGANIZATION_IDS | IDs de organização para validação de licença | — |

