Appearance
BDD-95 — Configurer les connexions entre blocs
Objectif
En tant qu’administrateur, configurer les connexions entre les blocs de transformation afin de définir l’ordre de traitement des données dans le pipeline.
Périmètre livré
- Connexion par glisser-déposer entre deux blocs lorsque la chaîne est autorisée.
- Chaînes autorisées côté canvas et API :
- Source → Traitement
- Traitement → Traitement
- Traitement → Destination
- Interdiction des cycles orientés (détection à la création de liaison).
- Suppression d’une connexion : arête sélectionnable / supprimable (touches Suppr et Retour arrière sur le canvas).
- Sauvegarde automatique du canvas inchangée sur le principe existant (debounce après modification des nœuds ou arêtes).
- Contrat d’ordre d’exécution : tri topologique sur le graphe des nœuds et arêtes (
computeWorkflowExecutionOrdercôté front) ; tout moteur d’exécution devra respecter un ordre compatible avec ce graphe (sans cycle).
API impactée
PUT /workflows/current/canvas(et sauvegarde par UUID) : validation des types de liaison étendue aux enchaînements Traitement → Traitement.
Données / SQL
Aucun changement de schéma : workflow_edges supportait déjà des paires source/target arbitraires entre nœuds du canvas.
Tests associés
- Front :
workflow-connection.rules.spec.js,workflow-execution-order.spec.js,workflow-canvas.sync.spec.js - Back :
workflows.service.spec.ts(scénario avec arête Traitement → Traitement)
Critères d’acceptation couverts
| Critère | Couvert par |
|---|---|
| Connexion entre deux blocs par glisser-déposer | Règles + onConnect (pas de is-valid-connection global : Vue Flow le réapplique à toutes les arêtes et cassait les lignes déjà posées) |
| Suppression d’une connexion | Arêtes selectable / deletable + deleteKeyCode |
| Ordre de traitement à l’exécution | Utilitaire documenté + tests (tri topologique, rejet des cycles) |
| Connexions sauvegardées automatiquement | Comportement existant useWorkflowEditorAutosave |
