Dashboard Web temps réel pour vos séquences AutomationSequence V8

AutomatisationWeb API
← Tous les articles

Le dashboard web local

AutomationSequence V8 embarque un serveur web local (FastAPI + Uvicorn) accessible depuis n'importe quel navigateur sur le réseau. Le dashboard affiche en temps réel l'état des séquences en cours d'exécution, l'historique des passages, les métriques et les alertes — sans dépendance cloud, sans compte à créer.

C'est particulièrement utile pour les séquences longues (exports nocturnes, traitements batch) que l'on veut surveiller depuis un autre poste sans accès à la machine d'exécution.

Activation et accès

# Activer le dashboard dans la config
# Outils → Préférences → Web Dashboard → Activer
# Port: 8420  |  Bind: 0.0.0.0 (réseau) ou 127.0.0.1 (local)

# Ou en ligne de commande
automation-sequence --dashboard --port 8420

# Accès depuis un autre poste
# http://192.168.1.42:8420

# Avec authentification token
automation-sequence --dashboard --port 8420 --token MonTokenSecret
# → Header requis : Authorization: Bearer MonTokenSecret

Server-Sent Events : le temps réel

Le dashboard utilise SSE (Server-Sent Events) pour pousser les mises à jour en temps réel vers le navigateur sans polling. Le flux SSE est disponible à /api/v1/events :

# Exemple de flux SSE (brut)
event: sequence_start
data: {"sequence": "export_pmsi.asenc", "timestamp": "2026-08-01T22:00:01Z"}

event: action_progress
data: {"index": 3, "type": "oracle_query", "status": "running", "elapsed_ms": 142}

event: action_done
data: {"index": 3, "type": "oracle_query", "status": "success", "rows": 15420}

event: sequence_end
data: {"status": "success", "duration_s": 47, "actions_total": 12}

Côté client (JavaScript), un simple EventSource suffit pour recevoir ces événements et mettre à jour l'interface :

const es = new EventSource('http://localhost:8420/api/v1/events');
es.addEventListener('action_progress', e => {
  const data = JSON.parse(e.data);
  updateProgressBar(data.index, data.status);
});

API REST complète

EndpointMéthodeDescription
/api/v1/statusGETStatut global du moteur
/api/v1/sequencesGETListe des séquences disponibles
/api/v1/run/{seq}POSTLancer une séquence
/api/v1/stopPOSTArrêter la séquence en cours
/api/v1/historyGETHistorique des exécutions
/api/v1/history/{id}GETDétail d'une exécution
/api/v1/varsGETVariables courantes de la séquence
/api/v1/eventsGET (SSE)Flux temps réel
/api/v1/metricsGETMétriques Prometheus-compatible

Historique SQLite

Chaque exécution est persistée dans une base SQLite locale (history.db). Le dashboard expose cet historique avec filtres et pagination :

# Requêter l'historique via API
GET /api/v1/history?status=error&limit=20&offset=0

# Réponse
{
  "total": 3,
  "items": [
    {
      "id": 1042,
      "sequence": "export_pmsi.asenc",
      "started_at": "2026-08-01T22:00:01Z",
      "ended_at": "2026-08-01T22:00:43Z",
      "status": "error",
      "failed_action": 7,
      "error": "oracle_query: ORA-00942: table or view does not exist"
    }
  ]
}

Alertes SMTP et Toast Windows

# Configuration des alertes dans la séquence JSON
{
  "alerts": {
    "on_error": [
      {
        "type": "smtp",
        "to": "ops@entreprise.fr",
        "subject": "[ERREUR] {{sequence_name}} — action {{failed_action}}",
        "body": "Erreur : {{error_message}}
Durée : {{elapsed_s}}s"
      },
      {
        "type": "toast",
        "title": "Séquence en erreur",
        "message": "{{sequence_name}} : {{error_message}}"
      }
    ],
    "on_success": [
      {"type": "toast", "message": "{{sequence_name}} terminée en {{elapsed_s}}s"}
    ]
  }
}

Sécurité du dashboard

Conclusion

Le dashboard web local d'AutomationSequence V8 transforme le monitoring des séquences longues sans aucune dépendance externe. SSE pour le temps réel, API REST pour l'intégration CI/CD, SQLite pour l'historique, alertes SMTP pour les équipes ops — le tout accessible depuis n'importe quel navigateur sur le réseau interne.

⚙️
PRODUIT LIÉ
AutomationSequence V8.0
Découvrir V8 → Manuel complet
← Article précédent Article suivant →