Roles Service API
API reference for managing roles and permissions
The Roles Service provides endpoints for creating, managing, and assigning roles and permissions within organizations. It implements a robust role-based access control (RBAC) system that allows fine-grained control over user permissions.
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.
Endpoint: POST /api/roles/create
Query Parameters:
Parameter | Required | Description |
---|---|---|
org_id | Yes | Organization ID |
Request Body:
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.
Endpoint: GET /api/roles/list
Query Parameters:
Parameter | Required | Description |
---|---|---|
org_id | Yes | Organization ID |
Get Role
Retrieve details about a specific role.
Endpoint: GET /api/roles/get
Query Parameters:
Parameter | Required | Description |
---|---|---|
role_id | Yes | Role ID |
Update Role
Update an existing role.
Endpoint: PUT /api/roles/update
Query Parameters:
Parameter | Required | Description |
---|---|---|
role_id | Yes | Role ID |
Request Body:
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.
Endpoint: 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.
Endpoint: GET /api/roles/list_permissions
Get Permissions for Role
Retrieve all permissions assigned to a specific role.
Endpoint: 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.
Endpoint: PUT /api/roles/update_permissions
Query Parameters:
Parameter | Required | Description |
---|---|---|
role_id | Yes | Role ID |
Request Body:
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.
Endpoint: POST /api/roles/assign
Query Parameters:
Parameter | Required | Description |
---|---|---|
org_id | Yes | Organization ID |
Request Body:
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.
Endpoint: 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.
Endpoint: 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