Webhooks
تتيح الـ webhooks لأنظمتك التفاعل مع تغييرات المخططات في الوقت الفعلي. اشترك في أحداث دورة الحياة وسيقوم EntityFlow بإرسال طلب POST يحمل حمولة موقَّعة إلى نقطة النهاية الخاصة بك في كل مرة تُطلَق فيها هذه الأحداث.
الأحداث
| الحدث | يُطلَق عند |
|---|---|
diagram.created | إنشاء مخطط. |
diagram.updated | حفظ/تحديث مخطط. |
diagram.deleted | حذف مخطط. |
إنشاء اشتراك
POST /api/v1/webhooks مع url مستهدَف وقائمة الـ events:
curl -X POST https://<your-host>/api/v1/webhooks \
-H "Authorization: Bearer ef_live_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/hooks/entityflow",
"events": ["diagram.created", "diagram.updated", "diagram.deleted"]
}'
تتضمن الاستجابة سرّ توقيع — يُعرَض مرة واحدة فقط. خزّنه بأمان؛ فأنت بحاجة إليه للتحقق من عمليات التسليم.
التحقق من عمليات التسليم
تحمل كل عملية تسليم ترويسات Standard-Webhooks:
| الترويسة | الغرض |
|---|---|
webhook-id | معرّف تسليم فريد (استخدمه لضمان عدم التكرار). |
webhook-timestamp | وقت الإرسال (ارفض عمليات التسليم القديمة). |
webhook-signature | v1,<HMAC-SHA256 of the payload using your secret>. |
تحقق دائمًا من التوقيع قبل الوثوق بأي عملية تسليم. أعد حساب HMAC-SHA256 لجسم الطلب الخام باستخدام سرّ التوقيع الخاص بك وقارنه (في وقت ثابت) بالقيمة v1,... الموجودة في webhook-signature.
استخدم مكتبات Standard Webhooks للتحقق من التواقيع بشكل صحيح عبر مختلف اللغات، بدلًا من تطوير حلٍّ خاص بك.
أهداف HTTP
أهداف https مسموح بها دائمًا. أما أهداف http بنص صريح فهي محظورة افتراضيًا كإجراء حماية ضد SSRF. يمكن لمن يستضيفون النظام ذاتيًا السماح بها عبر:
export EF_WEBHOOK_ALLOW_HTTP=true
راجع مرجع الإعدادات للاطلاع على إعدادات المُستورِد والشبكة ذات الصلة.