How Reporter reaches your data
Reporter connects through named datasources. Each one points at a database — for example
midaz_onboarding and midaz_transaction — and your templates reference it by name, like {{ midaz_onboarding.account.name }}.
Datasources are configured when Reporter is deployed, not from your application. How they’re declared depends on how you run Reporter:
- Managed (Lerian-hosted): the connection to your Lerian product data is set up for you during onboarding — you don’t define datasource variables yourself.
- Self-hosted: your operator declares each datasource through
DATASOURCE_<NAME>_*environment variables, including any of your own databases (DATASOURCE_EXTERNAL_*).
What you do
However it’s deployed, your job as a report author is the same: build templates that reference the datasources by name. You can also add your own data sources — your operator declares them in a self-hosted setup, or they’re onboarded for you in a managed one — and then reference them in templates just like the Midaz ones. → Reporter quick start · Build templates
Read-only — point it at a replica
Reporter only ever reads: it issues
SELECT queries to render reports and never writes to your databases. As a best practice, point its Midaz datasources at a read replica (the reference setup does, with a midaz-postgres-replica host) so reporting load stays off your primary. This is a deployment recommendation — Reporter doesn’t enforce it.
See it in Lerian
- The full integration journey: Building a complete core banking
- What Reporter is: What is Reporter?
- Configure datasources and build templates: Using Reporter

