Skip to content

KarhutlaSQLAnalytical SQL with governance built into the server

Arrow Flight SQL on DuckDB — a single Go binary for on-prem and air-gapped environments, with SSO, masking, row-level security, WORM access history, and signed reports.

KarhutlaSQL — burning forest logo

How it works ​

Every statement — from a BI tool, a notebook, a Postgres client, a web app or the built-in web UI, a scheduled job, a sharing recipient, or an AI agent — takes the same path through the server before it touches data:

Flight SQL (JDBC · ADBC · CLI)   PostgreSQL wire   HTTP Arrow   Delta Sharing   MCP   jobs
   │                                   │                │            │           │      │
   └─────────────── all become Flight SQL statements with the caller's identity ────────┘
   ▼
┌─ karhutlasql-server ──────────────────────────────────────────────┐
│ 1. Authenticate   local password / OIDC token, session, rate limit │
│ 2. Govern         privileges → masking → row filter → limits       │
│ 3. Execute        resource-group queue → quota → result cache      │
│ 4. DuckDB         stream Arrow results back to the client          │
│ 5. Record         audit · per-column access history · metrics      │
└────────────────────────────────────────────────────────────────────┘
   ▼
DuckDB file  ·  DuckLake (Postgres + MinIO)  ·  SQLite files (read-only)  ·  WORM archive

The interactive architecture diagram shows every component and integration (Keycloak, Vault, Great Expectations, Unity Catalog, the PostgreSQL and HTTP listeners, Delta Sharing, scheduled jobs) with links to the source code.

Choose your path ​

I want to…Start with
Decide whether KarhutlaSQL fits my teamWhy KarhutlaSQL?
Try it on my laptop in five minutesQuick start
Connect Python, DBeaver, or an applicationTutorial 2 · Tutorial 3
Connect psql, Power BI, ODBC, or a web appTutorial 12: PostgreSQL & HTTP
Protect PII columnsTutorial 4: masking & RLS · auto-classification
Share tables with a regulator or partnerTutorial 13: Delta Sharing
Schedule reports and refresh martsTutorial 11: scheduled jobs
Give people a query tool in the browserTutorial 14: web UI
Search embeddings or join SQLite filesTutorial 15: vector search · Tutorial 16: SQLite
Run it in productionInstallation · Kubernetes · Configuration
Understand the designCore concepts · Architecture diagram

Released under the Apache 2.0 License.