Data Sources
A data source is a database connection Kaveon can query. You need at least one before creating datasets, charts, or using NL→SQL. Register and test them from the UI — no .env edits, no restart.
Supported databases
| Database | Type | Driver |
|---|---|---|
| Microsoft Fabric SQL | fabric_sql | pyodbc · ODBC Driver 18 |
| Azure SQL | azure_sql | pyodbc · ODBC Driver 18 |
| PostgreSQL | postgresql | psycopg2 |
| MySQL | mysql | pymysql |
| StarRocks | via mysql | pymysql (MySQL protocol) |
| Trino | coming soon | — |
Adding a data source
Go to Data Sources → + Add Data Source, fill in a unique name, the type, database name, connection string, region (WW / EU for residency tracking), and an optional description. Click Test Connection, then Save.
Connection string formats
Fabric SQL <workspace>.database.fabric.microsoft.com (Azure AD Managed Identity)
Azure SQL <server>.database.windows.net (Azure AD Managed Identity)
PostgreSQL postgresql://user:pass@host:5432/db?sslmode=require
MySQL mysql://user:pass@host:3306/db
StarRocks mysql://user:pass@host:9030/dbFabric and Azure SQL carry no credentials in the string — auth is via Azure AD (DefaultAzureCredential). PostgreSQL enforces SSL by default (Neon/Supabase URLs work as-is). StarRocks speaks the MySQL wire protocol, so it connects through the same pymysql path as MySQL rather than a distinct driver.
Testing connections
On Test Connection, the backend opens a fresh (non-pooled) connection, runs SELECT 1, and creates/drops a temp table to verify write access. It returns a structured outcome:
error_type | Meaning |
|---|---|
| (none) | Connectivity and write access both succeeded |
access_denied | Connected, but the identity lacks permission |
db_not_found | Server reachable, database doesn’t exist |
timeout | No response within 30s |
connection_failed | TCP couldn’t connect — check host / firewall |
Managing sources
Admins can edit any field; rotate credentials by editing the connection string. Sources can be enabled/disabled (is_active) — disabled ones are hidden from selectors but keep their metadata. Each user can mark one favorite, which sorts first, pre-selects on the NL→SQL homepage, and appears in the sidebar quick-access.