Files
dh-inspeccion-v2/docs/AUDITORIA_INTEGRAL_F6_8_2026-09-15.md
T
DH V2 079728aa6d
Android CI / RC / Android · lint, tests, debug APK, release compile (push) Successful in 3m41s
DH V2 CI / API · typecheck, tests, build (push) Successful in 31s
DH V2 CI / WEB · typecheck, build (push) Successful in 19s
Production dependency audit / API · production dependencies (push) Successful in 9s
Production dependency audit / WEB · production dependencies (push) Successful in 8s
DH V2 CI / Docker / scripts contract (push) Successful in 1m14s
feat(f6.8): harden offline field flow and act documents
2026-09-15 15:56:50 -03:00

7.1 KiB

Auditoría integral DH V2 · F6.8 · 15/09/2026

Alcance

Revisión del árbol activo API V3, WEB V2 y Android de campo contra el modelo funcional vigente. La auditoría distingue superficie activa, compatibilidad histórica y código fuente retirado/no enrutable para no confundir legado con funcionalidad productiva.

1. Acceso, usuarios, roles y perfil

  • El acceso autenticado, permisos y cambio de contraseña siguen aislados por permisos.
  • La firma reutilizable del inspector se administra en Mi perfil y se consulta desde Android antes del cierre del Acta.
  • Corrección F6.8: Android ya no presume que existe la firma. Si se configura después de haber guardado un cierre pendiente, “Volver a verificar” reintenta automáticamente la sincronización.
  • Corrección F6.8: cola y caché offline están separadas por userId; un segundo usuario del mismo dispositivo no puede sincronizar ni reutilizar datos locales del anterior.

2. Planificación e Inspecciones

  • Flujo activo: oficina planifica; la APK inicia y cierra la ejecución física.
  • Contexto vigente: Departamento → Área → Yacimiento; Operadora temporal del Área; el Yacimiento fija el alcance físico.
  • La planificación activa no usa fecha de fin prevista. Las referencias plannedEndAt encontradas pertenecen al subsistema Survey retirado y no están en rutas activas.
  • Corrección F6.8: inicio y cierre de Inspección quedan persistidos localmente si se pierde conectividad y se sincronizan en orden al recuperarla. Un rechazo funcional del servidor revierte el estado optimista local.

3. Actas

  • Una Inspección puede contener múltiples Actas, manteniendo como máximo una en borrador simultáneamente.
  • La urgencia se define al bloquear/cerrar el contenido del Acta completa; no pertenece individualmente a cada Hallazgo.
  • El Acta bloqueada es inmutable y pasa a firma. La firma del inspector proviene del perfil; la persona acompañante firma por cada Acta.
  • Flujo activo de acompañante: conforme, disconformidad con motivo o negativa a firmar con motivo. La opción de crear nuevas ausencias fue retirada de la interfaz; ABSENT se conserva únicamente para leer registros históricos.
  • Corrección crítica F6.8: Android enviaba uploadMode=ONLINE, valor inválido para la API. Se reemplazó por IMMEDIATE y la cola offline usa DEFERRED.
  • Corrección F6.8: alta, bloqueo, responsable, manifestación, firma y sellado pueden quedar en cola local sin perderse.

4. Hallazgos y evidencia

  • Los Hallazgos pertenecen a un Acta explícita y a un elemento de Inventario incluido en ella.
  • El catálogo se resuelve por Tipo de instalación/subinstalación y mantiene OTROS como salida no restrictiva.
  • Corrección F6.8: alta de Hallazgo y carga de evidencia usan UUID de cliente para que un reintento offline no duplique registros.
  • Corrección F6.8: cada fotografía se revisa antes de incorporarse: usar, volver a tomar o eliminar; conserva GPS y fecha de captura.
  • Se mantienen múltiples fotografías por Hallazgo.

