Joe — Plugins y Conectores

Joe — Plugins & Connectors

Joe es un sistema de gestión de tareas inteligente que recibe eventos desde múltiples canales externos (Telegram, correo IMAP, Gitea) y los convierte en tareas estructuradas para su procesamiento por la capa de IA (Dify/NOVA).

Estado: Beta  ·  Backend: Django + Django Ninja  ·  Arquitectura: Plugin-based webhooks + Celery Beat

¿Cómo funciona el sistema de plugins?

Cada conector se registra en la base de datos como un PluginConfig. Este modelo centraliza las credenciales cifradas y los metadatos de configuración de cada canal. Cuando llega un evento (mensaje de Telegram, issue de Gitea, correo nuevo), el plugin correspondiente:

  1. Valida la autenticidad de la petición (firma HMAC, secret token).
  2. Deserializa el payload usando schemas Pydantic.
  3. Crea una tarea cascarón en estado cuarentena.
  4. La capa NOVA/Dify adopta la tarea y completa los campos faltantes vía Cross-Channel Slot Filling.

Plugins disponibles

PluginMecanismoDescripciónGuía
Telegram Bot Webhook Recibe mensajes de texto y notas de voz. Cada mensaje genera una tarea cascarón. Ver →
Gitea Webhook Escucha eventos de issues y pull requests. Valida firma HMAC SHA-256. Ver →
Buzón IMAP Polling (Celery Beat) Revisa buzones IMAP periódicamente y convierte correos no leídos en tareas. Ver →

Conceptos clave

  • Tarea cascarón: Tarea creada con creador=None y estado=cuarentena. La IA la adopta y enriquece.
  • PluginConfig: Registro único por (servicio, identificador). Almacena el token cifrado con Fernet.
  • Cross-Channel Slot Filling: Mecanismo de NOVA para unificar datos parciales de múltiples canales en una sola tarea.
  • Soft delete: Ningún registro se elimina físicamente. El campo activo=False marca el borrado lógico (Regla GUARDIAN).