Skip to main content
Artifacts has one authorization layer. Whether a request comes from the web app, REST API, CLI, or MCP server, it’s evaluated as a principal against the same policy — so access behaves identically everywhere.

Principals

A principal is whoever is making a request. Principals can also carry scopes and artifact role grants.

Artifact roles

Roles are ranked from most to least privileged:
Each role unlocks a set of actions:

Public access

Each artifact has two public switches:
  • publicView grants viewer access to unauthenticated callers.
  • publicEdit grants editor access to public callers, when the plan allows public edit links.
Private artifacts require an owning user, a workspace member, an email allowlist match, an API key or OAuth principal with permission, or a share link.

Email allowlists

Grant view access to specific people by email:
Email viewers must sign in with a verified email that matches the allowlist. This requires a plan that includes private artifacts and email allowlists. Share links grant viewer or editor access to a single artifact, and can optionally expire:
Share links require Pro or Team entitlements.

API key scopes

API keys are bearer credentials with explicit scopes — grant only what each job needs.
Treat API keys as secrets. The raw key is only shown at creation time — store it in a secret manager and pass it through environment variables or stdin.

What each plan unlocks

Some access features are plan-gated: