إضافة نطاقات مفاتيح API دقيقة لنقاط نهاية REST الخاصة بأحداث Discourse

يعرض Discourse Events مجموعة من نقاط النهاية (endpoints) لواجهة REST تحت المسار /discourse-post-event/...، ولكن عند إنشاء مفتاح API للإدارة (admin API key) بنطاق دقيق (Granular)، لا يبدو أن هناك نطاقًا مخصصًا لـ Events.

يوجد بالفعل نطاق مفتاح API للمستخدم (user API key) باسم discourse-calendar:events_calendar لاشتراكات التقويم مثل نقطة النهاية ICS، لذا فإن هذا الطلب يتعلق تحديدًا بـ مفاتيح REST API الدقيقة للإدارة/الخادم إلى الخادم، وليس بمفاتيح اشتراك التقويم.

حالة الاستخدام

قد تحتاج تكامل خارجي فقط إلى الاستعلام عن أحداث Discourse - على سبيل المثال، للتحقق من وجود حدث أو استرداد معلومات الحدث.

حاليًا، لا يبدو أن هناك طريقة لإصدار مفتاح API للإدارة مقيد تحديدًا بنقاط نهاية REST الخاصة بـ Discourse Events. وهذا يعني أن التكامل قد يحتاج إلى منح صلاحيات لنطاق API أوسع مما يتطلبه فعليًا.

سيكون من المفيد أن تسجّل discourse-events نطاقات مفاتيح API دقيقة لمسارات REST الخاصة بها، حتى يتمكن التكاملات من اتباع مبدأ الامتياز الأدنى (principle of least privilege).

في المثالي، يمكن أن تميّز هذه النطاقات بين العمليات، على سبيل المثال:

  • قراءة/استعلام الأحداث
  • إدارة الأحداث
  • إدارة مدعوّي الحدث

حتى نطاق أحداث للقراءة فقط (read-only) في البداية سيكون مفيدًا.

أشار أيضًا تقرير مرتبط حديث إلى أنه عند تجربة نطاق مفتاح API الدقيق (Granular)، لم يكن هناك قيد واضح متاح لنقاط نهاية Events.

تحتفظ مسارات Events الحالية بمساحة الأسماء (URL namespace) /discourse-post-event/... من أجل التوافق، على الرغم من أن اسم الإضافة أصبح الآن discourse-events، لذا لا أعتقد أن النطاق يحتاج بالضرورة إلى استخدام اسم الإضافة القديم.

ليس لدي حاليًا وقت كافٍ لإعداد طلب سحبي (PR) لهذا الغرض، لكنني أردت رفعه كطلب ميزة في حال كان مفيدًا أيضًا لتكاملات أخرى أو مناسبًا كتغيير pr-welcome.

إعجابَين (2)