SQLDesk
Releases & roadmap · updated 3 October 2026

One release, one idea.

SQLDesk is a fork of Redash rebuilt a layer at a time. Each release has a single theme, and the theme is the point — a release that does a little of everything is a release nobody can describe. This is the whole history and the one thing coming next.

Shipped released In testing release candidate In progress being built Planned decided, not started

Where it has got to

Newest first. Each one is a sentence because each one was a single decision.

0.8 — Notebooks

Next

A place to do work a single SELECT cannot: steps that build on each other, in SQL and in Python, saved and re-run.

0.7 — Kafka Streams

In progress

Kafka topics you can query and chart like anything else, dashboard folders with a stated meaning, and an admin section that answers what is happening now.

0.6 — MCP

Shipped

A tool server over your warehouse, a catalog built from your own query history, and an audit of everything it was asked.

0.5 — Interface

Shipped

Less chrome, more chart. Filters left their band, textboxes became somewhere to write, and one result stopped being fetched once per widget.

0.4 — Live

Shipped

Dashboards you watch rather than read. The server refreshes them, once for everyone looking, and only while somebody is looking.

Fork point

—

Redash 25, with 35+ data sources, the query editor, alerts and the permission model already in it. None of that was rewritten; it was built on.

0.7 — Kafka Streams

October 2026. Data that arrives while you are looking at it, and somewhere to put the dashboards that matter.

Kafka topics as a data source

Built

An administrator adds a cluster; whoever manages topics chooses which of them may be queried. A topic becomes a table you can join to another topic, chart, parameterise and put on a dashboard — the same editor as every other query, with Execute replaced by Start streaming. Nothing is stored: the window exists while somebody is watching it, and a stream nobody is watching stops costing anything within minutes.

Dashboard folders

Built

A folder carries a stated meaning, not just a name. A locked one is an administrator's to change and read-only for everybody else, including the dashboard's own author — which is what makes “business KPIs” a claim rather than a label.

Scheduled subscriptions

Built

A dashboard arrives by email on a schedule, as a picture in the body and a one-page PDF attached, with one-click unsubscribe.

OAuth 2.1 for MCP

Built

A client opens a browser, the person signs in the way they always do, and it gets a token that expires and can be revoked — instead of an API key living in a config file outside your identity provider.

Feature permissions

Built

Streams, the catalog, live dashboards and keeping uploads are each granted to a group. Not everybody, and not only administrators — the person who knows what a table is for is rarely the person who runs the cluster.

Storage with a lifecycle

Built

Uploaded files expire on a clock people can see and stop, their owner is warned a day before, and nothing is deleted that nobody was warned about. Admin → Storage says what is being held and what happens to it when.

An admin section worth opening

Built

Headroom, what is running and who asked for it, the queues, storage, streams, overdue schedules — seven pages, each saying what it is for. Any running query can be stopped from here, and stopping one is recorded.

Half the initial load

Built

931 → 525 KB gzipped before anything draws, held there by a budget CI enforces. Server memory 273 → 175 MB, by importing a data source's SDK when it is used rather than at startup.

Nothing heavy on by default

Built

Streams, MCP, uploads and the alert-screenshot renderer are each off until asked for. A default install is five deployments and one volume, and the published image does not grow for a feature you never switch on.

Streams guide →  ·  Dashboards and folders →  ·  What to switch on →

0.6 — MCP

A tool server over your warehouse, and an audit of what it was asked.

MCP guide →

0.5 — Interface, and 0.4 — Live

The two releases that made a dashboard worth leaving on a screen.

The measurements →

Next: 0.8 — Notebooks

Everything in SQLDesk today ends in one SELECT. A notebook is for the work that does not: pull this, join it to that, reshape it, look, then write the result somewhere. People do it in Jupyter today and the warehouse never hears about it — so the lineage, the permissions and the scheduling all stop at the edge of somebody's laptop.

Shape still being decided, which is the honest state of it. What is settled is the rest of 0.8, and all of it points the same way: you should know what a thing costs before it runs.

Notebooks — steps that build on each other

Planned

Cells in SQL and in Python, each one reading the last one's result, saved and re-runnable, with the output of any cell available as a visualization or a dashboard widget. The parts SQLDesk already has — data source permissions, parameters, the scheduler, the result store — are most of what a notebook needs; what it adds is the chain.

A cost model, before the query runs

Planned

Bytes scanned and an estimate of the work, from the engine's own planner, shown as a number a person can refuse. MCP already refuses past a ceiling; this makes the ceiling something you can see rather than something you discover by hitting it.

MCP asks before it spends

Planned

An agent that is exploring should not quietly run a 4 TB scan because it seemed like a reasonable next step. Past a threshold the tool comes back with the estimate and waits for a person to say yes.

An audit an administrator can read

Planned

Every execution is already recorded; nothing reads it as “what has this person been doing”. With it: who has been expensive this month, not just this hour.

Per-data-source throttles and a kill switch

Planned

One person can queue fifty queries against the warehouse everybody shares. And when a warehouse is in trouble you want to stop sending it work without deleting the data source.

Prometheus metrics

Planned

StatsD is what SQLDesk emits today, which is the wrong shape for most clusters now. Queue depth, worker saturation and connection-pool use are the three that matter.

Cube: proven meaning moves out

Planned

Designed in 0.7 and deliberately deferred. A measure that has been agreed and used belongs in a semantic layer other tools can read, not only in SQLDesk's.

The rule 0.8 is built to

Nothing costs anything until somebody uses it. Streams, MCP, uploads and the renderer are already off until asked for; the next step is that a query says what it will cost before it runs, rather than after the invoice arrives.