انتقل إلى المحتوى الرئيسي

السجل

وحدة «السجل» في Platform OneEntry تتيح للمسؤولين تتبع كل من إجراءات المسؤولين الآخرين في النظام ونشاط واجهة برمجة التطبيقات العامة للمحتوى. تتكون الوحدة من أربع علامات تبويب:

علامة التبويبماذا تظهر
سجل إجراءات المسؤولينجميع إجراءات المسؤولين في النظام: إنشاء، تعديل، حذف الكيانات.
حركة المسؤولينجلسات دخول المسؤولين: متى دخلوا، متى خرجوا، من أي جهاز.
إحصائيات واجهة برمجة التطبيقات للمحتوىعدادات استدعاءات جميع نقاط النهاية العامة للموقع على فترات زمنية مختلفة.
أخطاء واجهة برمجة التطبيقات للمحتوىجميع ردود 4xx/5xx من واجهة برمجة التطبيقات العامة مع تفاصيل الطلب وتتبع المكدس.

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

كل علامة تبويب متاحة بموجب إذن منفصل — انظر الأذونات للسجل.


سجل إجراءات المسؤولين

العلامة الرئيسية، التي تظهر جميع إجراءات المسؤولين في النظام. كانت تُسمى سابقًا ببساطة «سجل إجراءات المسؤولين» — والآن تم إعادة تسميتها إلى «سجل إجراءات المسؤولين» لتمييزها عن علامات التبويب الجديدة.

عناصر الواجهة

تتكون العلامة من كتلتين:

  • الفلاتر
  • قائمة الإجراءات

الفلاتر

لإجراء تصفية على الإجراءات، تتوفر الحقول التالية:

  1. من — حقل نصي لإدخال التاريخ الذي يجب بدء تصفية الإجراءات منه.
  2. إلى — حقل نصي لإدخال التاريخ الذي يجب انتهاء تصفية الإجراءات عنده.
حقول إدخال التواريخ

يمكن إدخال التواريخ كسلسلة بتنسيق تاريخ منطقتك، كما يمكنك اختيار التاريخ المطلوب باستخدام التقويم الذي يظهر عند النقر على حقل إدخال التاريخ.

  1. معرف المسؤول — حقل إدخال رقمي لمعرف المسؤول الفريد.
  2. إجراءات المستخدم — قائمة منسدلة لإجراءات المستخدم:
    • إنشاء
    • تعديل
    • حذف
  3. الحالة — قائمة منسدلة لحالات الإجراءات:
    • ناجح
    • خطأ
  4. اسم الوحدة — قائمة منسدلة لأسماء الوحدات:
    • المسؤولون
    • مجموعات السمات
    • النسخ الاحتياطي
    • إدارة الكتل
    • إدارة الأحداث
    • الإعدادات العامة
    • تحميل الملفات
    • محرر الملفات
    • إدارة النماذج
    • التوطين
    • العلامات
    • القائمة
    • الوحدات
    • إدارة المحتوى
    • المنتجات
    • إدارة الطلبات
    • الإعدادات الأساسية
    • إدارة المدفوعات
    • إدارة حالة المنتج
    • المستخدم
    • إدارة موفري ومستخدمي المصادقة
    • إدارة القوالب
    • إدارة معاينة القوالب
  5. معرف السجل — حقل إدخال رقمي لمعرف السجل الفريد.

تحت كتلة الفلاتر، توجد زران:

  • حذف البيانات — يحذف سجلات سجل إجراءات المسؤولين للفترة المحددة بواسطة حقول من / إلى (انظر تنظيف السجلات يدويًا).
  • إعادة تعيين — يعيد تعيين الفلاتر المطبقة.

قائمة الإجراءات

تُعرض قائمة الإجراءات في شكل جدول مكون من ستة أعمدة:

  1. إجراءات المستخدم
  2. الحالة
  3. تسجيل دخول المستخدم
  4. اسم الوحدة
  5. معرف السجل
  6. التاريخ والوقت
الفرز

