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 | Availability | Driver |
|---|---|---|
| Microsoft Fabric SQL | Studio + API · fabric_sql | pyodbc · ODBC Driver 18 |
| Azure SQL | Studio + API · azure_sql | pyodbc · ODBC Driver 18 |
| PostgreSQL | Studio + API · postgresql | psycopg2 |
| MySQL | API only · mysql | pymysql |
| StarRocks | Studio + API · starrocks | pymysql (MySQL protocol) |
| Local Parquet | Engine alpha | Arrow · Parquet |
| Trino, ADLS Gen2, S3, Delta Lake, Iceberg | Target | Not executable |
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
POST /data-sources/{id}/test endpoint is currently a stub and must not be treated as proof of connectivity. First-run setup probes perform real checks, but full connector-specific testing is still a product gap.Until the endpoint is implemented, verify a source with a least-privilege read through SQL Lab and confirm schema discovery separately. Do not infer write permission from a successful read.
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.