Descripción
Actualmente el acceso de superadmin depende de credenciales de entorno (ADMIN_EMAIL + ADMIN_PASSWORD/ADMIN_PASSWORD_HASH) y una bandera calculada en login. Este mecanismo es útil como break-glass, pero como único esquema de privilegios limita trazabilidad, revocación granular y escalabilidad de seguridad.
Se propone dejar en backlog la evolución a un modelo de permisos persistidos (BD/claims) para superadmin, manteniendo opcionalmente una cuenta de emergencia por entorno. El objetivo es reducir riesgo operativo sin romper el flujo actual en el corto plazo.
Usuarios afectados
- Equipo técnico (frontend/backend/devops).
- Administradores de plataforma.
- Seguridad/soporte (auditoría e incident response).
Criterios de aceptación
Alcance técnico
src/pages/api/auth/login/index.ts
src/lib/auth/apiAuth.ts
src/hooks/useAdminAuth.ts
src/pages/api/admin/**
src/pages/api/staff/**
src/db/schema.sql (si se agrega campo/tabla de permisos)
specs/ (documentación de arquitectura y operación)
Consideraciones / Riesgos
- Cambios de auth pueden afectar rutas protegidas y UX de login/logout.
- Debe evitarse confiar solo en guards cliente; autorización server-side sigue siendo obligatoria.
- Requiere coordinación con otras iniciativas de hardening para no duplicar esfuerzos.
Dependencias
Descripción
Actualmente el acceso de superadmin depende de credenciales de entorno (
ADMIN_EMAIL+ADMIN_PASSWORD/ADMIN_PASSWORD_HASH) y una bandera calculada en login. Este mecanismo es útil como break-glass, pero como único esquema de privilegios limita trazabilidad, revocación granular y escalabilidad de seguridad.Se propone dejar en backlog la evolución a un modelo de permisos persistidos (BD/claims) para superadmin, manteniendo opcionalmente una cuenta de emergencia por entorno. El objetivo es reducir riesgo operativo sin romper el flujo actual en el corto plazo.
Usuarios afectados
Criterios de aceptación
Is_SuperAdminenStaffo tabla de permisos).Alcance técnico
src/pages/api/auth/login/index.tssrc/lib/auth/apiAuth.tssrc/hooks/useAdminAuth.tssrc/pages/api/admin/**src/pages/api/staff/**src/db/schema.sql(si se agrega campo/tabla de permisos)specs/(documentación de arquitectura y operación)Consideraciones / Riesgos
Dependencias