diff --git a/package-lock.json b/package-lock.json index 35956c7ed..3b89b4375 100644 --- a/package-lock.json +++ b/package-lock.json @@ -48,6 +48,7 @@ "vue-router": "3.6.5", "vue-toastr": "2.1.2", "vue2-org-tree": "1.3.6", + "vuedraggable": "^2.24.3", "xss-filters": "1.2.7" }, "devDependencies": { @@ -16792,6 +16793,11 @@ "integrity": "sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==", "dev": true }, + "node_modules/sortablejs": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.2.tgz", + "integrity": "sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A==" + }, "node_modules/source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -18890,6 +18896,14 @@ "vue": "^2.5.4" } }, + "node_modules/vuedraggable": { + "version": "2.24.3", + "resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-2.24.3.tgz", + "integrity": "sha512-6/HDXi92GzB+Hcs9fC6PAAozK1RLt1ewPTLjK0anTYguXLAeySDmcnqE8IC0xa7shvSzRjQXq3/+dsZ7ETGF3g==", + "dependencies": { + "sortablejs": "1.10.2" + } + }, "node_modules/watchpack": { "version": "1.7.5", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", @@ -32951,6 +32965,11 @@ "integrity": "sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==", "dev": true }, + "sortablejs": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.2.tgz", + "integrity": "sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A==" + }, "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -34640,6 +34659,14 @@ "integrity": "sha512-ExkQWmHcS3s1tjPDdaruE2p4JnfwOTc4MBqqMY7rsSM9pgzD53t6hbjyNOq9csnyugzREdCnX5V/ZHQMREDYZQ==", "requires": {} }, + "vuedraggable": { + "version": "2.24.3", + "resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-2.24.3.tgz", + "integrity": "sha512-6/HDXi92GzB+Hcs9fC6PAAozK1RLt1ewPTLjK0anTYguXLAeySDmcnqE8IC0xa7shvSzRjQXq3/+dsZ7ETGF3g==", + "requires": { + "sortablejs": "1.10.2" + } + }, "watchpack": { "version": "1.7.5", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", diff --git a/package.json b/package.json index 7ecd5d0d4..58aebab53 100644 --- a/package.json +++ b/package.json @@ -61,6 +61,7 @@ "vue-router": "3.6.5", "vue-toastr": "2.1.2", "vue2-org-tree": "1.3.6", + "vuedraggable": "^2.24.3", "xss-filters": "1.2.7" }, "devDependencies": { diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 66165a133..8d8ea0586 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -16,6 +16,9 @@ "analyzer_internal_fuzzy_enable": "Aktivieren Sie Fuzzy-CPE-Matching. Hilft bei inkonsistenten NVD-Daten, indem es fehlende Risiken hervorhebt, aber auch die Anzahl falscher Positivmeldungen erhöht.", "analyzer_internal_fuzzy_exclude_internal": "Aktivieren Sie Fuzzy-CPE-Matching für interne Komponenten", "analyzer_internal_fuzzy_exclude_purl": "Aktivieren Sie Fuzzy-CPE-Matching für Komponenten, für die eine Paket-URL (PURL) definiert ist.", + "analyzer_internal_deduplication_enable": "Alias-Deduplizierung aktivieren", + "analyzer_internal_deduplication_desc": "Die Deduplikation erkennt und vermeidet doppelte Einträge aus den überprüften Schwachstellen. Sie stellt sicher, dass nur eine Instanz einer bestimmten Schwachstelle angezeigt wird. Gleiche Schwachstellen werden in den Alias-Bereich verschoben. Die folgende Liste ermöglicht es Ihnen, eine Quelle über eine andere zu priorisieren.", + "analyzer_internal_deduplication_warning": "Dies hat keine Auswirkungen auf zuvor zugeordnete Schwachstellen Ihrer Komponenten.", "analyzer_ossindex_desc": "OSS Index ist ein von Sonatype bereitgestellter Dienst, der Schwachstellen in Komponenten von Drittanbietern identifiziert. Dependency-Track lässt sich nativ in den OSS Index-Dienst integrieren, um hochpräzise Ergebnisse zu liefern. Für die Verwendung dieses Analyzers ist eine gültige PackageURL für die zu analysierenden Komponenten erforderlich.", "analyzer_ossindex_enable": "OSS-IndexAnalyzer aktivieren", "analyzer_snyk_alias_sync_warning": "Snyk unterscheidet nicht zwischen verwandten und identischen Schwachstellen. Gehen Sie mit Vorsicht vor.", diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index f14b2e497..9a4d12b45 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -16,6 +16,9 @@ "analyzer_internal_fuzzy_enable": "Enable fuzzy CPE matching. Helps with inconsistent NVD data, highlighting missing risks but also increasing false positives", "analyzer_internal_fuzzy_exclude_internal": "Enable fuzzy CPE matching on internal components", "analyzer_internal_fuzzy_exclude_purl": "Enable fuzzy CPE matching on components that have a Package URL (PURL) defined", + "analyzer_internal_deduplication_enable": "Select Vulnerability Source to enable Deduplication", + "analyzer_internal_deduplication_desc": "Deduplication detects and avoids duplicate entries from the audit vulnerabilities. It ensures that only one instance of a certain vulnerability is displayed. Same vulnerabilities are placed in the Alias section. The following list allows you to prioritize one source over another.", + "analyzer_internal_deduplication_warning": "This will not affect previously attributed vulnerabilities to your components.", "analyzer_ossindex_desc": "OSS Index is a service provided by Sonatype which identifies vulnerabilities in third-party components. Dependency-Track integrates natively with the OSS Index service to provide highly accurate results. Use of this analyzer requires a valid PackageURL for the components being analyzed.", "analyzer_ossindex_enable": "Enable OSS Index analyzer", "analyzer_snyk_alias_sync_warning": "Snyk does not differentiate between related and identical vulnerabilities. Proceed with caution.", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 0e5e9b5be..56a029b4a 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -16,6 +16,9 @@ "analyzer_internal_fuzzy_enable": "Habilite la coincidencia de CPE difusa. Ayuda con datos NVD inconsistentes, destacando los riesgos faltantes pero también aumentando los falsos positivos.", "analyzer_internal_fuzzy_exclude_internal": "Habilite la coincidencia difusa de CPE en componentes internos", "analyzer_internal_fuzzy_exclude_purl": "Habilite la coincidencia de CPE difusa en componentes que tienen una URL de paquete (PURL) definida", + "analyzer_internal_deduplication_enable": "Activar Desduplicacion de alias", + "analyzer_internal_deduplication_desc": "La desduplicación detecta y evita entradas duplicadas de las vulnerabilidades auditadas. Asegura que solo se muestre una instancia de una determinada vulnerabilidad. Las mismas vulnerabilidades se colocan en la sección de Alias. La siguiente lista le permite priorizar una fuente sobre otra.", + "analyzer_internal_deduplication_warning": "Esto no afectará a las vulnerabilidades atribuidas previamente a sus componentes.", "analyzer_ossindex_desc": "OSS Index es un servicio proporcionado por Sonatype que identifica vulnerabilidades en componentes de terceros. Dependency-Track se integra de forma nativa con el servicio OSS Index para proporcionar resultados altamente precisos. El uso de este analizador requiere un PackageURL válido para los componentes que se analizan.", "analyzer_ossindex_enable": "Habilitar el analizador de índice OSS", "analyzer_snyk_alias_sync_warning": "Snyk no diferencia entre vulnerabilidades relacionadas e idénticas. Proceda con precaución.", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 2c14ec66e..9ff659ed1 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -16,6 +16,9 @@ "analyzer_internal_fuzzy_enable": "Activez la correspondance CPE floue. Aide à gérer les données NVD incohérentes, en mettant en évidence les risques manquants mais en augmentant également les faux positifs", "analyzer_internal_fuzzy_exclude_internal": "Activer la correspondance CPE floue sur les composants internes", "analyzer_internal_fuzzy_exclude_purl": "Activer la correspondance CPE floue sur les composants pour lesquels une URL de package (PURL) est définie", + "analyzer_internal_deduplication_enable": "Activer la déduplication des Alias", + "analyzer_internal_deduplication_desc": "La déduplication détecte et évite les entrées en double des vulnérabilités auditées. Elle garantit qu'une seule instance d'une vulnérabilité spécifique est affichée. Les mêmes vulnérabilités sont regroupées dans la section Alias. La liste suivante vous permet de prioriser une source par rapport à une autre.", + "analyzer_internal_deduplication_warning": "Cela n'affectera pas les vulnérabilités attribuées précédemment à vos composants.", "analyzer_ossindex_desc": "OSS Index est un service fourni par Sonatype qui identifie les vulnérabilités des composants tiers. Dependency-Track s'intègre nativement au service OSS Index pour fournir des résultats très précis. L'utilisation de cet analyseur nécessite une PackageURL valide pour les composants analysés.", "analyzer_ossindex_enable": "Activer l'analyseur d'index OSS", "analyzer_snyk_alias_sync_warning": "Snyk ne fait pas de différence entre les vulnérabilités liées et identiques. Procéder avec prudence.", diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json index f97d29237..56571b557 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -16,6 +16,9 @@ "analyzer_internal_fuzzy_enable": "फ़ज़ी CPE मिलान सक्षम करें। असंगत NVD डेटा के साथ मदद करता है, छूटे हुए जोखिमों को उजागर करता है लेकिन झूठी सकारात्मकता को भी बढ़ाता है", "analyzer_internal_fuzzy_exclude_internal": "आंतरिक घटकों पर फ़ज़ी CPE मिलान सक्षम करें", "analyzer_internal_fuzzy_exclude_purl": "उन घटकों पर फ़ज़ी CPE मिलान सक्षम करें जिनमें पैकेज URL (PURL) परिभाषित है", + "analyzer_internal_deduplication_enable": "एलायस डीडप्लिकेशन सक्षम करें", + "analyzer_internal_deduplication_desc": "डीडप्लिकेशन ऑडिट की गई कमजोरियों के डुप्लीकेट एंट्रियों की पहचान करता है और उन्हें रोकता है। यह सुनिश्चित करता है कि केवल एक निर्दिष्ट कमजोरी की एक प्रतिष्ठा दिखाई दी जाती है। समान कमजोरियाँ एलायस भाग में स्थान लेती हैं। निम्न सूची आपको एक स्रोत को दूसरे से प्राथमिकता देने की अनुमति देती है।", + "analyzer_internal_deduplication_warning": "इससे पहले किये गए कम्पोनेंट्स की वूलनरेबिलिटीज़ पर कोई प्रभाव नहीं होगा।", "analyzer_ossindex_desc": "OSS इंडेक्स सोनाटाइप द्वारा प्रदान की जाने वाली एक सेवा है जो तीसरे पक्ष के घटकों में कमज़ोरियों की पहचान करती है। डिपेंडेंसी-ट्रैक अत्यधिक सटीक परिणाम प्रदान करने के लिए OSS इंडेक्स सेवा के साथ मूल रूप से एकीकृत होता है। इस विश्लेषक के उपयोग के लिए विश्लेषण किए जा रहे घटकों के लिए एक वैध पैकेजURL की आवश्यकता होती है।", "analyzer_ossindex_enable": "OSS इंडेक्स विश्लेषक सक्षम करें", "analyzer_snyk_alias_sync_warning": "Snyk संबंधित और समान कमज़ोरियों के बीच अंतर नहीं करता है। सावधानी से आगे बढ़ें।", diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index ab18fcf82..1c27ec3fc 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -16,6 +16,9 @@ "analyzer_internal_fuzzy_enable": "Abilita la corrispondenza CPE fuzzy. Aiuta con dati NVD incoerenti, evidenziando i rischi mancanti ma anche aumentando i falsi positivi", "analyzer_internal_fuzzy_exclude_internal": "Abilita la corrispondenza CPE fuzzy sui componenti interni", "analyzer_internal_fuzzy_exclude_purl": "Abilita la corrispondenza CPE fuzzy sui componenti per cui è definito un URL del pacchetto (PURL).", + "analyzer_internal_deduplication_enable": "Abilita deduplicazione degli Alias", + "analyzer_internal_deduplication_desc": "La deduplicazione rileva ed evita le voci duplicate delle vulnerabilità nell'audit. In questo modo, assicura che sia visualizzata solo un'istanza di una determinata vulnerabilità. Le stesse vulnerabilità vengono collocate nella sezione degli Alias. Di seguito è possibile prioritizzare una fonte rispetto ad un'altra.", + "analyzer_internal_deduplication_warning": "Ciò non influirà sulle vulnerabilità assegnate precedentemente ai componenti.", "analyzer_ossindex_desc": "OSS Index è un servizio fornito da Sonatype che identifica le vulnerabilità nei componenti di terze parti. Dependency-Track si integra nativamente con il servizio OSS Index per fornire risultati altamente accurati. L'utilizzo di questo analizzatore richiede un PackageURL valido per i componenti da analizzare.", "analyzer_ossindex_enable": "Abilita l'analizzatore dell'indice OSS", "analyzer_snyk_alias_sync_warning": "Snyk non fa distinzione tra vulnerabilità correlate e identiche. Procedi con cautela.", diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index 95ef3b57b..36f605bfb 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -16,6 +16,9 @@ "analyzer_internal_fuzzy_enable": "ファジーCPEマッチングを有効にします。一貫性のないNVDデータに役立ち、欠落しているリスクを強調しますが、誤検知も増加します。", "analyzer_internal_fuzzy_exclude_internal": "内部コンポーネントのファジーCPEマッチングを有効にする", "analyzer_internal_fuzzy_exclude_purl": "パッケージ URL (PURL) が定義されているコンポーネントでファジー CPE マッチングを有効にする", + "analyzer_internal_deduplication_enable": "エイリアスの重複排除を有効にする", + "analyzer_internal_deduplication_desc": "重複排除は、監査対象の脆弱性の重複エントリを検出し回避します。特定の脆弱性のインスタンスが表示されるようにします。同じ脆弱性は、エイリアスセクションに配置されます。以下のリストでは、一つのソースを他のソースよりも優先的に処理することができます。", + "analyzer_internal_deduplication_warning": "これにより、以前にコンポーネントに割り当てられた脆弱性には影響しません。", "analyzer_ossindex_desc": "OSS Index は、サードパーティ コンポーネントの脆弱性を識別する Sonatype が提供するサービスです。Dependency-Track は OSS Index サービスとネイティブに統合され、非常に正確な結果を提供します。このアナライザーを使用するには、分析対象のコンポーネントの有効な PackageURL が必要です。", "analyzer_ossindex_enable": "OSSインデックスアナライザーを有効にする", "analyzer_snyk_alias_sync_warning": "Snyk は関連する脆弱性と同一の脆弱性を区別しません。注意して進めてください。", diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index 015ccc468..29921309f 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -16,6 +16,9 @@ "analyzer_internal_fuzzy_enable": "Włącz rozmyte dopasowanie CPE. Pomaga w przypadku niespójnych danych NVD, podkreślając brakujące ryzyko, ale także zwiększając liczbę fałszywych alarmów", "analyzer_internal_fuzzy_exclude_internal": "Włącz rozmyte dopasowanie CPE w komponentach wewnętrznych", "analyzer_internal_fuzzy_exclude_purl": "Włącz rozmyte dopasowanie CPE w komponentach, które mają zdefiniowany adres URL pakietu (PURL).", + "analyzer_internal_deduplication_enable": "Włącz duplikację aliasów", + "analyzer_internal_deduplication_desc": "Duplikacja sprawdza i unika powtarzających się wpisów dotyczących podatności w audycji. Zapewnia, że jest wyświetlana tylko jedna instancja danej podatności. Te same podatności są umieszczane w sekcji Aliasów. Poniższa lista umożliwia ustalenie priorytetu dla jednego źródła względem drugiego.", + "analyzer_internal_deduplication_warning": "To nie wpłynie na wcześniej przypisane podatności do Twoich komponentów.", "analyzer_ossindex_desc": "Indeks OSS to usługa świadczona przez Sonatype, która identyfikuje luki w komponentach innych firm. Zależność-Track natywnie integruje się z usługą indeksu OSS, aby zapewnić bardzo dokładne wyniki. Korzystanie z tego analizatora wymaga prawidłowego adresu URL pakietu dla analizowanych komponentów.", "analyzer_ossindex_enable": "Włącz analizator indeksu OSS", "analyzer_snyk_alias_sync_warning": "Snyk nie rozróżnia powiązanych i identycznych luk w zabezpieczeniach. Postępuj ostrożnie.", diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index e09f4ab92..0cec01721 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -16,6 +16,9 @@ "analyzer_internal_fuzzy_enable": "Ative a correspondência difusa de CPE. Ajuda com dados inconsistentes de NVD, destacando riscos ausentes, mas também aumentando falsos positivos", "analyzer_internal_fuzzy_exclude_internal": "Habilite a correspondência difusa de CPE em componentes internos", "analyzer_internal_fuzzy_exclude_purl": "Habilite a correspondência difusa de CPE em componentes que possuem um URL de pacote (PURL) definido", + "analyzer_internal_deduplication_enable": "Ativar deduplicação de alias", + "analyzer_internal_deduplication_desc": "A deduplicação detecta e evita entradas duplicadas das vulnerabilidades auditadas. Garante que apenas uma instância de uma determinada vulnerabilidade seja exibida. As mesmas vulnerabilidades são colocadas na seção de Alias. A lista a seguir permite priorizar uma fonte em relação a outra.", + "analyzer_internal_deduplication_warning": "Isso não afetará as vulnerabilidades atribuídas anteriormente aos seus componentes.", "analyzer_ossindex_desc": "OSS Index é um serviço prestado pela Sonatype que identifica vulnerabilidades em componentes de terceiros. Dependency-Track integra-se nativamente ao serviço OSS Index para fornecer resultados altamente precisos. O uso deste analisador requer um PackageURL válido para os componentes que estão sendo analisados.", "analyzer_ossindex_enable": "Habilitar analisador de índice OSS", "analyzer_snyk_alias_sync_warning": "Snyk não diferencia entre vulnerabilidades relacionadas e idênticas. Prossiga com cuidado.", diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json index acbe4458e..a372a1a06 100644 --- a/src/i18n/locales/pt.json +++ b/src/i18n/locales/pt.json @@ -16,6 +16,9 @@ "analyzer_internal_fuzzy_enable": "Ative a correspondência difusa de CPE. Ajuda com dados inconsistentes de NVD, destacando riscos ausentes, mas também aumentando falsos positivos", "analyzer_internal_fuzzy_exclude_internal": "Habilite a correspondência difusa de CPE em componentes internos", "analyzer_internal_fuzzy_exclude_purl": "Habilite a correspondência difusa de CPE em componentes que possuem um URL de pacote (PURL) definido", + "analyzer_internal_deduplication_enable": "Ativar deduplicação de Alias", + "analyzer_internal_deduplication_desc": "A deduplicação deteta e evita entradas duplicadas das vulnerabilidades de auditoria. Garante que apenas uma instância de uma determinada vulnerabilidade seja exibida. As mesmas vulnerabilidades são colocadas na seção de Alias. A seguinte lista permite priorizar uma fonte sobre a outra.", + "analyzer_internal_deduplication_warning": "Isso não afetará as vulnerabilidades atribuídas anteriormente aos seus componentes.", "analyzer_ossindex_desc": "OSS Index é um serviço prestado pela Sonatype que identifica vulnerabilidades em componentes de terceiros. Dependency-Track integra-se nativamente ao serviço OSS Index para fornecer resultados altamente precisos. O uso deste analisador requer um PackageURL válido para os componentes que estão sendo analisados.", "analyzer_ossindex_enable": "Habilitar analisador de índice OSS", "analyzer_snyk_alias_sync_warning": "Snyk não diferencia entre vulnerabilidades relacionadas e idênticas. Prossiga com cuidado.", diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index 75ce5419b..f1f085a3a 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -16,6 +16,9 @@ "analyzer_internal_fuzzy_enable": "Включите нечеткое сопоставление CPE. Помогает в работе с противоречивыми данными ПНВ, подчеркивая недостающие риски, но также увеличивая количество ложных срабатываний.", "analyzer_internal_fuzzy_exclude_internal": "Включить нечеткое сопоставление CPE на внутренних компонентах.", "analyzer_internal_fuzzy_exclude_purl": "Включите нечеткое сопоставление CPE для компонентов, для которых определен URL-адрес пакета (PURL).", + "analyzer_internal_deduplication_enable": "Включить дедупликацию псевдонимов", + "analyzer_internal_deduplication_desc": "Дедупликация обнаруживает и избегает дублирования записей из уязвимостей аудита. Она гарантирует, что отображается только один экземпляр определенной уязвимости. Такие уязвимости помещаются в раздел Псевдонимы. В следующем списке вы можете указать приоритет одного источника перед другим.", + "analyzer_internal_deduplication_warning": "Это не повлияет на уязвимости, ранее причисленные к вашим компонентам.", "analyzer_ossindex_desc": "OSS Index — это услуга, предоставляемая Sonatype, которая выявляет уязвимости в сторонних компонентах. Dependency-Track изначально интегрируется со службой индексирования OSS, обеспечивая высокоточные результаты. Для использования этого анализатора требуется действительный PackageURL для анализируемых компонентов.", "analyzer_ossindex_enable": "Включить анализатор индекса OSS", "analyzer_snyk_alias_sync_warning": "Сник не делает различий между родственными и идентичными уязвимостями. Действовать с осторожностью.", diff --git a/src/i18n/locales/uk-UA.json b/src/i18n/locales/uk-UA.json index 453c09a8b..6fa6672ac 100644 --- a/src/i18n/locales/uk-UA.json +++ b/src/i18n/locales/uk-UA.json @@ -16,6 +16,9 @@ "analyzer_internal_fuzzy_enable": "Увімкнути нечітку відповідність CPE. \nДопомагає з неузгодженими даними NVD, висвітлюючи відсутні ризики, але також збільшуючи помилкові спрацьовування", "analyzer_internal_fuzzy_exclude_internal": "Увімкніть нечітку відповідність CPE на внутрішніх компонентах", "analyzer_internal_fuzzy_exclude_purl": "Увімкніть нечітку відповідність CPE для компонентів, для яких визначено URL-адресу пакета (PURL).", + "analyzer_internal_deduplication_enable": "Увімкнути дедублікацію псевдонімів", + "analyzer_internal_deduplication_desc": "Дедублікація виявляє та уникає повторних записів уразливостей аудиту. Вона забезпечує те, що відображається лише один екземпляр певної уразливості. Такі уразливості розміщуються у розділі Псевдоніми. У наступному списку ви можете встановити пріоритет одного джерела перед іншим.", + "analyzer_internal_deduplication_warning": "Це не вплине на раніше призначені уразливості для ваших компонентів.", "analyzer_ossindex_desc": "OSS Index – це послуга, яку надає Sonatype і яка визначає вразливості в компонентах сторонніх розробників. \nDependency-Track інтегрується зі службою OSS Index для надання високоточних результатів. \nДля використання цього аналізатора потрібна дійсна URL-адреса пакета для компонентів, що аналізуються.", "analyzer_ossindex_enable": "Увімкнути аналізатор OSS Index", "analyzer_snyk_alias_sync_warning": "Snyk не розрізняє споріднені та ідентичні вразливості. \nДійте обережно.", diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json index 36d6a8a38..9f640f986 100644 --- a/src/i18n/locales/zh.json +++ b/src/i18n/locales/zh.json @@ -16,6 +16,9 @@ "analyzer_internal_fuzzy_enable": "启用模糊 CPE 匹配。有助于解决 NVD 数据不一致的问题,突出缺失的风险,但也会增加误报", "analyzer_internal_fuzzy_exclude_internal": "在内部组件上启用模糊 CPE 匹配", "analyzer_internal_fuzzy_exclude_purl": "对已定义包 URL (PURL) 的组件启用模糊 CPE 匹配", + "analyzer_internal_deduplication_enable": "启用别名去重", + "analyzer_internal_deduplication_desc": "去重功能可检测和避免重复的审核漏洞条目。它确保仅显示某个漏洞的一个实例。相同漏洞将放置在别名部分。以下列表允许您优先选择一种来源而不是另一种。", + "analyzer_internal_deduplication_warning": "这不会影响以前分配给组件的漏洞。", "analyzer_ossindex_desc": "OSS Index 是 Sonatype 提供的一项服务,可识别第三方组件中的漏洞。Dependency-Track 与 OSS Index 服务原生集成,可提供高度准确的结果。使用此分析器需要被分析组件的有效 PackageURL。", "analyzer_ossindex_enable": "启用 OSS 索引分析器", "analyzer_snyk_alias_sync_warning": "Snyk 不区分相关漏洞和相同漏洞。请谨慎操作。", diff --git a/src/shared/api.json b/src/shared/api.json index 24478214f..3d04ba23a 100644 --- a/src/shared/api.json +++ b/src/shared/api.json @@ -55,5 +55,6 @@ "URL_ACL_MAPPING": "api/v1/acl/mapping", "URL_ACL_TEAM": "api/v1/acl/team", "URL_VEX": "api/v1/vex", - "URL_OSV_ECOSYSTEM": "api/v1/integration/osv/ecosystem" + "URL_OSV_ECOSYSTEM": "api/v1/integration/osv/ecosystem", + "URL_VULN_SOURCES": "api/v1/integration/sources" } diff --git a/src/views/administration/analyzers/InternalAnalyzer.vue b/src/views/administration/analyzers/InternalAnalyzer.vue index f9e6b9910..7bcd7e143 100644 --- a/src/views/administration/analyzers/InternalAnalyzer.vue +++ b/src/views/administration/analyzers/InternalAnalyzer.vue @@ -32,8 +32,56 @@ label v-bind="labelIcon" />{{ $t('admin.analyzer_internal_fuzzy_exclude_internal') }} -
{{ $t('admin.analyzer_internal_desc') }} +
+