لكل عمود إمكانية فرز البيانات بالنقر على عنوان العمود. النقر الأول سيقوم بالفرز تنازليًا، الثاني تصاعديًا، والثالث سيعيد تعيين الفرز.

تدقيق رؤية الكتلة

كل تبديل لرؤية الكتلة (toggle «عرض/عدم عرض» في إدارة الكتل) يتم تسجيله تلقائيًا في سجل إجراءات المسؤولين. يمكن رؤية أي مسؤول ومتى قام بتغيير حالة كتلة معينة.

ℹ️لم يكن يتم تسجيل هذه العملية سابقًا

لم يكن يتم تسجيل تبديل رؤية الكتلة في السجل — لم يكن بالإمكان معرفة من ومتى قام بإخفاء/عرض الكتلة. الآن هذا موجود، وتظهر العملية في القائمة العامة بنوع «إدارة الكتل».


حركة المسؤولين (سجل وصول المسؤولين)

تظهر علامة «حركة المسؤولين» كل دخول وخروج لمسؤول في النظام كسجل مستقل. الآن يمكن رؤية من ومتى دخل إلى إدارة المسؤولين — دون الحاجة للرجوع إلى Grafana/Loki. مفيد للتدقيق (خصوصًا للفرق الكبيرة مع عدة مسؤولين).

حقول الجدول

يتكون الجدول من ستة أعمدة:

العمودماذا يعني
تسجيل الدخولتسجيل دخول المسؤول
IPعنوان IP الذي دخل منه المسؤول
وقت تسجيل الدخولتاريخ ووقت تسجيل الدخول
وقت تسجيل الخروجتاريخ ووقت تسجيل الخروج (لجلسة لا تزال مفتوحة — فارغ)
المدةمدة الجلسة (للنشطة — من تسجيل الدخول إلى اللحظة الحالية)
السببسبب إغلاق الجلسة: logout (المستخدم ضغط على «تسجيل الخروج») أو admin_revoked (مسؤول آخر أنهى الجلسة قسريًا، مثل عبر logoutAll)
الفرز

كما هو الحال في سجل إجراءات المسؤولين، يمكن فرز أي عمود بالنقر على عنوانه.

ℹ️انتهاء صلاحية الرمز وتجديده

انتهاء صلاحية الرمز (expired) وإعادة المصادقة (refresh) لا تُسجل كسجل منفصل — يتم ببساطة وضع علامة على هذه الجلسة على أنها مغلقة بشكل كسول، عندما يتوقف استخدامها فعليًا.

الفلاتر

  • من / إلى — الفترة (حقول إدخال التاريخ مع التقويم).
  • معرف المسؤول — حقل رقمي لتصفية حسب مسؤول معين.
  • حالة الجلسة — قائمة منسدلة لحالة الجلسة: الجميع / نشط / مغلق.

زر «حذف البيانات»

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

تأكيد الإجراء — هل تريد حذف جميع الجلسات المغلقة للفترة المحددة؟ هذه العملية لا يمكن التراجع عنها. ستبقى الجلسات النشطة.

يتم حذف فقط الجلسات المغلقة. الجلسات النشطة (مع تسجيل دخول مفتوح) لا تُمس — هذه حماية من «قتل» زملاء العمل الذين يعملون.


إحصائيات واجهة برمجة التطبيقات للمحتوى

تظهر علامة «إحصائيات واجهة برمجة التطبيقات للمحتوى» عدادات استدعاءات جميع نقاط النهاية العامة للموقع (واجهة برمجة التطبيقات للمتجر) على فترات زمنية مختلفة — ساعة واحدة، 24 ساعة، 7 أيام.

ماذا تظهر

  • قائمة بجميع نقاط النهاية العامة (GET /api/content/...) — يتم جمعها تلقائيًا من الكود، ولا حاجة للصيانة اليدوية.
  • عداد بجوار كل نقطة نهاية — عدد المرات التي تم استدعاؤها خلال الفترة المحددة.
  • الأرقام مأخوذة من مقياس Prometheus المركزي لـ nginx-ingress، المسؤول عن حركة المرور لدينا. لا يتم إنشاء أي عدادات منفصلة في قاعدة بيانات المشروع.

