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
- El acta sigue en
DRAFTdurante la visita. - Se identifica al responsable de la empresa o se documenta su ausencia.
Preparar para firmascambia el acta aREADY, congela el contenido y genera una huella SHA-256 canónica.- Firma al menos un inspector asignado.
- La empresa firma la recepción o se registra una negativa/ausencia motivada.
Cerrar y sellarcierra atómicamente el acta y la visita.- 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.