2.3 KiB
2.3 KiB
Cierre de Fase A — Matriz de aceptación
Backend
| Criterio | Evidencia |
|---|---|
| Migraciones controladas | TypeORM con synchronize: false y migration:show sin pendientes |
| Tablas, índices y seeds | Migraciones A1/A2 aplicadas y 26 índices verificados en producción |
| Bootstrap seguro | CLI interactiva, contraseña oculta y bloqueo si ya existe admin |
| Auth completa | login, refresh, logout, me y change-password |
| Sesiones | hash del refresh, rotación, revocación y detección de reutilización |
| Autorización | guard global y permisos resueltos desde base |
| Usuarios y roles | endpoints administrativos protegidos y auditados |
| Auditoría | filtros, paginación, detalle, request ID y sanitización |
| Dashboard | resumen protegido por dashboard.read |
| Rate limiting | throttling global y límites reforzados en autenticación |
| Usuario DB runtime | API configurada con DB_APP_USER, separada del owner |
Frontend
| Criterio | Evidencia |
|---|---|
| Login y sesión | AuthContext con cookies y renovación controlada |
| Tokens | ningún JWT en localStorage o sessionStorage |
| Rutas | protección por sesión y redirección al login |
| Contraseña temporal | bloqueo de módulos hasta completar el cambio |
| Permisos visibles | navegación y acciones mediante PermissionGate |
| Administración | dashboard, usuarios, roles y auditoría |
| Cierre de sesión | revocación backend y limpieza local |
| Identificación | footer visible v0.7.0 · Fase A7 |
Seguridad e infraestructura
| Criterio | Evidencia |
|---|---|
| HTTPS | login y API externa accesibles únicamente mediante el proxy configurado |
| Cookies | HttpOnly para acceso/refresh; Secure y SameSite=Strict |
| CSRF | escritura con cookie rechazada sin x-csrf-token |
| Acceso anónimo | sólo /api/v3/health es público |
| Secretos | sanitización de auditoría y ninguna credencial en artefactos fuente |
| Docker | DB saludable, API y web en ejecución |
| Backup | fuentes, base, .env, Nginx, manifiesto y checksums |
| Recuperación | dump y TAR verificables sin modificar producción |
Resultado
Cuando el deploy A7, la aceptación autenticada y la verificación del backup finalizan sin errores, la Fase A queda formalmente cerrada y puede comenzar la Fase B — Maestro de Activos.