Files
dh-inspeccion-v2/docs/PHASE_A7.md

1.8 KiB

DH Inspección V2 — Fase A7

Versión

v0.7.0 · Fase A7 · Integración y cierre de Fase A

Objetivo

A7 no agrega módulos funcionales ni modifica tablas. Cierra la Fase A mediante pruebas integradas sobre el despliegue real, controles de seguridad y un backup post-fase verificable.

Aceptación autenticada

scripts/phase-a-acceptance.sh solicita usuario y contraseña en la terminal. La contraseña se ingresa sin mostrarse, se utiliza para un único login y no se escribe en logs ni archivos persistentes.

La prueba valida:

  1. 401 sin sesión en dashboard, usuarios, roles y auditoría;
  2. respuesta genérica ante un usuario inexistente;
  3. login administrativo válido;
  4. tres cookies con Secure y SameSite=Strict;
  5. dos cookies de autenticación con HttpOnly;
  6. 200 autenticado en /auth/me, dashboard, usuarios, roles y auditoría;
  7. 403 CSRF_INVALID en una escritura sin token CSRF;
  8. logout válido con CSRF;
  9. 401 después de revocar la sesión.

La prueba no crea, edita ni elimina usuarios o roles. Sólo genera los eventos de autenticación y seguridad esperables en auditoría.

Backup post-fase

scripts/backup-phase-a.sh crea una carpeta privada bajo /var/www/dh-backup/ con:

source.tar.gz
database.dump
.env
nginx-site.conf o NGINX_CONFIG_NOT_FOUND.txt
MANIFEST.txt
SHA256SUMS

El TAR excluye .env, ZIP, node_modules, dist y archivos incrementales de TypeScript. El dump usa formato custom de PostgreSQL.

Verificación

scripts/verify-backup.sh es no destructivo y comprueba:

  • archivos obligatorios;
  • permisos 600 del .env respaldado;
  • todos los SHA-256;
  • integridad y exclusiones del TAR;
  • legibilidad del catálogo de database.dump mediante pg_restore --list.

Migraciones

A7 no incluye migraciones. El despliegue debe confirmar:

Pending migrations: no