Files
dh-inspeccion-v2/docs/PHASE_D5.md
T

2.6 KiB

Fase D5 — Cierre y firmas

Versión: 0.19.0

Objetivo

Cerrar la inspección conservando una constancia exacta e inmutable de lo observado. El cierre del acta no cierra los hallazgos: cada hallazgo continúa abierto hasta su verificación posterior.

Flujo

  1. El acta sigue en DRAFT durante la visita.
  2. Se identifica al responsable de la empresa o se documenta su ausencia.
  3. Preparar para firmas cambia el acta a READY, congela el contenido y genera una huella SHA-256 canónica.
  4. Firma al menos un inspector asignado.
  5. La empresa firma la recepción o se registra una negativa/ausencia motivada.
  6. Cerrar y sellar cierra atómicamente el acta y la visita.
  7. Los hallazgos permanecen OPEN, admitiendo respuestas, PDFs, comunicaciones y fecha del próximo control.

Antes de la primera firma, un acta READY puede volver a DRAFT. Después de registrar una firma o constancia ya no puede reabrirse ni modificarse.

Constancia manuscrita

La captura en pantalla se denomina firma manuscrita o constancia de recepción. No se presenta como firma digital certificada. Cada registro conserva:

  • identidad y rol del firmante;
  • declaración aceptada y su versión;
  • fecha del dispositivo y fecha del servidor;
  • origen web/Android, dispositivo y GPS opcional;
  • hash de la imagen y hash del payload de firma;
  • vínculo con la huella exacta del contenido preparado.

Las firmas sólo admiten SELECT e INSERT para el usuario runtime de la API. No pueden actualizarse ni borrarse.

Congelado canónico

El snapshot preparado usa el esquema DH-ACT-CLOSURE-V1 e incluye:

  • acta y visita;
  • responsable empresarial y equipo inspector;
  • activos, atributos y geometrías vigentes;
  • hallazgos, texto constatado, catálogo y base legal copiada;
  • evidencias con metadatos y SHA-256;
  • comunicaciones existentes al momento de preparar.

Los objetos se serializan con claves ordenadas y fechas ISO-8601 antes de calcular SHA-256. El cierre final agrega las firmas y las fechas de cierre, y genera una segunda huella almacenada en el acta.

Persistencia y permisos

La migración PhaseD5ActClosingSignatures1787328000000 crea:

  • inspection_act_responsibles;
  • inspection_act_closures;
  • inspection_act_signatures;
  • cuatro permisos inspection_closure.*;
  • restricciones, índices y triggers de inmutabilidad.

Las imágenes se guardan bajo /app/storage/asset-media/inspection-signatures, dentro del volumen existente dhv2_asset_media. No hay variables obligatorias nuevas.

Fuera de alcance

El PDF oficial, QR/token de verificación y envío por correo corresponden a D6. El informe técnico y su aprobación corresponden a D7.