5. Inventarios

  • Jerarquía activa: Departamento → Área → Yacimiento → Instalación → Subinstalación.
  • Corrección de nomenclatura: la antigua expresión visible “clasificación técnica/familia técnica” se presenta como “Tipo de instalación” o “Tipo de subinstalación”. Los nombres físicos internos de tablas/variables se conservan para evitar migraciones destructivas.
  • Altas en campo conservan GPS y foto obligatoria antes de habilitar Hallazgos.
  • Corrección F6.8: creación, selección, foto y asociación al Acta pueden persistirse offline con identidad estable e idempotencia de servidor.
  • Historial, dossier y consulta temporal siguen separados del estado actual para no reescribir historia.

6. Acta documental, fotos y Dashboard

  • Desvío corregido: la ficha de Acta mezclaba demasiada información administrativa y el PDF/fotos no eran contenido principal.
  • F6.8 agrega “Documento del Acta” con apertura y descarga del PDF real sellado.
  • Las fotos de Hallazgos se muestran como miniaturas dentro del Acta.
  • Las fotos de Inventario se limitan a eventos de campo de la misma Inspección y a elementos incluidos en esa Acta; no se mezclan fotos históricas de otras visitas.
  • La proyección documental anterior queda sólo como referencia colapsada, no como sustituto del PDF oficial.

7. Seguimiento, verificaciones y vencimientos

  • El seguimiento administrativo permanece separado de la captura de campo.
  • Respuesta de empresa, documentación, fechas informadas y verificación física conservan trazabilidad sin reabrir el Acta.
  • La planificación de verificaciones continúa basada en Hallazgos abiertos y no reemplaza el plazo administrativo del Acta.
  • No se detectaron rutas activas que vuelvan a asignar la urgencia al Hallazgo.

8. Informes, GEDO y entrega documental

  • Flujo activo confirmado: Acta → INF → oficialización GEDO/IF.
  • Un INF corresponde a una sola Acta; una Inspección con varias Actas puede producir varios INF.
  • El circuito legacy de aprobación/firma final por Director fue retirado de la superficie activa; sus menciones permanecen sólo en migraciones reversibles/historia.
  • La entrega documental y SMTP continúan bajo permisos administrativos y trazabilidad.

9. Importaciones y compatibilidad histórica

  • El módulo API de importaciones se conserva, pero la antigua pantalla de importación fue retirada deliberadamente de las rutas WEB en F5; no se reactivó durante F6.8 para no mezclar el contrato anterior con el modelo autoritativo actual.
  • Las páginas Survey y campos como plannedEndAt existen como fuente histórica sin ruta activa; los módulos Survey tampoco están registrados en AppModule.
  • Se mantienen redirects /activos/inventarios y valores históricos de estados de Acta únicamente para compatibilidad de enlaces/datos existentes.

10. Offline, consistencia y seguridad de sincronización

  • Room persiste operaciones y contexto descargado; WorkManager reintenta sólo con red disponible.
  • Las operaciones dependientes se procesan en orden estable y la cola se detiene ante un error funcional permanente para no ejecutar hijos sobre un padre rechazado.
  • Las operaciones críticas usan identificadores de cliente y columnas de idempotencia para evitar duplicados tras cortes/reintentos.
  • Los archivos pendientes se almacenan dentro del espacio privado de la aplicación hasta quedar sincronizados.

Barreras de aceptación F6.8

  • API: build + suite integral de contratos/unidad.
  • WEB: typecheck/build de producción.
  • Android: compilación Debug/Release, tests unitarios, APK Debug instalable y lint por variante dentro de los límites del VPS.
  • Deploy productivo: backup previo, migraciones, recreación API/WEB, health/versiones y ausencia de migraciones pendientes.

Compatibilidad intencional que NO debe eliminarse a ciegas

  • Estados/eventos históricos de Acta (READY, CLOSED, RECTIFIED, ABSENT) para lectura de expedientes existentes.
  • Rutas antiguas /activos como redirección de compatibilidad.
  • Migraciones históricas y textos de rollback: no se reescriben.
  • Fuentes Survey/legacy no enrutadas: no forman parte del producto activo, pero sirven a contratos históricos y rollback.