Modelo

Eventos

Los eventos en Gigantic rastrean las actividades de los usuarios y las operaciones del sistema a lo largo de la plataforma. Proporcionan una auditoría de acciones realizadas dentro de modelos, proyectos y organizaciones, y sirven como base para el sistema de notificaciones en la interfaz de usuario.

Propósito y Uso

Los eventos se utilizan para varios propósitos clave:

  • Auditoría: Rastrear todas las acciones de los usuarios para fines de cumplimiento y referencia histórica
  • Notificaciones: Impulsar el sistema de notificaciones en tiempo real en la interfaz de usuario
  • Monitoreo de Actividad: Monitorear la actividad de usuarios y sistemas a través de la plataforma
  • Información Operativa: Proporcionar información sobre el uso y rendimiento del sistema

Estructura del Modelo de Eventos

Los eventos se almacenan en MongoDB con la siguiente estructura:

CampoTipoDescripción
idObjectIdIdentificador único para el evento
userObjectId (ref: User)Referencia al usuario que activó el evento
projectObjectId (opcional)Referencia al contexto del proyecto
organizationObjectId (opcional)Referencia al contexto de la organización
modelObjectId (opcional)Referencia al contexto del modelo
sourceIdObjectIdIdentificador de la entidad específica que activó el evento
actionEventActionTipo de acción realizada (sign, run, start, end, add, edit, delete)
sourceEventSourceOrigen del evento (Auth, Organization, Project, Model, Rule, Scan, Discover, Dataset, Report, Load, Pump, Entity, Field, Label)
infoStringInformación adicional sobre el evento
createdAtDateMarca de tiempo cuando se creó el evento
updatedAtDateMarca de tiempo cuando se actualizó el evento por última vez
readBy[ObjectId]Lista de usuarios que han leído/marcado el evento
metaMixedAlmacenamiento de metadatos flexible para detalles adicionales del evento

Acciones de Eventos

Los eventos pueden tener las siguientes acciones:

  • sign - El usuario ha firmado o aprobado algo
  • run - Se ha ejecutado un proceso o trabajo
  • start - Una operación ha comenzado
  • end - Una operación ha terminado
  • add - Algo se ha añadido
  • edit - Algo se ha modificado
  • delete - Algo se ha eliminado

Fuentes de Eventos

Los eventos pueden originarse desde las siguientes fuentes:

  • Auth - Eventos relacionados con autenticación
  • Organization - Eventos a nivel de organización
  • Project - Eventos a nivel de proyecto
  • Model - Eventos a nivel de modelo
  • Rule - Eventos de ejecución de reglas
  • Scan - Eventos de trabajos de escaneo
  • Discover - Eventos de proceso de descubrimiento
  • Dataset - Eventos relacionados con conjuntos de datos
  • Report - Eventos de generación de informes
  • Load - Eventos de carga de datos
  • Pump - Eventos de bombeo de datos
  • Entity - Eventos relacionados con entidades
  • Field - Eventos relacionados con campos
  • Label - Eventos relacionados con etiquetas

Almacenamiento y Retención

Los eventos se almacenan en una colección de MongoDB llamada "events". Basado en la revisión del código, no parece haber un mecanismo automático de TTL (Time To Live) configurado para los eventos, lo que sugiere que se almacenan indefinidamente hasta que se eliminan manualmente.

Enlaces de Navegación

El almacén de eventos del lado del cliente construye enlaces de navegación para diferentes tipos de eventos para dirigir a los usuarios a las secciones relevantes de la aplicación:

  • Eventos de Scan/Discover: Navegar a la página de detalles del trabajo
  • Eventos de Dataset: Navegar a la página de conjuntos de datos (para acción add) o página de detalles del trabajo
  • Eventos de Load/Pump: Navegar a la página de detalles del trabajo
  • Eventos de Rule: Navegar a la página de detalles de la regla
  • Eventos de Model: Navegar a la página del modelo
  • Eventos de Report: Navegar a la página del informe de auditoría

Actualizaciones en Tiempo Real

Los eventos se publican en tiempo real usando suscripciones GraphQL. El almacén de eventos del lado del cliente se suscribe a nuevos eventos y actualiza el sistema de notificaciones de la interfaz de usuario en consecuencia.

Tabla de Contenidos