Configuración

Notificaciones de plataforma y workflows

El siguiente paso en la configuración del modelo operativo de gobierno en Anjana Data consiste en definir las notificaciones que permiten informar a los usuarios sobre eventos, flujos de validación (workflows) o incidencias en la plataforma.

Las notificaciones son un mecanismo clave para garantizar la trazabilidad y la comunicación dentro del gobierno de datos, ya que avisan a los usuarios o a roles completos de acciones como la expiración de un objeto, la creación de un workflow, el fallo en una adherencia, la modificación de políticas o la caducidad de una licencia.

En Anjana Data, las notificaciones se configuran en la tabla Notifications del panel de configuración y estarán disponibles posteriormente en el portal de datos para los usuarios afectados.


Tabla Notifications del Panel de Configuración (Visión administrador)

Las notificaciones se configuran en la tabla Notifications del panel de configuración. La definición de los notificaciones es un paso indispensable para poder configurar los workflows en el BPM y para que los usuarios clave reciban notificaciones de su interés.

image-20260703-103203.png
Tabla Notifications para configuración de la notificaciones de la plataforma y workflows

Estructura de la tabla Notifications

Cada notificación registrada en la tabla se caracteriza por los siguientes campos:

  • id: identificador único de la notificación (PK).

  • moduleType: módulo al que aplica la notificación. Actualmente es un campo informativo (legacy) heredado de versiones antiguas. Valores posibles:

    • "BG" → Business Glossary

    • "DC" → Data Catalog

    • "ALL" → aplica a toda la plataforma (opción recomendada).

  • notificationCode: código alfanumérico que identifica la notificación y permite invocarla desde las funcionalidades de la plataforma.

  • notificationReceiverType: define el tipo de destinatario. Valores posibles:

    • "USER" → la notificación se envía a un usuario específico.

    • "ROLE" → la notificación se envía a todos los usuarios que tengan asignado el rol indicado.

  • translationKey: clave de traducción que enlaza con el texto del mensaje en la tabla InternalTranslation. El texto puede contener variables que serán sustituidas en el momento de emisión de la notificación.

  • notificationType: tipo de notificación. Valores posibles:

    • "ALERT" → alerta

    • "NOTICE" → aviso

    • "ADMIN_ALERT" → alerta dirigida a administradores

  • receiverRole: rol destinatario de la notificación (si el notification_receiver_type es ROLE). Debe coincidir con el name de la tabla Roles.

  • severity: nivel de criticidad de la notificación.

  • subject: clave de traducción que enlaza con el texto del mensaje en la tabla InternalTranslation que contiene el asunto de la notificación.

  • externalSending: permite habilitar el envío de notificaciones por canales externos. Para activarlo, incluya las claves de los proveedores externos separadas por comas. Por ejemplo, para enviar a los proveedores disponibles: EMAIL, SLACK, MICROSOFT_TEAMS, GOOGLE_CHAT. Si está vacío, no se enviará a ningún proveedor externo. Consulte la lista de proveedores disponibles.


Códigos de notificación (notificationCode)

Para el correcto funcionamiento de la aplicación, la tabla Notifications debe contener registros que correspondan con una serie de notificationCode predefinidos.

Notification code

Utilidad

ADHERENCE_FAIL

Indica el motivo por el que ha fallado la adherencia.

CHECK_CONFIGURATION_IN_PROVIDER

Error al recuperar la información de un usuario en el provider indicado.

COMPLETED_AUTOMATIC_METADATA

Indica que ha terminado la importación de metadatos automática.

DATASET_EXPIRATION_TOT_FAIL

Fallo en el borrado de permisos al expirar un dataset.

DATASET_FAIL

Fallo en la creación de dataset en sistemas de terceros.

DEACTIVATION

Aviso de la desactivación a los roles y usuario correspondientes

DELETE_ENTITY

Avisa del borrado de una entidad.

DELETE_RELATIONSHIP

Avisa del borrado de una relación.

DEPRECATION

Avisa a todos los usuarios de un rol que el objeto va a ser deprecado.

DEPRECATION_ADHERED

Avisa al usuario que el objeto al que estaba adherido (dataset o DSA) va a ser deprecado.

DISADHERENCE

Se indica que se ha realizado correctamente la desadherencia.

DISADHERENCE_FAIL

Fallo en la desadherencia indicando el motivo.

DISADHERENCE_LIST

Informa de los detalles del resultado del proceso de desadherencia.

DISADHERENCE_LIST_OK

Se indica que la lista de objetos en los que ha tenido éxito la desadherencia.

