Skip to content

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 (computeWorkflowExecutionOrder cô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èreCouvert par
Connexion entre deux blocs par glisser-déposerRè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 connexionArêtes selectable / deletable + deleteKeyCode
Ordre de traitement à l’exécutionUtilitaire documenté + tests (tri topologique, rejet des cycles)
Connexions sauvegardées automatiquementComportement existant useWorkflowEditorAutosave