جوزة الطيب هو الإصدار الأحدث من Open edX المسمى. تم إصداره في 9 يونيو 2022. في هذا المنشور ، سنلقي نظرة على التغييرات الأخيرة التي تم إجراؤها على تجربة المشغل والمطور (أي الأشخاص الذين يكتبون رمزًا لـ Open edX أو ينشرون مثيل Open edX). يتضمن ذلك بعضًا من أحدث وأكبر تغييرات المعلم ، وتسليط الضوء على أحداث ومرشحات Open edX ، وبعض الملاحظات الهامة المتعلقة بالإهمالات وعمليات الإزالة والتحديثات الأمنية.

يسلط الضوء على المعلم

التغييرات التي تم إجراؤها على المعلم منذ إصدار Maple مفصلة في سجل تغيير المعلم - الإصدارات من 13.0.1 إلى 14.0.0. بعض النقاط البارزة هي:

ميزات وتحسينات المعلم

  • جديد وموسع واجهة برمجة تطبيقات البرنامج المساعد "الإصدار 1" على أساس فكرة "خطافات"، وهي نقاط امتداد تسمح للملحقات بالتفاعل مع إجراءات المعلم وتعديل سلوك المعلم باستخدام عوامل تصفية البيانات. القديم واجهة برمجة تطبيقات البرنامج المساعد "الإصدار 0" لا يزال مدعومًا ، على الرغم من تشجيع مطوري المكونات الإضافية على الانتقال إلى واجهة برمجة التطبيقات الجديدة.
  • تعليمات أكثر شمولاً أثناء الترقية
  • أوامر جديدة متعددة:
    • "تطبيق المعلم k8s": واجهة مباشرة مع "تطبيق kubectl"
    • "حالة المعلم [dev | local | k8s]": توفر حالة معلومات النظام
    • `teacher dev quickstart`: متغير من" دروس البدء السريع المحلي "الذي يقلل الاحتكاك في عملية إعداد التطوير
    • "tutor [local / dev] copyfrom`: ينسخ المحتويات من الحاوية
    • -m / –mount`: خيار تمت إضافته إلى العديد من الأوامر المحلية وأوامر dev لربط مجلدات التحميل تلقائيًا بطريقة سحرية من المضيف ، ليحل محل الأمر `bindmount` القديم وخيارات` –volume`.
  • يسمح الآن "tutor dev start SERVICE" بالإرفاق بالخدمة لتصحيح أخطاء نقطة التوقف.
  • يؤدي بدء حاويات "dev" الآن إلى إيقاف الحاويات "المحلية" والعكس صحيح.
  • القدرة على تثبيت حزم مخصصة وتشغيل الأوامر كجذر في صورة Docker
  • القدرة على تجاوز `EDX_PLATFORM_REPOSITORY` و` NPM_REGISTRY` عبر `config.yml` بدلاً من وسيطات Docker build.
  • القدرة على إخفاء الدورات التدريبية من صفحة البحث في LMS / الدورة التدريبية عن طريق تعيين رؤية الدورة التدريبية على "لا شيء" في الاستوديو.
  • يتم الآن تمكين التقديرات الثابتة افتراضيًا.

استنكارات المعلم وكسر التغييرات

  • تم إهمال "tutor dev runserver" لصالح "teacher dev start".
  • "المعلم k8s exec" "(مع اقتباسات) مهمل ؛ بدلاً من ذلك ، استخدم `` tutor k8s exec ". هذا يتوافق مع بناء جملة `tutor local exec ".
  • تم إسقاط دعم متغير البيئة "TUTOR_EDX_PLATFORM_SETTINGS". يوصى الآن بإنشاء مكون إضافي بدلاً من ذلك.
  • lms.env.json & cms.env.json هما الآن `lms.env.yml` & cms.env.yml؛ يجب على مطوري المكونات الإضافية إعادة تنسيق تصحيحات متعددة لاستخدام تنسيق YAML.

وإصلاحات متعددة للأمن والأخطاء في المدرس ؛ انظر ال سجل تغيير المعلم - الإصدارات من 13.0.1 إلى 14.0.0 للمزيد.

افتح أحداث ومرشحات edX

افتح أحداث ومرشحات edX إضافة طريقة جديدة لتوسيع النواة دون الحاجة إلى العبث بالأجزاء الداخلية لمنصة edx (هذا العمل جزء من OEP-50: إطار تمديد الخطافات).

  • أحداث edX المفتوحة: تسمح هذه النسخة الموحدة من إشارات Django للمطورين بتوسيع وظائف النظام الأساسي فقط من خلال الاستماع إلى الحدث الذي يتم إرساله بعد انتهاء العملية الرئيسية ، على سبيل المثال بعد التسجيل وتسجيل الدخول والتسجيل وما إلى ذلك.
  • افتح مرشحات edX: من خلال التكوين فقط ، يمكن لمطوري الإضافات تعيين قائمة بالوظائف التي يتعين تنفيذها قبل بدء العملية الرئيسية ، على سبيل المثال ، قبل التسجيل وتسجيل الدخول والتسجيل وما إلى ذلك.

