GetRoleRequest
| Field | Type |
|---|---|
id | string |
All operations use POST /public-api/publicapi.v1.Role/. Role read/write
authorization and exact API scopes both apply.
Get uses role:read, create role:create, and update role:update.
These contracts expose administrative grants, not effective operational or
customer access. Operational capabilities normally come from matching Customer
Views; customer ACL remains authoritative. Roles can select Views, but creating
or updating a role does not configure a View. The owning authorization model’s
exception is board FULL_ACCESS, which also enables all operational capabilities.
Do not grant it merely to make an integration’s operation available.
Supported access fields are teamAccess, boardAccess, memberAccess,
roleAccess, settingsAccess, securityAccess, auditAccess, billingAccess,
developmentAccess, inventoryAccess, planningAccess, agentChatAccess, and
workflowAutomationAccess. Each supplied field
needs an explicit level: PUBLIC_DIRECTORY_PERMISSION_LEVEL_NONE,
PUBLIC_DIRECTORY_PERMISSION_LEVEL_READ_ONLY,
PUBLIC_DIRECTORY_PERMISSION_LEVEL_READ_WRITE, or
PUBLIC_DIRECTORY_PERMISSION_LEVEL_FULL_ACCESS.
Optional delegateUpTo uses the same enum, defaults to no delegation, and
cannot exceed the grant or the actor’s delegation ceiling. Omitted access fields
mean NONE, not inherited defaults. Never send internal permission numbers or
legacy permission strings.
agentChatAccess at READ_WRITE enables private interactive chat; it does not
grant resource or tool access. Omission grants no chat access or delegation.
workflowAutomationAccess controls workflow authoring independently of Settings,
Board, Customer Views, operational automation, and interactive chat. Its nested
allowAiAgents flag requires at least READ_WRITE. Its delegateAiAgents flag
requires allowAiAgents and at least READ_WRITE in delegateUpTo. Both flags
default to false. Granting either flag requires the actor’s delegateAiAgents;
role-management or Settings access alone cannot grant workflow AI authority.
{ "id": "<role-id>" }Returns role metadata and a separate access object. Reading a role does not
authorize assigning or delegating it.
POST /public-api/publicapi.v1.Role/GetRole Gets administrative grants, not effective operational or customer access.
| Field | Type |
|---|---|
id | string |
| Field | Type |
|---|---|
role | Role |
access | DirectoryRoleAccess |
{ "name": "Inventory reader", "description": "Read stock records", "access": { "inventoryAccess": { "level": "PUBLIC_DIRECTORY_PERMISSION_LEVEL_READ_ONLY" } }, "isDefault": false, "requires2fa": true}Creates a custom role. Name must be nonblank, maximum 50 characters; description
maximum 1,000. Omitted access grants no administrative permissions. Creation
does not assign the role to a member. Returns role and access.
POST /public-api/publicapi.v1.Role/CreateRole Creates a custom role. Omitted access grants no administrative permissions. Roles can also select Customer Views; this does not configure those Views. Not idempotent.
| Field | Type |
|---|---|
name | string |
description | string |
access | DirectoryRoleAccess |
is_default | bool |
requires_2fa | bool |
| Field | Type |
|---|---|
role | Role |
access | DirectoryRoleAccess |
Supply id, a nonblank name, the complete desired access, and desired flags.
This replaces administrative grants, not a partial access patch. access: {}
removes every administrative grant; omitted access is invalid. False or omitted
isDefault/requires2fa clears that flag. Empty description preserves the
existing description, rather than clearing it.
System and owner roles cannot be updated through this operation. Both existing and requested grants must fit the creator’s delegation ceiling. Member role replacement separately preserves the last workspace owner. Create/update are not idempotent; inspect current state before retrying a timeout.
POST /public-api/publicapi.v1.Role/UpdateRole Replaces custom role access and flags. Access must be explicit; {} removes all administrative grants. Empty description preserves the existing value. System and owner roles cannot be updated through this public operation. Not idempotent; existing and requested grants must fit the delegation ceiling.
| Field | Type | Description |
|---|---|---|
id | string | |
name | string | |
description | string | |
access | DirectoryRoleAccess | |
is_default | bool | Explicit desired flags; false clears the flag. |
requires_2fa | bool |
| Field | Type |
|---|---|
role | Role |
access | DirectoryRoleAccess |