Módulo Audit

El módulo de auditoría en Giswater está basando en la incorporación de un nuevo esquema en la base de datos, el cual llamaremos audit. En este documento se explicará como se pone en marcha y como se usan las herramientas vinculadas a este esquema, el cual irá almacenando información de los cambios hechos en nuestros esquemas de trabajos Giswater.

Inicialización y gestión del esquema audit

La primera fase en la implementación del entorno de auditoría consiste en la configuración del esquema audit en la base de datos PostgreSQL. Para facilitar este proceso y garantizar una gestión eficiente, se ha desarrollado una herramienta avanzada de administración dentro del plugin Giswater. Esta funcionalidad está disponible exclusivamente para usuarios con privilegios de administración y se encuentra en la pestaña “Avanzado” del panel de gestión de esquemas.

../../../../_images/gw-audit-manager.png

Formulario para gestionar esquema audit

The tool consists of three main functionalities, each accessible through a specific button: 1. Create database audit schema. This option executes the process of creating the audit schema, using the resources contained in the plugin folders giswater\dbmodel\audit\structure and giswater\dbmodel\audit\audit_checkproject. The resources used include:

  • Archivos DDL y DDLVIEW: Definen la estructura de tablas y vistas necesarias.

  • Archivos DML: Establecen los procedimientos para la manipulación de datos en las tablas de auditoría.

  • Scripts de tipo Report: Incorporan funcionalidades complementarias a la caja de herramientas de Giswater.

  • Definiciones de Roles: Configuran los permisos requeridos para una correcta gestión del esquema.

2. Activate audit environment. This functionality allows activating the audit environment for the currently used GIS schema. To do this, the scripts available in the folder giswater\dbmodel\audit\activate are used. Before completing the activation, the tool automatically generates an image of the operational network in the audit schema, which will serve as the initial reference point. This image will constitute the oldest consultable state during the audit processes. The GIS schema target of the activation is determined based on the active user connection, visible in the panel interface.

  1. Update audit. This option allows applying changes over a previously configured GIS instance with the audit environment. It allows updating the configuration parameters or incorporating new audit layers, without the need to restart the entire schema.

4. Activate additional tools in the Giswater plugin. When the module is already running, it is time to activate the visualization of the 2 tools developed for the audit data query. These are integrated into the existing Giswater toolbars, but in projects where the audit module has not been activated, it is recommended to keep them hidden, as they would not be functional at all. To activate them, you have to go to the Giswater menu, in the Advanced section, and change the value to True of the audit_active variable within the toolbars_add group. This will have to be done in each QGIS client.

../../../../_images/advanced-menu-audit.png

Configuración avanzada dónde activar las herramientas del módulo audit

Previo a la puesta en marcha, el administrador del sistema debe realizar una configuración detallada del entorno audit, ajustando los parámetros según los requerimientos téc-nicos del proyecto. Los parámetros configurables son los siguientes:

  • Frecuencia de generación de imágenes de red: Determina el intervalo de días a partir del cual se genera automáticamente una nueva imagen completa del es-tado de la red.

  • Retención de imágenes de red: Establece el número de días durante los cuales cada imagen histórica permanecerá disponible. Al superar este umbral, las imá-genes se eliminan del sistema de forma automática.

  • Elementos GIS auditables: Define qué elementos de la red deben ser objeto de seguimiento. Para ello, se especifican las tablas concretas que se incluirán en el proceso de auditoría.

Todos estos valores son modificables en cualquier momento por parte del administrador. Cualquier cambio realizado deberá ser aplicado mediante la funcionalidad “Actualizar auditoría”, a fin de que el sistema adopte la nueva configuración de forma efectiva e inmediata.

Implicaciones de la activación del entorno audit

Implicaciones de la activación del entorno audit ====== La activación del entorno de auditoría en Giswater implica la integración de un mecanismo transversal de trazabilidad dentro del GIS, que registra de forma estructurada todos los cambios efectuados sobre los datos geoespaciales. Este registro se realiza automáticamente en la tabla log ubicada en el esquema audit, lo que garantiza un control exhaustivo sobre la evolución de la red. A partir de este momento, cualquier operación de modificación ejecutada sobre las capas del modelo —ya sea una inserción, una actualización o una eliminación— genera una entrada correspondiente en dicha tabla, permitiendo la reconstrucción precisa de cada estado anterior de los objetos gestionados. El comportamiento es el siguiente según el tipo de operación: - Inserción: Se registra el nombre del esquema y de la tabla afectada, el usuario que realiza la operación, el tipo de acción (INSERT), los datos actuales del objeto insertado (en formato JSON), el comando ejecutado y la fecha/hora de la operación. - Actualización: Se registra la información del esquema, tabla, usuario y tipo de acción (UPDATE), así como los datos anteriores y actuales del objeto (ambos en formato JSON), junto con el comando SQL ejecutado y la marca temporal correspondiente. - Eliminación: Se conserva el esquema y tabla afectados, el usuario, el tipo de acción (DELETE), los datos anteriores del objeto (JSON), el comando ejecutado y la fecha/hora de ejecución.

