chore: import DH V2 D5.6.4 production baseline
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
# DH Inspección V2 — Fase A7
|
||||
|
||||
## Versión
|
||||
|
||||
```text
|
||||
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:
|
||||
|
||||
```text
|
||||
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:
|
||||
|
||||
```text
|
||||
Pending migrations: no
|
||||
```
|
||||
Reference in New Issue
Block a user