Sales · dashboard
Management wants a sales dashboard.
The ERP no longer changes.
All it can do is export its sales and catalogue as CSV.
Fictional ERP · synthetic data
The problem
Sales and products sit in two files.
- A sale carries a product id, not its category.
- Every morning the export replaces yesterday's.
- Grafana does not read a changing CSV.
Nothing is changed
The ERP exports as before.
- Two CSV files, as they are.
- Grafana keeps its PostgreSQL source.
- No Grafana connector to write.
What had to be written
joins:
- table: t_legacy_bi_products_bA join gives each sale its category.
A 71-line scenario, three declaration files.
Monday, then Tuesday
€10,450, then €14,200.
- Monday: 6 lines, 5 orders.
- Tuesday: 8 lines, 7 orders.
- SALE-003 becomes SHIPPED, once.
Replay of 3 November 2026.
Who reads what
Grafana reads, and only its tenant.
- A read-only PostgreSQL role.
- SELECT on the view and its two tables.
- A policy keeps it in its tenant.
The limit
This is not streaming.
- Grafana queries PostgreSQL at intervals.
- Credentials belong in a secret manager.
- A change to the view means reviewing the grants.
Try it
The scenario replays end to end.
CSV, entity, reader account, Grafana: every step is published with its output.

