Skip to content

Governance

Every capability has an owner (whoever created it). Its owner, or a workspace owner or admin, controls three things on its page under Settings.

  • Everyone in the workspace (the default).
  • Only these teams — the workspace’s teams (Settings → Members). Members outside them don’t see it at all: not in the app, not through the API, not as an agent’s tool, not its runs. Owners and admins always see everything.

Guests see only what is shared with a team they are in.

Through the API: PATCH /v1/capabilities/{slug} with { "access": "teams", "teamIds": ["…"] } or { "access": "workspace" }.

Policy What waits for a person
No approval (default) Nothing — runs start right away.
Agents need approval Runs started by an AI agent (through the MCP server).
Every run needs approval Every run, except by workspace owners and admins.

A held run is recorded Awaiting approval; workspace owners and admins are notified and decide on its approval page. Approved, it runs — the version it was asked for, with its inputs. Denied (or not decided within a day), it is Cancelled. Through the API, a held run answers 202 with the run and the request’s approveUrl; read the run (GET /v1/runs/{id}) to see how it ended. An agent’s tool says it is waiting, with the link.

The policy is a setting of the capability — never part of its code — so publishing new code can’t loosen it.

Its owner, or a workspace owner or admin, publishes a version. Two cases need a person’s approval instead:

  • An AI agent’s publish — always. The agent’s request appears for a workspace owner or admin to approve.
  • Everyone’s publish, when the workspace turns on Settings → Capabilities → Publishing → “Publishing needs a second person”: the publish becomes a request that another owner or admin — not the person who asked — approves. (If the person who asked approves it themselves, it is refused; ask again for someone else.)

Every change of access, policy and setting, and every approval, is in the workspace’s audit log.