# Rbac Permissions **Category:** Admin **Base URL:** `/admin/rbac` **Authentication:** Required **Routes:** 12 routes documented ## Overview This section documents 12 API routes for rbac permissions. > ⚠️ **These endpoints operate on your live store.** `POST`/`PUT`/`DELETE` operations here — including sync, push, resync, and cache operations — modify or delete production data, and some trigger downstream effects such as warehouse orders or customer emails. `DELETE` operations are generally irreversible. Verify IDs and parameters carefully before calling them from scripts. ## Quick Reference | Method | Endpoint | Description | |--------|----------|-------------| | GET | `/admin/rbac/categories` | No description | | POST | `/admin/rbac/categories` | No description | | DELETE | `/admin/rbac/categories` | No description | | POST | `/admin/rbac/check` | No description | | GET | `/admin/rbac/members` | No description | | POST | `/admin/rbac/members/assignments` | No description | | DELETE | `/admin/rbac/members/assignments` | No description | | GET | `/admin/rbac/modules` | // Returns all modules from the module registry | | GET | `/admin/rbac/modules/matrix` | // Returns the module access matrix (roles x modules) | | GET | `/admin/rbac/permissions` | No description | | POST | `/admin/rbac/permissions` | No description | | DELETE | `/admin/rbac/permissions` | No description | | GET | `/admin/rbac/permissions/:id` | No description | | POST | `/admin/rbac/permissions/:id` | No description | | DELETE | `/admin/rbac/permissions/:id` | No description | | GET | `/admin/rbac/policies` | No description | | POST | `/admin/rbac/policies` | No description | | GET | `/admin/rbac/roles` | No description | | POST | `/admin/rbac/roles` | No description | | DELETE | `/admin/rbac/roles` | No description | | GET | `/admin/rbac/roles/:id` | No description | | POST | `/admin/rbac/roles/:id` | No description | | DELETE | `/admin/rbac/roles/:id` | No description | | GET | `/admin/rbac/roles/:id/modules` | // Get module permissions for a specific role | | POST | `/admin/rbac/roles/:id/modules` | // Create or update module permission for a role | | DELETE | `/admin/rbac/roles/:id/modules` | // Remove module permission for a role | --- ## GET Admin Rbac Categories **Endpoint:** `GET /admin/rbac/categories` **Authentication:** Admin (Required) ### Response **Success:** ```typescript { categories, } ``` **Error (400):** ```typescript { message, code, errors, } ``` ### Example Request ```bash curl -X GET 'https://your-store.omnicart.cc/admin/rbac/categories' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## POST Admin Rbac Categories **Endpoint:** `POST /admin/rbac/categories` **Authentication:** Admin (Required) ### Request Body | Field | Type | Required | |-------|------|----------| | `type` | enum(predefined, custom) | No | ### Response **Success (201):** ```typescript { category, } ``` **Error (400):** ```typescript { message, code, errors, } ``` ### Example Request ```bash curl -X POST 'https://your-store.omnicart.cc/admin/rbac/categories' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## DELETE Admin Rbac Categories **Endpoint:** `DELETE /admin/rbac/categories` **Authentication:** Admin (Required) ### Response **Success (200):** ```typescript { message, id, } ``` **Error (400):** ```typescript { message, code, errors, } ``` ### Example Request ```bash curl -X DELETE 'https://your-store.omnicart.cc/admin/rbac/categories' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## POST Admin Rbac Check **Endpoint:** `POST /admin/rbac/check` **Authentication:** Admin (Required) ### Request Body | Field | Type | Required | |-------|------|----------| | `urlToTest` | string | Yes | ### Response **Success:** ```typescript { can_access, can_read, can_write, can_delete, custom_permissions, } ``` **Also returns:** ```typescript { can_access, can_read, can_write, can_delete, custom_permissions, } ``` **Also returns:** ```typescript { modules, } ``` **Also returns:** ```typescript { modules, } ``` **Also returns:** ```typescript { can_access, can_read, can_write, can_delete, custom_permissions, } ``` **Also returns:** ```typescript { can_access, can_read, can_write, can_delete, custom_permissions, } ``` **Also returns:** ```typescript { actorId, url, allowed, denied, } ``` **Also returns:** ```typescript { actorId, url, allowed, denied, } ``` **Error (400):** ```typescript { message, code, errors, } ``` ### Example Request ```bash curl -X POST 'https://your-store.omnicart.cc/admin/rbac/check' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## GET Admin Rbac Members **Endpoint:** `GET /admin/rbac/members` **Authentication:** Admin (Required) ### Response **Success:** ```typescript { members, count, limit, offset, } ``` **Error (400):** ```typescript { message, code, errors, } ``` ### Example Request ```bash curl -X GET 'https://your-store.omnicart.cc/admin/rbac/members' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## POST Admin Rbac Members Assignments **Endpoint:** `POST /admin/rbac/members/assignments` **Authentication:** Admin (Required) ### Request Body | Field | Type | Required | |-------|------|----------| | `userId` | string | Yes | | `roleId` | string | Yes | ### Response **Success (200):** ```typescript { message, userId, roleId, previousRole, } ``` **Error (404):** ```typescript { message, code, } ``` **Error (400):** ```typescript { message, code, errors, } ``` ### Example Request ```bash curl -X POST 'https://your-store.omnicart.cc/admin/rbac/members/assignments' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## DELETE Admin Rbac Members Assignments **Endpoint:** `DELETE /admin/rbac/members/assignments` **Authentication:** Admin (Required) ### Response **Success (200):** ```typescript { message, userId, roleId, } ``` **Error (404):** ```typescript { message, code, } ``` **Error (400):** ```typescript { message, code, errors, } ``` ### Example Request ```bash curl -X DELETE 'https://your-store.omnicart.cc/admin/rbac/members/assignments' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## GET Admin Rbac Modules **Endpoint:** `GET /admin/rbac/modules` **Authentication:** Admin (Required) ### Description // Returns all modules from the module registry ### Response **Success:** ```typescript { modules, total, } ``` **Error (500):** ```typescript { message, code, error, } ``` ### Example Request ```bash curl -X GET 'https://your-store.omnicart.cc/admin/rbac/modules' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## GET Admin Rbac Modules Matrix **Endpoint:** `GET /admin/rbac/modules/matrix` **Authentication:** Admin (Required) ### Description // Returns the module access matrix (roles x modules) ### Response **Success:** ```typescript { matrix, roles, modules, modulePermissions, } ``` **Error (500):** ```typescript { message, code, error, stack, } ``` ### Example Request ```bash curl -X GET 'https://your-store.omnicart.cc/admin/rbac/modules/matrix' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## GET Admin Rbac Permissions **Endpoint:** `GET /admin/rbac/permissions` **Authentication:** Admin (Required) ### Response **Success:** ```typescript { permissions, } ``` **Error (400):** ```typescript { message, code, errors, } ``` ### Example Request ```bash curl -X GET 'https://your-store.omnicart.cc/admin/rbac/permissions' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## POST Admin Rbac Permissions **Endpoint:** `POST /admin/rbac/permissions` **Authentication:** Admin (Required) ### Request Body | Field | Type | Required | |-------|------|----------| | `name` | string | Yes | | `type` | enum(predefined, custom) | Yes | | `matcherType` | enum(api) | Yes | | `matcher` | string | Yes | | `actionType` | enum(read, write, delete) | Yes | | `category` | object | No | ### Response **Success (201):** ```typescript { permission, } ``` **Error (400):** ```typescript { message, code, errors, } ``` ### Example Request ```bash curl -X POST 'https://your-store.omnicart.cc/admin/rbac/permissions' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## DELETE Admin Rbac Permissions **Endpoint:** `DELETE /admin/rbac/permissions` **Authentication:** Admin (Required) ### Response **Success (200):** ```typescript { message, id, } ``` **Error (400):** ```typescript { message, code, errors, } ``` ### Example Request ```bash curl -X DELETE 'https://your-store.omnicart.cc/admin/rbac/permissions' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## GET Admin Rbac Permissions :id **Endpoint:** `GET /admin/rbac/permissions/:id` **Authentication:** Admin (Required) ### URL Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | string | Yes | Id identifier | ### Response **Success:** ```typescript { permission, } ``` **Error (400):** ```typescript { message, code, } ``` **Error (404):** ```typescript { message, code, } ``` ### Example Request ```bash curl -X GET 'https://your-store.omnicart.cc/admin/rbac/permissions/:id' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## POST Admin Rbac Permissions :id **Endpoint:** `POST /admin/rbac/permissions/:id` **Authentication:** Admin (Required) ### URL Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | string | Yes | Id identifier | ### Request Body | Field | Type | Required | |-------|------|----------| | `id` | string | Yes | | `name` | string | Yes | | `matcher` | string | No | | `actionType` | enum(read, write, delete) | No | ### Response **Success:** ```typescript { permission, } ``` **Error (404):** ```typescript { message, code, } ``` **Error (400):** ```typescript { message, code, errors, } ``` ### Example Request ```bash curl -X POST 'https://your-store.omnicart.cc/admin/rbac/permissions/:id' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## DELETE Admin Rbac Permissions :id **Endpoint:** `DELETE /admin/rbac/permissions/:id` **Authentication:** Admin (Required) ### URL Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | string | Yes | Id identifier | ### Response **Success (200):** ```typescript { message, id, } ``` **Error (400):** ```typescript { message, code, } ``` ### Example Request ```bash curl -X DELETE 'https://your-store.omnicart.cc/admin/rbac/permissions/:id' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## GET Admin Rbac Policies **Endpoint:** `GET /admin/rbac/policies` **Authentication:** Admin (Required) ### Response **Success:** ```typescript { policies, } ``` **Error (400):** ```typescript { message, code, errors, } ``` ### Example Request ```bash curl -X GET 'https://your-store.omnicart.cc/admin/rbac/policies' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## POST Admin Rbac Policies **Endpoint:** `POST /admin/rbac/policies` **Authentication:** Admin (Required) ### Request Body | Field | Type | Required | |-------|------|----------| | `roleId` | string | No | | `permissionId` | string | No | | `type` | enum(allow, deny) | No | ### Response **Success (201):** ```typescript { policy, } ``` **Error (500):** ```typescript { message, code, } ``` **Error (400):** ```typescript { message, code, errors, } ``` ### Example Request ```bash curl -X POST 'https://your-store.omnicart.cc/admin/rbac/policies' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## GET Admin Rbac Roles **Endpoint:** `GET /admin/rbac/roles` **Authentication:** Admin (Required) ### Response **Success:** ```typescript { roles, } ``` ### Example Request ```bash curl -X GET 'https://your-store.omnicart.cc/admin/rbac/roles' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## POST Admin Rbac Roles **Endpoint:** `POST /admin/rbac/roles` **Authentication:** Admin (Required) ### Request Body | Field | Type | Required | |-------|------|----------| | `name` | string | Yes | | `description` | string | No | | `is_active` | boolean | No | | `policies` | array | No | ### Response **Success (201):** ```typescript { role, } ``` **Error (500):** ```typescript { message, code, } ``` **Error (400):** ```typescript { message, code, errors, } ``` ### Example Request ```bash curl -X POST 'https://your-store.omnicart.cc/admin/rbac/roles' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## DELETE Admin Rbac Roles **Endpoint:** `DELETE /admin/rbac/roles` **Authentication:** Admin (Required) ### Response **Success (200):** ```typescript { message, id, } ``` **Error (404):** ```typescript { message, code, } ``` **Error (400):** ```typescript { message, code, errors, } ``` ### Example Request ```bash curl -X DELETE 'https://your-store.omnicart.cc/admin/rbac/roles' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## GET Admin Rbac Roles :id **Endpoint:** `GET /admin/rbac/roles/:id` **Authentication:** Admin (Required) ### URL Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | string | Yes | Id identifier | ### Response **Success:** ```typescript { role, users, } ``` **Error (400):** ```typescript { message, code, } ``` **Error (404):** ```typescript { message, code, } ``` ### Example Request ```bash curl -X GET 'https://your-store.omnicart.cc/admin/rbac/roles/:id' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## POST Admin Rbac Roles :id **Endpoint:** `POST /admin/rbac/roles/:id` **Authentication:** Admin (Required) ### URL Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | string | Yes | Id identifier | ### Request Body | Field | Type | Required | |-------|------|----------| | `id` | string | Yes | | `name` | string | No | | `description` | string | No | | `is_active` | boolean | No | | `policies` | array | No | ### Response **Success:** ```typescript { role, } ``` **Error (404):** ```typescript { message, code, } ``` **Error (400):** ```typescript { message, code, errors, } ``` ### Example Request ```bash curl -X POST 'https://your-store.omnicart.cc/admin/rbac/roles/:id' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## DELETE Admin Rbac Roles :id **Endpoint:** `DELETE /admin/rbac/roles/:id` **Authentication:** Admin (Required) ### URL Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | string | Yes | Id identifier | ### Response **Success (200):** ```typescript { message, id, } ``` **Error (400):** ```typescript { message, code, } ``` ### Example Request ```bash curl -X DELETE 'https://your-store.omnicart.cc/admin/rbac/roles/:id' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## GET Admin Rbac Roles :id Modules **Endpoint:** `GET /admin/rbac/roles/:id/modules` **Authentication:** Admin (Required) ### Description // Get module permissions for a specific role ### URL Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | string | Yes | Id identifier | ### Response **Success:** ```typescript { roleId, modulePermissions, } ``` **Error (400):** ```typescript { message, code, } ``` **Error (500):** ```typescript { message, code, error, } ``` ### Example Request ```bash curl -X GET 'https://your-store.omnicart.cc/admin/rbac/roles/:id/modules' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## POST Admin Rbac Roles :id Modules **Endpoint:** `POST /admin/rbac/roles/:id/modules` **Authentication:** Admin (Required) ### Description // Create or update module permission for a role ### URL Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | string | Yes | Id identifier | ### Request Body | Field | Type | Required | |-------|------|----------| | `moduleId` | string | Yes | | `canAccess` | boolean | No | | `canRead` | boolean | No | | `canWrite` | boolean | No | | `canDelete` | boolean | No | | `customPermissions` | record | No | ### Response **Success:** ```typescript { message, permission, } ``` **Also returns (201):** ```typescript { message, permission, } ``` **Error (400):** ```typescript { message, code, } ``` **Error (400):** ```typescript { message, code, errors, } ``` **Error (500):** ```typescript { message, code, error, } ``` ### Example Request ```bash curl -X POST 'https://your-store.omnicart.cc/admin/rbac/roles/:id/modules' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` --- ## DELETE Admin Rbac Roles :id Modules **Endpoint:** `DELETE /admin/rbac/roles/:id/modules` **Authentication:** Admin (Required) ### Description // Remove module permission for a role ### URL Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | string | Yes | Id identifier | ### Response **Success:** ```typescript { message, roleId, moduleId, } ``` **Error (400):** ```typescript { message, code, } ``` **Error (404):** ```typescript { message, code, } ``` **Error (500):** ```typescript { message, code, error, } ``` ### Example Request ```bash curl -X DELETE 'https://your-store.omnicart.cc/admin/rbac/roles/:id/modules' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -H 'Content-Type: application/json' ``` ---