الواجهة¶
تستخدم الواجهة تخطيطاً موحّداً للوحة التحكم: شريط علوي للإجراءات العامة، SubNav موحّد، ومحتوى رئيسي بتبويبات. اللقطات أدناه تعرض نفس الواجهة بلغة العربية (RTL)؛ للغات الأخرى راجع الفصل الموافق في كل شجرة لغة.
عند تغيير اللغة من الشريط العلوي تُحدَّث تسميات القوائم وعناوين التبويبات وأسماء المصادر المدمجة؛ اتجاه الصفحة RTL للعربية والفارسية وLTR لبقية اللغات.
مناطق التخطيط¶
الشريط العلوي يجمع عدد أدوات المكدس، اختيار اللغة، تبديل السمة (فاتح / داكن / نظام)، مفاتيح المراقبة الحية، التنبيهات، التحديث التلقائي، والفحص الكامل في صف واحد. قائمة التصدير (CSV، JSON، طباعة) يمكن الوصول إليها بلوحة المفاتيح وتُغلق بـ Escape أو النقر خارجها؛ يتضمن CSV حقول EPSS ودرجة المخاطر والنوع والإصدارات والوصف المختصر والأسماء البديلة مع تعليق ترويسة لتاريخ الفحص والمكدس؛ يلف JSON النتائج في غلاف يحتوي exported_at والمكدس والمصادر والإجمالي. الطباعة تخفي شريط التنقل عبر stylesheet مخصص. على العرض الضيق يفتح زر القائمة SubNav كلوحة منزلقة.
SubNav (الشريط الجانبي الأيمن في RTL) يتضمن عنوان المنتج، شارة المراقبة الحية، التنقل الرئيسي، قائمة أدوات المكدس مع عدد CVE، فلتر خطورة سريع (في تبويب الثغرات)، مصادر البيانات مع آخر تحديث، وملخص الفحص حسب الخطورة. التحكم بالطي يقلّص الشريط إلى أيقونات فقط.
| التبويب | الغرض |
|---|---|
| لوحة التحكم | مؤشرات، رسوم، قائمة حرجة، بطاقات أدوات قابلة للنقر |
| الثغرات | بحث، فلاتر، بطاقات CVE قابلة للتوسيع |
| المراقبة الحية | فاصل watch، عدّ تنازلي، CVE جديدة منذ آخر فحص، سجل poll |
| سجل الفحص | رسم الاتجاهات والفحوصات الأخيرة (PostgreSQL، حسب المستأجر) |
| البنية التحتية | تعديل المكدس، تنقل فرعي (المصادر، التنبيهات، العمليات، المستأجرون، المظهر) |
تبويب التنبيهات
أُزيل تبويب «سجل التنبيهات» المنفصل؛ الإشعارات الجديدة تظهر عبر الشريط وtoast فقط.
لوحة التحكم¶
بعد فحص كامل تعرض لوحة التحكم ملخص الخطورة، رسوم التوزيع، الأدوات المتأثرة، وقائمة CVE الحرجة. مؤشرات KEV / مستغل وتصحيح متاح تلخّص إشارات الاستغلال والمعالجة. لوحة صحة المصادر تسرد كل فيد من آخر فحص (sources_checked / sources_failed). بطاقات الأدوات تعرض عدد KEV وتصحيح لكل خدمة. النقر على بطاقة أداة ينقلك إلى تبويب الثغرات مع فلتر ذلك الأداة.
الشكل ١ — تبويب لوحة التحكم بعد الفحص (عربي، سمة فاتحة)
تبويب الثغرات¶
بحث نصي، فلتر الخطورة / النوع / الأداة / المصدر، خيار KEV فقط، ترتيب (يشمل EPSS ودرجة المخاطر)، وبطاقات قابلة للتوسيع. بطاقات CVE تعرض شارات منفصلة لـ EPSS ودرجة المخاطر عند توفر بيانات الإثراء. النقر على شارات الخطورة أو النوع أو المصدر أو KEV على البطاقة يطبّق نفس الفلتر داخل التبويب. عند دمج merge لنفس CVE من مصادر متعددة (مثل NVD + GitHub)، تظهر معرّفات بديلة (GHSA، PYSEC، …) كشرائح monospace في جسم البطاقة الموسّع باتجاه LTR إجباري.
الشكل ٢ — تبويب الثغرات مع الفلاتر وبطاقات CVE
تبويب البنية التحتية (المكدس)¶
تبويب البنية التحتية يجمع الإعدادات الدائمة: المكدس، سلوك الفحص، المصادر، رؤية التنبيهات والعرض. تنقل فرعي للإعدادات أفقي يبدّل بين الأقسام دون مغادرة التبويب. القيم تُحفظ في localStorage تحت البادئة cve-radar:*. مع PostgreSQL، قسما العمليات والمستأجرون يعرضان بيانات الجلسة والمكدسات لكل مستأجر.
الشكل ٣ — التنقل الفرعي: المكدس والمراقبة السريعة (عربي)
| القسم | المحتوى |
|---|---|
| البنية التحتية | أدوات المكدس، القوالب، فاصل watch، فحص كامل دوري |
| المصادر | خلاصات CVE المدمجة وRSS مخصص |
| التنبيهات | حالة قنوات الخادم (قراءة فقط)، toast/شريط المتصفح |
| العمليات | مفتاح API، الجلسة (دور RBAC، المستأجر، multi-tenant)، الصحة، metrics، audit |
| المستأجرون | slug نشط، إنشاء مستأجر، مكدسات محفوظة (تحميل / تعديل / حذف)، تفضيلات التنبيه |
| المظهر | لغة الواجهة، مقياس الخط، السمة، ترجمة CVE تلقائية |
المصادر¶
قسم المصادر يسرد كل الخلاصات المدمجة: NVD وOSV وGitHub Advisories وGitLab Advisory Database وCISA KEV وThe Hacker News وTuxCare وAlpine secdb وUbuntu USN وRed Hat Security وDebian Security Tracker وAmazon Linux ALAS. كل صف يعرض أيقونة ومربع اختيار — الخلاصات المعطّلة تُتخطى في الفحص الكامل أو دورة watch التالية.
RSS المخصص أسفل القائمة المدمجة. إضافة خلاصة ينشئ بطاقة بـ مفعّل واسم وURL (LTR). احذف بالزرّ الأحمر. المعرّف الداخلي custom:{uuid}؛ فقط URL غير فارغ يشارك في الفحص.
الاختيارات في cve-radar:source-config وتتكرر في خطوة ٣ من المعالج. SubNav يعرض كل مصدر مفعّل مع آخر تحديث من meta آخر فحص.
الشكل ٣أ — المصادر: مفاتيح مدمجة وRSS مخصص
التنبيهات¶
قسم التنبيهات يفصل قنوات الخادم (مع دليل إعداد لكل قناة) عن تنبيهات المتصفح.
الإرسال من الخادم (Slack وDiscord وMicrosoft Teams وTelegram وSMTP وwebhook) يُضبط على مضيف API فقط — الأسرار لا تدخل المتصفح. انقر صف القناة لتوسيع دليل الإعداد: خطوات مرقّمة، أسماء متغيرات مطلوبة/اختيارية، ونسخ المثال لملف .env. بعد التعديل أعد تشغيل API واضغط تحديث.
| القناة | متغيرات مطلوبة (ملخص) |
|---|---|
| Slack | NOTIFICATION_SLACK_WEBHOOK_URL |
| Discord | NOTIFICATION_DISCORD_WEBHOOK_URL |
| Microsoft Teams | NOTIFICATION_TEAMS_WEBHOOK_URL |
| Telegram | NOTIFICATION_TELEGRAM_BOT_TOKEN، NOTIFICATION_TELEGRAM_CHAT_ID |
| البريد (SMTP) | NOTIFICATION_SMTP_HOST، _FROM، _TO |
| Webhook عام | NOTIFICATION_WEBHOOK_URL |
راجع NOTIFICATIONS.md للتفاصيل.
تنبيهات المتصفح من جانب العميل: toast / الشريط عند CVE جديدة؛ إذن Notification API وطلب الإذن عند default.
الشكل ٣ب — التنبيهات: قائمة القنوات (غير مُضبطة حتى ضبط env)
الشكل ٣ب٢ — دليل Slack موسّع مع مثال env
المظهر¶
المظهر يجمع إعدادات العرض دون تأثير على منطق الفحص:
- اللغة — إنجليزي أو فارسي أو عربي أو روسي أو صيني أو فرنسي؛ التسميات وأسماء المصادر واتجاه CVE (RTL لـ fa/ar).
- مقياس الخط — ٨٥٪ إلى ١٤٠٪ عبر +/− (
cve-radar:font-scale). - السمة — فاتح أو داكن أو نظام (
cve-radar:theme)؛ الوضع الداكن accent teal على خلفية navy. - ترجمة CVE تلقائية — الخادم يغني العناوين والوصف حسب locale الواجهة أثناء الفحص.
الشريط العلوي يعرض اللغة والسمة أيضاً؛ التغييرات متزامنة.
الشكل ٣ج — المظهر: اللغة والخط والسمة والترجمة
العمليات¶
قسم العمليات يخزّن مفتاح API اختيارياً في المتصفح (X-Api-Key على /api/v1/*). يستدعي GET /api/v1/session لعرض وضع multi-tenant ودور RBAC والمستأجر النشط (من X-Tenant-Id) وما إذا كان auth API مفعّلاً. ميزات runtime من /api/capabilities؛ صحة النظام من health التفصيلي. Prometheus metrics يربط /metrics. أحداث audit تعرض صفوفاً محدودة بالمستأجر مع IP والمكدس وsources_failed.
المستأجرون¶
مع DATABASE_URL، قسم المستأجرون يبدّل slug المستأجر (X-Tenant-Id)، ينشئ مستأجرين، ويدير المكدسات المحفوظة: حفظ، تحميل، تعديل الاسم والأدوات، أو حذف. طلب اختبار التنبيه يتضمن X-Tenant-Id.
تبويب سجل الفحص¶
تبويب سجل الفحص (SubNav) يتطلب PostgreSQL. يعرض اتجاهات الثغرات والفحوصات الأخيرة للمستأجر النشط. كل صف يتضمن mode والمكدس ومصادر فاشلة. بدون قاعدة بيانات يظهر تنبيه DATABASE_URL.
تبويب المراقبة الحية¶
تبويب المراقبة الحية (شريط SubNav، بين الثغرات والبنية التحتية) يعرض polling سريعاً لـ OSV/GitHub دون فحص كامل. الـ poll يستدعي POST /api/v1/watch مع X-Tenant-Id. عندما يكون watch مفعّلاً، يظهر عدّ تنازلي حتى الـ poll التالي؛ محدّد الفاصل (٢ / ٥ / ١٥ دقيقة) يكتب في settings.watchIntervalMs. جديد منذ آخر فحص كامل يسرد صفوف CVE مكتشفة عبر watch؛ الشارة على التبويب تعرض العدد. سجل poll يحتفظ بآخر ٢٠ نتيجة مع الطابع الزمني وعدد CVE الجديدة. تبديل watch من هنا أو من الشريط العلوي متزامن؛ فحص كامل ناجح (POST /api/v1/scan/stream) يمسح قائمة «جديد من الفحص».
الشكل ٣د — المراقبة الحية: عدّ تنازلي، فاصل، CVE جديدة، سجل
شاشة تقدم الفحص¶
عند بدء فحص كامل يظهر overlay بملء الشاشة. مع وصول أحداث SSE، يظهر كل مصدر بيانات كصف مع نقطة نابضة (نشط) أو خضراء (منتهٍ) والأداة الحالية عند توفرها؛ شريط النسبة يعكس ScanProgressEvent.percent. قبل أول حدث تُعرض تسميات مراحل ثابتة (NVD → OSV → …). بعد الانتهاء يعود التطبيق إلى لوحة التحكم تلقائياً.
الشكل ٤ — شاشة التقدم أثناء الفحص الكامل
معالج الإعداد الأول¶
بعد إخلاء المسؤولية، يرى المستخدمون الجدد معالجاً ملء الشاشة من أربع خطوات:
- المكدس — إضافة أدوات أو تطبيق قوالب البنية التحتية.
- الإعدادات — تنبيهات، مراقبة مباشرة، فاصل، ترجمة اختيارية.
- المصادر — تفعيل/تعطيل الخلاصات المدمجة وRSS المخصص.
- الإنهاء — فحص كامل أولي اختياري؛ يضبط
cve-radar:setup-complete.
الشكل ٥ — معالج الإعداد الأول، خطوة المكدس (العربية، سمة فاتحة)
يتخطى العائدون المعالج عندما يكون setupComplete مضبوطاً مسبقاً.
نتائج الفحص المخزّنة¶
عندما يحمّل التطبيق فحصاً سابقاً من localStorage (نفس مفتاح المكدس)، تعرض لوحة التحكم شريط نتائج مخزّنة مع تاريخ الفحص المحفوظ. شغّل فحصاً كاملاً من الشريط العلوي لتحديث البيانات الحية من API.
التنقل حسب الأداة¶
النقر على بطاقة أداة في لوحة التحكم (أو اسم أداة في SubNav) يفتح تبويب الثغرات، يضبط فلتر الأداة، يمسح الفلاتر الأخرى، ويعرض القائمة الكاملة المطابقة دون ترقيم صفحات.
مقياس الخط والسمة¶
راجع المظهر في تبويب البنية التحتية لمقياس الخط (٨٥٪–١٤٠٪) والسمات (فاتح / داكن / نظام) وترجمة CVE التلقائية. السمة الداكنة accent teal (#20c5ba) على خلفية navy.
الجوال¶
تحت نقطة التوقف md يختفي الشريط الجانبي؛ افتح SubNav الكامل من قائمة الرأس.
التالي: الفحص والمراقبة
مرشحات متقدمة (#263): شريط ثابت، اختيار متعدد للخطورة/المصادر، EPSS ونطاق التاريخ، مزامنة URL، عروض محفوظة.