Reten Docs
Primeros Pasos

Roles y Permisos

Jerarquía de roles, permisos y cómo restringen los endpoints de la API.

Reten implementa Control de Acceso Basado en Roles (RBAC) jerárquico con permisos granulares agrupados por dominio. Las tablas siguientes cubren los dominios más comunes; el conjunto completo de permisos es mayor y aditivo.

Jerarquía de Roles

SUPER_ADMIN (máximo)


  ADMIN


   FDE


  VIEWER (mínimo)

Los roles superiores heredan todos los permisos de los roles inferiores y pueden gestionar usuarios de su mismo nivel o inferior.

Roles

RolNivelDescripción
SUPER_ADMINMáximoAcceso total al sistema; puede gestionar todos los usuarios y tenants
ADMINAltoAdministración del tenant; puede gestionar la mayoría de los recursos
FDEMedioOperaciones de campo; puede crear actividades y consultar datos
VIEWERMínimoAcceso de solo lectura a los datos del tenant

Permisos por Dominio

Dominio de Usuarios

PermisoDescripciónRoles
CREATE_USERCrear nuevos usuariosSUPER_ADMIN, ADMIN
VIEW_USERSListar usuarios del tenantSUPER_ADMIN, ADMIN, FDE
UPDATE_USERActualizar datos y roles de usuariosSUPER_ADMIN, ADMIN
DELETE_USEREliminar usuariosSUPER_ADMIN
RESET_USER_PASSWORDRestablecer la contraseña de otro usuarioSUPER_ADMIN, ADMIN

Dominio de Tenants

PermisoDescripciónRoles
CREATE_TENANTCrear nuevos tenantsSUPER_ADMIN
VIEW_TENANTSListar todos los tenantsSUPER_ADMIN, ADMIN
UPDATE_TENANTActualizar datos del tenantSUPER_ADMIN
DELETE_TENANTEliminar tenantsSUPER_ADMIN

Dominio de Comercios

PermisoDescripciónRoles
MANAGE_COMMERCESCRUD completo sobre comercios, direcciones, usuarios y contactosSUPER_ADMIN, ADMIN, FDE
SYNC_COMMERCESSincronización masiva de comercios desde sistemas externosSUPER_ADMIN, ADMIN

Dominio de Operadores

PermisoDescripciónRoles
MANAGE_OPERATORSCRUD completo sobre operadoresSUPER_ADMIN, ADMIN, FDE
SYNC_OPERATORSSincronización masiva de operadores desde sistemas externosSUPER_ADMIN, ADMIN

Dominio de Rutas

PermisoDescripciónRoles
MANAGE_ROUTESCRUD completo sobre rutas y asignaciones de operadoresSUPER_ADMIN, ADMIN, FDE

Dominio de Actividades

PermisoDescripciónRoles
VIEW_ACTIVITIESListar y consultar actividades, resultados y configuracionesSUPER_ADMIN, ADMIN, FDE, VIEWER
CREATE_ACTIVITYCrear actividades y resultadosSUPER_ADMIN, ADMIN, FDE
CANCEL_ACTIVITYCancelar actividadesSUPER_ADMIN, ADMIN
DISPATCH_ACTIVITYDespachar manualmente actividades de tareaSUPER_ADMIN, ADMIN
MANAGE_ACTIVITY_CONFIGGestionar configuración de actividades (activity setup) y configuraciones de despachoSUPER_ADMIN, ADMIN

Dominio de Activity Generation y Ciclo de Vida

PermisovalueDescripciónRoles
VIEW_ACTIVITY_GENERATION_CONFIGSactivity-generation-config:viewVer AGCs y sus pilares de ciclo de vida (incl. los configHashes por pilar)SUPER_ADMIN, ADMIN
CREATE_ACTIVITY_GENERATION_CONFIGactivity-generation-config:createCrear una AGC con sus 3 pilares de ciclo de vidaSUPER_ADMIN, ADMIN
UPDATE_ACTIVITY_GENERATION_CONFIGactivity-generation-config:updateActualizar metadata de la AGC y reemplazar pilares in-placeSUPER_ADMIN, ADMIN
DELETE_ACTIVITY_GENERATION_CONFIGactivity-generation-config:deleteArchivar una AGC (cascada a sus lifecycle configs)SUPER_ADMIN, ADMIN
VIEW_LIFECYCLE_CONFIGSlifecycle-config:viewVer los lifecycle configs de solo lectura (activación / engagement / resurrección)SUPER_ADMIN, ADMIN
DELETE_LIFECYCLE_CONFIGlifecycle-config:deleteInterno — habilita el archivado/restauración de lifecycle en la cascada de papeleraSUPER_ADMIN, ADMIN

Los lifecycle configs no tienen permisos standalone de creación/edición/borrado: un lifecycle config se crea y edita solo a través del flujo del AGC, restringido por CREATE_ACTIVITY_GENERATION_CONFIG / UPDATE_ACTIVITY_GENERATION_CONFIG.

Dominio de API Keys

PermisoDescripciónRoles
MANAGE_API_KEYSCrear, listar y revocar API keysSUPER_ADMIN, ADMIN

Acceso máquina-a-máquina (M2M) para el cómputo

El motor de retención que calcula los estados de ciclo de vida de comercios lee las AGCs de forma programática. Usa una API key existente scoped al tenant (sin mecanismo de auth nuevo) que lleva VIEW_ACTIVITY_GENERATION_CONFIGS (activity-generation-config:view). Con ese permiso llama a GET /api/activity-generation-configs y GET /api/activity-generation-configs/:id para leer cada pilar y sus configHashes (para detectar de forma barata cuándo cambió una config), y luego escribe los estados calculados vía commerce lifecycle snapshots.

Cómo los Permisos Restringen los Endpoints

Para rutas protegidas, los guards se ejecutan en este orden:

  1. JwtAuthGuard — Valida el access token JWT o API key (global)
  2. TenantGuard — Valida que el usuario pertenezca al tenant solicitado
  3. PermissionsGuard — Verifica que el usuario tenga los permisos requeridos

Cada página de endpoint en la referencia de API lista el permiso requerido (ej., Auth: Requerido — permiso CREATE_ACTIVITY).

Aplicación de la Jerarquía de Roles

  • Los usuarios no pueden modificar los roles de usuarios del mismo nivel o superior
  • Los usuarios no pueden restablecer contraseñas de usuarios del mismo nivel o superior
  • Los usuarios no pueden asignar roles superiores al propio

Contexto de Tenant

La mayoría de los endpoints requieren un contexto de tenant:

  • Auth JWT: proporcionar el header x-tenant-id con el UUID del tenant
  • Auth API key: el tenant se resuelve automáticamente desde la key

El sistema valida que el usuario autenticado pertenezca al tenant solicitado antes de continuar.