عناصر الواجهة

  • الفترة — قائمة منسدلة للفترة: الساعة الأخيرة / آخر 24 ساعة / آخر 7 أيام (بشكل افتراضي — آخر 24 ساعة).
  • تحديث — زر لتحديث البيانات بشكل قسري.

تُعرض البيانات في جدول مكون من أربعة أعمدة:

العمودماذا يعني
المسارمسار نقطة النهاية (/api/content/...)
الطريقةطريقة HTTP (GET، POST، …)
الوصفوصف مختصر لنقطة النهاية
الطلباتعدد الاستدعاءات خلال الفترة المحددة

في أعلى الصفحة، يظهر شريط معلومات:

التنظيف التلقائي غير قابل للتطبيق — يتم قراءة البيانات في الوقت الحقيقي من Prometheus، ويتم تكوين الاحتفاظ على مستوى بنية المراقبة. لا تخزن هذه العلامة البيانات في قاعدة بيانات CMS.

⚠️المقياس غير متاح مؤقتًا

إذا كان Prometheus غير متاح، يظهر تحذير فوق الجدول «المقياس غير متاح مؤقتًا. يتم عرض جميع نقاط النهاية مع عدد صفر.» — لا يزال يتم عرض قائمة نقاط النهاية، ولكن مع عداد 0.

⚠️احتفاظ البيانات

يتم تخزين البيانات في Prometheus مع احتفاظ على مستوى البنية التحتية (عادة 30 يومًا). لتحليلات أطول، يجب تخزينها بشكل مستقل. شريط المعلومات في أعلى الصفحة يحذر من ذلك.

لماذا هو ضروري

يمكن للتسويق والمنتج رؤية أي ميزات واجهة برمجة التطبيقات للمتجر تُستخدم فعليًا، وأيها ميت. كما أنه من السهل مراقبة «هل كل شيء يعمل» — عادةً ما تشير الانخفاضات الحادة في استدعاءات نقطة نهاية واحدة إلى مشكلة على جانب الواجهة.

ℹ️التخزين المؤقت

يتم تخزين الرد في ذاكرة التخزين المؤقت لمدة 60 ثانية في Redis — لتجنب استدعاء Prometheus في كل مرة يتم فيها الضغط على «تحديث».


أخطاء واجهة برمجة التطبيقات للمحتوى

تظهر علامة «أخطاء واجهة برمجة التطبيقات للمحتوى» جميع ردود 4xx/5xx التي قدمتها واجهة برمجة التطبيقات العامة خلال الفترة. لم يعد يحتاج المطورون الذين يدمجون التطبيق العميل مع واجهة برمجة التطبيقات الخاصة بنا إلى الوصول إلى سجلات الخادم — يمكنهم الآن رؤية جميع أخطاء طلباتهم مباشرة في الإدارة.

ماذا تظهر

كل سجل هو خطأ HTTP منفصل. يتكون الجدول من خمسة أعمدة:

العمودماذا يعني
الوقتالطابع الزمني للخطأ
الحالةحالة HTTP (4xx / 5xx)
الطريقةطريقة الطلب (GET، POST، …)
المسارالمسار (/api/content/...)
الرسالةنص الخطأ

إذا لم يكن هناك أخطاء خلال الفترة المحددة، يظهر بدلاً من الجدول رسالة «لا توجد أخطاء مسجلة للفترة المحددة».

حقل «المزيد» يفتح شاشة تفصيلية تحتوي على:

  • جسم الطلب (بدون أسرار — كلمات المرور، الرموز، رؤوس التفويض مخفية)
  • الاستعلام — معلمات سلسلة الاستعلام
  • الرؤوس
  • تتبع المكدس — مفصل (حتى 8 كيلوبايت)

