Aller au contenu principal

API Webhooks

Configurez les webhooks pour recevoir des notifications sur les événements.

Lister les Webhooks

GET /v1/webhooks

Réponse:

{
"success": true,
"webhooks": [
{
"id": "wh_abc123",
"url": "https://your-server.com/webhook",
"events": ["index.complete", "security.alert"],
"active": true,
"createdAt": "2024-01-10T08:00:00Z"
}
]
}

Créer un Webhook

POST /v1/webhooks

Corps de la Requête:

{
"url": "https://your-server.com/webhook",
"events": ["index.complete", "security.alert"],
"secret": "votre-secret-webhook"
}

Réponse:

{
"success": true,
"webhook": {
"id": "wh_xyz789",
"url": "https://your-server.com/webhook",
"events": ["index.complete", "security.alert"],
"active": true
}
}

Supprimer un Webhook

DELETE /v1/webhooks/:id

Événements Disponibles

ÉvénementDescription
index.startedL'indexation a démarré
index.completeL'indexation s'est terminée avec succès
index.failedL'indexation a échoué
security.alertNouvelle vulnérabilité de sécurité trouvée
analysis.completeAnalyse terminée

Payload du Webhook

Tous les webhooks reçoivent un payload JSON:

{
"event": "index.complete",
"timestamp": "2024-01-15T10:30:00Z",
"project": {
"id": "proj_abc123",
"name": "my-app"
},
"data": {
"filesCount": 234,
"symbolsCount": 1847,
"duration": 45
}
}

Vérification des Signatures

Les webhooks incluent un en-tête de signature pour la vérification:

X-ArchiCore-Signature: sha256=abc123...

Vérification (Node.js):

const crypto = require('crypto');

function verifyWebhook(payload, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');

return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(`sha256=${expected}`)
);
}

Politique de Réessai

Les livraisons de webhook échouées sont réessayées:

  • Tentative 1: Immédiate
  • Tentative 2: Après 1 minute
  • Tentative 3: Après 5 minutes
  • Tentative 4: Après 30 minutes
  • Tentative 5: Après 2 heures

Après 5 tentatives échouées, le webhook est désactivé.