• release

تحديثات منتج Logto

يقدم Logto v1.40.0 محدد النطاق الزمني لسجلات التدقيق، وحمولات ويب هوك عضوية المنظمة الأكثر ثراءً، وتحسينات ضخمة في الأداء للمنظمات الكبيرة، وعدة تحسينات في جودة الحياة للذين يستضيفون النظام بأنفسهم.

Yijun
Yijun
Developer

توقف عن إضاعة أسابيع في مصادقة المستخدم
أطلق تطبيقات آمنة بشكل أسرع مع Logto. قم بدمج مصادقة المستخدم في دقائق وركز على منتجك الأساسي.
ابدأ الآن
Product screenshot

Logto v1.40.0 هو إصدار يركز على تعزيز المنصة. يجعل سجلات التدقيق عملية ومفيدة حتى مع الحجم الكبير، ويخبرك تحديداً ما الذي تغير في ويب هوك عضوية المنظمة، ويسرّع استعلامات المنظمات عند المستأجرين الكبار، ويزيل بعض نقاط الاحتكاك الطويلة لمن يستضيف النظام ذاتياً. كما تم إضافة ثلاث موصلات جديدة. إليك الجديد:

سجلات تدقيق يمكنك تحديد نطاقها فعليًا

سجلات التدقيق أكثر فائدة عندما يحدث شيء ما للتو — ولكن حتى الآن، كانت لوحة التحكم تجلب نافذة غير محدودة، وهو ما أصبح بطيئًا مع المستأجرين الذين لديهم كميات ضخمة من السجلات.

