मुख्य कंटेंट तक स्किप करें

Webhooks API

इवेंट्स के बारे में सूचनाएं प्राप्त करने के लिए webhooks कॉन्फ़िगर करें।

Webhook सूची

GET /v1/webhooks

प्रतिक्रिया:

{
"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"
}
]
}

Webhook बनाएं

POST /v1/webhooks

अनुरोध बॉडी:

{
"url": "https://your-server.com/webhook",
"events": ["index.complete", "security.alert"],
"secret": "आपका-webhook-सीक्रेट"
}

प्रतिक्रिया:

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

Webhook हटाएं

DELETE /v1/webhooks/:id

उपलब्ध इवेंट्स

इवेंटविवरण
index.startedइंडेक्सिंग शुरू हो गई है
index.completeइंडेक्सिंग सफलतापूर्वक पूर्ण हुई
index.failedइंडेक्सिंग विफल हुई
security.alertनई सुरक्षा भेद्यता पाई गई
analysis.completeविश्लेषण पूर्ण हुआ

Webhook पेलोड

सभी webhooks JSON पेलोड प्राप्त करते हैं:

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

हस्ताक्षर सत्यापन

Webhooks में सत्यापन के लिए एक हस्ताक्षर हेडर शामिल होता है:

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

सत्यापन (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}`)
);
}

पुनः प्रयास नीति

विफल webhook डिलीवरी पुनः प्रयास की जाती हैं:

  • प्रयास 1: तुरंत
  • प्रयास 2: 1 मिनट बाद
  • प्रयास 3: 5 मिनट बाद
  • प्रयास 4: 30 मिनट बाद
  • प्रयास 5: 2 घंटे बाद

5 विफल प्रयासों के बाद, webhook अक्षम कर दिया जाता है।