@leafnoise/pipeline-editor
v1.1.1
Published
Editor visual para crear y gestionar Sets de Plugins de Moorea Workbench.
Readme
Plugin Set Editor
Editor visual para crear y gestionar Sets de Plugins de Moorea Workbench.
Concepto
Un Plugin Set es una agrupación de plugins que trabajan juntos para realizar una operación compleja. El concepto clave es la separación entre:
- Dispatcher: Plugin que inicia una operación asíncrona (ej: llamar a un servicio externo)
- Listener: Plugin que procesa la respuesta cuando llega el callback
Cuando arrastras un "Plugin Async" al canvas, se crean automáticamente ambos nodos (dispatcher + listener) conectados.
Estructura
src/
├── components/
│ ├── nodes/ # Nodos visuales de ReactFlow
│ │ ├── DispatcherNode.tsx
│ │ ├── ListenerNode.tsx
│ │ └── StandaloneNode.tsx
│ ├── sidebar/ # Paneles laterales
│ │ ├── PluginSettings.tsx
│ │ ├── HelpersPanel.tsx
│ │ └── SetSettings.tsx
│ ├── Header.tsx
│ ├── Sidenav.tsx
│ ├── Sidebar.tsx
│ └── Notification.tsx
├── store/ # Redux state
│ ├── index.ts
│ ├── pluginSetSlice.ts
│ └── uiSlice.ts
├── types/
│ ├── plugin.ts # Tipos de plugins
│ └── helpers.ts # Helpers disponibles de imanager
├── services/
│ └── mockApi.ts # Mock API para desarrollo
├── App.tsx
├── main.tsx
└── index.cssHelpers Disponibles
Los plugins tienen acceso a helpers de imanager-back:
Instancias
helpers.get_instance_by_id(module, instance_id)- Obtener instanciahelpers.update_header(module, instance_id, updates)- Actualizar headerhelpers.add_payload_description(module, instance_id, items)- Agregar descripciones
Documentos
helpers.add_incorporated_document(...)- Incorporar documentohelpers.generate_pdf_from_form_code(form_code, form_data)- Generar PDF
Archivos
helpers.save_file(filename, content)- Guardar archivohelpers.get_file(file_id)- Obtener archivo
helpers.email.send(to, subject, message)- Enviar email
HTTP
helpers.http.get(url)- GET requesthelpers.http.post(url, json)- POST request
Utilidades
helpers.log.info(message)- Log infohelpers.log.error(message)- Log errorhelpers.schedule_task(callback_url, data, delay_seconds)- Programar tarea
Desarrollo
# Instalar dependencias
npm install
# Iniciar servidor de desarrollo
npm run dev
# Build para producción
npm run buildUso
Crear Plugin Async: Arrastra "ASYNC" del sidenav al canvas. Se crean dispatcher + listener conectados.
Crear Plugin Sync: Arrastra "SYNC" para un plugin de ejecución inmediata.
Editar Plugin: Click en un nodo para abrir el panel de propiedades.
Ver Helpers: Click en "Helpers" en el sidenav para ver todas las funciones disponibles.
Conectar Plugins: Arrastra desde los handles de salida (verde=success, rojo=error) hacia los handles de entrada de otros plugins.
Próximos Pasos
- [ ] Integración con backend real (guardar/cargar plugin sets)
- [ ] Validación de código Python en tiempo real
- [ ] Testing de plugins con datos mock
- [ ] Export/Import de plugin sets como JSON
- [ ] Integración con Workbench existente