لمزيد من المعلومات ، اقرأ OEPأطلقت حملة توثيق، أو مشاهدة فيليبي مونتويا افتح عرض مؤتمر edX 2022 في الخلفية ، والهندسة المعمارية ، واستخدام هذا المنتج.

أمر إداري هام لتشغيل & تكوين Var لتعيينه

تم تفعيل تحسين الأداء الداخلي المسمى "تسلسلات التعلم" لعدد قليل من الإصدارات ، ولكنه الآن قيد التشغيل دائمًا في Nutmeg. إذا كان لديك أي دورات لم يتم إعادة نشرها على نظام Koa أو ما بعده، قم بتشغيل الأمر simulate_publish cms django في الدورات التدريبية الخاصة بك قبل الترقية ، لتعبئة بيانات تسلسل التعلم.

يمكن أن يؤدي الفشل في تعيين قيمة التكوين CLOSEST_CLIENT_IP_FROM_HEADERS إلى تقييد حركة المرور المشروعة أو الفشل في منع هجمات القوة الغاشمة ، اعتمادًا على إعداد الوكيل الخاص بك.

الاستنكار والإزالة

تم إجراء عمليات الإهمال والإزالة التالية منذ إصدار Maple:

  • تم أرشفة مستودع شهادات edx
  • تم أرشفة Bok-choy (منصة اختبار)
  • تمت إزالة مكتبة django-ratelimit-backend من منصة edx ؛ الواجهة الخلفية القياسية django-ratlimit قيد الاستخدام الآن. هذا له تأثير جانبي لإزالة نافذة تسجيل دخول مسؤول Django الافتراضية ؛ يجب على المستخدمين الآن تسجيل الدخول أولاً من خلال LMS.
  • تمت إزالة الوصول إلى دورات "مونغو القديمة" بالكامل أخيرًا. هذا يعني أن الدورات التدريبية التي تحتوي على مفاتيح مثل Org / Course / Run بدلاً من الدورة التدريبية v1: Org + Course + run (مرئي في عنوان URL لأي صفحة من صفحات الدورة التدريبية) لا يمكن الوصول إليها من قبل المتعلمين.

لمزيد من المعلومات حول هذه ، يرجى الاطلاع على الإهلاك والإزالة قسم من صفحة ويكي جوزة الطيب.

تحسينات الأمان

هناك نوعان من التحسينات الأمنية الرئيسية التي يجب فهمها: قيمة التكوين الجديدة (CLOSEST_CLIENT_IP_FROM_HEADERS) التي يجب تعيينها ، والتغييرات على SafeSessionMiddleware التي تتطلب الانتباه قبل الترقية إلى Nutmeg.

  • CLOSEST_CLIENT_IP_FROM_HEADERS هي قيمة تكوين جديدة يجب على جميع عمليات النشر تعيينها.
    • يمكن أن يؤدي الفشل في تعيين هذا إلى تقييد حركة المرور المشروعة أو الفشل في منع هجمات القوة الغاشمة ، اعتمادًا على إعداد الوكيل الخاص بك.
    • هذا إعداد مؤثر على الأمان يخبر عملية النشر الخاصة بك بكيفية تحديد عنوان IP للعميل. راجع openx.core.djangoapps.util.ip للحصول على وثائق حول كيفية (ولماذا) تهيئة هذا (بالإضافة إلى إعداد NUM_PROXIES ذي الصلة لـ django-rest-framework).
  • SafeSessionMiddleware هو برنامج وسيط موجود يوفر العديد من الحماية ضد الثغرات الأمنية التي قد تنجم عن أخطاء في تكوين ذاكرة التخزين المؤقت أو أخطاء أخرى تؤدي إلى حصول مستخدم واحد على جلسة مستخدم مختلفة.
    • في السابق ، إذا تم اكتشاف عدم تطابق بين المستخدم والطلب أو الجلسة والاستجابة ، فإن البرنامج الوسيط يقوم بتسجيل التحذيرات ؛ الآن ، سوف يبطل الجلسة ويرسل استجابة خطأ. يتم تمكين مفتاح التبديل ENFORCE_SAFE_SESSIONS افتراضيًا ، ولكن يمكن تعطيله للعودة إلى تحذيرات السجل فقط.
    • قبل الترقية إلى Nutmeg: تحقق من أن سجلاتك لا تحتوي على تحذيرات تبدأ بعبارة "مستخدم SafeCookieData عند الطلب" ، أو أن هذه التحذيرات نادرة جدًا. إذا كانت شائعة ، فمن المحتمل أن يكون هناك خطأ إيجابي خاطئ ناتج عن بعض تسجيل الدخول المخصص أو التنكر أو رمز التسجيل الذي يحتاج إلى استدعاء mark_user_change_as_limited. خلاف ذلك ، قد يتم رفض الطلبات الصالحة.

لمزيد من المعلومات، يرجى الاطلاع على ملاحظات الإصدار أو ال صفحة ويكي جوزة الطيب.

 إجمالي المشاهدات 419