الفلاتر

  • من / إلى — الفترة (حقول إدخال التاريخ مع التقويم).
  • حالة HTTP — قائمة منسدلة للحالات. يمكن اختيار مجموعة (4xx - جانب العميل، 5xx - جانب الخادم) أو رمز محدد: 400، 401، 403، 404، 422، 500، 502، 503.
  • المسار — حقل نصي لتصفية حسب المسار (على سبيل المثال، /api/content/blocks/*).

زر «حذف البيانات»

يحذف سجلات الأخطاء للفترة المحددة بواسطة حقول من / إلى. إذا لم يتم تحديد الفترة — يتم حذف جميع الأخطاء.

الأمان — المنظف

يقوم المنظف تلقائيًا بإزالة البيانات الحساسة. يتم استبدال الحقول password، token، authorization، api_key، x-app-token، cookie، set-cookie (بغض النظر عن الحالة) بـ ***. يتم تقليص الأجسام الكبيرة إلى 2 كيلوبايت.

الهندسة المعمارية

تُكتب الأخطاء عبر قائمة انتظار خفيفة Bull، بحيث لا تؤخر كتابة السجل معالجة الطلب. إذا كانت قائمة الانتظار ممتلئة (أكثر من 1000 مهمة معلقة) — يتم تجاهل الأخطاء الجديدة بهدوء، لتجنب «إسقاط» Redis.


تنظيف السجلات يدويًا

يتم تنظيف سجلات السجل يدويًا — في كل علامة تبويب تحتفظ بالبيانات في قاعدة البيانات، يوجد زر «حذف البيانات»:

علامة التبويبماذا تحذف
سجل إجراءات المسؤولينسجلات إجراءات المسؤولين للفترة المحددة
حركة المسؤولينفقط الجلسات المغلقة للفترة المحددة
أخطاء واجهة برمجة التطبيقات للمحتوىسجلات الأخطاء للفترة المحددة

تُحدد فترة الحذف بواسطة حقول من / إلى في فلاتر العلامة. إذا لم يتم تحديد الفترة — يتم حذف جميع السجلات من النوع المناسب. قبل الحذف، يظهر دائمًا مربع تأكيد «تأكيد الإجراء»، العملية لا يمكن التراجع عنها.

ℹ️لا يتم لمس الجلسات النشطة

زر «حذف البيانات» في علامة «حركة المسؤولين» لا يحذف الجلسات النشطة للمسؤولين — حتى إذا تم تحديد فترة تتداخل مع اللحظة الحالية، لن يتم حذف الجلسة المفتوحة لزميل يعمل. يتم حذف فقط الجلسات المغلقة.

ℹ️علامة «إحصائيات واجهة برمجة التطبيقات للمحتوى» لا تحتوي على تنظيف

يتم قراءة بيانات الإحصائيات في الوقت الحقيقي من Prometheus ولا تُخزن في قاعدة بيانات CMS، لذلك لا يوجد زر «حذف البيانات» في هذه العلامة — وهذا ما يشير إليه الشريط «التنظيف التلقائي غير قابل للتطبيق».


الأذونات للسجل

كل علامة تبويب في السجل متاحة بموجب إذن منفصل في شجرة الأذونات:

علامة التبويبالإذن
سجل إجراءات المسؤولينjournal.viewAdminActions (الإذن الحالي، دون تغييرات)
حركة المسؤولينjournal.viewAdminAccess (إذن جديد)
إحصائيات واجهة برمجة التطبيقات للمحتوىjournal.viewContentApiStats (إذن جديد)
أخطاء واجهة برمجة التطبيقات للمحتوىjournal.viewContentApiErrors (إذن جديد)
💡هجرة الجلوس عند التحديث

عند تحديث النظام، تم إصدار تلقائي لكلا الإذن الجديدين (journal.viewContentApiStats، journal.viewContentApiErrors) لجميع المسؤولين الحاليين الذين لديهم إذن admins.get — من خلال هجرة الجلوس. لم يتعرض أي من الأدوار الحالية للتعطيل.