Эксплуатация и устранение неполадок¶
В этой главе — повседневная эксплуатация, режимы отказа и заметки по безопасности для команд, размещающих CVE Intelligence Panel внутри периметра.
Производительность¶
Полные сканы по многим инструментам без NVD_API_KEY могут занимать несколько минут. Запускайте в окна обслуживания. Режим мониторинга остаётся лёгким, если NVD исключён.
Типичные проблемы¶
| Симптом | Вероятная причина | Действие |
|---|---|---|
Too many scan requests / RATE_LIMITED |
Middleware приложения (bucket scan или watch) | Подождите retryAfterSec; закройте лишние вкладки; увеличьте RATE_LIMIT_* в .env; перезапустите сервер |
| Пустые результаты NVD | Rate limit NVD upstream | Добавьте NVD_API_KEY, уменьшите стек, повторите |
| Устаревшие метки источников | Сбой fetch | Проверьте сеть; читайте логи сервера |
| Зависший перевод | Провайдер недоступен | Временно отключите автоперевод; используйте английский UI |
| Ложное совпадение | Эвристика имени инструмента | Уточните имена в стеке; ручной triage |
| Нет новых пунктов мониторинга | knownIds уже содержит CVE |
Ожидаемо; проверьте полным сканом |
Безопасность¶
- Не выставляйте API публично без аутентификации.
- Храните
GITHUB_TOKENиNVD_API_KEYтолько в env сервера. - RSS и внешний JSON — недоверенный ввод; сервер разбирает защитно.
Обновления¶
После git pull выполните npm install, make build, перезапустите процесс. Очистите кэш браузера, если ключи i18n изменились между версиями. v1.1.0 добавляет мастер настройки и кэш scan по ключу стека — существующие стеки мигрируют автоматически; новые установки проходят мастер один раз.
Автоматизированное тестирование¶
| Набор | Команда | Область |
|---|---|---|
| Unit + API | make test |
tests/server/, tests/client/, tests/integration/ |
| Coverage (CI) | npm run test:ci |
То же + lcov для Codecov/Sonar |
| E2E (Playwright) | один раз npm run test:e2e:install, затем npm run test:e2e |
tests/e2e/ против Vite dev server (CSV export) |
Интеграционные тесты в tests/integration/ сейчас покрывают пагинацию NVD с локальным mirror и AIRGAPPED=true (nvd-pagination.test.ts). Доп. specs — #78. CONTRIBUTING.md.
Покрытие тестами (базовая линия CI)¶
npm test сейчас выполняет 257 спецификаций: unit сервера, client helpers и integration 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 |
| Client helpers | 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 и legacy docs/ при необходимости. Правило agent code-to-docs-sync (agent/rules/code-to-docs-sync.mdc) — mapping путь→док, glossary и scripts/check-extended-docs-locale-sync.sh.
Audit, RBAC, tenants, metrics, airgap и Kubernetes: 11 Self-host.