Features

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

  1. Go to Dashboards → + New Dashboard — an empty canvas opens in edit mode.
  2. Add charts and text blocks from the sidebar.
  3. Drag and resize tiles into place.
  4. 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.

CapabilityEditView
Drag / resize / add / remove tilesYesNo
Cross-filter clicksYesYes
Auto-refreshYesYes
Chart interactions (zoom, tooltip)YesYes

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.

Cross-filtering: click a bar, slice, or map marker and Kaveon sets a filter on that value — every other chart querying the same column updates in real time. It’s additive: click values across charts and the filters stack.

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.