DSA_FAIL

La creación de un DSA ha fallado indicando el motivo.

DSA_TRANSFER_FAIL

Se le indica al administrador que no se ha podido hacer el cambio de unidad organizativa del DSA.

ENRICHED_BAD_CONFIGURATION

Notificación de error cuando la configuración de algún campo enriquecido es errónea (no pueden tener validaciones MIN_LENGTH).

ERROR_AUTOMATIC_METADATA

Se produce un fallo en la importación de metadatos.

EXCEL_IMPORT

Notificación con el aviso de error en una creación/edición por Excel

EXCEL_PREPROCESSING

Aviso de finalización del preprocesamiento de un Excel de edición

EXPIRATION

El objeto está expirando.

EXPIRATION_OBJECT_FAIL

Avisa de un fallo en la expiración de un objeto y el motivo

EXPIRATION_ADHERED

El objeto al que se está adherido ha expirado.

EXPIRATION_WARNING

Aviso que se envía a los propietarios del objeto debido a que está próxima su expiración.

EXPIRATION_WARNING_ADHERED

Aviso que se envía a los usuarios adheridos al objeto que indica que está próxima su expiración.

FORM_FAIL

Errores encontrados en el formulario del objeto.

INDEX_FAIL

Se ha producido un error en la indexación.

INDEX_RELATIONSHIP_FAIL

Error de indexación en relaciones.

LICENSE_EXPIRED

La licencia ha expirado.

LICENSE_EXPIRING

Aviso de que la licencia, aunque aún es válida, está cerca de expirar.

MUST_DELETE_RELATIONSHIPS_FIRST

Aviso de la necesidad de un borrado previo de relaciones antes de borrar una entidad

MUST_DELETE_RELATIONSHIPS_STRUCTURE_FIRST

Aviso de la necesidad de un borrado previo de relaciones de los fields de un dataset antes de borrarlo a él

NEW_DSA

Cuando el usuario solicita la creación de un nuevo DSA.

PENDING_WF_FAIL_ADHERENCE

Indica el fallo en la creación de un workflow

POLICY_MODIFICATION

Avisa de la modificación de políticas en un objeto.

REQUIRED_FIELDS

Avisa de errores en la configuración de las plantillas.

TAXONOMY_BAD_CONFIGURED

Avisa de algún error en la configuración de la taxonomía de algún subtipo de objeto.

TRANSLATION_FILE_UPLOAD_FAIL

Avisa de que ha habido un error subiendo el fichero de traducciones a Minio o S3.

USER_CROSS_ROLE_FAIL

Indica los usuarios que no han sido configurados como cross.

WORKFLOW_DELETE_FAIL

No se ha podido borrar un workflow.

WORKFLOW_INFO_FAIL

Error en el workflow debido a que no tenía un workflow info asociado, mediante la api administrativa se pueden ejecutar los últimos pasos del workflow para que no queden en mal estado si sucede este error.

WORKFLOW_OK

El workflow ha sido creado.

WORKFLOW_FAIL

Indica el motivo por el que ha fallado la creación de un workflow.

WORKFLOW_TASK_FAIL

Fallo en la validación de un paso de workflow

Variables para las Key de InternalTranslation como parte del cuerpo de la notificación

Adicionalmente, los cuerpos de los mensajes de notificación definidos mediante las claves de traducción (campo Key de la tabla de Translations ) pueden contener variables dinámicas delimitadas por ##. Estas variables serán sustituidas automáticamente por los valores correspondientes en el momento de generar y enviar la notificación.

Por ejemplo:

“Ocurrió un error en el borrado del workflow con id #OBJECT_ID#”.

En caso de que una variable se incluya en un mensaje en el que no tenga valor aplicable, será sustituida por N/A.

A continuación se detallan las distintas variables que soporta Anjana Data para su uso en las notificaciones:

Variable

Utilidad

ACTION

Acción realizada

EXPIRATION_DAYS

Días hasta la expiración de un objeto (es un número negativo en caso de que sea una fecha pasada). Sólo se permite en las notificaciones de aviso de expiración cercana y deprecación

OBJECT_ID

Identificador del objeto

OBJECT_LIST

Lista de objetos, se usa en notificaciones como las de solicitud de creación de un nuevo DSA

OBJECT_NAME

Nombre del objeto

OBJECT_SUB_TYPE

Subtipo del objeto

ORGANIZATIONAL_UNIT

Unidad organizativa del objeto

ORGANIZATIONAL_UNIT_CHANGED