يضيف هذا الإصدار محدد نطاق زمني لصفحة سجلات التدقيق، ويكون الإعداد الافتراضي آخر 7 أيام. يمكنك تحديد نوافذ جاهزة (آخر ساعة واحدة، آخر 24 ساعة، آخر 7 أيام، آخر 30 يومًا) أو تحديد فترة مخصصة، وتبقى السجلات الأقدم قابلة للوصول ببساطة عبر توسيع النطاق (#8810).

على مستوى التنفيذ، حصلت واجهة برمجة الإدارة على وسائط استعلام start_time و end_time في GET /api/logs و GET /api/hooks/{id}/recent-logs (قيم حدود حصرية بوحدة ميلي ثانية يونكس)، بحيث يمكنك تحديد نطاق الاستعلامات برمجيًا أيضًا (#8806). للمستأجرين الكبار جدًا، هناك معامل جديد enableCap=true يختصر استعلام العد على حوالي 10,000 صف ويرجع ترويسة Total-Number-Is-Capped: true، بحيث يتم استبدال العدد الدقيق باستجابة لن تتجاوز statement_timeout؛ وتتحول لوحة التحكم لطريقة عرض سابقة/تالية حين بلوغ الحد (#8796، #8802). السلوك الافتراضي دون هذا المعامل لم يتغير.

ويب هوك عضوية المنظمات تظهر لك ما تغير فعلاً

كان ويب هوك Organization.Membership.Updated يُخبرك بأن العضوية تغيرت، لكن ليس ما تغير تحديدًا. الآن يحمل حقول فرق صريحة — addedUserIds / removedUserIds و addedApplicationIds / removedApplicationIds — عبر نقاط نهاية العضوية، بالإضافة إلى addedUserIds عند قبول الدعوة والتزويد التلقائي الفوري (عبر النطاق البريدي والبروتوكول الموحد للمؤسسات) (#8840).

هذا التغيير تراكمي وغير كاسر للتوافق: الحقول الفارغة يتم حذفها، وكل مصفوفة محدودة بحد أقصى 5000 عنصر لعمليات الدُفعة (يمكنك التحقق عبر GET /organizations/:id/users أو .../applications إذا تجاوزت هذا الحد). راجع مرجع ويب هوك لعقد التوثيق الكامل. هذا التغيير يحل محل اقتراح سابق من المجتمع — شكرًا لـ @chiche84 (#8752).

وأثناء تحديث كود الجلسات، حصل GET /api/my-account/sessions أيضًا على علم isCurrent لكل إدخال، حتى تتمكن واجهات إدارة الجلسة من تمييز صف "هذا الجهاز" وتجنب إنهاء جلسة المتصل نفسه (#8731).

منظمات تظل سريعة مع النمو

استهدفت عدة تغييرات المستأجرين ذوي المنظمات الضخمة:

  • الآن يجمع GET /organizations/:id/users الأدوار من خلال استعلام جانبي LATERAL، بحيث يتم تقليم مجموعة المستخدمين عبر LIMIT قبل تشغيل بحث الأدوار — بدلاً من معالجة تقاطع جميع الأعضاء × الأدوار لكل طلب مقسّم (#8826).
  • يوجد الآن مؤشران ثانويان جديدان لتسريع عمليات البحث العكسية: واحد على organization_user_relations (tenant_id, user_id)، يتم تفعيله عند كل تسجيل دخول ومن خلال وسط العضوية (#8818)، وآخر على organization_role_user_relations (tenant_id, organization_id, user_id) يُستخدم من قبل getUserScopes وتقاطع الأدوار لكل مستخدم (#8819).
  • يتحول PUT /organizations/:id/users إلى استعلام جديد معتمد على الفرق، بحيث يكتب الصفوف التي تغيرت فقط، بدلاً من إعادة كتابة كافة صفوف العضوية في كل استدعاء — ويتم الحفاظ على تعيينات الأدوار للأعضاء الذين لم يتغيروا (#8820).

مركز الحسابات وإصلاحات تسجيل الدخول

  • الشروط عند الانتقال من تسجيل الدخول للتسجيل. عند سياسة الاتفاقية "طلب الموافقة بالصندوق عند التسجيل فقط"، حين تقوم بتسجيل الدخول ببريد أو هاتف غير مسجل ثم تختار "إنشاء حساب جديد"، سيتم طلب الموافقة على الشروط قبل إنشاء الحساب — بما يتوافق مع عملية التسجيل المخصصة ومسارات التسجيل الاجتماعي/SSO (#8835).
  • إعداد كلمة المرور لأول مرة. يمكن الآن للمستخدمين الذين ليس لديهم كلمة مرور أو بريد إلكتروني أو هاتف تعيين أول كلمة مرور لهم عبر واجهة Account API دون الحاجة إلى سجل تحقق (#8746).
  • إعادة التوثيق الصامتة. عند حدوث خطأ في معلومات المستخدم — مثلاً بسبب رمز وصول منتهي بعد التبديل بين المستخدمين في نفس المتصفح — يقوم مركز الحسابات بإعادة التوثيق بـ prompt=none بدلاً من العودة إلى شاشة تسجيل الدخول، بفضل @taka-guevara (#8785).
  • انتهاء صلاحية الجلسة والنقاط الاجتماعية أنظف. يعيد توجيه جلسات مركز الحسابات المنتهية دون ظهور خطأ تسجيل الدخول اليدوي (#8830)، ويتم الآن قراءة معرف الموصل الاجتماعي connectorId بشكل صحيح (#8758)، ووسم زر تفعيل التحقق بخطوتين أصبح أوضح (#8792).
  • التعدد اللغوي. تم تصحيح الترجمة الصينية لعبارة "Passkey" في عبارات المصادقة متعددة العوامل، بفضل @rotempasharel1 (#8870).

موصلات جديدة ومحسنة

يضيف هذا الإصدار ثلاث موصلات ويُحسن عدة أخرى — بعضها من المجتمع:

  • موصل البريد الإلكتروني MailJunky للبريد الأصلي لرسائل التوثيق، بتبرع من @devadarshh (#8638).
  • موصل الرسائل القصيرة SMSBao للتحقق المحلي بالرسائل القصيرة، بتبرع من @wintbiit (#8871).
  • موصل خدمة التوثيق برسائل علي كلاود SMS مقدم من @CertStone (#8385).
  • الآن يدعم Aliyun Direct Mail تهيئة منطقة خدمة Direct Mail (#8892).
  • يسترجع WeCom تفاصيل أكثر عن ملف المستخدم الشخصي من خلال استدعاءات API إضافية، بفضل @liyujun-dev (#8191).
  • الآن قد لا تحتوي مصادقة SMTP على user وpass، بحيث تعمل الإنذارات التي تعتمد على المصدر (مثل IP/VLAN) دون الحاجة لتزوير بيانات الدخول (#8888).
  • تم تحسين Connector Kit في كشف روابط العلامة التجارية للبريد الإلكتروني لتجنب الإيجابيات الكاذبة في الاختصارات المنقطة، بفضل @aayushbaluni (#8747).

لمستخدمي الاستضافة الذاتية

بعض التغييرات خصيصًا لتسهيل أعمال نشر نسخة المصادر المفتوحة:

إعداد المدير بدون اتصال بالإنترنت. تقبل أوامر install وdb seed الآن وسيط --dapc (اختصارًا لـ --disable-admin-pwned-password-check). سياسة كلمة المرور الأولية لمستأجر المدير تفرض التحقق من تسريب كلمة المرور في خدمة Have I Been Pwned بشكل افتراضي، وهو ما يستدعي api.pwnedpasswords.com عند كل إدخال كلمة مرور للمدير — ويعلق أول تسجيل مدير إذا لم يكن هناك اتصال. تمرير --dapc يعطل التحقق من التسريب افتراضيًا ولا يعتمد بعدها تسجيل المدير على الإنترنت. (شكرًا لـ @darcyYe، #8859)

مفاتيح توقيع المدير من قاعدة البيانات. الآن تقرأ إصدارات المصادر المفتوحة مفاتيح توقيع مستأجر المدير مباشرة من قاعدة البيانات، ملغيةً الحاجة لإعدادات المضيف/ DNS الزائدة التي كانت تتيح سابقًا لحاوية Logto جلب إعدادات OIDC الخارجية (#8869).

مطلوب ترقية قاعدة البيانات. يشحن الإصدار v1.40.0 تعديلات على مخطط قاعدة البيانات (مؤشرات علاقات المنظمات الجديدة وأعمدة داخلية إضافية). بعد جلب النسخة الجديدة، نفذ خطوة تحديث قاعدة البيانات قبل تشغيل الخادم. راجع دليل الترقية.

ابدأ الآن

مستعد للترقية؟ راجع دليل الترقية للحصول على تعليمات خطوة بخطوة.

لقائمة التغييرات الكاملة، تفضل بزيارة صفحة الإصدار على GitHub.

هل لديك أسئلة أو ملاحظات؟ انضم إلينا على Discord أو افتح تذكرة على GitHub.