33800 Docs

← Retour

Task - SSE Streaming + Cancel pour executions d'actions

Date : 03/02/2026 Status : TERMINE

Travail effectue

Partie 1 : Backend API (connectors-api)

  1. ssh.ts :

    • Ajoute executeStream() - execution SSH avec callback onData pour chaque chunk stdout/stderr
    • Ajoute executeSSHStream() - methode bas-niveau avec streaming et registry de connexions
    • Ajoute activeExecutions Map + getActiveExecution() / cancelActiveExecution() pour annulation
  2. actions.ts :

    • Ajoute executeSSHStream() - retourne un ReadableStream SSE avec events: started, output, done, error
    • Ajoute cancelExecution() - annule une execution en cours (ferme connexion SSH + update DB)
  3. index.ts :

    • Nouveau endpoint POST /api/actions/:id/execute/stream - SSE streaming
    • Nouveau endpoint POST /api/actions/executions/:id/cancel - annulation
  4. types/action.ts :

    • Ajoute cancelled au type ActionStatus

Partie 2 : Frontend (connectors-front)

  1. api.ts :

    • Ajoute executeActionStream() - consomme le SSE stream et appelle onStep callback
    • Ajoute cancelExecution() - appelle l'endpoint cancel
  2. instance/[id]/index.tsx :

    • handleExecAction et handleExecWithInputs utilisent le streaming SSE pour les actions SSH
    • Affichage en temps reel de la sortie pendant l'execution
    • Bouton "Annuler" visible pendant l'execution avec execution_id
    • handleExecFromModal aussi en streaming
  3. actions/[id]/index.tsx :

    • executeAction utilise le streaming SSE pour les actions SSH
    • Affichage en temps reel de la sortie pendant l'execution
    • Bouton "Annuler" pendant l'execution
    • Status cancelled affiche dans l'historique

Fichiers modifies

Limitation connue

Le cancel ferme la connexion SSH locale mais le processus distant continue (ex: apt upgrade continue sur le serveur). Pour un vrai kill il faudrait une 2eme connexion SSH pour envoyer kill -9.