Developers
Roles and permissions
How access is decided: areas, the view, write and admin levels, and how to read your own.
ReferenceContent reviewed
A component permission determines which operation you may attempt. Department, ownership, sharing and other record rules determine where that operation is allowed.
Component levels#
| Level | General meaning |
|---|---|
view | Read within the permitted scope. |
write | Create or change allowed records; includes view. |
admin | Administrative operations for the component; includes write and view. |
An endpoint may require additional authority or a record-specific check. A role name alone does not describe all access.
Read your permissions#
After signing in, call GET /api/users/me/permissions.
const response = await fetch("/api/users/me/permissions", {
credentials: "same-origin",
});
if (!response.ok) throw new Error(`Permissions: ${response.status}`);
const { permissions } = await response.json();
const mayAttemptDocumentEdit =
["write", "admin"].includes(permissions["docs.documents"]);The response includes a permissions map and management context such as headedDepartmentIds and hasManagedUsers. Use these to guide the interface; the server still checks each request.
Common keys#
| Keys | Area |
|---|---|
worx.projects, worx.stories, worx.tasks, worx.sprints | Project delivery |
hr.employees, hr.leave, hr.performance | People and HR |
hr.payroll, finance.salary, finance.reimbursement | Payroll and claims |
docs.documents | Documents |
chat.messages | Conversations |
admin.users, admin.roles, admin.departments | Administration |
This is a selection, not an exhaustive catalog.
Record access example#
Deleting a document passes a docs.documents: write route check and then a document-level administrative-access check. Component write access alone does not allow deleting an arbitrary document.
A shared document can also be readable without being editable. See the Documents API.
Investigate a 403#
- Confirm the account with
GET /api/auth/me. - Check the endpoint's required component and level.
- Check the record's department, ownership and sharing.
- Read the response body. Component refusals may identify
componentandrequired; record-level refusals can have a different shape. - Ask an authorized administrator to review the specific missing access.
Do not repeatedly retry an unchanged request. Hiding an unavailable action improves the interface but does not enforce authorization. Read Workspace access for the product model.
Need more help?
Can’t find what you need? Talk to the team.
To report a problem with this guide, include its title and the step that blocked you.