{"info":{"name":"Auth Service \u2014 \ud83d\udee1\ufe0f Roles","_postman_id":"debffed5-abe3-4c9d-b8ec-d12e276d95b9","schema":"https:\/\/schema.getpostman.com\/json\/collection\/v2.1.0\/collection.json"},"item":[{"name":"\ud83d\udee1\ufe0f Roles","description":"Role management endpoints: CRUD operations and permission assignment for roles.","item":[{"name":"List Roles","request":{"method":"GET","header":[],"url":{"raw":"{{auth_url}}\/v1\/roles","host":["{{auth_url}}"],"path":["v1","roles"],"query":[{"key":"page","value":"1","description":"Page number","disabled":true},{"key":"per_page","value":"15","description":"Items per page","disabled":true},{"key":"search","value":"","description":"Search by name or display_name","disabled":true}]},"description":"List all roles.\n\n**Authentication:** Bearer token required\n\n**Permission:** `roles.view`\n\n**Query parameters (all optional):**\n- `page` \u2014 Page number\n- `per_page` \u2014 Items per page\n- `search` \u2014 Search by name or display_name"},"response":[]},{"name":"Create Role","request":{"method":"POST","header":[{"key":"Content-Type","value":"application\/json"}],"body":{"mode":"raw","raw":"{\n\t\"name\": \"editor\",\n\t\"display_name\": \"Editor\",\n\t\"description\": \"Can edit content\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{auth_url}}\/v1\/roles","host":["{{auth_url}}"],"path":["v1","roles"]},"description":"Create a new role.\n\n**Authentication:** Bearer token required\n\n**Permission:** `roles.create`\n\n**Required fields:**\n- `name` (string) \u2014 Unique role slug (lowercase, no spaces)\n\n**Optional fields:**\n- `display_name` (string) \u2014 Human-readable role name\n- `description` (string) \u2014 Role description"},"response":[]},{"name":"Show Role","request":{"method":"GET","header":[],"url":{"raw":"{{auth_url}}\/v1\/roles\/{{role_id}}","host":["{{auth_url}}"],"path":["v1","roles","{{role_id}}"]},"description":"Get details of a specific role including its permissions.\n\n**Authentication:** Bearer token required\n\n**Permission:** `roles.view`\n\n**Path parameters:**\n- `role_id` \u2014 The role's ID"},"response":[]},{"name":"Update Role","request":{"method":"PUT","header":[{"key":"Content-Type","value":"application\/json"}],"body":{"mode":"raw","raw":"{\n\t\"display_name\": \"Updated Editor\",\n\t\"description\": \"Updated description\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{auth_url}}\/v1\/roles\/{{role_id}}","host":["{{auth_url}}"],"path":["v1","roles","{{role_id}}"]},"description":"Update a specific role.\n\n**Authentication:** Bearer token required\n\n**Permission:** `roles.update`\n\n**Path parameters:**\n- `role_id` \u2014 The role's ID\n\n**Optional fields:**\n- `display_name` (string) \u2014 Updated human-readable name\n- `description` (string) \u2014 Updated description"},"response":[]},{"name":"Delete Role","request":{"method":"DELETE","header":[],"url":{"raw":"{{auth_url}}\/v1\/roles\/{{role_id}}","host":["{{auth_url}}"],"path":["v1","roles","{{role_id}}"]},"description":"Delete a specific role.\n\n**Authentication:** Bearer token required\n\n**Permission:** `roles.delete`\n\n**Path parameters:**\n- `role_id` \u2014 The role's ID"},"response":[]},{"name":"Sync Permissions","request":{"method":"POST","header":[{"key":"Content-Type","value":"application\/json"}],"body":{"mode":"raw","raw":"{\n\t\"permissions\": [\"events.view\", \"events.create\"]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{auth_url}}\/v1\/roles\/{{role_id}}\/permissions","host":["{{auth_url}}"],"path":["v1","roles","{{role_id}}","permissions"]},"description":"Sync (replace) all permissions for a role. This removes any permissions not in the provided list.\n\n**Authentication:** Bearer token required\n\n**Permission:** `roles.update`\n\n**Path parameters:**\n- `role_id` \u2014 The role's ID\n\n**Required fields:**\n- `permissions` (array of strings) \u2014 Complete list of permission names to sync"},"response":[]},{"name":"Add Permissions","request":{"method":"POST","header":[{"key":"Content-Type","value":"application\/json"}],"body":{"mode":"raw","raw":"{\n\t\"permissions\": [\"events.delete\"]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{auth_url}}\/v1\/roles\/{{role_id}}\/permissions\/add","host":["{{auth_url}}"],"path":["v1","roles","{{role_id}}","permissions","add"]},"description":"Add permissions to a role without removing existing ones.\n\n**Authentication:** Bearer token required\n\n**Permission:** `roles.update`\n\n**Path parameters:**\n- `role_id` \u2014 The role's ID\n\n**Required fields:**\n- `permissions` (array of strings) \u2014 Permission names to add"},"response":[]},{"name":"Remove Permissions","request":{"method":"POST","header":[{"key":"Content-Type","value":"application\/json"}],"body":{"mode":"raw","raw":"{\n\t\"permissions\": [\"events.delete\"]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{auth_url}}\/v1\/roles\/{{role_id}}\/permissions\/remove","host":["{{auth_url}}"],"path":["v1","roles","{{role_id}}","permissions","remove"]},"description":"Remove specific permissions from a role.\n\n**Authentication:** Bearer token required\n\n**Permission:** `roles.update`\n\n**Path parameters:**\n- `role_id` \u2014 The role's ID\n\n**Required fields:**\n- `permissions` (array of strings) \u2014 Permission names to remove"},"response":[]}]}],"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{auth_token}}","type":"string"}]},"variable":[{"key":"auth_url","value":"http:\/\/localhost:8001","description":"Auth service base URL"},{"key":"auth_token","value":"","description":"JWT access token"},{"key":"user_id","value":"","description":"Current user ID"},{"key":"role_id","value":"","description":"Role ID for role operations"},{"key":"permission_id","value":"","description":"Permission ID for permission operations"},{"key":"service_id","value":"","description":"Service record ID for service operations"},{"key":"language","value":"ar","description":"Accept-Language header value (default: ar)"},{"key":"platform","value":"web","description":"X-Platform header value (default: web)"},{"key":"registration_token","value":""}],"event":[{"listen":"prerequest","script":{"type":"text\/javascript","exec":["pm.request.headers.add({ key: 'Accept', value: 'application\/json' });","pm.request.headers.add({ key: 'Accept-Language', value: pm.environment.get('language') || 'ar' });","pm.request.headers.add({ key: 'X-Platform', value: pm.environment.get('platform') || 'web' });"]}}]}