المنصة
واجهة API وwebhooks
كل ما تفعله لوحة التحكم يمر عبر واجهة REST API نفسها التي يمكنك استدعاؤها. وتغادر الأحداث كـ webhooks موقّعة يُعاد إرسالها حتى تصل.
المصادقة
- ملف تعريف ارتباط الجلسة الصادر عن مسار الرمز لمرة واحدة، أو الرمز الموقّع نفسه كترويسة bearer.
- رمز API شخصي كترويسة bearer. يتصرف بصفة مالكه، فينطبق كل فحص للدور والنطاق دون تغيير؛ وتُرفض التعديلات لرموز نطاق القراءة.
- يعلن كل مسار دوره الأدنى: أي مستخدم مصادَق، أو مدير فما فوق، أو مسؤول، أو مسؤول أعلى. ثم تحدّ مسارات البيانات النطاق بشجرة المستدعي.
curl -H "Authorization: Bearer <token>" https://inroots.example.com/api/export/hours.csv?from=2026-08-01&to=2026-08-31
اكتشافها
يُولَّد مخطط OpenAPI من المسارات ويُقدَّم، مقيَّدًا بالمسؤول، مع مستكشف تفاعلي داخل المنتج. وتأتي الملخصات والأوصاف من تعريفات المسارات، فلا يمكنها الانحراف عن الشيفرة.
GET /api/openapi.json GET /api/docs
| الكفاءة، والأهداف، وصحة العمل، والجدول الزمني | الدرجات، والأهداف، والمعايير، والغايات، وإشارات الأشخاص، وخطر العمل المفرط، وأدلة يوم واحد |
|---|---|
| الإجازات، والمناوبة، والفرق، والعطل | قواعد الإجازات وطلباتها، والتناوبات والتغطية، وإعدادات الفرق، والتقويمات |
| الرسائل المباشرة، وجهات الاتصال، والموافقة | الإرسالات والجداول، وبيانات التواصل، والاتفاقيات والتوقيعات |
| مزوّدو الذكاء الاصطناعي، والتقارير، والتنبيهات | تبديل المزوّد وترتيب التجاوز عند الفشل، وتصديرات PDF، ووسيلة نقل البريد |
| التكاملات، والتصدير | الرموز، وwebhooks، وCSV |
| ML | predict وfeedback وdecisions وmetrics وmodels وpromote وtrain |
webhooks الصادرة
- تُنشأ بعنوان URL هدف وسر لا يُعاد أبدًا؛ ولا تعرض القائمة إلا ما إذا كان السر موجودًا.
- يحمل كل تسليم ترويسة توقيع بـ HMAC من SHA-256 على الجسم بالضبط، وترويسة حدث، ومعرّف تسليم لإزالة التكرار.
- يركب الإصدار معاملة المستدعي، فلا يُسلَّم حدث أبدًا لقرار تراجع، ونقطة النهاية المستقبلة المتعطلة لا تحجب اعتمادًا أبدًا.
- تنشر مهمة تفريغ كل دقيقة وتعيد المحاولة بعد 1 و5 و15 و60 و360 دقيقة قبل التخلي مع تسجيل السبب. وعشرون فشلًا متتاليًا تفتح دائرة نقطة النهاية حتى يعيد مسؤول تفعيلها.
- يضع زر الاختبار نبضة موقّعة في قائمة الانتظار عبر المسار الحقيقي. والأحداث المصدَرة حاليًا: pto.approved وpto.declined.
expected = hmac.new(secret, body, sha256).hexdigest() compare(header, "sha256=" + expected)
الوارد
- أحداث Slack والإجراءات التفاعلية؛ وأنشطة Teams؛ وwebhook الخاص بـ WhatsApp.
- تذاكر الدعم من الأنظمة الخارجية، مع إزالة التكرار على مرجع خارجي حتى تحدّث المتابعات تذكرة واحدة.
- يستطيع أي webhook تشغيل مسار n8n يستدعي واجهة API مجددًا برمز.
التدفق الحي
يحمل تدفق أحداث مرسلة من الخادم أحداث الحضور والإشعارات الشخصية إلى لوحة التحكم وإلى أي عميل تكتبه. ولا تصل الأحداث الشخصية إلا إلى الشخص الذي تخصه.
GET /api/events