Skip to content

FAQ

Short answers; each links to the page that carries the mechanism.

How is this different from a context layer?

Context-path tools (ktx, dbt MCP, catalogs feeding an agent) make the agent better informed — and leave it holding warehouse credentials, authoring its own SQL, with the same unchecked reach. dst governs the answer path instead: the caller asks, a governed layer grounds, generates and guards the SQL, executes read-only, and returns a cited answer — the caller never touches the warehouse. Serving answers rather than context is a deliberate stance, argued rather than assumed. See the answer path and Compared to the industry.

Why did it refuse my question instead of answering?

Because a wrong answer is worse than no answer. A question that uses an ambiguous governed term without picking a meaning gets a clarification; a question naming a metric the lens deliberately excluded is refused before any model call; absent data is a decline, never a confident zero. All of it is enforced in code that runs before or after the model — never by a prompt rule alone, because a prompt rule is a request and models do violate them. See Clarification & refusal.

Why does this answer have no prose, just a data frame?

The figure gate fired. Composed prose must pass numeric grounding — every number in the sentence traceable to the rows that came back. When it fails, composition is retried once; when the retry fails too, the prose is withheld entirely: the response sets composition: "fallback" and the answer becomes a code-generated frame over the data block, never model prose. The data is true; the sentence was not trustworthy, so you didn't get one. A degraded-but-true answer is an outcome; an invented figure is not. See the answer path.

Which LLM does it use? Do I bring my own keys?

Your models, your keys. Providers are declared in dst.yaml by wire protocol — anthropic, openai-compatible (covers OpenAI, DeepSeek, Ollama, vLLM, most gateways), voyage for embeddings — with no vendor-named settings: the core knows wire shapes, your config knows vendors. Keys enter as env-var names only; an inline key in a committed file is a parse error. See Configuration.

What is open source and what is paid?

The governed serving stack is open source: lenses, the query pipeline and its guards, certified answers, the review queue, the router, MCP, the dashboard. Bootstrapping a layer from query history is OSS too — as the scaffolded history-bootstrap skill your own agent runs, not as a server feature. Paid is operations and unattended machinery, never judgment: hosting with managed Postgres, SSO/SAML and RBAC, audit export, managed evals, bundled model keys, and the continuous drift-audit engine. The core never gates behavior on edition — DST_EDITION is UI badging only (services/config.py:75).

Why can't I create a lens in the dashboard?

Files author; the UI governs. Lenses, entities, definitions, and certified answers live in your repo and deploy through dst plan / dst apply — versioned, diffable, reviewable like the rest of your code — while the dashboard rules reviews, watches cost and drift, and browses versions. A UI that authored server-side state would silently revert on the next apply of the same files. See Project files.

Which warehouses does it support?

Five warehouse connectors — DuckDB, Postgres, MySQL, BigQuery, Snowflake — each read-only in layers: guarded SELECT-only SQL first, a read-only credential or session as the backstop. Prose context is bring-your-own: your driver agent or scripts push docs into a lens via the /mgmt/lenses/{name}/context/* endpoints. See Connect a warehouse.

Do I have to write an eval suite?

No — the certified library is the suite. Every active certified answer doubles as a regression test: its stored SQL is executed as the oracle, the question is re-asked through generation with certified matching disabled, and the executed results are diffed. dst test runs the full corpus; the same check gates dst apply, scoped to the answers a push actually touches. See Evaluation and Certified answers.

(Nothing here is answered only on this page.)