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

63 lines
2.1 KiB
Markdown

# Fase B3 — Historial y versiones de activos
Versión: `0.10.0`
## Objetivo
Conservar el estado exacto de cada activo a través del tiempo, sin depender de
la auditoría general para reconstruirlo.
## Modelo
La tabla append-only `asset_versions` registra una versión completa cuando:
- se crea un activo;
- cambian su identificación, jerarquía o atributos;
- cambia su estado de información;
- se crea, reemplaza o retira su geometría.
Cada snapshot incluye datos principales, tipo y padre, atributos configurables,
geometría GeoJSON, metadatos de captura, actor, origen, request ID y fecha.
El evento de auditoría correspondiente conserva además el número de versión
generado, permitiendo relacionar ambos registros.
La columna `assets.current_version` identifica la versión vigente. La migración
genera automáticamente una versión `BASELINE` para cada activo que ya existía
al desplegar B3.
## Inmutabilidad
El usuario runtime de la API recibe solamente `SELECT` e `INSERT` sobre
`asset_versions`. No recibe `UPDATE` ni `DELETE`. Una versión guardada no puede
ser reescrita por la aplicación.
## API
- `GET /api/v3/asset-versions`: historial global paginado y filtrable;
- `GET /api/v3/assets/:id/versions`: línea de tiempo de un activo;
- `GET /api/v3/assets/:id/versions/:versionNumber`: snapshot exacto.
Los filtros globales incluyen búsqueda, tipo, estado, clase de cambio y rango
de fechas.
## Seguridad
Todas las rutas requieren `assets.read_history`. La migración asigna lectura
histórica a `admin`, `director`, `supervisor`, `inspector` y `auditor`.
## Interfaz
- la sección **Historial** reemplaza el placeholder y muestra las versiones de
todos los activos;
- cada activo incluye su propia línea de tiempo;
- el visor distingue la versión vigente y muestra datos, atributos, ubicación
y el snapshot técnico exacto;
- la lista maestra muestra el número de versión vigente.
## Fuera de B3
- restauración automática de versiones anteriores;
- fotografías, documentos y evidencias;
- importaciones masivas;
- relevamiento Android y sincronización offline.