n8n-nodes-orbital-actions
v3.3.0
Published
Orbital Actions para n8n — 7 operaciones simplificadas: pipeline, progreso+pasos, finalizar, saltar fase, notificar, documentos, aprobación HITL. JWT y URL auto-resueltos.
Downloads
273
Maintainers
Readme
n8n-nodes-orbital-actions
Nodo de n8n para reportar progreso, steps y callbacks a Orbital desde workflows ejecutados como Actions.
v3.0.2 — Refactor interno modular + doble selector categoría→plantilla + 8 plantillas genéricas universales + URL hardcoded (zero-config).
Instalación
npm install n8n-nodes-orbital-actionsO desde la UI de n8n: Settings → Community Nodes → Install → n8n-nodes-orbital-actions.
Concepto
Cuando Orbital lanza un flujo n8n como Action, envía un payload con JWT del job (trae jobId, userId, projectId, agentId embebidos). Este nodo se usa dentro del flujo para reportar:
- Pipeline de fases al inicio (esqueleto del job)
- Progreso y steps durante la ejecución (hidratación)
- Callback de éxito/error al final
- Documentos, notificaciones, aprobaciones HITL según convenga
El dashboard de Orbital muestra todo en tiempo real (polling cada 8s).
Zero-config (v3.0.2)
El nodo no requiere configurar URLs. Apunta a producción de Orbital internamente (api.orbital.fractaliacyber.com/public/wh/*). El técnico solo configura:
- Autenticación — JWT directo (default, con expresión al Webhook Trigger) o Credential guardado (Header Auth de n8n).
- Campos específicos de la operación (plantilla de pipeline, título del step, etc.).
Modelo de datos
Job ← workflow_jobs (1 por ejecución)
└── Fase ← pipelineUi (declarada al inicio)
└── Step (flat, sin jerarquía) ← job_steps filtrado por phase_ref
└── ai.tools[] (inline) ← metadata del step AI, no substeps3 niveles fijos, no árbol recursivo. Alineado con NIST, GitHub Actions, Airflow, Temporal.
Doble selector categoría → plantilla (v3.0.2)
El campo "Declarar Pipeline" ahora tiene 2 dropdowns:
Categoría del Pipeline (11 categorías):
- Generic / Universal
- Cybersecurity / SOC
- Offensive Security
- Research / Análisis
- IT Service Management
- DevOps / Engineering
- Data / Analytics
- Business Operations
- Compliance / Legal
- Content
- Custom (manual)
Plantilla (filtrada dinámicamente por la categoría elegida).
Si la categoría es Custom, se oculta el selector de plantilla y aparece el campo para definir fases manualmente.
Plantillas disponibles
🔄 Generic / Universal (8 — NUEVAS en v3.0.2)
| ID | Nombre | Fases |
|---|---|---|
| generic_basic | Proceso básico | received → processing → completed |
| generic_with_notify | Proceso con notificación | received → processing → completed → notified |
| async_job | Job async | queued → running → completed |
| request_approval | Solicitud / Aprobación | submit → review → decide → notify |
| ticket_simple | Ticket / Caso simple | open → in_progress → resolved → closed |
| pdca | PDCA (Deming) | plan → do → check → act |
| kanban_basic | Kanban | backlog → todo → doing → done |
| document_process | Procesar documento | receive → parse → extract → validate → store |
🛡️ Cybersecurity / SOC (5)
- CyberSOC NIST (Operativo L1/L2/L3)
- NIST CSF 2.0 (Estratégico)
- SOC Incident Response (Clásico)
- ISO 27001 Audit
- MITRE ATT&CK Response
⚔️ Offensive Security (2)
- Penetration Test
- Red Team Operation
🔬 Research (4)
- Deep Research, Threat Intelligence, Market Research, User Research (UX)
🎫 ITSM (2)
- ITIL Change Management, ITIL Incident Management
⚙️ DevOps (2)
- CI/CD Deploy, Bug Triage & Fix
📊 Data (2)
- ETL Pipeline, ML Model Lifecycle
💼 Business (2)
- Customer Onboarding, Sales Pipeline
📋 Compliance (2)
- GDPR DPIA, Contract Review
✍️ Content (1)
- Content Production
🛠️ Custom
- Definir manualmente
Total: 31 plantillas (8 genéricas + 22 industria + 1 custom).
Uso típico
1. Declarar Pipeline (PRIMER nodo del flujo)
[Webhook Trigger]
↓
[Orbital Actions]
Operación: Declarar Pipeline
Categoría: Generic / Universal ▾
Plantilla: Proceso básico ▾
→ Envía POST /public/wh/pipeline
→ Dashboard muestra 3 fases vacías:
- Recibido
- Procesando
- Completado2. Reportar progreso y steps
[Orbital Actions]
Operación: Reportar Progreso
Fase: processing ← marca como activa
Progreso: 20
[HTTP Request: procesar datos]
[Orbital Actions]
Operación: Reportar Step
Fase: processing ← dropdown autocompletado tras 1ª ejecución
Título: "Datos validados"
Tipo: process
Estado: success3. Saltar fase (opcional, early-exit)
[IF es falso positivo?]
-> SI: [Orbital Actions] Saltar Fase: processing, Motivo: "Falso positivo"4. Finalizar
[Orbital Actions]
Operación: Finalizar - Éxito
Título del Resultado: "Procesamiento completado"
Contenido: markdown del resumenOperaciones disponibles
Pipeline
| Operación | Uso | |---|---| | Declarar Pipeline | PRIMER nodo. Envía fases al backend desde una plantilla o custom. | | Saltar Fase | Marca una fase como saltada con motivo (early-exit, fases ya hechas, N/A). |
Progreso y Steps
| Operación | Uso |
|---|---|
| Reportar Progreso | Actualiza status/progress/phase del job. |
| Reportar Step | Crea un step en la fase actual — 90% de casos. |
| Construir Step (sin enviar) | Devuelve JSON del step para manipular con Code/Merge. |
| Batch › Añadir Step al Buffer | Acumula step localmente (sin HTTP). |
| Batch › Enviar Buffer | Envía todos los steps acumulados en un POST atómico. |
| Actualizar Step Abierto (async) | Solo para async/loops largos — cierra un step con status=started. |
Callbacks
| Operación | Uso |
|---|---|
| Finalizar - Éxito | Marca job como complete. Puede crear documento. |
| Finalizar - Error | Marca job como errored con categoría. |
| Crear Documento | Añade un documento al centro de documentos del usuario. |
| Notificar Usuario | Envía notificación visible al usuario. |
| Solicitar Aprobación (HITL) | Pausa el job esperando acción del usuario. |
Autenticación
2 modos:
Autenticación: [JWT directo ▾]
JWT: ={{ $("Webhook").item.json.body.auth.token }} ← default, edítalo si tu Webhook se llama diferente
Autenticación: [Credential guardado ▾]
→ usa un Header Auth configurado en n8n (reutilizable entre nodos)La URL del endpoint es constante interna del nodo — el técnico no la configura. Apunta a producción (api.orbital.fractaliacyber.com/public/wh/*). Si en el futuro se añaden entornos dev/lab se expondrán como dropdown interno.
Dropdown dinámico de fases
Tras ejecutar Declarar Pipeline al menos una vez, el campo "Fase del Pipeline" de steps y skip se autocompleta con las fases declaradas. Se guarda en workflowStaticData.orbitalPipelinePhases y persiste entre ediciones del workflow.
En la 1ª ejecución el dropdown está vacío — el técnico escribe el ref de la fase manualmente, o deja "(auto)" para que el backend lo asigne a la fase activa (currentPhaseRef).
Arquitectura del paquete (v3.0.2)
Refactor modular — cada responsabilidad en su archivo:
src/nodes/Orbital/
├── OrbitalActions.node.ts (slim — clase + execute orquestador)
├── templates/ (doble selector + catálogo + helpers)
├── descriptions/ (INodeProperties por grupo funcional)
├── loadOptions/ (dropdowns dinámicos)
├── operations/ (13 handlers, 1 por operación)
└── shared/ (step-builder, auth, errores, buffer)Añadir una plantilla nueva = 1 entrada en templates/catalog.ts + 1 ID en PIPELINE_TEMPLATE_ORDER. Añadir una operación nueva = 1 handler en operations/ + 1 línea en el map.
Migración desde v3.0.x anterior
Ningún cambio breaking funcional. Workflows guardados siguen funcionando:
- Los IDs de plantillas no cambiaron (
cybersoc_nist,nist_csf_2_0, …). - Los campos internos (
stepKind,stepTitle,phaseRef, etc.) no cambiaron. - Lo único nuevo es el campo
pipelineCategory— los workflows antiguos lo reciben con defaultgenericy la plantilla guardada sigue cargando normalmente (aunque el dropdown de plantillas mostrará las degenerichasta que el usuario ajuste la categoría — edición de 1 click).
Recomendado: al abrir un workflow v3.0.x, ajustar el dropdown de categoría a la familia correcta para que el 2º dropdown muestre las plantillas esperadas.
Build local
pnpm install
pnpm run buildPara testing local:
npm link
cd ~/.n8n/custom
npm link n8n-nodes-orbital-actions
# reiniciar n8nLicencia
MIT