Avoid Duplicates with alias

+
+

{{ $t('admin.analyzer_internal_deduplication_desc') }}

+

+   + {{ $t('admin.analyzer_internal_deduplication_warning') }} +

+ + {{ $t('admin.analyzer_internal_deduplication_enable') }} +
+ +
+ + + + + + +
+
+
{{ @@ -47,6 +95,8 @@ import { Switch as cSwitch } from '@coreui/vue'; import common from '../../../shared/common'; import configPropertyMixin from '../mixins/configPropertyMixin'; +import ActionableListGroupItem from '../../components/ActionableListGroupItem.vue'; +import draggable from 'vuedraggable'; export default { mixins: [configPropertyMixin], @@ -55,6 +105,8 @@ export default { }, components: { cSwitch, + ActionableListGroupItem, + draggable, }, data() { return { @@ -62,13 +114,41 @@ export default { scannerCpeFuzzyEnableInput: false, scannerCpeFuzzyExcludePurlInput: true, scannerCpeFuzzyExcludeInternalInput: true, + deduplicationEnabled: false, + sourceConfig: null, + enabledSources: [], + positions: [], labelIcon: { dataOn: '\u2713', dataOff: '\u2715', }, + info: null, }; }, methods: { + updatePositions() { + this.positions = this.enabledSources.reduce( + (accumulator, item, index) => ({ ...accumulator, [item]: index }), + {}, + ); + }, + updateSources() { + for (let i = 0; i < this.info.length; i++) { + let source = this.info[i]; + + if (!this.enabledSources.includes(source)) { + this.enabledSources.push(source); + } + } + // Remove sources from enabledSources that are not in info + for (let i = this.enabledSources.length - 1; i >= 0; i--) { + let source = this.enabledSources[i]; + + if (!this.info.includes(source)) { + this.enabledSources.splice(i, 1); + } + } + }, saveChanges: function () { this.updateConfigProperties([ { @@ -95,6 +175,16 @@ export default { !this.scannerCpeFuzzyEnableInput || !this.scannerCpeFuzzyExcludeInternalInput, }, + { + groupName: 'scanner', + propertyName: 'internal.deduplication.enabled', + propertyValue: this.deduplicationEnabled, + }, + { + groupName: 'scanner', + propertyName: 'internal.deduplication.list', + propertyValue: this.enabledSources.join(';'), + }, ]); if (!this.scannerCpeFuzzyEnableInput) { this.scannerCpeFuzzyExcludePurlInput = false; @@ -128,9 +218,53 @@ export default { item.propertyValue, ); break; + case 'internal.deduplication.enabled': + this.deduplicationEnabled = common.toBoolean(item.propertyValue); + break; + case 'internal.deduplication.list': + this.sourceConfig = item.propertyValue; + this.deduplicationEnabled = + this.deduplicationEnabled && + this.sourceConfig != null && + this.sourceConfig !== ''; + break; } } + this.enabledSources = this.sourceConfig + .split(';') + .map((source) => source.trim()); }); }, + mounted() { + this.axios + .get(`${this.$api.BASE_URL}/${this.$api.URL_VULN_SOURCES}`) + .then((response) => { + this.info = response.data; + this.updateSources(); + }); + }, }; + + diff --git a/src/views/components/ActionableListGroupItem.vue b/src/views/components/ActionableListGroupItem.vue index 620e056d9..0ff37c92e 100644 --- a/src/views/components/ActionableListGroupItem.vue +++ b/src/views/components/ActionableListGroupItem.vue @@ -1,5 +1,10 @@ @@ -23,9 +37,22 @@ export default { props: { value: String, + index: Number, tooltip: String, addIcon: Boolean, deleteIcon: Boolean, + dragIcon: { + type: Boolean, + default: false, + }, + priority: { + type: Boolean, + default: false, + }, + refresh: { + type: Boolean, + default: false, + }, variant: String, href: String, }, @@ -54,7 +81,39 @@ export default { .action-icon .fa-trash-o { color: var(--danger); } +.action-icon .fa-refresh { + color: var(--primary); +} .list-group-item:last-child { margin-bottom: -1px; } +.drag-handle { + display: inline-block; + margin-right: 6px; +} +.hovertext { + position: relative; + border-bottom: 1px dotted black; +} +.hovertext:before { + content: attr(data-hover); + visibility: hidden; + opacity: 0; + width: 140px; + background-color: black; + color: #fff; + text-align: center; + border-radius: 5px; + padding: 5px 0; + transition: opacity 1s ease-in-out; + + position: absolute; + z-index: 1; + left: 0; + top: 110%; +} +.hovertext:hover:before { + opacity: 1; + visibility: visible; +}