# 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.