Autenticación
Grupos de Permisos
Obtener todos los permisos organizados por grupo funcional.
GET /api/auth/permission-groups
Devuelve todos los permisos disponibles agrupados por área funcional. Útil para construir interfaces de asignación de permisos.
Auth: Requerida — cualquier usuario autenticado, con el header x-tenant-id de uno de sus tenants
Encabezados
| Encabezado | Requerido | Valor |
|---|---|---|
Authorization | Sí | Bearer <access_token> |
x-tenant-id | Sí | UUID del tenant |
Ejemplo
curl https://api.reten.ai/api/auth/permission-groups \
-H "Authorization: Bearer <token>" \
-H "x-tenant-id: <tenant-id>"const response = await fetch("https://api.reten.ai/api/auth/permission-groups", {
headers: {
"Authorization": "Bearer <token>",
"x-tenant-id": "<tenant-id>",
},
});
const data = await response.json();import requests
response = requests.get(
"https://api.reten.ai/api/auth/permission-groups",
headers={
"Authorization": "Bearer <token>",
"x-tenant-id": "<tenant-id>",
},
)
data = response.json()Respuesta 200 OK
Extracto — la respuesta tiene 16 grupos, y cada permiso aparece en exactamente uno de ellos:
{
"groups": [
{
"name": "User Management",
"permissions": [
{ "key": "user:create", "description": "Create new users" },
{ "key": "user:view", "description": "View user list and details" },
{ "key": "user:update", "description": "Update user information" },
{ "key": "user:delete", "description": "Delete users" },
{ "key": "user:reset-password", "description": "Reset other users passwords" }
]
},
{
"name": "Projects",
"permissions": [
{ "key": "project:create", "description": "Create new projects within the tenant" },
{ "key": "project:view", "description": "View the project list of the tenant" },
{ "key": "project:update", "description": "Rename projects and edit their root audience" }
]
},
{
"name": "Activities",
"permissions": [
{ "key": "activity:view", "description": "View activity list and details" },
{ "key": "activity:create", "description": "Create new activities" },
{ "key": "activity:cancel", "description": "Cancel activities in READY status" },
{ "key": "activity-config:manage", "description": "Manage activity configuration (target resolution)" },
{ "key": "activity:dispatch", "description": "Manually dispatch activities to external providers" },
{ "key": "activity:force-retry-dispatch", "description": "Force retry dispatch for failed activities" }
]
}
]
}Forma de la Respuesta
| Campo | Tipo | Descripción |
|---|---|---|
groups | array | Lista de grupos de permisos, siempre en el mismo orden |
groups[].name | string | Nombre visible del grupo, en inglés |
groups[].permissions | array | Permisos en este grupo |
groups[].permissions[].key | string | Valor del permiso — el mismo string que se envía en permissions de POST /api/api-keys |
groups[].permissions[].description | string | Descripción legible, en inglés |
Respuestas de Error
| Estado | Descripción |
|---|---|
400 | Falta el header x-tenant-id — Missing required header: x-tenant-id |
401 | Token de acceso faltante o inválido |
403 | El usuario no pertenece al tenant — User does not have access to the requested tenant |