Agents now connect to datahashi over OAuth — scoped tokens, no API keys to paste
datahashi
Open console

Security & trust

Built so your data stays yours — even when agents ask.

datahashi sits in front of your warehouse, not around your data. Agents get metric names from the catalog — never freeform SQL. It reads with the access you granted, enforces your rules on every query, and copies nothing out.

What reaches your warehouse

One door in, and you hold the key.

Only datahashi's query engine

Your browser, your BI tool, and any agent talk to datahashi — never to the warehouse directly. One component holds the connection, and it is the only thing that runs SQL.

With the access you granted

You hand datahashi a read-only role. It never asks for more, and it cannot widen what that role can already see.

Nothing copied out

No extract, no nightly sync, no shadow copy. A query compiles to SQL, pushes down to your warehouse, and is metered; the rows come back and are not retained. Pre-computed rollups are on the roadmap — not how queries are served today.

Every query carries your rules

Governance isn't a filter you can forget to apply.

A caller names a metric and some dimensions. There is no syntax for a raw table, an arbitrary join, or a hidden column — so the checks below aren't something a request can route around. Today: compile SQL, warehouse pushdown, rate limit + short cache, metering.

Row-level security, always on

The rules about which rows a caller may see are applied to every read, on the server. There is no request shape that skips them.

Field and metric grants

A credential's catalog is exactly the metrics, dimensions, and measures you granted it. Agents get metric names from the catalog — never freeform SQL. Anything else simply isn't there to ask for.

Access mode fixed per credential

Each credential is bound to governed or explore mode when it's issued. Nothing a client sends can switch it — including an MCP agent with a short-lived OAuth token.

A cost ceiling per workspace

Every query is bounded by a row cap and the workspace's cost policy, so one runaway caller can't take the warehouse down for everyone else. Metering records what each query scanned.

Credentials

Connection encrypted at rest

The connection string for your source is encrypted before it's stored, and only decrypted in memory to open a connection.

Agents sign in with OAuth

No long-lived warehouse key in an agent's config file. The person authorizes the agent, which gets a short-lived, scoped token and asks only by catalog metric names.

Keys are scoped and revocable

Each API key is tied to one principal and one mode, listed by metadata only (the secret is shown once), and revoked or rotated with no downtime.

Accountability

Every query is metered

Each query records what it scanned, against the caller that asked. One endpoint returns the total for any team or customer over any window — no reconciling warehouse invoices after the fact.

Identity isn't taken from the request body

Who is asking is established from the verified credential, not from a field the caller can set. A tenant or user id planted in a payload is ignored.

Your warehouse, your rules, enforced on every query.