Documentación del Proyecto: Anubis Modular

Versión 1.0 - Estado al 06 de Octubre de 2025

Introducción

Anubis Modular es un orquestador de automatización diseñado para ejecutar flujos de trabajo en la plataforma BMC Helix ITSM. Su objetivo principal es eliminar tareas manuales repetitivas, mejorar la eficiencia y asegurar la consistencia en los procesos de gestión de incidentes.

La arquitectura del sistema es modular y declarativa, lo que permite definir, configurar y extender nuevas automatizaciones de forma rápida y sencilla sin necesidad de modificar el núcleo del sistema.

Arquitectura del Sistema

El sistema se compone de varios módulos clave que trabajan en conjunto. El orquestador es el cerebro que coordina el trabajo, mientras que los flujos, conectores y acciones definen qué hacer y cómo hacerlo.

graph TD subgraph "Fuentes de Datos" A[API Externa] B[Archivo .csv/.txt] C[Base de Datos] end subgraph "Anubis Core" D[Conectores] --> E{Orquestador} F["Definiciones de Flujo (\.js)"] --> E E -- Crea Job --> G["Cola de Trabajos (Job Queue)"] H[Worker] -- Obtiene Job --> G H -- Ejecuta Pasos --> I[Acciones] end subgraph "Módulos de Soporte" J[Browser Manager] <--> I K[Database Manager] <--> E K <--> H L[Logger] <--> E L <--> H L <--> I M[Notification Manager] <--> H end subgraph "Sistemas Externos" N[BMC Helix ITSM] O[Microsoft Teams] end subgraph "Entrada Alternativa" P[API Server] -- Crea Job --> G end I -- Interactúa con --> N M -- Envía Notificación --> O A --> D B --> D C --> D

Componentes Principales

Estado Actual del Proyecto

El proyecto se encuentra en un estado funcional, con las capacidades esenciales implementadas y operativas.

Completado Funcionalidades Esenciales

Implementado Parcialmente Gatillado de Flujos por API

El servidor API (apiServer.js) está implementado y es capaz de recibir peticiones para crear nuevos trabajos.

Puntos de Mejora Oportunidades Identificadas

Funcionalidades Implementadas

Basado en los flujos definidos en src/flows/, Anubis actualmente puede realizar las siguientes tareas de forma autónoma:

sequenceDiagram participant C as Conector participant O as Orquestador participant W as Worker participant B as BMC Helix participant T as Teams C->>O: Provee lista de incidentes O->>W: Encola y despacha Job (ej. INC123) W->>B: Navega y busca INC123 W->>B: Ejecuta acciones (ej. agrega nota) W->>T: Notifica "Éxito en INC123"

Flujos de Trabajo Activos

  1. Procesamiento de Notas y Estado de Incidentes (processIncidentNoteAndStatus.js)

    Este flujo lee un archivo con resultados de llamadas a clientes, busca cada incidente en Remedy, y agrega una nota de trabajo con los detalles de la llamada. Si el incidente está "Resuelto" y el cliente confirma el cierre, el flujo intenta avanzar el estado a "Cerrado".

  2. Categorización Automática de Incidentes BREDS (categorizacionBREDs.js)

    Para incidentes de tipo BRED, este flujo navega a la pestaña "Telco", extrae información clave (TS1-TS2), la cruza con un dataset de tipos de servicio, y rellena automáticamente la categorización y la nota de resolución con la información más probable antes de guardar el incidente.

  3. Cambio de Motivo de Estado (changeStatusToNoContact.js)

    Un flujo específico que lee una lista de incidentes y un motivo de estado deseado (ej. "Op - Sin Contacto con Cliente"). Para cada uno, busca el incidente y actualiza su "Motivo del estado" (Status Reason) al valor especificado, automatizando cambios masivos.

Roadmap y Próximas Funciones

A continuación se proponen las próximas mejoras y funcionalidades para futuras versiones de Anubis Modular.

Propuestas a Corto Plazo

Propuestas a Mediano/Largo Plazo

Apéndice: Estructura de Archivos

Una visión general de la organización del código fuente del proyecto.

anubis-modular/
├── logs/                 # Archivos de log generados por el sistema y flujos
│   └── screenshots/      # Capturas de pantalla automáticas (ej. en errores)
├── src/                  # Código fuente principal de la aplicación
│   ├── actions/          # Módulos de acciones reutilizables (ej. click, fill)
│   ├── api/              # Lógica del servidor API (Express)
│   ├── connectors/       # Módulos para obtener datos de diferentes fuentes
│   ├── core/             # Módulos centrales (orquestador, logger, db, etc.)
│   ├── flows/            # Definiciones de los flujos de trabajo
│   ├── config.js         # Configuración centralizada (lee .env)
│   └── orchestrator.js   # El orquestador principal (scheduler y worker)
├── tests/                # Scripts de prueba para funcionalidades específicas
├── .env                  # Variables de entorno (credenciales, URLs) - NO versionar
├── index.js              # Punto de entrada de la aplicación
├── anubis.db             # Base de datos SQLite
└── package.json          # Dependencias y scripts del proyecto