Unidad de destino del objeto en una transferencia de OU

REASON

Motivo de aprobación/rechazo del workflow

REQUEST_REASON

Motivo de la solicitud de la acción (para las notificaciones de solicitud de creación de dsa o de solicitud de adherencia, por ejemplo)

RESULT

Resultado de la acción

ROLE

Rol del usuario que debe realizar la acción o recibe la notificación

TYPE_OBJECT

Tipo del objeto

USER_NAME

Usuario que ha realizado la acción

VERSION

Número de versión del objeto

WORKFLOW_TYPE

Tipo del workflow lanzado

Notificaciones nativas

Anjana Data incorpora de forma nativa una gran cantidad de notificaciones basadas en ROLE para cubrir los principales eventos de gobierno de datos (creación, borrado, expiración, workflows, errores, etc.).

Es responsabilidad del administrador funcional configurar correctamente el campo receiver_role en cada notificación, de modo que los mensajes lleguen a los stakeholders adecuados según el modelo operativo de gobierno definido por la organización.

Una asignación incorrecta o incompleta puede provocar que los usuarios no reciban alertas críticas o, por el contrario, que se sobrecarguen con notificaciones que no les corresponden.

image-20250820-144320.png
Ejemplo de modificación de la notificación que avisa de la inminente expiración de la licencia

Alta de una nueva Notificación en la tabla Notifications

El alta de una nueva notificación (por ejemplo, una alerta para validar un paso de workflow) implica:

  1. Añadir un registro en la tabla Notifications con los datos básicos de la notificación.

  2. Configurar las claves de traducción asociadas a la notificación (translationKey y subject) en la tabla InternalTranslation, para todos los idiomas que utilice la organización en Anjana Data (tabla Languages).

Para añadir el registro en la tabla Notifications y dar de alta una nueva notificación:

  1. Pulsar el botón New en la esquina superior derecha. Esto abrirá un asistente (wizard) con los campos definidos en el apartado Estructura de la tabla Notifications.

  2. Completar los campos de la notificación conforme a la estructura descrita en el apartado anterior.

  3. Pulsar en Save para guardar la notificación o en Cancel para descartar.

image-20260703-111340.png
Ejemplo de alta de una alerta para un workflow de validación

Configuración de traducciones para notificaciones

Una vez creada la notificación en la tabla Notifications, deben definirse los textos que recibirá el usuario: el cuerpo del mensaje (clave translationKey) y el asunto (clave subject), en cada uno de los idiomas configurados en la plataforma.

Esta configuración se realiza desde el Portal de Administración, en la sección Internacionalización, accesible desde el menú de navegación del Portal de Datos.

image-20260703-112108.png
Sección de Internacionalización del Portal de Administración

Para cada notificación se crea una traducción, tanto para el cuerpo como para el asunto, cumplimentando los siguientes campos:

  • Clave: debe coincidir con el valor definido en la notificación (translationKey para el cuerpo y subject para el asunto).

  • Uso: texto descriptivo que ayude a identificar que la traducción corresponde a una notificación. Se recomienda definir un estándar de nomenclatura para mantener un vocabulario común de referencia.

  • Idioma (English y resto de idiomas configurados): texto que recibirá el usuario según el idioma establecido en su perfil.

El cuerpo del mensaje admite variables dinámicas delimitadas por # (por ejemplo, #OBJECT_ID#), tal como se describe en apartados anteriores.

image-20260703-112006.png
Wizard para añadir las traducciones correspondientes al cuerpo de la notificación

Importante: tras añadir todas las traducciones es necesario Publicar para que surtan efecto.

Modificación de una Notificación

La modificación del asunto o del cuerpo de una notificación no tiene impacto en la configuración, siempre que no se alteren las claves de traducción (translationKey o subject). En ese caso basta con actualizar el texto del idioma correspondiente, desde la sección Internacionalización del Portal de Administración, mediante una de estas dos opciones:

  • Edición directa del texto en el campo editable.

  • Edición mediante asistente: al pulsar el icono del lápiz se abre un wizard que permite editar los textos en los distintos idiomas.

image-20260703-114515.png

Si, por el contrario, es necesario modificar las claves de traducción (translationKey o subject), deberán aplicarse los cambios tanto en la notificación (tabla Notifications) como en sus traducciones.

Importante:

  • Las modificaciones del cuerpo o del asunto se aplican con carácter retroactivo, afectando también a las notificaciones ya recibidas.

  • Tras modificar las traducciones es necesario Publicar los cambios.

  • Se recomienda además vaciar la caché para eliminar los textos cacheados.

