Getting Started

Core concepts

Five ideas explain how everything in Kaveon fits together. Once these click, every page in these docs is just detail.

Two kinds of database

Kaveon always talks to two very different things — keeping them straight avoids most confusion:

Metadata databaseData sources
HoldsKaveon’s own state — datasets, charts, dashboards, history, themes, rolesYour actual data — warehouses and databases you query
Configured viaSetup wizard / Settings → Metadata ServerData Sources page (1 to N)
CountExactly oneAs many as you register

Data source → dataset → chart → dashboard

Content builds in a chain, each layer reusable by the next:

  • Data source — a database connection (docs).
  • Dataset — a semantic layer over tables: named dimensions and metrics (docs).
  • Chart — a visualization bound to a dataset (docs).
  • Dashboard — a canvas of charts with shared filters (docs).
You never write JOINs or GROUP BYs for charts — the dataset encodes intent once and Kaveon generates the SQL. Drop into SQL Lab only when you want raw control.

Roles and visibility

Two independent axes govern access. RolesViewer → Analyst → Editor → Admin — gate what you can do (run SQL, create content, publish, administer). Visibility private / internal / published — gates who can see a given dataset, chart, or dashboard. Full model in Auth & RBAC.

The full four-role ladder lives in the API’s authorization layer. Through the NextAuth sign-in, a user resolves to just two of those roles: Admin (email listed in AUTH_ADMIN_EMAILS) or Viewer.

Ask, don’t query

The home page turns plain-English questions into charts with no hosted LLM. The primary engine is the DLM (Data Language Model) — a compiled per-dataset context artifact that answers the common questions from precomputed context with no database scan (badged “From context” vs “Live query”); a deterministic in-browser parser is the fallback. See AI · NL→SQL.

Everything is live and UI-driven

No stale cache — queries hit the source every time, with connection pools warmed at startup. And nearly all configuration (data sources, auth provider, metadata server, AI keys) is done from the UI, no .env edits or restarts.