Aller au contenu principal

Revue Brique Workflows (UX + Moteur + Exploitation)

Derniere mise a jour: 2026-02-28

Voir aussi : WORKFLOWS_ARCHITECTURE.md pour l’état technique détaillé (modèle de données v2, flux, écarts doc/code, propositions).

Objectif

Rendre la brique workflows:

  • plus simple a configurer,
  • plus fiable en execution,
  • plus exploitable en production,
  • moins couteuse a maintenir.

Etat actuel

Modèle de données (post-migration 0173)

  • workflows (unifié templates + utilisateur), workflow_phases, workflow_tasks, workflow_task_actions
  • workflow_triggers, workflow_trigger_executions
  • session_workflow_instances (1 par session), session_workflow_task_runs, session_workflow_action_runs

Les anciennes tables user_workflows, user_workflow_phases, user_workflow_tasks, default_workflows, default_workflow_phases, default_workflow_tasks et session_workflow_tasks ont été supprimées et ne doivent plus réapparaître dans le runtime.

Frontend

  • Editeur 2 colonnes (Flow a gauche, edition a droite).
  • Liste des taches repliable/depliable (phase + tache), fermee par defaut.
  • Sous-taches supportees sur 1 niveau.
  • Plus de reordonnancement drag & drop phases/taches.
  • Plus de bloc "Test workflow" dans la page.
  • Bouton Save deplace a cote de "Ajouter une phase".

Backend

  • Architecture workflows/triggers/tasks decoupee et active.
  • Validation d'activation conservee (activation-validation).
  • Endpoint de simulation retire (POST /workflows/:id/simulate).
  • Nettoyage des elements audit/repair/reports deja effectue.
  • Mapping Session Types par defaut aligne sur les templates workflows v2:
    • Mariage, Couple, Portrait, Grossesse, Famille, Corporate.
    • Relink automatique de user_session_types.default_workflow_id lors du bootstrap utilisateur.

Priorites a court terme

  1. Fiabilite des donnees
  • Completer les garde-fous pour phases/taches optionnelles (front + back).
  • Continuer l'alignement strict DTO ↔ schema DB ↔ types frontend.
  1. UX d'edition
  • Finaliser les boutons/actions de phase et de tache.
  • Garder la vue dense et lisible sans options secondaires inutiles.
  1. SMS
  • Stabiliser le flux complet AUTOMATIC_SMS:
    • finaliser la strategie template SMS (selection, variables, preview),
    • unifier la source du message envoye (template resolu vs fallback texte),
    • ajouter traces/metriques dediees (template_id, provider, statut d'envoi).
  1. Observabilite operationnelle
  • Ajouter une vue execution simple par workflow (sans dry-run dans l'editeur).
  • Standardiser logs/metriques sur workflowId, triggerId, taskId, sessionId.

Decisions prises

  • La simulation "dry-run" n'est plus exposee dans l'editeur workflow.
  • Le reordonnancement drag & drop n'est plus prioritaire pour cette iteration.
  • L'edition doit rester orientee production (moins de bruit, plus de robustesse).

Definition of Done (iteration en cours)

  • UI workflows simplifiee et stable en usage quotidien.
  • Plus de references actives a l'endpoint simulate dans front/back.
  • Documentation workflow alignee sur le comportement reel de l'application.
  • Session Types par defaut relies aux templates workflows v2.
  • Validation des champs obligatoires explicite dans l'UI (etoiles + erreurs inline).

Fichiers cibles (suivi)

  • Frontend:
    • frontend/src/pages/workflows/WorkflowsPage/WorkflowFormPage.tsx
    • frontend/src/pages/workflows/WorkflowsPage/components/WorkflowFlowCanvas.tsx
    • frontend/src/pages/workflows/WorkflowsPage/components/WorkflowPhaseForm.tsx
    • frontend/src/pages/workflows/WorkflowsPage/components/SortableTaskItem.tsx
  • Backend:
    • backend/src/workflows/workflows.controller.ts
    • backend/src/workflows/workflow-triggers.service.ts
    • backend/src/workflow-tasks/workflow-tasks-creation.service.ts
    • backend/src/workflow-tasks/workflow-tasks-execution.service.ts
    • backend/src/sessions/session-integration.service.ts (évaluation triggers + création task runs)