Reten Docs
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

EncabezadoRequeridoValor
AuthorizationSíBearer <access_token>
x-tenant-idSí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

CampoTipoDescripción
groupsarrayLista de grupos de permisos, siempre en el mismo orden
groups[].namestringNombre visible del grupo, en inglés
groups[].permissionsarrayPermisos en este grupo
groups[].permissions[].keystringValor del permiso — el mismo string que se envía en permissions de POST /api/api-keys
groups[].permissions[].descriptionstringDescripción legible, en inglés

Respuestas de Error

EstadoDescripción
400Falta el header x-tenant-id — Missing required header: x-tenant-id
401Token de acceso faltante o inválido
403El usuario no pertenece al tenant — User does not have access to the requested tenant