| Concept | What it means |
|---|---|
| Resource | The kind of object the permission applies to: agents, corpora, or workflows. |
| Action | What the member is allowed to do: view, edit, delete, publish, or create. Not every resource supports every action — see Resources and their actions below. |
| Scope | How far the action reaches — from a user’s owned resources all the way to the whole organization. |
| Principal | Who the set is assigned to. Currently users. |
| Resource | Scoped actions | Available scopes | Boolean | Why it differs |
|---|---|---|---|---|
| agents | view, edit, delete, publish | all, project, team, own | create | Agents live inside projects and have a staging → production publish step. |
| corpora | view, edit, delete | all, team, own | create | A corpus belongs to the organization, not to a project, so there is no project scope. Corpora are never published. |
| workflows | view, edit, delete | all, project, team, own | create | Workflows live inside projects like agents, but are never published, so there is no publish action. |
workflows.publish, or corpora.view: "project") is rejected by the APIs rather than silently ignored.| Scope | Grants the action on… |
|---|---|
| all | Every resource of that kind in the organization (broadest). |
| project | Resources belonging to projects the member can access. Agents and workflows only. |
| team | Resources the user’s team(s) can access. |
| own | Only the resources the member owns (narrowest). A corpus or workflow is owned by its creator. |
create flag.| Action | Type | Description |
|---|---|---|
| view | scope | null | View / read access to agents in scope. |
| edit | scope | null | Modify an agent's configuration. |
| delete | scope | null | Delete agents in scope. |
| publish | scope | null | Publish staging changes live to production. |
| create | boolean | Whether the member may create new agents. |
| Action | Type | Description |
|---|---|---|
| view | scope | null | View the corpus, its documents, sitemaps, conversation starters, and connected agents. |
| edit | scope | null | Edit corpus metadata, upload/delete documents, manage sitemaps, trigger re-indexing — and manage the permissions panel. |
| delete | scope | null | Delete corpora in scope. |
| create | boolean | Whether the member may create new corpora. |
| Action | Type | Description |
|---|---|---|
| view | scope | null | View and run workflows in scope. |
| edit | scope | null | Modify a workflow's nodes, edges, and configuration — and its shares. |
| delete | scope | null | Delete workflows in scope. |
| create | boolean | Whether the member may create new workflows. |
null and create: false.| Role | Scope of control | What they can typically do |
|---|---|---|
| Global Admin | The entire organization | Full control: manage all users, teams, projects, agents, corpora, and workflows; configure organization settings; create and assign Permission Sets. This is the highest level of access. |
| Application Admin | Application-level functions and resources | Elevated administrative access over many areas and shared resources, but without full organization-admin authority. Sits below a Global Admin. |
| User | Only the resources they own or are granted | Works within their own agents, projects, corpora, and workflows, plus anything explicitly shared with them. |
Note: On any individual resource (a specific agent, corpus, workflow, team, or project), a user can additionally hold an Admin or Member access, which further refines what they can do with that one item — independent of their org-wide role.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v2/permission-sets | List the organization's permission sets. Supports search (query), sorting (sort_by=name), and optional pagination. |
| POST | /api/v2/permission-sets | Create a permission set from a name, optional description, default flag, and permissions object. |
| GET | /api/v2/permission-sets/{permission_set_id} | Retrieve a single permission set by ID. |
| PUT | /api/v2/permission-sets/{permission_set_id} | Update name, description, default flag, or permission scopes. |
| DELETE | /api/v2/permission-sets/{permission_set_id} | Delete a permission set and revoke its permission grants. System sets cannot be deleted. |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v2/permission-sets/{permission_set_id}/members | List the users assigned to a set. Supports search, sorting (name, subject_type), and pagination. |
| POST | /api/v2/permission-sets/{permission_set_id}/members | Assign one or more users to the set. |
| DELETE | /api/v2/permission-sets/{permission_set_id}/members | Remove one or more users from the set. |
| POST | /api/v2/users/{user_id}/permission-sets | Assign a single user to multiple permission sets in one call. |
agents.edit at team scope and another grants agents.edit at all, the member can edit any agent in the organization; if neither set grants corpora.edit, they can still edit no corpus.| Share level | What it can unlock (given a matching permission set) |
|---|---|
| member | View only. |
| admin | View, edit, delete — plus publish for agents |
viewer and editor are retiredviewer, editor, admin. It now uses the same two tiers as agents and workflows:| Old relation | New relation | Why |
|---|---|---|
viewer | member | Renamed — read-only access |
editor | admin | Merged. An editor could only edit, while admin could edit, delete and re-share a corpus; admin alone is the tier that now carries those. |
VALID_RELATIONS for a corpus grant is now ["admin", "member"].corpora.delete.Note: Direct shares to a team behave slightly differently — a team share is gated at teamscope rather than by the scope-agnostic capability. The capability-based resolution above applies to shares made directly to an individual user.
Quick reference
Rule Detail System sets Scopes are locked; only the default toggle and user assignments can change. Minimum defaults At least one default must always exist in the organization. Last default Its default field cannot be toggled off while it's the only default. New users All default sets are auto-assigned to every new user. Per-user limit Maximum of 20 Permission Sets per user at a time.