63 lines
2.1 KiB
Markdown
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.
|