التشغيل واستكشاف الأخطاء¶
يغطي هذا الفصل عمليات اليوم التالي، أوضاع الفشل الشائعة، وملاحظات الأمان للفرق التي تستضيف لوحة CVE Intelligence داخلياً.
سجلات Express هي المرجع الأول لأخطاء NVD أو RSS أو الترجمة؛ المتصفح يعرض حالة الواجهة والتخزين المحلي فقط.
الأداء¶
قد يستغرق الفحص الكامل لعدد كبير من الأدوات دون NVD_API_KEY عدة دقائق. نفّذه في نوافذ الصيانة. يبقى وضع المراقبة خفيفاً لأنه يستثني NVD.
مشكلات شائعة¶
| العرض | السبب المحتمل | الإجراء |
|---|---|---|
Too many scan requests / RATE_LIMITED |
middleware التطبيق (سطل scan أو watch) | انتظر retryAfterSec؛ أغلق التبويبات الإضافية؛ ارفع RATE_LIMIT_* في .env؛ أعد تشغيل الخادم |
| نتائج NVD فارغة | حد معدل NVD upstream | أضف NVD_API_KEY، قلّص المكدس، أعد المحاولة |
| وقت مصدر قديم | فشل الجلب | تحقق من الشبكة؛ اقرأ سجلات الخادم |
| ترجمة عالقة | مزوّد معطّل | عطّل الترجمة التلقائية مؤقتاً؛ استخدم واجهة إنجليزية |
| تطابق إيجابي خاطئ | اسم أداة تقريبي | حسّن تسمية المكدس؛ راجع يدوياً |
| لا عناصر جديدة في المراقبة | knownIds يحتوي CVE مسبقاً |
متوقع؛ تحقق بفحص كامل |
الأمان¶
- لا تعرّض API للإنترنت العام دون مصادقة.
- احتفظ بـ
GITHUB_TOKENوNVD_API_KEYفي بيئة الخادم فقط. - RSS وJSON الخارجية مدخلات غير موثوقة — يحلّلها الخادم بحذر.
الترقية¶
بعد git pull نفّذ npm install وmake build وأعد تشغيل العملية. امسح ذاكرة المتصفح إن تغيّرت مفاتيح i18n بين الإصدارات. يضيف v1.1.0 معالج الإعداد وذاكرة فحص مفتاح بالمكدس — تُرحَّل المكدسات الحالية تلقائياً؛ التثبيتات الجديدة تمرّ بالمعالج مرة واحدة.
الاختبار الآلي¶
| المجموعة | الأمر | النطاق |
|---|---|---|
| وحدة + API | make test |
tests/server/، tests/client/، tests/integration/ |
| التغطية (CI) | npm run test:ci |
نفسها + lcov لـ Codecov/Sonar |
| E2E (Playwright) | npm run test:e2e:install مرة، ثم npm run test:e2e |
tests/e2e/ مقابل Vite dev server (تدفق export CSV) |
اختبارات التكامل في tests/integration/ تغطي حالياً ترقيم NVD مع mirror محلي وAIRGAPPED=true (nvd-pagination.test.ts). المزيد في #78. راجع CONTRIBUTING.md.
تغطية الاختبار (خط أساس CI)¶
يشغّل npm test حالياً 257 اختباراً عبر وحدة الخادم ومساعدات العميل وmirrors التكامل. تغطية CI (npm run test:ci) تقارب 94% من الأسطر و82% من الفروع و94% من الدوال (V8 lcov → Codecov/SonarCloud).
| المجال | أمثلة ملفات |
|---|---|
| الإشعارات | tests/server/notifications.test.ts، notificationEmail.test.ts، notificationTelegram.test.ts |
| Middleware | tenantContext.test.ts، scanTimeout.test.ts، securityHeaders.test.ts |
| طبقة البيانات | pool.test.ts، tenants.test.ts، tenantsDb.integration.test.ts |
| مساعدات العميل | exportVulns.test.ts، iconAssets.test.ts، scanCache.test.ts |
| التكامل | tests/integration/nvd-pagination.test.ts |
E2E (tests/e2e/export.spec.ts) يتطلب Chromium من Playwright — نفّذ npm run test:e2e:install مرة واحدة.
صيانة التوثيق¶
يجب أن تُحدَّث تغييرات المنتج كل أشجار extended-docs/docs/content/{locale}/ الست وsrc/i18n/messages/*.ts وdocs/ legacy عند الحاجة. اتبع قاعدة agent code-to-docs-sync (agent/rules/code-to-docs-sync.mdc) — تعيين المسار→التوثيق، المسرد وscripts/check-extended-docs-locale-sync.sh.
لـ audit وRBAC والمستأجرين والمقاييس وairgap وKubernetes راجع 11 self-host.