تكاملات الإنذار
المنصة الأساسيةalarm_integrations_connections_writeالتكاملات الخارجيةيربط منشأة بقالب شريك مراقبة ويدير ذلك الاتصال: الحفظ (القالب، ورقم الحساب، وخريطة المناطق، والأحداث، وحقول المنشأة)، والإزالة، وطلب الموافقة، وإرسال إشارة اختبار، والتفعيل بعد اختبار ناجح، وتجاهل تغيير مرحلي.
لا يتغير الاتصال الحي (active أو failing) إلا باستخدام applyMode: الخيار staged يُبقي الإنذارات على الإعدادات الحية حتى ينجح اختبار مرحلي وتفعّله؛ والخيار immediate يطبّق التغيير فورًا. تُقبل الحقول السرية ولكنها لا تُعاد أبدًا. يتطلب External Integrations في المنشأة. اقرأ أولًا باستخدام alarm_integrations_read connections.
الإجراءات:
- save: حفظ اتصال. templateId مطلوب للاتصال الجديد. يضبط fields حقول المنشأة حسب المفتاح (القيمة null تمسح الحقل؛ وتُختم الأسرار). في الاتصال الحي مرّر applyMode، وإلا يفشل الاستدعاء بالخطأ apply-mode-required. يتطلب partnerId. يطلب التأكيد.
- remove: إزالة اتصال. يزيل اتصال المنشأة بالشريك، مع أي تغيير مرحلي؛ وتتوقف الإنذارات من هنا عن الوصول إلى مركز المراقبة ذاك. يتطلب partnerId. يطلب التأكيد.
- request_approval: طلب الموافقة. يطلب من مركز المراقبة الموافقة على الاتصال أو تعيين رقم حساب (قوالب موافقة الشريك). يتطلب partnerId.
- send_test_signal: إرسال إشارة اختبار. يضع إشارة اختبار حقيقية في قائمة الانتظار لإرسالها إلى مركز المراقبة؛ استعلم عن test_signal_status. القيمة staged: true تختبر التغيير المرحلي بدلًا من الإعدادات الحية. يتطلب partnerId. يطلب التأكيد.
- activate: تفعيل اتصال أو تغيير. يجعل الاتصال المعلّق حيًا، أو يرقّي تغييرًا مرحليًا، أو يؤكد تغييرًا لم يُختبر. يتطلب التفعيل requestId لاختبار نجح بعد آخر تغيير: الاختبار المرحلي (staged: true) يرقّي تغييرًا مرحليًا، والاختبار الحي يؤكد تغييرًا لم يُختبر. يتطلب partnerId وrequestId. يطلب التأكيد.
- discard_pending_change: تجاهل تغيير مرحلي. يحذف التغيير المرحلي؛ ولا تُمس الإعدادات الحية. تكون discarded بالقيمة false إذا لم يكن هناك تغيير مرحلي. يتطلب partnerId. يطلب التأكيد.
المعلمات
| الاسم | النوع | الوصف |
|---|---|---|
action* | "save" | "remove" | "request_approval" | "send_test_signal" | "activate" | "discard_pending_change" | الإجراء المطلوب؛ كل إجراء موصوف في وصف الأداة. |
facilityId | string | معرّف المنشأة. اختياري إذا كانت المنشأة المتصلة هي المقصودة. |
partnerId | string | شريك المراقبة، من alarm_integrations_read connections (org#<id> لقوالب المنظمة الخاصة) |
templateId | string | قالب منشور متاح لهذه المنشأة (save) |
linkingIdentifier | stringnull | رقم الحساب الذي يعرف به مركز المراقبة المنشأة (save) |
zoneMap | objectnull | ربط الرقم التسلسلي للزر بالمنطقة، مثل { "DS-0001": "001" } (save) |
events | arraynull | أنواع الأحداث المرسلة إلى الشريك (null: أنواع القالب) (save) |
fields | object | قيم حقول المنشأة حسب المفتاح؛ القيمة null تمسح الحقل. لا تُعاد أبدًا. (save) |
applyMode | "staged" | "immediate" | الاتصالات الحية: staged (اختبار ثم تفعيل) أو immediate (save) |
staged | boolean | اختبار التغيير المرحلي (مطلوب قبل تفعيله) (send_test_signal) |
requestId | string | معرّف طلب إشارة الاختبار (tsr_...)، من send_test_signal (activate) |
confirm | boolean | اضبطه فقط بعد أن يؤكد المستخدم المعاينة التي أعادها الاستدعاء الأول |
alarm_integrations_destinations_writeالتكاملات الخارجيةDuress Configurationيضيف وجهات إنذار مخصصة ويغيّرها ويحذفها ويختبرها: جهاز استقبال المراقبة الخاص بك، أو لوحة مرحّلات، أو SMS، أو مكالمة صوتية، أو بريد إلكتروني، أو webhooks، أو دردشة الفريق، أو خدمة نداء المناوبة (قائمة channel)، على مستوى منشأة (الافتراضي) أو علامة تجارية أو منظمة.
توضع الإعدادات غير السرية في config؛ أما الأسرار (كلمات المرور، وعناوين URL للـ webhooks، والمفاتيح) فتوضع في fields حسب مسار الإعداد وتُختم ولا تُعاد أبدًا. تحتاج الوجهات المفعّلة إلى config مكتمل. تتطلب وجهات المنشأة External Integrations أو Duress Configuration فيها؛ وتتطلب وجهات العلامة التجارية والمنظمة وصولًا على مستوى المنظمة. اقرأ أولًا باستخدام alarm_integrations_read destinations.
الإجراءات:
- save: حفظ وجهة. دون connectionId يضيف وجهة (channel وname مطلوبان)؛ ومعه يغيّر وجهة (ويبقى channel كما هو). عند إرسال config فإنه يستبدل الإعدادات غير السرية؛ وتُحفظ الأسرار غير المرسلة في fields. يطلب التأكيد.
- remove: حذف وجهة. يحذف الوجهة؛ ويتوقف مرحّل المنشأة أيضًا عن تشغيل مرحّل الإنذار. يتطلب connectionId. يطلب التأكيد.
- send_test_signal: إرسال اختبار إلى وجهة. يضع رسالة اختبار حقيقية في قائمة الانتظار لإرسالها إلى الوجهة؛ استعلم عن alarm_integrations_read test_signal_status مع المنشأة. تُختبر وجهات العلامة التجارية والمنظمة من facilityId. يتطلب connectionId. يطلب التأكيد.
المعلمات
| الاسم | النوع | الوصف |
|---|---|---|
action* | "save" | "remove" | "send_test_signal" | الإجراء المطلوب؛ كل إجراء موصوف في وصف الأداة. |
facilityId | string | معرّف المنشأة. اختياري إذا كانت المنشأة المتصلة هي المقصودة. |
ownerScope | string | facility#<id> أو brand#<id> أو org#<id> (الافتراضي: المنشأة) |
connectionId | string | الوجهة المراد تغييرها؛ اتركه لإضافة وجهة جديدة |
channel | "cid-csvip" | "sentinel-http" | "relay" | "sms" | "voice" | "email" | "webhook" | "slack" | "teams" | "google-chat" | "pagerduty" | "opsgenie" | نوع الوجهة؛ لا يمكن تغييره بعد الإنشاء (save) |
name | string | يظهر في الإعدادات وسجل التسليم (save) |
enabled | boolean | القيمة الافتراضية true للوجهات الجديدة (save) |
events | arraynull | أنواع الأحداث التي تتلقاها (null: الإعدادات الافتراضية للقناة) (save) |
guestLink | "shared" | "none" | "null" | لقنوات SMS والبريد الإلكتروني ودردشة الفريق فقط: shared (صفحة إنذار واحدة للعرض فقط، وهو الافتراضي) أو none (save) |
config | object | الإعدادات غير السرية للقناة (save) |
fields | object | الإعدادات السرية حسب المسار، مثل { "webhookUrl": "https://..." }؛ القيمة null تمسح الإعداد (save) |
confirm | boolean | اضبطه فقط بعد أن يؤكد المستخدم المعاينة التي أعادها الاستدعاء الأول |
alarm_integrations_readالتكاملات الخارجيةDuress Configurationيقرأ الجهات التي تصل إليها إنذارات الاستغاثة في منشأة خارج Performance Hub: اتصالاتها بمراكز المراقبة (الشريك، والقالب، ورقم الحساب، وخريطة المناطق، والحالة، ونواقص الجاهزية، والتغييرات المرحلية)، والوجهات المخصصة (أجهزة استقبال المراقبة، والمرحّلات، وSMS، والمكالمات الصوتية، والبريد الإلكتروني، وwebhooks، والدردشة، والنداء) على مستوى المنشأة وعلامتها التجارية ومنظمتها، ومعاينة التوجيه، وسجل التسليم، ونتائج إشارات الاختبار.
يتطلب External Integrations أو Duress Configuration في المنشأة. لا تُعرض الأسرار والقيم المختومة أبدًا، بل { key, secret, hasValue } فقط؛ وتُحجب أرقام الأشخاص وعناوينهم من التوجيه وعمليات التسليم. الأوقات بصيغة ISO. غيّرها باستخدام alarm_integrations_connections_write وalarm_integrations_destinations_write.
الإجراءات:
- connections: اتصالات مراكز المراقبة. اتصالات الشركاء في المنشأة: القالب، ورقم الحساب (linkingIdentifier)، وخريطة المناطق، والأحداث، وconnectionStatus، وmissing (ما يمنع التشغيل الحي)، وpendingChange (مرحلي، لم يصبح حيًا بعد)، وuntestedChange. canEdit: يتطلب External Integrations هنا.
- destinations: الوجهات المخصصة. الوجهات التي يمكن أن تُطلق للمنشأة (وجهاتها الخاصة، ووجهات علامتها التجارية ومنظمتها، ولكل منها canEdit)، أو مع ownerScope وجهات نطاق واحد. الإعدادات في config؛ والأسرار بصيغة fields { key, secret, hasValue }.
- routing: معاينة التوجيه. الجهات التي سيصل إليها الإنذار الآن (الإعدادات الحية فقط)، كما يحلّها universal-api: الوجهات مع lane والأحداث وconfig دون الأسرار، وproblems تشرح أي شيء مستبعد، وpendingChanges التي لم تُوجَّه بعد. يُبقي eventType فقط ما يتلقى ذلك الحدث.
- deliveries: سجل التسليم. عمليات تسليم الإنذارات من الأحدث إلى الأقدم (الحالة، والقناة، والمستقبِل، وزمن الاستجابة، ونص الخطأ العام). قد تكون الصفحة المصفّاة قصيرة ومع ذلك تحتوي على nextCursor. تظهر تنبيهات الأجهزة بالنوع alert.
- test_signal_status: نتيجة إشارة الاختبار. تبقى queued حتى يسجّل universal-api محاولة، ثم succeeded (أقرّ مستقبِل بالاستلام أو أُرسلت) أو failed، مع صفوف التسليم. استخدم المنشأة التي أُرسل منها الاختبار. يتطلب requestId.
المعلمات
| الاسم | النوع | الوصف |
|---|---|---|
action* | "connections" | "destinations" | "routing" | "deliveries" | "test_signal_status" | الإجراء المطلوب؛ كل إجراء موصوف في وصف الأداة. |
facilityId | string | معرّف المنشأة. اختياري إذا كانت المنشأة المتصلة هي المقصودة. |
limit | integer | عدد العناصر في الصفحة (الافتراضي 25، والحد الأقصى 100) (connections, destinations, deliveries) |
cursor | string | nextCursor من الصفحة السابقة (connections, destinations, deliveries) |
ownerScope | string | هذا النطاق فقط: brand#<id> أو org#<id> (destinations) |
eventType | string | مثل ph.duress.incident.created (routing, deliveries) |
from | string | تاريخ ووقت بصيغة ISO، شامل (deliveries) |
to | string | تاريخ ووقت بصيغة ISO، غير شامل (deliveries) |
status | array | أيٌّ من sent أو acknowledged أو failed أو shadow (deliveries) |
channel | string | القناة بالضبط، مثل cid-csvip أو sms (deliveries) |
destinationId | string | معرّف الوجهة بالضبط (deliveries) |
incidentId | string | عمليات التسليم لإنذار واحد (deliveries) |
requestId | string | عمليات التسليم لإشارة اختبار واحدة (deliveries, test_signal_status) |
search | string | نص في أي معرّف أو قناة أو خطأ (deliveries) |