Dashboards
Dashboards arrange charts on a drag-and-drop canvas with cross-filtering, dashboard-level filters, auto-refresh, and dark mode. Save as a draft or publish so every signed-in user can see it.
Creating a dashboard
- Go to Dashboards → + New Dashboard — an empty canvas opens in edit mode.
- Add charts and text blocks from the sidebar.
- Drag and resize tiles into place.
- Save as a draft, or Publish to make it visible to everyone.
Edit mode vs view mode
The builder enters edit mode when you create or edit a dashboard. Published dashboards open in view mode for non-owners; owners get an Edit button to return.
| Capability | Edit | View |
|---|---|---|
| Drag / resize / add / remove tiles | Yes | No |
| Cross-filter clicks | Yes | Yes |
| Auto-refresh | Yes | Yes |
| Chart interactions (zoom, tooltip) | Yes | Yes |
Canvas layout
The canvas uses react-grid-layout v2. The grid is 12 columns on desktop and tablet (12 lg/md), reflowing to 6 (small), 2 (mobile), and 1 (extra-small); the default tile is 6×8. Vertical compaction pulls tiles up to fill gaps, and the layout reflows responsively at each breakpoint. Every tile stores its x, y, w, h in the dashboard JSON.
Adding content
In edit mode, Add Chart opens a picker of all saved charts — search by name, filter by owner (Mine / All), and select several at once; they drop in as new tiles. Add Text inserts a markdown block for section headers, annotations, or narrative.
Filters & cross-filtering
The Filters tab adds dashboard-level filters that render as a bar above the canvas; a filter applies to every chart sharing that column, so one chip narrows the whole board at once.
Publishing & auto-refresh
Dashboards start as drafts (visible only to you). Publish makes them visible to all authenticated users with the right role; set the status back to draft to unpublish.
Each tile can auto-refresh on an interval — Off, 30s, 1m, 5m, 10m, or 30m — re-running its SQL against the live source and updating in place, no full reload. Auto-refresh pauses in edit mode so it doesn’t disrupt dragging.