The model
Access in Nightshift is a set of grants. A grant answers three questions:Who (an org member, or an API token) can do what (read, update, delete) to which object (a table, view, notebook, or app)?A grant can also apply to all objects of a kind instead of one — that’s what we call a capability. The capabilities you’ll encounter:
That’s the whole vocabulary. There’s no separate permission system for the console, the
MCP server, and apps — they all resolve to these grants.
The defaults
- Deny by default. A member (or token) with no grant on a table can’t read it — and can’t confirm it exists.
- You own what you create. Creating a table, view, notebook, or app automatically grants you update and delete on it.
- Write implies read. Update or delete access to an object includes read access. Create doesn’t imply anything about existing objects.
- Owners and admins skip grant checks. They can act on anything in the org (the platform-wide guardrails below still apply to them).
Roles
Org members have one of three roles:- Owner / Admin — bypass grant checks, manage invites, tokens, and the audit log.
- Member — governed by grants. Members can still share and delegate freely — just never beyond what they hold themselves.
Tokens
An API token (nsk_…) is a scoped identity you mint from the Tokens page in the
console. Tokens are how anything non-human authenticates:
a headless agent, a CI job, a Fiber app’s dev environment.
What makes them safe to hand out:
- A token holds an explicit list of grants, chosen when you mint it — and it can only carry access you hold (the delegation rule again). It’s an attenuated copy of you, never an amplified one.
- Never admin, pinned to one org. Even an admin’s token is a plain grant-scoped identity.
- The secret is shown once, at creation. Nightshift stores only a hash and a display prefix.
- Expiry and revocation are built in, and every token shows its last-used time — so stale credentials are easy to spot and kill.
When you connect Claude to Nightshift through the standard OAuth flow, it acts as you
— your grants, your role. That’s usually what you want: it’s convenient, and everything
it does is attributed and audited. Mint a scoped token instead when something
runs unattended, or when you deliberately want a narrower blast radius.
What a denial looks like
When an action isn’t allowed, the answer is a plain, specific error — for example:Platform guardrails
A few rules apply to everyone, including owners and admins:- No side doors into or out of the warehouse. Statements like
COPY,ATTACH,INSTALL, and direct file reads (read_csv,read_parquet,s3://…paths) are blocked in queries. External data comes in through Add Data, where credentials are managed properly — never pasted into SQL. - No secrets in SQL.
CREATE SECRETis blocked for the same reason. - One statement per request. Every statement is authorized individually; there’s no smuggling a write inside a batch.

