إنتقل إلى المحتوى الرئيسي

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-signaturev1,<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

راجع مرجع الإعدادات للاطلاع على إعدادات المُستورِد والشبكة ذات الصلة.