Gurren API

Pipelines

Lister, déclencher et arrêter des pipelines via l'API.

Pipelines

Un pipeline exécute plusieurs automations en séquence.

Lister les pipelines

GET /api/v1/pipelines

Scope requis : pipeline:read

curl https://api.gurren.leandre.io/api/v1/pipelines \
  -H "x-api-key: gfac_votre_cle"

Réponse :

[
  {
    "_id": "888a...",
    "name": "Pipeline inscription",
    "description": "Inscrit et vérifie un utilisateur",
    "automations": [
      { "_id": "665a...", "name": "Inscription", "url": "..." },
      { "_id": "665b...", "name": "Vérification email", "url": "..." }
    ],
    "status": "idle",
    "schedule": "0 9 * * 1-5",
    "createdAt": "2024-06-01T10:00:00.000Z"
  }
]

Déclencher un pipeline

POST /api/v1/pipelines/:id/trigger

Scope requis : pipeline:execute

curl -X POST https://api.gurren.leandre.io/api/v1/pipelines/888a.../trigger \
  -H "x-api-key: gfac_votre_cle" \
  -H "Content-Type: application/json" \
  -d '{ "sessionId": "session_id_optionnel" }'

Réponse :

{
  "success": true,
  "status": "completed",
  "logs": [
    "Exécution manuelle démarrée",
    "Starting automation 665a...",
    "Completed automation 665a...",
    "Starting automation 665b...",
    "Completed automation 665b...",
    "Exécution manuelle terminée avec le statut: completed"
  ]
}

Contrairement aux automations, le trigger de pipeline est synchrone : la réponse contient le résultat final.

Statuts possibles

StatutDescription
completedToutes les automations réussies
failedToutes les automations échouées
partial_failedCertaines automations réussies, d'autres échouées

Mettre en file d'attente

POST /api/v1/pipelines/:id/enqueue

Scope requis : pipeline:execute

Place le pipeline dans une file d'attente pour une exécution asynchrone avec callback webhook optionnel.

curl -X POST https://api.gurren.leandre.io/api/v1/pipelines/888a.../enqueue \
  -H "x-api-key: gfac_votre_cle" \
  -H "Content-Type: application/json" \
  -d '{
    "sessionId": "session_id_optionnel",
    "webhookUrl": "https://example.com/callback"
  }'

Réponse :

{
  "success": true,
  "jobId": "bbb1b2c3d4e5f6a7b8c9d0e2",
  "statusUrl": "/api/v1/jobs/bbb1b2c3d4e5f6a7b8c9d0e2"
}

Voir File d'attente pour le suivi des jobs.


Arrêter un pipeline

POST /api/v1/pipelines/:id/stop

Scope requis : pipeline:execute

curl -X POST https://api.gurren.leandre.io/api/v1/pipelines/888a.../stop \
  -H "x-api-key: gfac_votre_cle"

Réponse :

{
  "success": true,
  "message": "Stop requested"
}

On this page