Consulta y explotación de las notificaciones en base de datos (Visión desarrollador)

Además de configurarse desde el Panel de configuración, la información de las notificaciones queda almacenada en la base de datos y puede consultarse en modo lectura para explotarla con fines analíticos. Por ejemplo, permite que el cliente construya su propio data mart, cuadros de mando o informes sobre la configuración de notificaciones de su plataforma (qué eventos se notifican, a qué roles, con qué criticidad, por qué canales, etc.).

Este apartado está orientado a la consulta (solo lectura) de la información. El alta y la modificación de notificaciones deben realizarse siempre desde el Panel de configuración (visión administrador), como se describe en los apartados anteriores; no se recomienda escribir directamente sobre las tablas.

Tabla hermes.notification

La configuración de cada notificación se almacena en la tabla hermes.notification. Sus columnas, disponibles para su consulta, son:

Campo

Tipo de dato

Descripción / Utilidad

id_notification

int4 (INTEGER)

Identificador único de la notificación. Clave primaria (PRIMARY KEY).

module_type

varchar(255)

Módulo al que aplica la notificación. Valores posibles: BG (Business Glossary), DC (Data Catalog), ALL (toda la plataforma). Campo informativo (legacy).

notification_code

varchar(255)

Código alfanumérico que identifica la notificación y permite invocarla desde las funcionalidades de Anjana.

notification_receiver_type

varchar(255)

Define el destinatario: USER (un usuario nominal) o ROLE (todos los usuarios con un rol concreto).

translation_key

varchar(255)

Clave de traducción del cuerpo del mensaje en la tabla Translations. Permite recuperar el texto (multiidioma) y admite variables dinámicas.

notification_type

varchar(255)

Tipo de notificación. Valores posibles: ALERT (alerta), NOTICE (aviso), ADMIN_ALERT (alerta administrativa).

receiver_role

varchar(255)

Rol que recibe la notificación cuando notification_receiver_type = ROLE. Coincide con el name de la tabla Roles.

severity

varchar(255)

Nivel de criticidad de la notificación (por ejemplo, HIGH o LOW).

subject

varchar(255)

Clave de traducción del asunto del mensaje en la tabla Translations.

external_sending

varchar(100)

Proveedores externos a los que se envía la notificación, separados por comas (por ejemplo, EMAIL,SLACK,MICROSOFT_TEAMS,GOOGLE_CHAT). Vacío indica que no se envía por canales externos.

Tablas relacionadas para enriquecer las consultas

Para obtener una vista más completa, la tabla de notificaciones puede cruzarse con otras tablas del modelo:

  • InternalTranslation: contiene el texto del cuerpo y del asunto de cada notificación por idioma. Se cruza enlazando translation_key y subject con el campo key de la tabla, filtrando por el idioma deseado (campo language). Permite recuperar el mensaje final que ve el usuario.

  • Roles: permite resolver el receiver_role con el detalle del rol destinatario (enlazando con su campo name).

  • Languages: lista de idiomas configurados en la plataforma, útil para acotar las consultas de textos por idioma.

Ejemplos de consulta

Listado completo de las notificaciones configuradas, con su tipo, destinatario y criticidad:

SQL
SELECT id_notification,
       module_type,
       notification_code,
       notification_receiver_type,
       receiver_role,
       notification_type,
       severity,
       external_sending
FROM hermes.notification
ORDER BY id_notification;

Notificaciones dirigidas a un rol concreto:

SQL
SELECT notification_code, notification_type, severity
FROM hermes.notification
WHERE notification_receiver_type = 'ROLE'
  AND receiver_role = 'DataOwner';

Recuento de notificaciones por módulo y tipo (útil como métrica para un data mart):

SQL
SELECT module_type,
       notification_type,
       COUNT(*) AS total
FROM hermes.notification
GROUP BY module_type, notification_type
ORDER BY module_type, notification_type;

Notificaciones con envío por canales externos configurado:

SQL
SELECT notification_code, notification_type, external_sending
FROM hermes.notification
WHERE external_sending IS NOT NULL
  AND external_sending <> '';

Importante:

  • Utilice un usuario de base de datos con permisos de solo lectura para estas consultas. El alta y la modificación de notificaciones deben realizarse siempre desde el Panel de configuración, para mantener la integridad de traducciones, secuencias y cachés.

  • Los nombres de esquema, tablas y columnas pueden evolucionar entre versiones de Anjana Data; conviene validarlos antes de construir un data mart o informes sobre esta información.