Files
dh-inspeccion-v2/docs/PRESENTACION_F6_1.md

6.0 KiB
Raw Permalink Blame History

DH Inspección V2 · corte de presentación F6.1

Este documento define el alcance verificable del corte F6.1 y el recorrido recomendado para una presentación funcional. No reemplaza al Manual de Usuario ni al Manual del Programador.

Versiones del corte

  • API: 0.29.0-1.
  • WEB: 0.23.0-1.
  • Android: 0.15.0 (versionCode 22).
  • Modelo funcional: F6.1 · contexto operativo ÁreaOperadora consolidado.

La versión visible en el footer WEB debe coincidir con web-v2/package.json; este contrato queda protegido por tests.

Matriz de aceptación funcional

Inventario

  • Jerarquía física vigente: Departamento → Área → Yacimiento → Instalación → Subinstalación.
  • Empresa permanece fuera del árbol físico.
  • La Operadora se resuelve por relación temporal vigente con el Área.
  • Instalación y Subinstalación admiten familia Otro / no catalogado cuando corresponda.
  • Un alta de campo conserva inspección, actor, fecha, contexto, GPS y evidencia exigida por el flujo.

El issue histórico F3.1 describía un árbol que comenzaba en Área. Esa definición fue supersedida por F5.1/F6, que incorporó Departamento como raíz territorial autorizada.

Merge cronológico de Inventario

  • Sólo se fusionan Instalaciones/Subinstalaciones compatibles.
  • El registro duplicado no se elimina: queda fusionado/inactivo y conserva identidad histórica.
  • Las referencias históricas emitidas no se reescriben.
  • El dossier canónico agrega cronológicamente alias y eventos, mostrando el Inventario original cuando corresponde.
  • WEB muestra el destino canónico.
  • Android, al conciliar un alta nacida en campo, selecciona inmediatamente el canónico y confirma qué código se conserva.
  • OTROS permanece disponible en el resolver de Hallazgos.
  • La fusión de catálogo mueve aplicabilidad futura al canónico sin reescribir Hallazgos ya emitidos.
  • Las instancias históricas conservan el modelo append-only y la trazabilidad de auditoría.

Inspecciones y Android

  • Una inspección planificada puede iniciarse desde Android por un Inspector autorizado y asignado.
  • El inicio registra actualStartedAt, actor y auditoría del servidor.
  • El contexto operativo es Área + Operadora vigente.
  • Una Inspección puede tener múltiples Actas, con un único borrador simultáneo.
  • El cierre exige Actas selladas y verificaciones requeridas completas.

Perfil del Inspector

  • Nombre y apellido obligatorios.
  • Datos administrativos disponibles: DNI, email, teléfono, cargo/función y legajo/matrícula.
  • El email es obligatorio para rol Inspector.

Entrega documental

  • El Acta PDF se prepara para Empresa, Oficina e Inspector principal.
  • El INF Word se prepara también para el Inspector principal cuando existe.
  • El outbox conserva destinatario, estado, intentos, error y fecha de envío; los pendientes son reintentables.
  • La entrega depende de SMTP y destinatarios configurados: si faltan, el registro queda en un estado de espera auditable en lugar de perderse.

Relevamientos

  • Relevamientos no existe como módulo/ruta/entrada de menú activa.
  • La captura en campo vive dentro de Inspecciones + Inventario de campo.

Seguridad de dependencias del corte

La candidata mantiene una barrera separada para dependencias productivas de API y WEB mediante npm audit --omit=dev --audit-level=high.

Para F6.1 se fijaron las resoluciones parcheadas que eliminan los advisories detectados durante el cierre:

  • API: multer 2.3.0 y qs 6.16.0.
  • WEB: maplibre-gl 6.4.1.

Las dependencias de runtime con vulnerabilidades altas o críticas bloquean el corte aunque typecheck, tests y builds estén verdes.

Barrera técnica obligatoria

Un SHA sólo es candidato de presentación cuando pasan:

  1. API typecheck, tests y build.
  2. WEB typecheck y build.
  3. auditoría de dependencias productivas de API y WEB, sin advisories altos/críticos.
  4. migraciones sobre PostGIS limpio.
  5. arranque real de API.
  6. preflight aislado equivalente al entorno Docker.
  7. build de imágenes productivas.
  8. Android lint.
  9. Android unit tests reales.
  10. Android assembleDebug.
  11. Android assembleRelease.
  12. APK debug con SHA-256 y metadata del SHA exacto.

Recorrido sugerido de demo

  1. Login WEB y Dashboard.
  2. Inventarios: navegar Departamento → Área → Yacimiento → Instalación → Subinstalación y abrir un dossier.
  3. Mostrar la cronología/dossier, documentos, fotos y Hallazgos.
  4. Mostrar, si existe un caso preparado, una fusión cronológica y el aviso de registro canónico.
  5. Usuarios: abrir un Inspector y mostrar perfil, email documental y roles.
  6. Inspecciones: crear/abrir una planificación con Área + Operadora, Inspector y checklist.
  7. Android: ingresar con Inspector, abrir o seleccionar la Inspección e iniciarla.
  8. En Android, abrir Inventario de campo, seleccionar un registro o crear uno nuevo con GPS y foto. Para una familia no catalogada, usar Otro / no catalogado.
  9. Crear un Acta, registrar un Hallazgo (incluyendo OTROS si se quiere demostrar el fallback), adjuntar evidencia y sellar el Acta.
  10. Cerrar la Inspección cuando todas las Actas estén selladas.
  11. En WEB, mostrar Actas / Informes / Entrega documental y el estado auditable de los envíos.

Preparación del entorno de presentación

Antes de una demo con envío real de correo, verificar en Administración:

  • email institucional de Oficina;
  • email de la Empresa involucrada;
  • email del Inspector principal;
  • SMTP configurado y operativo.

Para una demo sin correo saliente, el resto del flujo puede demostrarse y la bandeja de entrega debe reflejar el estado de espera correspondiente; no se debe presentar un envío como exitoso si el transporte no está configurado.

Evidencia del corte

El SHA presentado debe conservarse junto con:

  • resultado verde de GitHub Actions;
  • auditoría productiva verde;
  • metadata de versiones;
  • APK debug de la candidata y su SHA-256;
  • si se distribuye APK productiva, firma histórica verificada y SHA-256 del artefacto firmado.