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

WEBHOOK
Telegram Bot

Recibe mensajes de texto y notas de voz desde un bot de Telegram. Cada mensaje genera una tarea cascarón.

Ver configuración →
WEBHOOK
Gitea

Escucha eventos de issues y pull requests desde repositorios Gitea autohospedados. Valida firma HMAC SHA-256.

Ver configuración →
POLLING
Buzón IMAP (Inbox)

Tarea Celery Beat que revisa buzones IMAP periódicamente y convierte correos no leídos en tareas.

Ver configuración →

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).