La columna de datos en formato JSON proporciona una representación estructurada del objeto completo, incluyendo todos los atributos existentes en la tabla en el momento de la operación. Esta característica permite no solo conocer qué valores han cambiado, sino también reproducir con total fidelidad el estado anterior o posterior de cualquier entidad, tanto en términos alfanuméricos como geométricos.

../../../../_images/log-table.png

Table log con registros de modificaciones hechas

Este mecanismo de almacenamiento constituye la base para la gestión de versionado dentro del GIS, ya que permite realizar consultas históricas, auditorías de cambios, y procesos de restauración de versiones anteriores de forma selectiva y controlada. La información contenida en el esquema audit se convierte, por tanto, en un activo estratégico para garantizar integridad, trazabilidad y capacidad de recuperación ante errores o modificaciones no deseadas.

Herramienta de inspección de cambios

Una vez almacenada la información relativa a las operaciones realizadas sobre los objetos del GIS, se habilita la posibilidad de consultar versiones históricas directamente desde la interfaz de usuario.

Para ello, se incorpora una nueva funcionalidad en los formularios de los objetos, accesible mediante un botón específico en el conjunto de herramientas. Al activar esta opción, el sistema realiza una consulta en el esquema audit, localizando todas las operaciones registradas sobre el objeto en cuestión —identificado por su clave primaria— y presentando los resultados en un formulario adicional. Esta lista de versiones, ordenada cronológicamente, permite examinar la evolución completa del objeto a lo largo del tiempo.

../../../../_images/audit-custom-form.png

Botón para la herramienta de inspección de cambios

Cada entrada en la lista representa un instante histórico vinculado a una operación concreta (inserción, modificación o eliminación), e incluye tanto los atributos del objeto como su geometría, reflejando fielmente el estado del mismo en ese momento.

../../../../_images/audit-object-manager.png

Formulario de la herramienta de inspección de cambios

Esta herramienta no solo potencia la trazabilidad, sino que constituye la base para acciones de inspección detallada y restauración selectiva, mediante las siguientes utilidades: - Botón Abrir: Permite seleccionar un registro de la lista y visualizar en un formulario auxiliar los valores de los atributos afectados por la operación, mostrando tanto el estado anterior como el nuevo. Esto facilita, de forma clara e inmediata, la comprensión del cambio aplicado y su impacto. - Botón Fecha abierta: Ofrece la posibilidad de seleccionar una fecha en la que existan registros de modificación, mostrando en un único formulario auxiliar todos los cambios auditados en ese día. Esta funcionalidad resulta especialmente útil para comparar el estado del objeto antes del inicio y después del cierre de la jornada laboral, permitiendo una revisión completa de las modificaciones efectuadas en la fecha seleccionada.

../../../../_images/audit-object-values.png

Formulario de la herramienta de inspección de cambios con un registro seleccionado para ver específicamente qué cambios se hicieron

Herramienta de recuperación temporal del estado de la red

A partir de la información registrada por el entorno de auditoría, se ha desarrollado una nueva utilidad dentro de Giswater que permite reconstruir de forma precisa el estado histórico de la red en una fecha concreta, facilitando así tareas de análisis, diagnóstico o auditoría avanzada.

Al tratarse de una herramienta útil para cualquier usuario de Giswater, se ha incrustado en la barra de herramientas de Utilidades (previa activación necesaria).

../../../../_images/toolbar-audit-utilities.png

Herramienta de recuperación temporal del estado de la red, incrustada en la barra de Utilidades

Esta funcionalidad permite al usuario configurar una serie de parámetros clave a través de un formulario específico: - Fecha de referencia: Permite seleccionar el momento temporal del cual se desea recuperar el estado de la red. - Extensión espacial: Se puede definir el área geográfica de análisis de dos maneras: mediante una herramienta de dibujo sobre el lienzo de QGIS o reutilizando la extensión visible actual del mapa. - Elementos a recuperar: El usuario puede seleccionar uno o varios tipos de objeto sobre los cuales se desea aplicar la reconstrucción: arcos, nodos, conexiones, links, elementos o documentos.

../../../../_images/audit-network-manager.png

Formulario de la herramienta de recuperación temporal del estado de la red

Una vez establecidos los parámetros, el proceso se encarga de identificar la imagen de red más cercana anterior a la fecha seleccionada y aplica, de forma secuencial, todos los cambios registrados entre dicha imagen y la fecha objetivo. De este modo, se genera una reconstrucción fiel del estado de la red tal como se encontraba en ese momento.

El resultado se almacena en tablas temporales, que son cargadas automáticamente en QGIS con una simbología personalizada. Esta simbología incluye categorías de color y estilo diferenciadas que permiten identificar visualmente qué elementos han sido modificados (naranja), cuáles han sido eliminados (rojo) y cuáles permanecen sin cambios (azul). Además, esta capa reconstruida es completamente consultable, permitiendo al usuario explorar en detalle las propiedades de cada elemento tal como estaban en la fecha seleccionada.

../../../../_images/audit-network-result.png

Resultado del proceso de recuperación temporal, mostrando los cambios realizados a través de distintas capas y simbologías

Esta herramienta amplía de manera significativa las capacidades analíticas de Giswater, proporcionando una visión histórica detallada del comportamiento y evolución de la red, sin alterar la integridad de los datos operativos actuales.