ArccNova v2 actúa como proveedor de identidad de su propio ecosistema (ADR-003). La autenticación se basa en JWT HS256 y el control de acceso combina dos mecanismos que coexisten: la matriz de permisos por módulo (RBAC granular, ADR-015) y los 18 permisos protegidos por contraseña de acción para operaciones sensibles. Esta guía cubre ambos mecanismos desde el login hasta la auditoría de uso.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/DevCarlosRodriguez/Documentacion-Arccnova-2.0/llms.txt
Use this file to discover all available pages before exploring further.
Estructura del JWT
El access token es un JWT HS256. La siguiente es la estructura de claims que lleva:| Claim | Descripción |
|---|---|
sub | PublicId (GUID) del usuario — identificador permanente para trazabilidad |
name | Nombre completo del usuario |
email | Correo electrónico del usuario |
tenant_id | Identificador de la empresa activa en sesión |
branch_id | Identificador del proyecto activo en sesión |
role | Rol del usuario en el proyecto activo |
imp | true si la sesión es una impersonación de SysAdmin |
Flujo de login
El login recibe correo y contraseña. Si las credenciales son correctas, el backend emite el access token JWT y un refresh token. Las validaciones de política de contraseña aplican solo al alta y al restablecimiento, no al login de cuentas existentes. Si la suscripción de la empresa está vencida o impaga en el momento del login, el comportamiento varía según el rol:| Usuario | Comportamiento |
|---|---|
| CEO | Ve la pantalla de paywall con CTAs de pago hacia Stripe |
| No-CEO | Ve una pantalla genérica: “contacta al administrador del proyecto” |
El sistema no notifica automáticamente al CEO cuando un usuario no-CEO intenta acceder con suscripción vencida (C07). El CEO solo se entera si el usuario lo contacta directamente.
Política de contraseñas (RN-01)
La política es única en todo el sistema y aplica en tres momentos: alta de cuenta en el registro, creación de usuarios por el CEO/Admin, y restablecimiento de contraseña.| Requisito | Valor |
|---|---|
| Longitud mínima | 8 caracteres |
| Al menos una letra mayúscula | ✓ |
| Al menos una letra minúscula | ✓ |
| Al menos un carácter especial | ✓ |
La política de contraseñas aplica a creación y restablecimiento, no a la validación en el login de cuentas existentes que puedan haber sido creadas antes de que la política estuviera vigente.
Confirmación de correo y recuperación de contraseña
- El enlace de confirmación de correo tiene vigencia de 72 horas y puede reenviarse cuantas veces sea necesario (C05 segunda ronda, RN-02).
- El correo confirmado es obligatorio para iniciar sesión (
RequireConfirmedEmail). - La recuperación de contraseña sigue el flujo estándar de token por correo. La nueva contraseña debe cumplir RN-01.
RBAC granular — extensión ADR-015
El control de acceso se basa en roles personalizados por empresa con una matriz de permisos submodule × acción. Esta es la extensión RBAC documentada en ADR-015.Acciones disponibles por submodule
Cada submodule puede tener hasta 5 acciones habilitadas de forma independiente:| Acción | Descripción |
|---|---|
| Ver | Leer y listar registros |
| Escribir | Crear nuevos registros |
| Actualizar | Editar registros existentes |
| Eliminar | Eliminar (soft-delete) registros |
| Descargar | Exportar o descargar documentos |
Matriz de grupos y submodules
- Seguridad
- G. Comercial
- Logística
- Tesorería
- Ajustes
- Reportes
| Submodule | Acciones disponibles |
|---|---|
| Roles | Ver, Escribir, Actualizar, Eliminar, Descargar |
| Usuarios | Ver, Escribir, Actualizar, Eliminar, Descargar |
| Permisos | Ver, Escribir, Actualizar, Eliminar, Descargar |
| Permisos de usuario | Ver, Escribir, Actualizar, Eliminar, Descargar |
| Promociones | Ver, Escribir, Actualizar, Eliminar, Descargar |
Permisos individuales y membresía por proyecto
Además del rol, un usuario puede recibir permisos individuales que se suman por encima de su rol en un proyecto específico (decisión 12, ADR-015). La membresía usuario-proyecto lleva:- El usuario
- El proyecto (Branch)
- El rol del usuario en ese proyecto
El rol CEO — protegido
El rol CEO es el único rol protegido del sistema: no puede editarse ni eliminarse (C36, RN-05). Se crea automáticamente al dar de alta la empresa y se asigna al usuario que realizó el registro público. Todo lo demás (roles operativos como Admin, Asesor, etc.) son roles personalizados que el CEO o un Admin puede crear y modificar libremente.Los 18 permisos protegidos (RN-07)
Existen exactamente 18 permisos protegidos, distribuidos en 5 áreas. Son una lista cerrada y exhaustiva (C33). Para ejecutar una de estas acciones, el sistema solicita al usuario su contraseña de acción (una contraseña dedicada, generada por el sistema y distinta de la contraseña de login).Conceptos de mora (2 permisos)
Conceptos de mora (2 permisos)
EDITAR CONCEPTO DE MORAELIMINAR CONCEPTO POR MORA
Cobros (4 permisos)
Cobros (4 permisos)
VER COBROSCARGAR COBROSACTUALIZAR COBROSELIMINAR COBROS
Ventas (4 permisos)
Ventas (4 permisos)
VER VENTASCARGAR VENTASACTUALIZAR VENTASELIMINAR VENTAS
Contratos (4 permisos)
Contratos (4 permisos)
VER CONTRATOSCARGAR CONTRATOSACTUALIZAR CONTRATOSELIMINAR CONTRATOS
Usuarios (4 permisos)
Usuarios (4 permisos)
VER USUARIOSCARGAR USUARIOSACTUALIZAR USUARIOSELIMINAR USUARIOS
Mecánica de los permisos protegidos (RT-10, C34)
El CEO/Admin otorga permisos protegidos a un usuario
Desde la pantalla de permisos, el CEO o Admin selecciona al usuario y marca cuáles de los 18 permisos protegidos tendrá habilitados.
El sistema genera una contraseña de acción
Al otorgar el primer permiso protegido, el sistema genera una única contraseña por usuario (permanente). Esta misma contraseña cubre todos los permisos protegidos que ese usuario tenga asignados, presentes y futuros.Ejemplo: si más adelante se le agrega
ELIMINAR COBROS a un usuario que ya tenía EDITAR CONCEPTO DE MORA, ejercerá ambos con la misma contraseña de acción.Contraseña de acción al ejecutar la operación
Cada vez que el usuario intenta ejecutar una acción protegida, el sistema presenta un diálogo solicitando su contraseña de acción. Si la contraseña es correcta, la operación procede.
Los permisos protegidos se configuran por empresa y se desactivan por empresa. El CEO y el Admin están exentos: ejecutan las acciones protegidas sin necesidad de ingresar contraseña de acción (C16, RT-11). La auditoría de uso de permisos se conserva permanentemente (C35, RT-08).
Impersonación (SysAdmin)
El SysAdmin de la plataforma puede asumir la sesión de cualquier usuario de cualquier empresa para soporte y diagnóstico. El JWT generado para la sesión de impersonación lleva el claimimp: true. El campo sub sigue siendo el identificador del usuario impersonado para garantizar la trazabilidad en la auditoría.