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:
| Campo | Tipo | Descripción |
|---|---|---|
id | ObjectId | Identificador único para el evento |
user | ObjectId (ref: User) | Referencia al usuario que activó el evento |
project | ObjectId (opcional) | Referencia al contexto del proyecto |
organization | ObjectId (opcional) | Referencia al contexto de la organización |
model | ObjectId (opcional) | Referencia al contexto del modelo |
sourceId | ObjectId | Identificador de la entidad específica que activó el evento |
action | EventAction | Tipo de acción realizada (sign, run, start, end, add, edit, delete) |
source | EventSource | Origen del evento (Auth, Organization, Project, Model, Rule, Scan, Discover, Dataset, Report, Load, Pump, Entity, Field, Label) |
info | String | Información adicional sobre el evento |
createdAt | Date | Marca de tiempo cuando se creó el evento |
updatedAt | Date | Marca de tiempo cuando se actualizó el evento por última vez |
readBy | [ObjectId] | Lista de usuarios que han leído/marcado el evento |
meta | Mixed | Almacenamiento 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 algorun- Se ha ejecutado un proceso o trabajostart- Una operación ha comenzadoend- Una operación ha terminadoadd- Algo se ha añadidoedit- Algo se ha modificadodelete- Algo se ha eliminado
Fuentes de Eventos
Los eventos pueden originarse desde las siguientes fuentes:
Auth- Eventos relacionados con autenticaciónOrganization- Eventos a nivel de organizaciónProject- Eventos a nivel de proyectoModel- Eventos a nivel de modeloRule- Eventos de ejecución de reglasScan- Eventos de trabajos de escaneoDiscover- Eventos de proceso de descubrimientoDataset- Eventos relacionados con conjuntos de datosReport- Eventos de generación de informesLoad- Eventos de carga de datosPump- Eventos de bombeo de datosEntity- Eventos relacionados con entidadesField- Eventos relacionados con camposLabel- 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.