Authentication
All endpoints require a valid Bearer token in the Authorization header.Base URL
Role Endpoints
Create Role
Create a new role within an organization.POST /api/roles/create
Query Parameters:
Parameter | Required | Description |
---|---|---|
org_id | Yes | Organization ID |
Field | Type | Required | Description |
---|---|---|---|
name | string | Yes | Role name |
description | string | No | Role description |
hierarchy_level | integer | Yes | Role hierarchy level (higher number = higher privileges) |
permission_ids | array | Yes | List of permission IDs to assign to the role |
List Roles
Retrieve all roles for an organization.GET /api/roles/list
Query Parameters:
Parameter | Required | Description |
---|---|---|
org_id | Yes | Organization ID |
Get Role
Retrieve details about a specific role.GET /api/roles/get
Query Parameters:
Parameter | Required | Description |
---|---|---|
role_id | Yes | Role ID |
Update Role
Update an existing role.PUT /api/roles/update
Query Parameters:
Parameter | Required | Description |
---|---|---|
role_id | Yes | Role ID |
Field | Type | Required | Description |
---|---|---|---|
name | string | No | New role name |
description | string | No | New role description |
hierarchy_level | integer | No | New hierarchy level |
permission_ids | array | No | Updated list of permission IDs |
Delete Role
Delete a role from an organization.DELETE /api/roles/delete
Query Parameters:
Parameter | Required | Description |
---|---|---|
role_id | Yes | Role ID |
Permission Endpoints
List All Permissions
Retrieve all available permissions in the system.GET /api/roles/list_permissions
Get Permissions for Role
Retrieve all permissions assigned to a specific role.GET /api/roles/get_permissions
Query Parameters:
Parameter | Required | Description |
---|---|---|
role_id | Yes | Role ID |
Update Role Permissions
Update the permissions assigned to a role.PUT /api/roles/update_permissions
Query Parameters:
Parameter | Required | Description |
---|---|---|
role_id | Yes | Role ID |
Field | Type | Required | Description |
---|---|---|---|
permission_ids | array | Yes | Array of permission IDs to assign to the role |
User Role Endpoints
Assign Role to User
Assign a role to a user within an organization.POST /api/roles/assign
Query Parameters:
Parameter | Required | Description |
---|---|---|
org_id | Yes | Organization ID |
Field | Type | Required | Description |
---|---|---|---|
user_id | string | Yes | User ID |
role_id | string | Yes | Role ID |
Get Userโs Role
Retrieve a userโs role within an organization.GET /api/roles/get_user_role
Query Parameters:
Parameter | Required | Description |
---|---|---|
org_id | Yes | Organization ID |
user_id | Yes | User ID |
Remove User Role
Remove a userโs role within an organization.DELETE /api/roles/remove_user_role
Query Parameters:
Parameter | Required | Description |
---|---|---|
org_id | Yes | Organization ID |
user_id | Yes | User ID |
Error Responses
Status Code | Description |
---|---|
400 | Bad Request - Invalid input or validation error |
401 | Unauthorized - Invalid or missing token |
403 | Forbidden - Insufficient permissions |
404 | Not Found - Role or permission doesnโt exist |
409 | Conflict - Role already exists with the given name |
500 | Internal Server Error - Server-side error |
Implementation Notes
- The Roles Service implements a hierarchical role-based access control (RBAC) system
- Roles have hierarchy levels to determine precedence (higher number = higher privileges)
- Permissions follow a resource:action naming convention
- Default roles (Owner, Admin, Member) are created automatically when an organization is created
- Users can only have one role per organization
- Only users with appropriate permissions can manage roles (typically Owners and Admins)
- The Owner role cannot be deleted or modified
- Roles with higher hierarchy levels cannot be modified by users with lower hierarchy roles