Fuente de verdad detallada: el catalogo completo de acciones y roles vive en
Catalogo de Acciones y Roles. Esta pagina resume el modelo core.
Nebula ERP usa un modelo RBAC con dos contextos de autorizacion sobre el mismo recurso:
v_menu / admin.customer_role_option y viajan en el rol del JWT.admin.action + admin.role_action + admin.role_option_action.Las acciones estan atomizadas en un catalogo de codigos (admin.action, 26 acciones base is_system=TRUE). El grano fino es por (rol, opcion, accion) via role_option_action, con role_action como perfil general por rol.
El catalogo define 26 roles para un ERP financiero publico/privado (ver pagina de catalogo). Algunos core:
| Rol (authority) | Alcance | Descripcion |
|---|---|---|
| ROOT | Global | Superadministrador. Acceso total (las 26 acciones). |
| ADMIN | Tenant | Administrador de empresa. Gestiona usuarios, roles y menus de su tenant. |
| ACCOUNTANT | Tenant | Contador. Operacion contable, contabilizar, conciliar y cierre. |
| TESORERO | Tenant | Tesoreria; aprueba pagos y concilia bancos. |
| AUDITOR / REVISOR_FISCAL | Tenant | Fiscalizacion; solo lectura. |
| APROBADOR / ANULADOR | Componible | Roles de accion puros (aprobar/rechazar, anular/reversar). |
Segregacion de funciones: quien captura no aprueba; quien aprueba no captura; anulacion aparte.
El JWT NO transporta acciones; solo roles y accesos. Las acciones se resuelven bajo demanda en:
POST /api/v1/menu-with-actions/by-roles
que devuelve el menu agrupado con cada opcion enriquecida con su mapa actionCode -> isGranted (OptionMenuDto.actions). Reglas: union de acciones definidas por los roles del usuario, desempatadas por customer_role.precedence (menor = mayor prioridad).
DEPRECATED: la tabla
admin.role_permissionyPermissionTypequedaron obsoletas en la migracion V4.4.0. Reemplazadas poradmin.action+role_action+role_option_action. No agregar nuevos consumidores.
Ningun microservicio ni vista debe autorizar por nombre de rol (e.g., hasRole('ADMIN')). Debe autorizar por accion resuelta para la opcion (el mapa actions de la opcion). El nombre de rol es solo un agrupador de accesos/acciones, no la unidad de decision.
Entregable Arquitectura - Tarea 1.7.4
Version 2.0 - Proyecto Nebula ERP — alineada con el modelo implementado (Flujo 2). Ver Catalogo de Acciones y Roles.