Control de versiones de workflows
Cada cambio en un workflow puede generar una version, creando un historial completo de modificaciones con capacidad de comparar y restaurar versiones anteriores.
Como funciona
Sección titulada «Como funciona»- Al guardar un workflow, se puede crear una version manualmente
- Antes de un rollback, el sistema crea automaticamente una version de respaldo
- Cada version almacena el workflow_json completo (nodos, conexiones, configuracion)
Operaciones
Sección titulada «Operaciones»Crear version manual
Sección titulada «Crear version manual»POST /api/versions/workflow/:workflowIdBody: { "description": "Agregado nodo de validacion de stock" }Se guarda:
- Numero de version (secuencial)
- Workflow JSON completo
- Descripcion del cambio
- Quien lo creo
- Cantidad de nodos y conexiones
Ver historial de versiones
Sección titulada «Ver historial de versiones»GET /api/versions/workflow/:workflowIdDevuelve la lista de versiones ordenadas de mas reciente a mas antigua:
[ { "id": 45, "version_number": 5, "name": "Mi Workflow", "description": "Agregado nodo de validacion", "is_auto": false, "nodes_count": 8, "edges_count": 9, "created_at": "2026-03-23T10:30:00Z" }, { "id": 42, "version_number": 4, "description": "Auto-backup antes de rollback", "is_auto": true, ... }]Restaurar version anterior (rollback)
Sección titulada «Restaurar version anterior (rollback)»POST /api/versions/workflow/:workflowId/rollback/:versionId- Restaura el workflow_json de la version seleccionada
- Crea automaticamente un backup de la version actual antes de restaurar
- Actualiza la fecha de modificacion del workflow
Comparar versiones (diff)
Sección titulada «Comparar versiones (diff)»GET /api/versions/workflow/:workflowId/diff/:version1Id/:version2IdDevuelve las diferencias entre dos versiones:
{ "added_nodes": [ { "id": "node_8", "type": "decision", "label": "Validar stock" } ], "removed_nodes": [], "modified_nodes": [ { "id": "node_3", "changes": ["position", "config"] } ], "added_edges": [ { "source": "node_7", "target": "node_8" } ], "removed_edges": [], "summary": { "total_changes": 3, "nodes_added": 1, "nodes_removed": 0, "nodes_modified": 1, "edges_added": 1, "edges_removed": 0 }}Eliminar version
Sección titulada «Eliminar version»DELETE /api/versions/:versionIdNo se puede eliminar si es la unica version existente.
Versiones automaticas vs manuales
Sección titulada «Versiones automaticas vs manuales»| Tipo | Cuando se crea | Campo is_auto |
|---|---|---|
| Manual | El usuario guarda una version explicitamente | false |
| Automatica | Antes de un rollback (backup de seguridad) | true |