Prerequisites
Before you begin, make sure that:- Reporter is running and you can authenticate with its API.
- An operator has configured at least one data source for the data your template queries.
- You have a
.tplfile that matches the intended output format. See Template examples and the template reference.
Manage templates
Reporter uses uploaded.tpl files to define report content and layout.
Upload a template
Call Upload a template as a multipart request with all three required fields:template: the.tplfile.outputFormat: the generated file format, such asHTML,PDF,XML,CSV, orTXT.description: a human-readable description of the template.
Maintain existing templates
Use the template endpoints to: Deleting a template is a soft delete. Reporter excludes it from standard queries but preserves reports already created from it.Generate a report with filters
Call Create a report with both required fields:templateId: the identifier returned when you uploaded the template.filters: the conditions grouped by data source, table, and field.
id field. Store this value as REPORT_ID to check the generation status and retrieve the output.
See Advanced filtering for the supported operators and filter structure.
Discover data source schemas
Inspect the configured data sources before building templates or dynamic filter interfaces:- List data sources returns the available sources and their schemas and tables.
- Retrieve a data source returns the tables and fields for one source.
Interpret report statuses and errors
Call Check report status withREPORT_ID.
Treat only
Finished as downloadable. A Partial result requires investigation even when Reporter produced some data.
Verify and download the report
When the status isFinished:
- Call Download a report with
REPORT_ID. - Confirm that the response has the expected content type and
Content-Dispositionheader. - Open the file and verify that its data and layout match the template and filters.
Finished status.
Troubleshooting
Operator configuration
The following deployment settings are for operators. Application users don’t need them for the report generation workflow.Configure object storage
Reporter stores templates and generated reports in one S3-compatible bucket. It uses thetemplates/ and reports/ prefixes. Reporter supports AWS S3, MinIO, and SeaweedFS.
AWS S3
AWS S3
MinIO (local development)
MinIO (local development)
SeaweedFS (local development)
SeaweedFS (local development)
S3 doesn’t support per-object TTL. Configure S3 bucket lifecycle policies if generated reports must expire automatically.
Configure external data sources
Define each PostgreSQL or MongoDB source withDATASOURCE_<NAME>_* environment variables.
For a source whose
CONFIG_NAME is midaz_onboarding:
CONFIG_NAME:
CONFIG_NAME. For example, external_db maps to DATASOURCE_EXTERNAL_DB_SCHEMAS:
database:schema.table in templates and schema.table as the filter table key:
public schema.
The Manager loads data source configuration and connects on demand. The Worker connects during startup and retries unavailable sources. It can continue with reduced functionality when a source remains unavailable.

