انتقل إلى المحتوى
Sursa Developers

نطاقات صلاحيات المفاتيح

يسمّي نطاق الصلاحيات جزءًا من واجهة API يحق للمفتاح استدعاؤه. وتعلن كل نقطة نهاية في مرجع API النطاق الواحد الذي تحتاج إليه. والطلب بمفتاح يفتقر إليه يُرفض بالحالة 403 والرمز api_keys.scope، قبل قراءة أي شيء أو تغييره.

تحدد النطاقات العمليات التي يحق للمفتاح استدعاؤها. أما الكائنات التي تراها هذه العمليات فيبقى تحديدها لدور المفتاح وملف تعريف البيانات والمجموعات: المفتاح الذي له النطاق cards:write والدور viewer لا يستطيع تغيير البطاقات، والمفتاح المقصور على مجموعة واحدة لا يرى المجموعات الأخرى.

النطاقات

النطاقما يسمح به
cards:readقراءة البطاقات والمجموعات والمجلدات.
cards:writeإنشاء البطاقات والمجموعات والمجلدات وتغييرها وحذفها.
searchالبحث في قاعدة المعرفة (POST /v1/search).
askسؤال المساعد (POST /v1/ask وPOST /v1/chat).
import:writeالكتابة في المصادر المخصصة للمؤسسة: المزامنات والدفعات وعمليات الحذف، وقراءة حالتها. ويتطلب إنشاء مصدر ومفاتيحه الدور admin.
webhooks:manageإدارة خطافات الويب وقراءة سجل الأحداث (GET /v1/webhook-events). ويتطلب كلاهما أيضًا الدور admin.
users:readقراءة المستخدمين ومجموعات المستخدمين.
users:writeتغيير المستخدمين ومجموعات المستخدمين.
analytics:readقراءة التحليلات.
audit:readقراءة سجل التدقيق.
finance:readقراءة التقارير المالية والفواتير والدفعات.
catalog:readقراءة دليل الخدمات.
files:readقراءة الملفات المولَّدة، مثل الإجابات المصدَّرة.
files:writeتغيير الملفات المولَّدة وحذفها.
permissions:manageإسناد الصلاحيات على الكائنات وسحبها.
adminإعدادات المؤسسة ومفاتيح API الخاصة بها. والمفتاح الذي له admin يملك كل النطاقات الأخرى أيضًا.

البحث والأسئلة قراءة بطبيعتها: المفتاح الذي يقتصر على القراءة يستطيع أيضًا أن يبحث ويسأل.

اختيار النطاقات

امنح التكامل النطاقات التي يستخدمها فقط، لا أكثر:

التكاملالنطاقات
روبوت أسئلة وأجوبة في أداة محادثةالنطاقان search وask
الاستيراد من نظام المستندات لديكالنطاق cards:write (واجهة البطاقات) أو import:write (مصدر مخصص)
التصدير إلى مستودع البياناتالنطاقان cards:read وusers:read، والنطاق webhooks:manage لسجل الأحداث
إنشاء حسابات المستخدمين من نظام الموارد البشرية لديكالنطاق users:write

مرّر القائمة عند إنشاء المفتاح:

curl -X POST https://api.sursa.com/v1/api-keys \
  -H "Authorization: Bearer $SURSA_ADMIN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Support bot", "role": "viewer", "scopes": ["search", "ask"]}'

النطاقات السابقة

المفاتيح التي أُنشئت قبل تقسيم النطاقات تبقى عاملة. ونطاقاتها read وwrite وadmin تعني ما يلي:

النطاق السابقالمعنى
readالنطاقات cards:read، وsearch، وask، وusers:read، وanalytics:read، وfinance:read، وcatalog:read، وfiles:read
writeكل ما في read، ومعه cards:write وfiles:write وusers:write وpermissions:manage
adminكل النطاقات

المفتاح الذي أُنشئ دون نطاقات صريحة يأخذها من دوره: الدور admin يأخذ admin، والدوران editor وverifier يأخذان write، والدور viewer يأخذ read.

معرفة نطاقات المفتاح

تعيد العملية GET /v1/me نطاقات المفتاح الذي يرسل الطلب، أيًّا كانت نطاقاته. وللمفتاح المنشأ بلا نطاقات صريحة، هذه هي النطاقات السابقة لدوره، مثل read وwrite؛ ويبيّن الجدول أعلاه ما تعنيه. وحين تفشل عملية بالرمز api_keys.scope، يذكر الحقل error.message النطاق الناقص.