From 3763a37cfae7ebbc90304b675c1341957ab03dca Mon Sep 17 00:00:00 2001 From: Abdul Wahab Shah Date: Thu, 9 Jul 2026 11:44:30 +0200 Subject: [PATCH 1/3] Add admin UI and create-flow integration for custom vulnerability IDs Frontend companion to the template-based vulnerability ID generator: - New Administration -> Configuration -> Customization page for the vulnerability ID settings: use-custom toggle (off by default), org code, default project code, template editor with clickable placeholder badges, sequence reset policy, sequence padding, and a live preview of the generated identifier. - New customization plugin exposing the /api/v1/customization/vulnerability-id endpoints with in-memory caching; settings are preloaded once after authentication and shared across components. - The create-vulnerability modal now previews the next identifier via GET /api/v1/vulnerability/vulnId/preview without reserving it. When the user keeps the auto-generated identifier, the create request omits vulnId so the server allocates it atomically inside the create transaction, with a single retry on a duplicate-identifier conflict. A manually entered identifier behaves exactly as before. - en.json keys only; other locales are managed via Crowdin. Signed-off-by: Abdul Wahab Shah --- src/App.vue | 15 +- src/i18n/locales/en.json | 21 ++ src/main.js | 2 + src/plugins/customization.js | 169 +++++++++ src/router/index.js | 13 + src/shared/api.json | 1 + src/views/administration/AdminMenu.vue | 5 + .../configuration/Customization.vue | 330 ++++++++++++++++++ .../VulnerabilityCreateVulnerabilityModal.vue | 195 ++++++++--- 9 files changed, 708 insertions(+), 43 deletions(-) create mode 100644 src/plugins/customization.js create mode 100644 src/views/administration/configuration/Customization.vue diff --git a/src/App.vue b/src/App.vue index fdb2b3f37..f9ce893c6 100644 --- a/src/App.vue +++ b/src/App.vue @@ -23,6 +23,16 @@ export default { } }; + const preloadCustomizationIfAuthenticated = (jwt) => { + if ( + jwt && + this.$customization && + typeof this.$customization.preloadAll === 'function' + ) { + this.$customization.preloadAll(); + } + }; + EventBus.$on('authenticated', (jwt) => { if (jwt) { sessionStorage.setItem('token', jwt); @@ -30,6 +40,7 @@ export default { sessionStorage.removeItem('token'); } setJwtForAjax(jwt); + preloadCustomizationIfAuthenticated(jwt); }); // ensure $.ajaxSettings.headers exists @@ -37,7 +48,9 @@ export default { headers: {}, }); - setJwtForAjax(getToken()); + const existingToken = getToken(); + setJwtForAjax(existingToken); + preloadCustomizationIfAuthenticated(existingToken); // Send XHR cross-site cookie credentials if (this.$api.WITH_CREDENTIALS) { diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 12975b978..70f73d12e 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -68,6 +68,7 @@ "configuration_test": "Configuration Test", "consumer_key": "Consumer key", "consumer_secret": "Consumer secret", + "customization": "Customization", "cpan": "CPAN", "create_alert": "Create Alert", "create_ldap_user": "Create LDAP User", @@ -200,6 +201,8 @@ "oidc_groups": "OpenID Connect Groups", "oidc_users": "OpenID Connect Users", "old_key_format": "This API key is outdated and should be updated soon for continued functionality!", + "organization_code": "Organization Name", + "organization_code_required": "Organization Name is required.", "oss_index": "Sonatype OSS Index", "osv_advisories": "Google OSV Advisories (Beta)", "password": "Password (or access token)", @@ -213,7 +216,9 @@ "portfolio_access_control": "Portfolio Access Control", "preferences": "Preferences", "preview": "Preview", + "preview_id": "Preview Vulnerability ID", "project_access": "Project access", + "project_code": "Project Name", "publisher": "Publisher", "publisher_class": "Publisher class", "python": "Python", @@ -242,6 +247,11 @@ "required_password": "Password is required", "required_team_name": "Team name is required", "required_username": "Username is required", + "reset_policy_daily": "Daily", + "reset_policy_monthly": "Monthly", + "reset_policy_never": "Never", + "reset_policy_yearly": "Yearly", + "reset_to_defaults": "Reset to defaults", "restore_default_template": "Restore default templates", "scope": "Scope", "select_ecosystem": "Select Ecosystems", @@ -251,6 +261,10 @@ "select_project": "Select Project", "select_team": "Select Team", "select_team_as_recipient": "Select team as recipient", + "sequence_padding": "Sequence Padding", + "sequence_padding_help": "Minimum number of digits for the sequence number (e.g. 4 → 0001).", + "sequence_reset_policy": "Sequence Reset Policy", + "sequence_reset_policy_help": "Defines when the numeric sequence resets to 1.", "snyk": "Snyk (Beta)", "subject_identifier": "Subject Identifier", "submit": "Submit", @@ -289,11 +303,18 @@ "token": "Token", "trivy": "Trivy", "url": "URL", + "use_custom_id_generator": "Use custom sequential ID generator", + "use_custom_id_generator_off_help": "Disabled: IDs use the default Dependency-Track format (e.g. INT-xxxx-xxxx-xxxx).", + "use_custom_id_generator_on_help": "Enabled: IDs are generated using your configured template and sequence.", "user_created": "User created", "user_deleted": "User deleted", "username": "Username", "vuln_sources": "Vulnerability Sources", "vulndb": "VulnDB", + "vulnerability_id_generation": "Internal Vulnerability ID Generation", + "vulnerability_id_template": "Vulnerability ID Template", + "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", + "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "Enable vulnerability alias synchronization", "vulnsource_alias_sync_enable_tooltip": "Alias data can help in identifying identical vulnerabilities across multiple databases. If the source provides this data, synchronize it with Dependency-Track's database.", "vulnsource_github_advisories_desc": "GitHub Advisories (GHSA) is a database of CVEs and GitHub-originated security advisories affecting the open source world. Dependency-Track integrates with GHSA by mirroring advisories via GitHub's public GraphQL API. The mirror is refreshed daily, or upon restart of the Dependency-Track instance. A personal access token (PAT) is required in order to authenticate with GitHub, but no scopes need to be assigned to it.", diff --git a/src/main.js b/src/main.js index 1fdfa468c..e89405a98 100644 --- a/src/main.js +++ b/src/main.js @@ -9,6 +9,7 @@ import router from './router'; import i18n from './i18n'; import './validation'; import './plugins/table.js'; +import customizationPlugin from './plugins/customization.js'; import axios from 'axios'; import VueAxios from 'vue-axios'; import vueDebounce from 'vue-debounce'; @@ -30,6 +31,7 @@ Vue.use(VueToastr, { defaultCloseOnHover: false, }); Vue.use(vueDebounce, { defaultTime: '750ms' }); +Vue.use(customizationPlugin); Vue.use(VuePageTitle, { prefix: 'Dependency-Track -', router }); Vue.prototype.$api = api; diff --git a/src/plugins/customization.js b/src/plugins/customization.js new file mode 100644 index 000000000..c25d26867 --- /dev/null +++ b/src/plugins/customization.js @@ -0,0 +1,169 @@ +/** + * This file is part of Dependency-Track. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * Copyright (c) OWASP Foundation. All Rights Reserved. + */ + +import axios from 'axios'; + +/** + * Plugin for the Customization API endpoints. + * Provides methods for interacting with customization settings (vulnerability IDs) + * with in-memory caching so settings are fetched once and shared across components. + */ +export default { + install(vueApp) { + // Cache for vulnerability ID settings - loaded once, used everywhere + let cachedVulnIdSettings = null; + let settingsLoaded = false; + let loadingPromise = null; + + const defaultVulnIdSettings = () => ({ + useCustomId: false, + orgCode: 'DT', + projectCode: 'project', + template: '{ORG_CODE}-{YYYY}-{SEQUENCE}', + resetPolicy: 'YEARLY', + sequencePadding: 5, + }); + + const customizationService = { + /** + * Get cached vulnerability ID settings (instant access). + * Returns cached settings or defaults if not yet loaded. + * @returns {Object} Cached settings object + */ + getCachedVulnIdSettings() { + if (cachedVulnIdSettings) { + return cachedVulnIdSettings; + } + return defaultVulnIdSettings(); + }, + + /** + * Check if settings have been loaded. + * @returns {boolean} True if settings are loaded + */ + isSettingsLoaded() { + return settingsLoaded; + }, + + /** + * Preload vulnerability ID settings (call after authentication). + * Fetches settings from the API and caches them for instant access. + * @returns {Promise} Resolves when settings are loaded + */ + async preloadVulnIdSettings() { + if (settingsLoaded) { + return cachedVulnIdSettings; + } + if (loadingPromise) { + return loadingPromise; + } + loadingPromise = this.getVulnerabilityIdSettings() + .then((response) => { + if (response && response.data) { + cachedVulnIdSettings = response.data; + settingsLoaded = true; + } + return cachedVulnIdSettings; + }) + .catch((error) => { + console.warn( + 'Failed to preload vulnerability ID settings, using defaults:', + error, + ); + cachedVulnIdSettings = defaultVulnIdSettings(); + settingsLoaded = true; + return cachedVulnIdSettings; + }) + .finally(() => { + loadingPromise = null; + }); + return loadingPromise; + }, + + /** + * Preload all customization settings after authentication succeeds. + * Uses allSettled so one failing endpoint does not block the rest. + * @returns {Promise} + */ + async preloadAll() { + await Promise.allSettled([this.preloadVulnIdSettings()]); + }, + + /** + * Invalidate cache (call when admin updates settings). + */ + invalidateCache() { + cachedVulnIdSettings = null; + settingsLoaded = false; + }, + + /** + * Get vulnerability ID configuration settings. + * @returns {Promise} Response containing orgCode, template, resetPolicy, sequencePadding + */ + getVulnerabilityIdSettings() { + return axios.get( + vueApp.prototype.$api.BASE_URL + + '/' + + vueApp.prototype.$api.URL_CUSTOMIZATION + + '/vulnerability-id', + { + withCredentials: vueApp.prototype.$api.WITH_CREDENTIALS, + headers: { + 'Content-Type': vueApp.prototype.$api.CONTENT_TYPE_JSON, + }, + }, + ); + }, + + /** + * Update vulnerability ID configuration settings. + * @param {Object} settings - Configuration object with orgCode, template, resetPolicy, sequencePadding + * @returns {Promise} Response from update operation + */ + updateVulnerabilityIdSettings(settings) { + // Invalidate cache when settings are updated + this.invalidateCache(); + return axios + .put( + vueApp.prototype.$api.BASE_URL + + '/' + + vueApp.prototype.$api.URL_CUSTOMIZATION + + '/vulnerability-id', + settings, + { + withCredentials: vueApp.prototype.$api.WITH_CREDENTIALS, + headers: { + 'Content-Type': vueApp.prototype.$api.CONTENT_TYPE_JSON, + }, + }, + ) + .then((response) => { + // Update cache with new settings + cachedVulnIdSettings = settings; + settingsLoaded = true; + return response; + }); + }, + }; + + // Register customization service as Vue plugin property + vueApp.prototype.$customization = customizationService; + }, +}; diff --git a/src/router/index.js b/src/router/index.js index cf90116c4..988c870b9 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -40,6 +40,8 @@ const TaskScheduler = () => const Telemetry = () => import('@/views/administration/configuration/Telemetry'); const Search = () => import('@/views/administration/configuration/Search'); +const Customization = () => + import('@/views/administration/configuration/Customization'); const Experimental = () => import('@/views/administration/configuration/Experimental'); @@ -387,6 +389,17 @@ function configRoutes() { permission: 'SYSTEM_CONFIGURATION', }, }, + { + path: 'configuration/customization', + component: Customization, + meta: { + title: i18n.t('message.administration'), + i18n: 'message.administration', + sectionPath: '/admin', + sectionName: 'Admin', + permission: 'SYSTEM_CONFIGURATION', + }, + }, { path: 'configuration/welcomeMessage', component: WelcomeMessage, diff --git a/src/shared/api.json b/src/shared/api.json index b3b39f426..99c095e68 100644 --- a/src/shared/api.json +++ b/src/shared/api.json @@ -19,6 +19,7 @@ "URL_CALCULATOR_OWASP": "api/v1/calculator/owasp", "URL_COMPONENT": "api/v1/component", "URL_CONFIG_PROPERTY": "api/v1/configProperty", + "URL_CUSTOMIZATION": "api/v1/customization", "URL_CWE": "api/v1/cwe", "URL_DEPENDENCY_GRAPH": "api/v1/dependencyGraph", "URL_FINDING": "api/v1/finding", diff --git a/src/views/administration/AdminMenu.vue b/src/views/administration/AdminMenu.vue index eeea710df..e114d72de 100644 --- a/src/views/administration/AdminMenu.vue +++ b/src/views/administration/AdminMenu.vue @@ -121,6 +121,11 @@ export default { name: this.$t('message.search'), route: 'configuration/search', }, + { + component: 'Customization', + name: this.$t('admin.customization'), + route: 'configuration/customization', + }, { component: 'Experimental', name: this.$t('admin.experimental'), diff --git a/src/views/administration/configuration/Customization.vue b/src/views/administration/configuration/Customization.vue new file mode 100644 index 000000000..5a56583f3 --- /dev/null +++ b/src/views/administration/configuration/Customization.vue @@ -0,0 +1,330 @@ + + + + + diff --git a/src/views/portfolio/vulnerabilities/VulnerabilityCreateVulnerabilityModal.vue b/src/views/portfolio/vulnerabilities/VulnerabilityCreateVulnerabilityModal.vue index 025ae9273..83a4cab13 100644 --- a/src/views/portfolio/vulnerabilities/VulnerabilityCreateVulnerabilityModal.vue +++ b/src/views/portfolio/vulnerabilities/VulnerabilityCreateVulnerabilityModal.vue @@ -18,6 +18,7 @@ input-group-size="mb-3" type="text" v-model="vulnerability.vulnId" + @input="onVulnIdInput" lazy="true" required="true" feedback="true" @@ -1136,6 +1137,10 @@ export default { currentCritical: 7.1, cvssv2Test: null, selectableCwes: [], + cachedGeneratedVulnId: null, + cachedProjectCode: null, + isAutoGeneratedId: false, + isSettingVulnIdProgrammatically: false, vulnerability: { vulnId: null, // This has to be null on initial load so that the vulnId gets populated. source: 'INTERNAL', @@ -1756,52 +1761,158 @@ export default { }, }, methods: { + getCurrentProjectCode: function () { + const settings = + this.$customization && this.$customization.getCachedVulnIdSettings + ? this.$customization.getCachedVulnIdSettings() + : null; + return settings && settings.projectCode ? settings.projectCode : null; + }, + setVulnIdProgrammatically: function (vulnId, isAutoGenerated = false) { + this.isSettingVulnIdProgrammatically = true; + this.vulnerability.vulnId = vulnId; + this.isAutoGeneratedId = isAutoGenerated; + this.isSettingVulnIdProgrammatically = false; + }, + invalidateGeneratedVulnIdCache: function () { + this.cachedGeneratedVulnId = null; + this.cachedProjectCode = null; + this.isAutoGeneratedId = false; + }, + onVulnIdInput: function (value) { + if (this.isSettingVulnIdProgrammatically) { + return; + } + const currentValue = typeof value === 'string' ? value.trim() : value; + if ( + this.isAutoGeneratedId && + this.cachedGeneratedVulnId && + currentValue === this.cachedGeneratedVulnId + ) { + return; + } + this.isAutoGeneratedId = false; + }, + refreshGeneratedVulnId: async function ({ force = false } = {}) { + const projectCode = this.getCurrentProjectCode(); + if ( + !force && + this.cachedGeneratedVulnId && + this.cachedProjectCode === projectCode + ) { + this.setVulnIdProgrammatically(this.cachedGeneratedVulnId, true); + return this.cachedGeneratedVulnId; + } + + const url = `${this.$api.BASE_URL}/${this.$api.URL_VULNERABILITY}/vulnId/preview`; + const params = {}; + if (projectCode) { + params.projectName = projectCode; + } + + try { + const response = await this.axios.get(url, { params }); + const generatedVulnId = response.data; + this.cachedGeneratedVulnId = generatedVulnId; + this.cachedProjectCode = projectCode; + this.setVulnIdProgrammatically(generatedVulnId, true); + return generatedVulnId; + } catch (error) { + console.error('Failed to generate vulnerability ID preview:', error); + this.setVulnIdProgrammatically('', false); + return null; + } + }, + isDuplicateVulnIdError: function (error) { + const apiMessage = error?.response?.data; + return ( + typeof apiMessage === 'string' && + apiMessage.toLowerCase().includes('already exists') + ); + }, onShow: function () { - let url = `${this.$api.BASE_URL}/${this.$api.URL_VULNERABILITY}/vulnId`; - this.axios.get(url).then((response) => { - this.vulnerability.vulnId = response.data; - }); + this.refreshGeneratedVulnId(); }, - createVulnerability: function () { - let url = `${this.$api.BASE_URL}/${this.$api.URL_VULNERABILITY}`; - this.axios - .put(url, { - vulnId: this.vulnerability.vulnId, - source: 'INTERNAL', - title: this.vulnerability.title, - description: this.vulnerability.description, - detail: this.vulnerability.detail, - recommendation: this.vulnerability.recommendation, - references: this.vulnerability.references, - created: this.vulnerability.created, - published: this.vulnerability.published, - updated: this.vulnerability.updated, - severity: this.vulnerability.severity, - cvssV2Vector: this.generateCvssV2Vector(), - cvssV3Vector: this.generateCvssV3Vector(), - cvssV4Vector: this.generateCvssV4Vector(), - owaspRRVector: this.generateOwaspRRVector(), - cwes: this.selectableCwes, - affectedComponents: this.vulnerability.affectedComponents, - }) - .then((response) => { - this.$emit('refreshTable'); - this.$toastr.s(this.$t('message.vulnerability_created')); - this.$router.replace({ - path: - '/vulnerabilities/INTERNAL/' + - encodeURIComponent(this.vulnerability.vulnId), - }); - }) - .catch((error) => { - this.$toastr.w(this.$t('condition.unsuccessful_action')); - }) - .finally(() => { - this.$root.$emit( - 'bv::hide::modal', - 'vulnerabilityCreateVulnerabilityModal', + createVulnerability: async function () { + const url = `${this.$api.BASE_URL}/${this.$api.URL_VULNERABILITY}`; + const requestConfig = {}; + if (this.isAutoGeneratedId) { + const projectCode = this.getCurrentProjectCode(); + if (projectCode) { + requestConfig.params = { projectName: projectCode }; + } + } + + const payload = () => ({ + // When the identifier was auto-generated, omit it so the server + // allocates (and reserves) the identifier inside the create + // transaction. A user-provided identifier is sent as-is. + vulnId: this.isAutoGeneratedId ? null : this.vulnerability.vulnId, + source: 'INTERNAL', + title: this.vulnerability.title, + description: this.vulnerability.description, + detail: this.vulnerability.detail, + recommendation: this.vulnerability.recommendation, + references: this.vulnerability.references, + created: this.vulnerability.created, + published: this.vulnerability.published, + updated: this.vulnerability.updated, + severity: this.vulnerability.severity, + cvssV2Vector: this.generateCvssV2Vector(), + cvssV3Vector: this.generateCvssV3Vector(), + cvssV4Vector: this.generateCvssV4Vector(), + owaspRRVector: this.generateOwaspRRVector(), + cwes: this.selectableCwes, + affectedComponents: this.vulnerability.affectedComponents, + }); + + try { + let response; + try { + response = await this.axios.put( + url, + payload(), + Object.keys(requestConfig).length ? requestConfig : undefined, ); + } catch (error) { + if (this.isAutoGeneratedId && this.isDuplicateVulnIdError(error)) { + // The previewed identifier was taken in the meantime — refresh + // and retry once with a newly generated identifier. + this.invalidateGeneratedVulnIdCache(); + const refreshedVulnId = await this.refreshGeneratedVulnId({ + force: true, + }); + if (refreshedVulnId) { + response = await this.axios.put( + url, + payload(), + Object.keys(requestConfig).length ? requestConfig : undefined, + ); + } else { + throw error; + } + } else { + throw error; + } + } + + const createdVulnId = + response?.data?.vulnId || this.vulnerability.vulnId; + this.$emit('refreshTable'); + this.$toastr.s(this.$t('message.vulnerability_created')); + this.invalidateGeneratedVulnIdCache(); + this.$router.replace({ + path: + '/vulnerabilities/INTERNAL/' + encodeURIComponent(createdVulnId), }); + } catch (error) { + this.$toastr.w(this.$t('condition.unsuccessful_action')); + } finally { + this.$root.$emit( + 'bv::hide::modal', + 'vulnerabilityCreateVulnerabilityModal', + ); + } }, updateCweSelection: function (selections) { this.$root.$emit('bv::hide::modal', 'selectCweModal'); From 734ec0917c353a5da01516e5d7d64395a317a553 Mon Sep 17 00:00:00 2001 From: Abdul wahab Shah <214828401+heyiamwahab236@users.noreply.github.com> Date: Tue, 25 Aug 2026 09:17:41 +0200 Subject: [PATCH 2/3] Add vulnerability ID keys to all locale files The i18n CI check requires translation keys to be present in every locale file. Non-English locales carry the English strings until translated via Crowdin, consistent with other untranslated entries. Signed-off-by: Abdul wahab Shah <214828401+heyiamwahab236@users.noreply.github.com> --- src/i18n/locales/de.json | 21 +++++++++++++++++++++ src/i18n/locales/es.json | 21 +++++++++++++++++++++ src/i18n/locales/fr.json | 21 +++++++++++++++++++++ src/i18n/locales/hi.json | 21 +++++++++++++++++++++ src/i18n/locales/it.json | 21 +++++++++++++++++++++ src/i18n/locales/ja.json | 21 +++++++++++++++++++++ src/i18n/locales/pl.json | 21 +++++++++++++++++++++ src/i18n/locales/pt-BR.json | 21 +++++++++++++++++++++ src/i18n/locales/pt.json | 21 +++++++++++++++++++++ src/i18n/locales/ru.json | 21 +++++++++++++++++++++ src/i18n/locales/uk-UA.json | 21 +++++++++++++++++++++ src/i18n/locales/zh-TW.json | 21 +++++++++++++++++++++ src/i18n/locales/zh.json | 21 +++++++++++++++++++++ 13 files changed, 273 insertions(+) diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index f784d22ea..cf5a199bb 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -78,6 +78,7 @@ "create_team": "Team erstellen", "create_template": "Vorlage erstellen", "create_user": "Benutzer erstellen", + "customization": "Customization", "default": "Standard", "default_language": "Standardsprache", "default_language_desc": "Standardsprache, die für alle verwendet wird, wenn sie keine angegeben haben. \nWenn dies deaktiviert ist, wird die Sprache des Browsers verwendet.", @@ -200,6 +201,8 @@ "oidc_groups": "OpenID Connect-Gruppen", "oidc_users": "OpenID Connect-Benutzer", "old_key_format": "Dieser API -Schlüssel ist veraltet und sollte bald für fortgesetzte Funktionen aktualisiert werden!", + "organization_code": "Organization Name", + "organization_code_required": "Organization Name is required.", "oss_index": "Sonatype OSS-Index", "osv_advisories": "Google OSV Advisories (Beta)", "password": "Passwort (oder Zugriffstoken)", @@ -213,7 +216,9 @@ "portfolio_access_control": "Portfolio-Zugriffskontrolle", "preferences": "Einstellungen", "preview": "Vorschau", + "preview_id": "Preview Vulnerability ID", "project_access": "Projektzugriff", + "project_code": "Project Name", "publisher": "Publisher", "publisher_class": "Publisher-Klasse", "python": "Python", @@ -242,6 +247,11 @@ "required_password": "Passwort wird benötigt", "required_team_name": "Teamname ist erforderlich", "required_username": "Benutzername wird benötigt", + "reset_policy_daily": "Daily", + "reset_policy_monthly": "Monthly", + "reset_policy_never": "Never", + "reset_policy_yearly": "Yearly", + "reset_to_defaults": "Reset to defaults", "restore_default_template": "Standardvorlagen wiederherstellen", "scope": "Scope", "select_ecosystem": "Ökosysteme auswählen", @@ -251,6 +261,10 @@ "select_project": "Projekt auswählen", "select_team": "Team auswählen", "select_team_as_recipient": "Team als Empfänger auswählen", + "sequence_padding": "Sequence Padding", + "sequence_padding_help": "Minimum number of digits for the sequence number (e.g. 4 → 0001).", + "sequence_reset_policy": "Sequence Reset Policy", + "sequence_reset_policy_help": "Defines when the numeric sequence resets to 1.", "snyk": "Snyk (Beta)", "subject_identifier": "Betreffkennung", "submit": "Einreichen", @@ -289,11 +303,18 @@ "token": "Token", "trivy": "Trivy", "url": "URL", + "use_custom_id_generator": "Use custom sequential ID generator", + "use_custom_id_generator_off_help": "Disabled: IDs use the default Dependency-Track format (e.g. INT-xxxx-xxxx-xxxx).", + "use_custom_id_generator_on_help": "Enabled: IDs are generated using your configured template and sequence.", "user_created": "Benutzer erstellt", "user_deleted": "Benutzer gelöscht", "username": "Benutzername", "vuln_sources": "Schwachstellenquellen", "vulndb": "VulnDB", + "vulnerability_id_generation": "Internal Vulnerability ID Generation", + "vulnerability_id_template": "Vulnerability ID Template", + "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", + "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "Synchronisierung von Schwachstellenaliasen aktivieren", "vulnsource_alias_sync_enable_tooltip": "Alias-Daten können dabei helfen, identische Schwachstellen in mehreren Datenbanken zu identifizieren. Wenn die Quelle diese Daten bereitstellt, synchronisieren Sie sie mit der Datenbank von Dependency-Track.", "vulnsource_github_advisories_desc": "GitHub Advisories (GHSA) ist eine Datenbank mit CVEs und von GitHub stammenden Sicherheitshinweisen, die die Open-Source-Welt betreffen. Dependency-Track integriert sich in GHSA, indem Hinweise über die öffentliche GraphQL-API von GitHub gespiegelt werden. Der Spiegel wird täglich oder beim Neustart der Dependency-Track-Instanz aktualisiert. Zur Authentifizierung bei GitHub ist ein persönlicher Zugriffstoken (PAT) erforderlich, ihm müssen jedoch keine Bereiche zugewiesen werden.", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 2599f8132..1e11caa88 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -78,6 +78,7 @@ "create_team": "Crear equipo", "create_template": "Crear plantilla", "create_user": "Crear usuario", + "customization": "Customization", "default": "Por defecto", "default_language": "Idioma predeterminado", "default_language_desc": "Idioma predeterminado, que se usa para todos, cuando no especificaron uno. \nSe utilizará el idioma del navegador cuando esté deshabilitado.", @@ -200,6 +201,8 @@ "oidc_groups": "Grupos de conexión OpenID", "oidc_users": "Usuarios de OpenID Connect", "old_key_format": "¡Esta clave API está desactualizada y debe actualizarse pronto para una funcionalidad continua!", + "organization_code": "Organization Name", + "organization_code_required": "Organization Name is required.", "oss_index": "Índice Sonatype OSS", "osv_advisories": "Avisos de OSV de Google (Beta)", "password": "Contraseña (o token de acceso)", @@ -213,7 +216,9 @@ "portfolio_access_control": "Control de acceso al portafolio", "preferences": "Preferencias", "preview": "Avance", + "preview_id": "Preview Vulnerability ID", "project_access": "Acceso al proyecto", + "project_code": "Project Name", "publisher": "Editor", "publisher_class": "Clase de editor", "python": "Python", @@ -242,6 +247,11 @@ "required_password": "se requiere contraseña", "required_team_name": "El nombre del equipo es obligatorio.", "required_username": "Se requiere nombre de usuario", + "reset_policy_daily": "Daily", + "reset_policy_monthly": "Monthly", + "reset_policy_never": "Never", + "reset_policy_yearly": "Yearly", + "reset_to_defaults": "Reset to defaults", "restore_default_template": "Restaurar plantillas predeterminadas", "scope": "Alcance", "select_ecosystem": "Seleccionar ecosistemas", @@ -251,6 +261,10 @@ "select_project": "Seleccionar Proyecto", "select_team": "Selecciona un equipo", "select_team_as_recipient": "Seleccionar equipo como destinatario", + "sequence_padding": "Sequence Padding", + "sequence_padding_help": "Minimum number of digits for the sequence number (e.g. 4 → 0001).", + "sequence_reset_policy": "Sequence Reset Policy", + "sequence_reset_policy_help": "Defines when the numeric sequence resets to 1.", "snyk": "Snyk (Beta)", "subject_identifier": "Identificador de sujeto", "submit": "Entregar", @@ -289,11 +303,18 @@ "token": "Simbólico", "trivy": "Trivy", "url": "URL", + "use_custom_id_generator": "Use custom sequential ID generator", + "use_custom_id_generator_off_help": "Disabled: IDs use the default Dependency-Track format (e.g. INT-xxxx-xxxx-xxxx).", + "use_custom_id_generator_on_help": "Enabled: IDs are generated using your configured template and sequence.", "user_created": "Usuario creado", "user_deleted": "Usuario eliminado", "username": "Nombre de usuario", "vuln_sources": "Fuentes de vulnerabilidad", "vulndb": "VulnDB", + "vulnerability_id_generation": "Internal Vulnerability ID Generation", + "vulnerability_id_template": "Vulnerability ID Template", + "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", + "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "Habilitar la sincronización de alias de vulnerabilidad", "vulnsource_alias_sync_enable_tooltip": "Los datos de alias pueden ayudar a identificar vulnerabilidades idénticas en múltiples bases de datos. Si la fuente proporciona estos datos, sincronícelos con la base de datos de Dependency-Track.", "vulnsource_github_advisories_desc": "GitHub Advisories (GHSA) es una base de datos de CVE y avisos de seguridad originados en GitHub que afectan al mundo del código abierto. Dependency-Track se integra con GHSA reflejando avisos a través de la API pública GraphQL de GitHub. El espejo se actualiza diariamente o al reiniciar la instancia de Dependency-Track. Se requiere un token de acceso personal (PAT) para autenticarse con GitHub, pero no es necesario asignarle ámbitos.", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 939293a25..ea22d7ce0 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -78,6 +78,7 @@ "create_team": "Créer une équipe", "create_template": "Créer un modèle", "create_user": "Créer un utilisateur", + "customization": "Customization", "default": "Défaut", "default_language": "Langue par défaut", "default_language_desc": "Langue par défaut, qui est utilisée par tout le monde, lorsqu'ils n'en ont pas spécifié. \nLa langue du navigateur sera utilisée lorsqu'elle est désactivée.", @@ -200,6 +201,8 @@ "oidc_groups": "Groupes OpenID Connect", "oidc_users": "Utilisateurs d'OpenID Connect", "old_key_format": "Cette clé API est obsolète et devrait être mise à jour bientôt pour les fonctionnalités continues!", + "organization_code": "Organization Name", + "organization_code_required": "Organization Name is required.", "oss_index": "Index Sonatype OSS", "osv_advisories": "Google OSV Advisories (bêta)", "password": "Mot de passe (ou jeton d'accès)", @@ -213,7 +216,9 @@ "portfolio_access_control": "Contrôle d'accès au portefolio", "preferences": "Préférences", "preview": "Aperçu", + "preview_id": "Preview Vulnerability ID", "project_access": "Accès au projet", + "project_code": "Project Name", "publisher": "Éditeur", "publisher_class": "Classe d'éditeur", "python": "Python", @@ -242,6 +247,11 @@ "required_password": "Mot de passe requis", "required_team_name": "Le nom de l'équipe est requis", "required_username": "Nom d'utilisateur est nécessaire", + "reset_policy_daily": "Daily", + "reset_policy_monthly": "Monthly", + "reset_policy_never": "Never", + "reset_policy_yearly": "Yearly", + "reset_to_defaults": "Reset to defaults", "restore_default_template": "Restaurer les modèles par défaut", "scope": "Périmètre", "select_ecosystem": "Sélectionner les écosystèmes", @@ -251,6 +261,10 @@ "select_project": "Sélectionner un projet", "select_team": "Sélectionner une équipe", "select_team_as_recipient": "Sélectionner une équipe comme destinataire", + "sequence_padding": "Sequence Padding", + "sequence_padding_help": "Minimum number of digits for the sequence number (e.g. 4 → 0001).", + "sequence_reset_policy": "Sequence Reset Policy", + "sequence_reset_policy_help": "Defines when the numeric sequence resets to 1.", "snyk": "Snyk (bêta)", "subject_identifier": "Identifiant du sujet", "submit": "Soumettre", @@ -289,11 +303,18 @@ "token": "Jeton", "trivy": "Trivy", "url": "URL", + "use_custom_id_generator": "Use custom sequential ID generator", + "use_custom_id_generator_off_help": "Disabled: IDs use the default Dependency-Track format (e.g. INT-xxxx-xxxx-xxxx).", + "use_custom_id_generator_on_help": "Enabled: IDs are generated using your configured template and sequence.", "user_created": "Utilisateur créé", "user_deleted": "Utilisateur supprimé", "username": "Nom d'utilisateur", "vuln_sources": "Sources de vulnérabilité", "vulndb": "VulnDB", + "vulnerability_id_generation": "Internal Vulnerability ID Generation", + "vulnerability_id_template": "Vulnerability ID Template", + "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", + "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "Activer la synchronisation des alias de vulnérabilité", "vulnsource_alias_sync_enable_tooltip": "Les données d'alias peuvent aider à identifier des vulnérabilités identiques dans plusieurs bases de données. Si la source fournit ces données, synchronisez-les avec la base de données de Dependency-Track.", "vulnsource_github_advisories_desc": "GitHub Advisories (GHSA) est une base de données de CVE et d'avis de sécurité provenant de GitHub affectant le monde open source. Dependency-Track s'intègre à GHSA en reflétant les avis via l'API publique GraphQL de GitHub. Le miroir est actualisé quotidiennement ou au redémarrage de l'instance Dependency-Track. Un jeton d'accès personnel (PAT) est requis pour s'authentifier auprès de GitHub, mais aucun périmètre ne doit lui être attribuée.", diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json index 2f94d72e6..741337bfb 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -78,6 +78,7 @@ "create_team": "टीम बनाएं", "create_template": "टेम्पलेट बनाएं", "create_user": "उपयोगकर्ता बनाइये", + "customization": "Customization", "default": "गलती करना", "default_language": "डिफ़ॉल्ट भाषा", "default_language_desc": "डिफ़ॉल्ट भाषा, जिसका उपयोग सभी के लिए किया जाता है, जब उन्होंने किसी एक को निर्दिष्ट नहीं किया हो। \nइसे अक्षम करने पर ब्राउज़र से लैंग्वेज का उपयोग किया जाएगा।", @@ -200,6 +201,8 @@ "oidc_groups": "ओपनआईडी कनेक्ट समूह", "oidc_users": "ओपनआईडी कनेक्ट उपयोगकर्ता", "old_key_format": "यह एपीआई कुंजी पुरानी है और इसे निरंतर कार्यक्षमता के लिए जल्द ही अपडेट किया जाना चाहिए!", + "organization_code": "Organization Name", + "organization_code_required": "Organization Name is required.", "oss_index": "सोनाटाइप ओएसएस सूचकांक", "osv_advisories": "Google OSV सलाह (बीटा)", "password": "पासवर्ड (या एक्सेस टोकन)", @@ -213,7 +216,9 @@ "portfolio_access_control": "पोर्टफोलियो एक्सेस नियंत्रण", "preferences": "वरीयताएँ", "preview": "पूर्व दर्शन", + "preview_id": "Preview Vulnerability ID", "project_access": "परियोजना तक पहुंच", + "project_code": "Project Name", "publisher": "प्रकाशक", "publisher_class": "प्रकाशक वर्ग", "python": "पायथन", @@ -242,6 +247,11 @@ "required_password": "पासवर्ड की आवश्यकता है", "required_team_name": "टीम का नाम आवश्यक है", "required_username": "उपयोगकर्ता नाम आवश्यक है", + "reset_policy_daily": "Daily", + "reset_policy_monthly": "Monthly", + "reset_policy_never": "Never", + "reset_policy_yearly": "Yearly", + "reset_to_defaults": "Reset to defaults", "restore_default_template": "डिफ़ॉल्ट टेम्पलेट्स पुनर्स्थापित करें", "scope": "दायरा", "select_ecosystem": "पारिस्थितिकी तंत्र का चयन करें", @@ -251,6 +261,10 @@ "select_project": "प्रोजेक्ट चुनें", "select_team": "टीम का चयन", "select_team_as_recipient": "प्राप्तकर्ता के रूप में टीम का चयन करें", + "sequence_padding": "Sequence Padding", + "sequence_padding_help": "Minimum number of digits for the sequence number (e.g. 4 → 0001).", + "sequence_reset_policy": "Sequence Reset Policy", + "sequence_reset_policy_help": "Defines when the numeric sequence resets to 1.", "snyk": "स्निक (बीटा)", "subject_identifier": "विषय पहचानकर्ता", "submit": "जमा करना", @@ -289,11 +303,18 @@ "token": "टोकन", "trivy": "ट्रिवी", "url": "यूआरएल", + "use_custom_id_generator": "Use custom sequential ID generator", + "use_custom_id_generator_off_help": "Disabled: IDs use the default Dependency-Track format (e.g. INT-xxxx-xxxx-xxxx).", + "use_custom_id_generator_on_help": "Enabled: IDs are generated using your configured template and sequence.", "user_created": "उपयोगकर्ता द्वारा बनाया गया", "user_deleted": "उपयोगकर्ता हटा दिया गया", "username": "उपयोगकर्ता नाम", "vuln_sources": "भेद्यता स्रोत", "vulndb": "वुल्नडीबी", + "vulnerability_id_generation": "Internal Vulnerability ID Generation", + "vulnerability_id_template": "Vulnerability ID Template", + "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", + "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "भेद्यता उपनाम सिंक्रनाइज़ेशन सक्षम करें", "vulnsource_alias_sync_enable_tooltip": "उपनाम डेटा कई डेटाबेस में समान कमजोरियों की पहचान करने में मदद कर सकता है। यदि स्रोत यह डेटा प्रदान करता है, तो इसे डिपेंडेंसी-ट्रैक के डेटाबेस के साथ सिंक्रनाइज़ करें।", "vulnsource_github_advisories_desc": "GitHub एडवाइज़रीज (GHSA) CVE और GitHub द्वारा उत्पन्न सुरक्षा सलाह का एक डेटाबेस है जो ओपन सोर्स दुनिया को प्रभावित करता है। डिपेंडेंसी-ट्रैक GitHub के सार्वजनिक GraphQL API के माध्यम से सलाह को मिरर करके GHSA के साथ एकीकृत होता है। मिरर को प्रतिदिन या डिपेंडेंसी-ट्रैक इंस्टेंस के पुनरारंभ होने पर रिफ्रेश किया जाता है। GitHub के साथ प्रमाणीकरण के लिए एक व्यक्तिगत एक्सेस टोकन (PAT) की आवश्यकता होती है, लेकिन इसके लिए कोई स्कोप असाइन करने की आवश्यकता नहीं होती है।", diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index a1ca33752..a8b8c95f6 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -78,6 +78,7 @@ "create_team": "Crea squadra", "create_template": "Crea modello", "create_user": "Creare un utente", + "customization": "Customization", "default": "Predefinito", "default_language": "Lingua predefinita", "default_language_desc": "Lingua predefinita, utilizzata da tutti quando non ne è stata specificata una. \nQuando questa opzione è disabilitata, verrà utilizzata la lingua del browser.", @@ -200,6 +201,8 @@ "oidc_groups": "Gruppi OpenID Connect", "oidc_users": "OpenID connette gli utenti", "old_key_format": "Questa chiave API è obsoleta e dovrebbe essere aggiornata presto per la funzionalità continua!", + "organization_code": "Organization Name", + "organization_code_required": "Organization Name is required.", "oss_index": "Indice Sonatipo OSS", "osv_advisories": "Avvisi OSV di Google (Beta)", "password": "Password (o token di accesso)", @@ -213,7 +216,9 @@ "portfolio_access_control": "Controllo degli accessi al portafoglio", "preferences": "Preferenze", "preview": "Anteprima", + "preview_id": "Preview Vulnerability ID", "project_access": "Accesso al progetto", + "project_code": "Project Name", "publisher": "Editore", "publisher_class": "Classe editore", "python": "Pitone", @@ -242,6 +247,11 @@ "required_password": "E 'richiesta la password", "required_team_name": "Il nome della squadra è obbligatorio", "required_username": "è richiesto il nome utente", + "reset_policy_daily": "Daily", + "reset_policy_monthly": "Monthly", + "reset_policy_never": "Never", + "reset_policy_yearly": "Yearly", + "reset_to_defaults": "Reset to defaults", "restore_default_template": "Ripristina i modelli predefiniti", "scope": "Scopo", "select_ecosystem": "Seleziona Ecosistemi", @@ -251,6 +261,10 @@ "select_project": "Seleziona Progetto", "select_team": "Selezionare squadra", "select_team_as_recipient": "Seleziona la squadra come destinatario", + "sequence_padding": "Sequence Padding", + "sequence_padding_help": "Minimum number of digits for the sequence number (e.g. 4 → 0001).", + "sequence_reset_policy": "Sequence Reset Policy", + "sequence_reset_policy_help": "Defines when the numeric sequence resets to 1.", "snyk": "Snyk (Beta)", "subject_identifier": "Identificatore del soggetto", "submit": "Invia", @@ -289,11 +303,18 @@ "token": "Gettone", "trivy": "Trivy", "url": "URL", + "use_custom_id_generator": "Use custom sequential ID generator", + "use_custom_id_generator_off_help": "Disabled: IDs use the default Dependency-Track format (e.g. INT-xxxx-xxxx-xxxx).", + "use_custom_id_generator_on_help": "Enabled: IDs are generated using your configured template and sequence.", "user_created": "Utente creato", "user_deleted": "Utente eliminato", "username": "Nome utente", "vuln_sources": "Fonti di vulnerabilità", "vulndb": "VulnDB", + "vulnerability_id_generation": "Internal Vulnerability ID Generation", + "vulnerability_id_template": "Vulnerability ID Template", + "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", + "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "Abilita la sincronizzazione degli alias di vulnerabilità", "vulnsource_alias_sync_enable_tooltip": "I dati alias possono aiutare a identificare vulnerabilità identiche su più database. Se la fonte fornisce questi dati, sincronizzali con il database di Dependency-Track.", "vulnsource_github_advisories_desc": "GitHub Advisories (GHSA) è un database di CVE e avvisi di sicurezza originati da GitHub che interessano il mondo open source. Dependency-Track si integra con GHSA eseguendo il mirroring degli avvisi tramite l'API GraphQL pubblica di GitHub. Il mirror viene aggiornato quotidianamente o al riavvio dell'istanza Dependency-Track. Per eseguire l'autenticazione con GitHub è necessario un token di accesso personale (PAT), ma non è necessario assegnargli alcun ambito.", diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index 121191c2e..d44869da0 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -78,6 +78,7 @@ "create_team": "チームを作成", "create_template": "テンプレートを作成", "create_user": "ユーザーを作成", + "customization": "Customization", "default": "デフォルト", "default_language": "デフォルトの言語", "default_language_desc": "デフォルトの言語。指定しなかった場合に全員に使用されます。\nこれを無効にすると、ブラウザの言語が使用されます。", @@ -200,6 +201,8 @@ "oidc_groups": "OpenID Connect グループ", "oidc_users": "OpenID Connect ユーザー", "old_key_format": "このAPIキーは時代遅れであり、継続的な機能のためにすぐに更新する必要があります!", + "organization_code": "Organization Name", + "organization_code_required": "Organization Name is required.", "oss_index": "Sonatype OSS インデックス", "osv_advisories": "Google OSV アドバイザリ (ベータ版)", "password": "パスワード(またはアクセストークン)", @@ -213,7 +216,9 @@ "portfolio_access_control": "ポートフォリオアクセス制御", "preferences": "好み", "preview": "プレビュー", + "preview_id": "Preview Vulnerability ID", "project_access": "プロジェクトへのアクセス", + "project_code": "Project Name", "publisher": "パブリッシャー", "publisher_class": "パブリッシャークラス", "python": "Python", @@ -242,6 +247,11 @@ "required_password": "パスワードが必要", "required_team_name": "チーム名は必須です", "required_username": "ユーザー名は必須です", + "reset_policy_daily": "Daily", + "reset_policy_monthly": "Monthly", + "reset_policy_never": "Never", + "reset_policy_yearly": "Yearly", + "reset_to_defaults": "Reset to defaults", "restore_default_template": "デフォルトのテンプレートを復元する", "scope": "スコープ", "select_ecosystem": "エコシステムを選択", @@ -251,6 +261,10 @@ "select_project": "プロジェクトを選択", "select_team": "チームを選ぶ", "select_team_as_recipient": "受信者としてチームを選択", + "sequence_padding": "Sequence Padding", + "sequence_padding_help": "Minimum number of digits for the sequence number (e.g. 4 → 0001).", + "sequence_reset_policy": "Sequence Reset Policy", + "sequence_reset_policy_help": "Defines when the numeric sequence resets to 1.", "snyk": "Snyk (ベータ版)", "subject_identifier": "サブジェクト識別子", "submit": "登録", @@ -289,11 +303,18 @@ "token": "トークン", "trivy": "Trivy", "url": "メールアドレス", + "use_custom_id_generator": "Use custom sequential ID generator", + "use_custom_id_generator_off_help": "Disabled: IDs use the default Dependency-Track format (e.g. INT-xxxx-xxxx-xxxx).", + "use_custom_id_generator_on_help": "Enabled: IDs are generated using your configured template and sequence.", "user_created": "ユーザーを作成しました", "user_deleted": "ユーザーを削除しました", "username": "ユーザー名", "vuln_sources": "脆弱性情報源", "vulndb": "VulnDB", + "vulnerability_id_generation": "Internal Vulnerability ID Generation", + "vulnerability_id_template": "Vulnerability ID Template", + "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", + "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "脆弱性エイリアスの同期を有効にする", "vulnsource_alias_sync_enable_tooltip": "エイリアス データは、複数のデータベース間で同一の脆弱性を識別するのに役立ちます。ソースがこのデータを提供する場合は、Dependency-Track のデータベースと同期します。", "vulnsource_github_advisories_desc": "GitHub Advisories (GHSA) は、オープンソースの世界に影響を与える CVE と GitHub 発のセキュリティ アドバイザリのデータベースです。Dependency-Track は、GitHub のパブリック GraphQL API を介してアドバイザリをミラーリングすることで GHSA と統合します。ミラーは毎日、または Dependency-Track インスタンスの再起動時に更新されます。GitHub で認証するには個人アクセス トークン (PAT) が必要ですが、スコープを割り当てる必要はありません。", diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index 8385a63a5..f0dcef1bf 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -78,6 +78,7 @@ "create_team": "Utwórz zespół", "create_template": "Utwórz szablon", "create_user": "Stwórz użytkownika", + "customization": "Customization", "default": "Domyślny", "default_language": "Domyślny język", "default_language_desc": "Domyślny język, którego używają wszyscy, jeśli go nie określili. \nJeśli ta opcja jest wyłączona, używany będzie język z przeglądarki.", @@ -200,6 +201,8 @@ "oidc_groups": "Grupy OpenID Connect", "oidc_users": "Użytkownicy OpenID Connect", "old_key_format": "Ten klucz API jest przestarzały i powinien zostać wkrótce zaktualizowany do dalszej funkcjonalności!", + "organization_code": "Organization Name", + "organization_code_required": "Organization Name is required.", "oss_index": "Indeks Sonatype OSS", "osv_advisories": "Poradniki Google OSV (beta)", "password": "Hasło (lub token dostępu)", @@ -213,7 +216,9 @@ "portfolio_access_control": "Kontrola dostępu do portfela", "preferences": "Preferencje", "preview": "Zapowiedź", + "preview_id": "Preview Vulnerability ID", "project_access": "Dostęp do projektu", + "project_code": "Project Name", "publisher": "Wydawca", "publisher_class": "Klasa wydawcy", "python": "Pyton", @@ -242,6 +247,11 @@ "required_password": "Wymagane jest hasło", "required_team_name": "Nazwa zespołu jest wymagana", "required_username": "Wymagana jest nazwa użytkownika", + "reset_policy_daily": "Daily", + "reset_policy_monthly": "Monthly", + "reset_policy_never": "Never", + "reset_policy_yearly": "Yearly", + "reset_to_defaults": "Reset to defaults", "restore_default_template": "Przywróć domyślne szablony", "scope": "Zakres", "select_ecosystem": "Wybierz Ekosystemy", @@ -251,6 +261,10 @@ "select_project": "Wybierz Projekt", "select_team": "Wybierz drużynę", "select_team_as_recipient": "Wybierz zespół jako odbiorcę", + "sequence_padding": "Sequence Padding", + "sequence_padding_help": "Minimum number of digits for the sequence number (e.g. 4 → 0001).", + "sequence_reset_policy": "Sequence Reset Policy", + "sequence_reset_policy_help": "Defines when the numeric sequence resets to 1.", "snyk": "Snyk (beta)", "subject_identifier": "Identyfikator podmiotu", "submit": "Składać", @@ -289,11 +303,18 @@ "token": "Znak", "trivy": "Ciekawostka", "url": "Adres URL", + "use_custom_id_generator": "Use custom sequential ID generator", + "use_custom_id_generator_off_help": "Disabled: IDs use the default Dependency-Track format (e.g. INT-xxxx-xxxx-xxxx).", + "use_custom_id_generator_on_help": "Enabled: IDs are generated using your configured template and sequence.", "user_created": "Utworzono użytkownika", "user_deleted": "Użytkownik usunięty", "username": "Nazwa użytkownika", "vuln_sources": "Źródła podatności", "vulndb": "VulnDB", + "vulnerability_id_generation": "Internal Vulnerability ID Generation", + "vulnerability_id_template": "Vulnerability ID Template", + "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", + "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "Włącz synchronizację aliasów luk w zabezpieczeniach", "vulnsource_alias_sync_enable_tooltip": "Dane aliasów mogą pomóc w identyfikacji identycznych luk w zabezpieczeniach wielu baz danych. Jeśli źródło dostarcza te dane, zsynchronizuj je z bazą danych Depency-Track.", "vulnsource_github_advisories_desc": "GitHub Advisories (GHSA) to baza danych CVE i porad bezpieczeństwa pochodzących z GitHub, mających wpływ na świat open source. Zależność-Track integruje się z GHSA, odzwierciedlając porady za pośrednictwem publicznego API GraphQL GitHuba. Lustro jest odświeżane codziennie lub po ponownym uruchomieniu instancji Depency-Track. Do uwierzytelnienia w GitHub wymagany jest osobisty token dostępu (PAT), ale nie trzeba do niego przypisywać żadnych zakresów.", diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 589515643..5417263d6 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -78,6 +78,7 @@ "create_team": "Criar equipe", "create_template": "Criar modelo", "create_user": "Criar usuário", + "customization": "Customization", "default": "Padrão", "default_language": "Idioma padrão", "default_language_desc": "Idioma padrão, que é usado por todos, quando não especificam um. \nO idioma do navegador será usado quando estiver desabilitado.", @@ -200,6 +201,8 @@ "oidc_groups": "Grupos OpenID Connect", "oidc_users": "Usuários do OpenID Connect", "old_key_format": "Esta chave da API está desatualizada e deve ser atualizada em breve para a funcionalidade contínua!", + "organization_code": "Organization Name", + "organization_code_required": "Organization Name is required.", "oss_index": "Índice Sonatype OSS", "osv_advisories": "Avisos de OSV do Google (Beta)", "password": "Senha (ou token de acesso)", @@ -213,7 +216,9 @@ "portfolio_access_control": "Controle de acesso ao portfólio", "preferences": "Preferências", "preview": "Visualização", + "preview_id": "Preview Vulnerability ID", "project_access": "Acesso ao projeto", + "project_code": "Project Name", "publisher": "Editor", "publisher_class": "Classe de editor", "python": "Pitão", @@ -242,6 +247,11 @@ "required_password": "Senha requerida", "required_team_name": "O nome da equipe é obrigatório", "required_username": "Nome de usuário é requerido", + "reset_policy_daily": "Daily", + "reset_policy_monthly": "Monthly", + "reset_policy_never": "Never", + "reset_policy_yearly": "Yearly", + "reset_to_defaults": "Reset to defaults", "restore_default_template": "Restaurar modelos padrão", "scope": "Escopo", "select_ecosystem": "Selecione Ecossistemas", @@ -251,6 +261,10 @@ "select_project": "Selecione o projeto", "select_team": "Selecionar time", "select_team_as_recipient": "Selecione a equipe como destinatário", + "sequence_padding": "Sequence Padding", + "sequence_padding_help": "Minimum number of digits for the sequence number (e.g. 4 → 0001).", + "sequence_reset_policy": "Sequence Reset Policy", + "sequence_reset_policy_help": "Defines when the numeric sequence resets to 1.", "snyk": "Snyk (beta)", "subject_identifier": "Identificador do Assunto", "submit": "Enviar", @@ -289,11 +303,18 @@ "token": "Símbolo", "trivy": "Curiosidades", "url": "URL", + "use_custom_id_generator": "Use custom sequential ID generator", + "use_custom_id_generator_off_help": "Disabled: IDs use the default Dependency-Track format (e.g. INT-xxxx-xxxx-xxxx).", + "use_custom_id_generator_on_help": "Enabled: IDs are generated using your configured template and sequence.", "user_created": "Usuário criado", "user_deleted": "Usuário excluído", "username": "Nome de usuário", "vuln_sources": "Fontes de vulnerabilidade", "vulndb": "VulnDB", + "vulnerability_id_generation": "Internal Vulnerability ID Generation", + "vulnerability_id_template": "Vulnerability ID Template", + "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", + "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "Habilitar sincronização de alias de vulnerabilidade", "vulnsource_alias_sync_enable_tooltip": "Os dados de alias podem ajudar a identificar vulnerabilidades idênticas em vários bancos de dados. Se a fonte fornecer esses dados, sincronize-os com o banco de dados do Dependency-Track.", "vulnsource_github_advisories_desc": "GitHub Advisories (GHSA) é um banco de dados de CVEs e avisos de segurança originados no GitHub que afetam o mundo do código aberto. Dependency-Track integra-se ao GHSA espelhando avisos por meio da API GraphQL pública do GitHub. O espelho é atualizado diariamente ou na reinicialização da instância Dependency-Track. Um token de acesso pessoal (PAT) é necessário para autenticar no GitHub, mas nenhum escopo precisa ser atribuído a ele.", diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json index f14ad0565..5e1fc2beb 100644 --- a/src/i18n/locales/pt.json +++ b/src/i18n/locales/pt.json @@ -78,6 +78,7 @@ "create_team": "Criar equipe", "create_template": "Criar modelo", "create_user": "Criar utilizador", + "customization": "Customization", "default": "Padrão", "default_language": "Idioma padrão", "default_language_desc": "Idioma padrão, que é usado por todos, quando não especificam um. \nO idioma do navegador será usado quando estiver desabilitado.", @@ -200,6 +201,8 @@ "oidc_groups": "Grupos OpenID Connect", "oidc_users": "Utilizadors do OpenID Connect", "old_key_format": "Esta chave da API está desatualizada e deve ser atualizada em breve para a funcionalidade contínua!", + "organization_code": "Organization Name", + "organization_code_required": "Organization Name is required.", "oss_index": "Índice Sonatype OSS", "osv_advisories": "Avisos de OSV do Google (Beta)", "password": "Palavra passe (ou token de acesso)", @@ -213,7 +216,9 @@ "portfolio_access_control": "Controle de acesso ao portfólio", "preferences": "Preferências", "preview": "Visualização", + "preview_id": "Preview Vulnerability ID", "project_access": "Acesso ao projeto", + "project_code": "Project Name", "publisher": "Editor", "publisher_class": "Classe de editor", "python": "Pitão", @@ -242,6 +247,11 @@ "required_password": "Palavra passe obrigatória", "required_team_name": "O nome da equipe é obrigatório", "required_username": "Nome de utilizador é obrigatório", + "reset_policy_daily": "Daily", + "reset_policy_monthly": "Monthly", + "reset_policy_never": "Never", + "reset_policy_yearly": "Yearly", + "reset_to_defaults": "Reset to defaults", "restore_default_template": "Restaurar modelos padrão", "scope": "Escopo", "select_ecosystem": "Selecione Ecossistemas", @@ -251,6 +261,10 @@ "select_project": "Selecione o projeto", "select_team": "Selecionar time", "select_team_as_recipient": "Selecione a equipe como destinatário", + "sequence_padding": "Sequence Padding", + "sequence_padding_help": "Minimum number of digits for the sequence number (e.g. 4 → 0001).", + "sequence_reset_policy": "Sequence Reset Policy", + "sequence_reset_policy_help": "Defines when the numeric sequence resets to 1.", "snyk": "Snyk (beta)", "subject_identifier": "Identificador do Assunto", "submit": "Enviar", @@ -289,11 +303,18 @@ "token": "Símbolo", "trivy": "Curiosidades", "url": "URL", + "use_custom_id_generator": "Use custom sequential ID generator", + "use_custom_id_generator_off_help": "Disabled: IDs use the default Dependency-Track format (e.g. INT-xxxx-xxxx-xxxx).", + "use_custom_id_generator_on_help": "Enabled: IDs are generated using your configured template and sequence.", "user_created": "Utilizador criado", "user_deleted": "Utilizador excluído", "username": "Nome de utilizador", "vuln_sources": "Fontes de vulnerabilidade", "vulndb": "VulnDB", + "vulnerability_id_generation": "Internal Vulnerability ID Generation", + "vulnerability_id_template": "Vulnerability ID Template", + "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", + "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "Habilitar sincronização de alias de vulnerabilidade", "vulnsource_alias_sync_enable_tooltip": "Os dados de alias podem ajudar a identificar vulnerabilidades idênticas em vários bancos de dados. Se a fonte fornecer esses dados, sincronize-os com o banco de dados do Dependency-Track.", "vulnsource_github_advisories_desc": "GitHub Advisories (GHSA) é um banco de dados de CVEs e avisos de segurança originados no GitHub que afetam o mundo do código aberto. Dependency-Track integra-se ao GHSA espelhando avisos por meio da API GraphQL pública do GitHub. O espelho é atualizado diariamente ou na reinicialização da instância Dependency-Track. Um token de acesso pessoal (PAT) é necessário para autenticar no GitHub, mas nenhum escopo precisa ser atribuído a ele.", diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index eac21ab68..3c64a91e1 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -78,6 +78,7 @@ "create_team": "Создать команду", "create_template": "Создать шаблон", "create_user": "Создать пользователя", + "customization": "Customization", "default": "По умолчанию", "default_language": "Язык по умолчанию", "default_language_desc": "Язык по умолчанию, который используется для всех, если они не указали другой. Если отключено, будет использоваться язык браузера.", @@ -200,6 +201,8 @@ "oidc_groups": "Группы OpenID Connect", "oidc_users": "Пользователи OpenID Connect", "old_key_format": "Этот ключ API устарел и должен быть обновлен в ближайшее время для продолжения функциональности!", + "organization_code": "Organization Name", + "organization_code_required": "Organization Name is required.", "oss_index": "Sonatype OSS Index", "osv_advisories": "Рекомендации Google OSV (бета)", "password": "Пароль (или токен доступа)", @@ -213,7 +216,9 @@ "portfolio_access_control": "Контроль доступа к портфолио", "preferences": "Предпочтения", "preview": "Предпросмотр", + "preview_id": "Preview Vulnerability ID", "project_access": "Доступ к проекту", + "project_code": "Project Name", "publisher": "Издатель", "publisher_class": "Класс издателя", "python": "Python", @@ -242,6 +247,11 @@ "required_password": "Пароль обязателен", "required_team_name": "Имя команды обязательно", "required_username": "Имя пользователя обязательно", + "reset_policy_daily": "Daily", + "reset_policy_monthly": "Monthly", + "reset_policy_never": "Never", + "reset_policy_yearly": "Yearly", + "reset_to_defaults": "Reset to defaults", "restore_default_template": "Восстановить шаблоны по умолчанию", "scope": "Область", "select_ecosystem": "Выбрать экосистему", @@ -251,6 +261,10 @@ "select_project": "Выбрать проект", "select_team": "Выбрать команду", "select_team_as_recipient": "Выбрать команду в качестве получателя", + "sequence_padding": "Sequence Padding", + "sequence_padding_help": "Minimum number of digits for the sequence number (e.g. 4 → 0001).", + "sequence_reset_policy": "Sequence Reset Policy", + "sequence_reset_policy_help": "Defines when the numeric sequence resets to 1.", "snyk": "Snyk (бета)", "subject_identifier": "Идентификатор субъекта", "submit": "Отправить", @@ -289,11 +303,18 @@ "token": "Токен", "trivy": "Trivy", "url": "URL", + "use_custom_id_generator": "Use custom sequential ID generator", + "use_custom_id_generator_off_help": "Disabled: IDs use the default Dependency-Track format (e.g. INT-xxxx-xxxx-xxxx).", + "use_custom_id_generator_on_help": "Enabled: IDs are generated using your configured template and sequence.", "user_created": "Пользователь создан", "user_deleted": "Пользователь удален", "username": "Имя пользователя", "vuln_sources": "Источники уязвимостей", "vulndb": "VulnDB", + "vulnerability_id_generation": "Internal Vulnerability ID Generation", + "vulnerability_id_template": "Vulnerability ID Template", + "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", + "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "Включить синхронизацию псевдонимов уязвимостей", "vulnsource_alias_sync_enable_tooltip": "Данные псевдонимов могут помочь в идентификации одинаковых уязвимостей в разных базах данных. Если источник предоставляет такие данные, синхронизируйте их с базой данных Dependency-Track.", "vulnsource_github_advisories_desc": "GitHub Advisories (GHSA) — это база данных CVE и рекомендаций по безопасности, инициированных GitHub, которые затрагивают открытый исходный код. Dependency-Track интегрируется с GHSA, зеркалируя рекомендации через публичный GraphQL API GitHub. Зеркало обновляется ежедневно или при перезапуске экземпляра Dependency-Track. Для аутентификации с GitHub требуется персональный токен доступа (PAT), но ему не нужно присваивать какие-либо права.", diff --git a/src/i18n/locales/uk-UA.json b/src/i18n/locales/uk-UA.json index 9488fd284..a489d3b04 100644 --- a/src/i18n/locales/uk-UA.json +++ b/src/i18n/locales/uk-UA.json @@ -78,6 +78,7 @@ "create_team": "Створити команду", "create_template": "Створити шаблон", "create_user": "Створити користувача", + "customization": "Customization", "default": "За замовчуванням", "default_language": "Мова за замовчуванням", "default_language_desc": "Мова за замовчуванням, яка використовується для всіх, якщо вони не вказали іншу. Мова з браузера буде використовуватися, якщо це вимкнено.", @@ -200,6 +201,8 @@ "oidc_groups": "Групи OpenID Connect", "oidc_users": "Користувачі OpenID Connect", "old_key_format": "Цей ключ API застарілий і його слід незабаром оновити для продовження функціональності!", + "organization_code": "Organization Name", + "organization_code_required": "Organization Name is required.", "oss_index": "Sonatype OSS Index", "osv_advisories": "Google OSV Advisories (бета)", "password": "Пароль (або токен доступу)", @@ -213,7 +216,9 @@ "portfolio_access_control": "Контроль доступу до портфоліо", "preferences": "Налаштування", "preview": "Попередній перегляд", + "preview_id": "Preview Vulnerability ID", "project_access": "Доступ до проєкту", + "project_code": "Project Name", "publisher": "Видавець", "publisher_class": "Клас видавця", "python": "Python", @@ -242,6 +247,11 @@ "required_password": "Пароль є обов'язковим", "required_team_name": "Назва команди є обов'язковою", "required_username": "Ім'я користувача є обов'язковим", + "reset_policy_daily": "Daily", + "reset_policy_monthly": "Monthly", + "reset_policy_never": "Never", + "reset_policy_yearly": "Yearly", + "reset_to_defaults": "Reset to defaults", "restore_default_template": "Відновити стандартні шаблони", "scope": "Область", "select_ecosystem": "Вибрати екосистеми", @@ -251,6 +261,10 @@ "select_project": "Вибрати проєкт", "select_team": "Вибрати команду", "select_team_as_recipient": "Вибрати команду як отримувача", + "sequence_padding": "Sequence Padding", + "sequence_padding_help": "Minimum number of digits for the sequence number (e.g. 4 → 0001).", + "sequence_reset_policy": "Sequence Reset Policy", + "sequence_reset_policy_help": "Defines when the numeric sequence resets to 1.", "snyk": "Snyk (бета)", "subject_identifier": "Ідентифікатор суб'єкта", "submit": "Надіслати", @@ -289,11 +303,18 @@ "token": "Токен", "trivy": "Trivy", "url": "URL", + "use_custom_id_generator": "Use custom sequential ID generator", + "use_custom_id_generator_off_help": "Disabled: IDs use the default Dependency-Track format (e.g. INT-xxxx-xxxx-xxxx).", + "use_custom_id_generator_on_help": "Enabled: IDs are generated using your configured template and sequence.", "user_created": "Користувача створено", "user_deleted": "Користувача видалено", "username": "Ім'я користувача", "vuln_sources": "Джерела уразливостей", "vulndb": "VulnDB", + "vulnerability_id_generation": "Internal Vulnerability ID Generation", + "vulnerability_id_template": "Vulnerability ID Template", + "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", + "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "Увімкнути синхронізацію псевдонімів уразливостей", "vulnsource_alias_sync_enable_tooltip": "Дані псевдонімів можуть допомогти в ідентифікації однакових уразливостей у кількох базах даних. Якщо джерело надає ці дані, синхронізуйте їх з базою даних Dependency-Track.", "vulnsource_github_advisories_desc": "GitHub Advisories (GHSA) – це база даних CVE та рекомендацій з безпеки, створених GitHub, що стосуються відкритого програмного забезпечення. Dependency-Track інтегрується з GHSA, дзеркалюючи рекомендації через публічний GraphQL API GitHub. Дзеркало оновлюється щодня або після перезапуску екземпляра Dependency-Track. Для автентифікації на GitHub потрібен особистий токен доступу (PAT), але йому не потрібно призначати жодних областей дії.", diff --git a/src/i18n/locales/zh-TW.json b/src/i18n/locales/zh-TW.json index 9e57e2b76..eab6de61f 100644 --- a/src/i18n/locales/zh-TW.json +++ b/src/i18n/locales/zh-TW.json @@ -78,6 +78,7 @@ "create_team": "建立團隊", "create_template": "建立範本", "create_user": "建立使用者", + "customization": "Customization", "default": "預設", "default_language": "預設語言", "default_language_desc": "預設語言,使用者未指定語言時皆會使用。停用時將使用瀏覽器語言。", @@ -200,6 +201,8 @@ "oidc_groups": "OpenID Connect 群組", "oidc_users": "OpenID Connect 使用者", "old_key_format": "此 API 金鑰格式已過時,請儘快更新以確保功能持續可用!", + "organization_code": "Organization Name", + "organization_code_required": "Organization Name is required.", "oss_index": "OSS 索引", "osv_advisories": "Google OSV 公告(Beta)", "password": "密碼(或存取權杖)", @@ -213,7 +216,9 @@ "portfolio_access_control": "投資組合存取控制", "preferences": "偏好設定", "preview": "預覽", + "preview_id": "Preview Vulnerability ID", "project_access": "專案存取", + "project_code": "Project Name", "publisher": "發佈者", "publisher_class": "發佈者類別", "python": "Python", @@ -242,6 +247,11 @@ "required_password": "密碼為必填", "required_team_name": "必填:團隊名稱", "required_username": "必填:使用者名稱", + "reset_policy_daily": "Daily", + "reset_policy_monthly": "Monthly", + "reset_policy_never": "Never", + "reset_policy_yearly": "Yearly", + "reset_to_defaults": "Reset to defaults", "restore_default_template": "還原預設範本", "scope": "範圍", "select_ecosystem": "選擇生態系統", @@ -251,6 +261,10 @@ "select_project": "選擇專案", "select_team": "選擇團隊", "select_team_as_recipient": "選擇團隊作為收件人", + "sequence_padding": "Sequence Padding", + "sequence_padding_help": "Minimum number of digits for the sequence number (e.g. 4 → 0001).", + "sequence_reset_policy": "Sequence Reset Policy", + "sequence_reset_policy_help": "Defines when the numeric sequence resets to 1.", "snyk": "Snyk(測試版)", "subject_identifier": "主題識別碼", "submit": "送出", @@ -289,11 +303,18 @@ "token": "權杖", "trivy": "Trivy", "url": "URL", + "use_custom_id_generator": "Use custom sequential ID generator", + "use_custom_id_generator_off_help": "Disabled: IDs use the default Dependency-Track format (e.g. INT-xxxx-xxxx-xxxx).", + "use_custom_id_generator_on_help": "Enabled: IDs are generated using your configured template and sequence.", "user_created": "使用者已建立", "user_deleted": "使用者已刪除", "username": "使用者名稱", "vuln_sources": "漏洞來源", "vulndb": "漏洞資料庫", + "vulnerability_id_generation": "Internal Vulnerability ID Generation", + "vulnerability_id_template": "Vulnerability ID Template", + "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", + "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "啟用漏洞別名同步", "vulnsource_alias_sync_enable_tooltip": "別名資料有助於識別多個資料庫中的相同漏洞。如果來源提供此資料,請將其與 Dependency-Track 的資料庫同步。", "vulnsource_github_advisories_desc": "GitHub 公告 (GHSA) 是一個 CVE 資料庫,其中包含影響開源世界的 GitHub 安全公告。Dependency-Track 透過 GitHub 的公開 GraphQL API 鏡像公告,與 GHSA 整合。鏡像每天重新整理一次,或在重新啟動 Dependency-Track 執行個體時重新整理。需要個人存取權杖 (PAT) 才能透過 GitHub 進行身分驗證,但無需為其分配範圍。", diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json index 19f3e5781..ab4335e5e 100644 --- a/src/i18n/locales/zh.json +++ b/src/i18n/locales/zh.json @@ -78,6 +78,7 @@ "create_team": "创建团队", "create_template": "创建模板", "create_user": "创建用户", + "customization": "Customization", "default": "默认", "default_language": "默认语言", "default_language_desc": "默认语言,当他们没有指定一种语言时,每个人都使用它。\n禁用时,将使用浏览器中的语言。", @@ -200,6 +201,8 @@ "oidc_groups": "OpenID Connect 组", "oidc_users": "OpenID Connect 用户", "old_key_format": "此API密钥已过时,应尽快更新以继续使用功能!", + "organization_code": "Organization Name", + "organization_code_required": "Organization Name is required.", "oss_index": "OSS 索引", "osv_advisories": "Google OSV Advisory (Beta)", "password": "密码(或访问令牌)", @@ -213,7 +216,9 @@ "portfolio_access_control": "portfolio 访问控制", "preferences": "偏好设置", "preview": "预览", + "preview_id": "Preview Vulnerability ID", "project_access": "项目访问权限", + "project_code": "Project Name", "publisher": "发布者", "publisher_class": "发布者类型", "python": "Python", @@ -242,6 +247,11 @@ "required_password": "密码为必填项", "required_team_name": "必填:团队名称", "required_username": "必填:用户名", + "reset_policy_daily": "Daily", + "reset_policy_monthly": "Monthly", + "reset_policy_never": "Never", + "reset_policy_yearly": "Yearly", + "reset_to_defaults": "Reset to defaults", "restore_default_template": "恢复默认模板", "scope": "范围", "select_ecosystem": "选择生态系统", @@ -251,6 +261,10 @@ "select_project": "选择项目", "select_team": "选择团队", "select_team_as_recipient": "选择团队作为收件人", + "sequence_padding": "Sequence Padding", + "sequence_padding_help": "Minimum number of digits for the sequence number (e.g. 4 → 0001).", + "sequence_reset_policy": "Sequence Reset Policy", + "sequence_reset_policy_help": "Defines when the numeric sequence resets to 1.", "snyk": "Snyk(测试版)", "subject_identifier": "主题标识符", "submit": "提交", @@ -289,11 +303,18 @@ "token": "令牌", "trivy": "Trivy", "url": "URL", + "use_custom_id_generator": "Use custom sequential ID generator", + "use_custom_id_generator_off_help": "Disabled: IDs use the default Dependency-Track format (e.g. INT-xxxx-xxxx-xxxx).", + "use_custom_id_generator_on_help": "Enabled: IDs are generated using your configured template and sequence.", "user_created": "用户已创建", "user_deleted": "用户已删除", "username": "用户名", "vuln_sources": "漏洞来源", "vulndb": "漏洞数据库", + "vulnerability_id_generation": "Internal Vulnerability ID Generation", + "vulnerability_id_template": "Vulnerability ID Template", + "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", + "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "启用漏洞别名同步", "vulnsource_alias_sync_enable_tooltip": "别名数据有助于识别多个数据库中的相同漏洞。如果来源提供了此数据,请将其与 Dependency-Track 的数据库同步。", "vulnsource_github_advisories_desc": "GitHub 安全公告 (GHSA) 是一个 CVE 数据库,其中包含影响开源世界的 GitHub 安全公告。Dependency-Track 通过 GitHub 的公共 GraphQL API 镜像公告,与 GHSA 集成。镜像每天刷新一次,或在重新启动 Dependency-Track 实例时刷新。需要个人访问令牌 (PAT) 才能通过 GitHub 进行身份验证,但无需为其分配范围。", From ef791cceeb8f0bbef65c268cc09d77c864b36c8a Mon Sep 17 00:00:00 2001 From: Abdul wahab Shah <214828401+heyiamwahab236@users.noreply.github.com> Date: Tue, 25 Aug 2026 09:34:00 +0200 Subject: [PATCH 3/3] Remove unused key and fix key ordering in locale files The i18n CI check fails on unused translation keys, and prettier enforces sorted keys in JSON files. Removes the unused admin.vulnerability_ids key and restores alphabetical ordering for admin.customization. Signed-off-by: Abdul wahab Shah <214828401+heyiamwahab236@users.noreply.github.com> --- src/i18n/locales/de.json | 1 - src/i18n/locales/en.json | 3 +-- src/i18n/locales/es.json | 1 - src/i18n/locales/fr.json | 1 - src/i18n/locales/hi.json | 1 - src/i18n/locales/it.json | 1 - src/i18n/locales/ja.json | 1 - src/i18n/locales/pl.json | 1 - src/i18n/locales/pt-BR.json | 1 - src/i18n/locales/pt.json | 1 - src/i18n/locales/ru.json | 1 - src/i18n/locales/uk-UA.json | 1 - src/i18n/locales/zh-TW.json | 1 - src/i18n/locales/zh.json | 1 - 14 files changed, 1 insertion(+), 15 deletions(-) diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index cf5a199bb..62df9761d 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -314,7 +314,6 @@ "vulnerability_id_generation": "Internal Vulnerability ID Generation", "vulnerability_id_template": "Vulnerability ID Template", "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", - "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "Synchronisierung von Schwachstellenaliasen aktivieren", "vulnsource_alias_sync_enable_tooltip": "Alias-Daten können dabei helfen, identische Schwachstellen in mehreren Datenbanken zu identifizieren. Wenn die Quelle diese Daten bereitstellt, synchronisieren Sie sie mit der Datenbank von Dependency-Track.", "vulnsource_github_advisories_desc": "GitHub Advisories (GHSA) ist eine Datenbank mit CVEs und von GitHub stammenden Sicherheitshinweisen, die die Open-Source-Welt betreffen. Dependency-Track integriert sich in GHSA, indem Hinweise über die öffentliche GraphQL-API von GitHub gespiegelt werden. Der Spiegel wird täglich oder beim Neustart der Dependency-Track-Instanz aktualisiert. Zur Authentifizierung bei GitHub ist ein persönlicher Zugriffstoken (PAT) erforderlich, ihm müssen jedoch keine Bereiche zugewiesen werden.", diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 70f73d12e..7b444e902 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -68,7 +68,6 @@ "configuration_test": "Configuration Test", "consumer_key": "Consumer key", "consumer_secret": "Consumer secret", - "customization": "Customization", "cpan": "CPAN", "create_alert": "Create Alert", "create_ldap_user": "Create LDAP User", @@ -79,6 +78,7 @@ "create_team": "Create Team", "create_template": "Create Template", "create_user": "Create User", + "customization": "Customization", "default": "Default", "default_language": "Default Language", "default_language_desc": "Default language, which is used for everyone, when they didn't specify one. Language from Browser will be used, when this is disabled.", @@ -314,7 +314,6 @@ "vulnerability_id_generation": "Internal Vulnerability ID Generation", "vulnerability_id_template": "Vulnerability ID Template", "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", - "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "Enable vulnerability alias synchronization", "vulnsource_alias_sync_enable_tooltip": "Alias data can help in identifying identical vulnerabilities across multiple databases. If the source provides this data, synchronize it with Dependency-Track's database.", "vulnsource_github_advisories_desc": "GitHub Advisories (GHSA) is a database of CVEs and GitHub-originated security advisories affecting the open source world. Dependency-Track integrates with GHSA by mirroring advisories via GitHub's public GraphQL API. The mirror is refreshed daily, or upon restart of the Dependency-Track instance. A personal access token (PAT) is required in order to authenticate with GitHub, but no scopes need to be assigned to it.", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 1e11caa88..a7a40f93e 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -314,7 +314,6 @@ "vulnerability_id_generation": "Internal Vulnerability ID Generation", "vulnerability_id_template": "Vulnerability ID Template", "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", - "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "Habilitar la sincronización de alias de vulnerabilidad", "vulnsource_alias_sync_enable_tooltip": "Los datos de alias pueden ayudar a identificar vulnerabilidades idénticas en múltiples bases de datos. Si la fuente proporciona estos datos, sincronícelos con la base de datos de Dependency-Track.", "vulnsource_github_advisories_desc": "GitHub Advisories (GHSA) es una base de datos de CVE y avisos de seguridad originados en GitHub que afectan al mundo del código abierto. Dependency-Track se integra con GHSA reflejando avisos a través de la API pública GraphQL de GitHub. El espejo se actualiza diariamente o al reiniciar la instancia de Dependency-Track. Se requiere un token de acceso personal (PAT) para autenticarse con GitHub, pero no es necesario asignarle ámbitos.", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index ea22d7ce0..2e6a16e54 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -314,7 +314,6 @@ "vulnerability_id_generation": "Internal Vulnerability ID Generation", "vulnerability_id_template": "Vulnerability ID Template", "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", - "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "Activer la synchronisation des alias de vulnérabilité", "vulnsource_alias_sync_enable_tooltip": "Les données d'alias peuvent aider à identifier des vulnérabilités identiques dans plusieurs bases de données. Si la source fournit ces données, synchronisez-les avec la base de données de Dependency-Track.", "vulnsource_github_advisories_desc": "GitHub Advisories (GHSA) est une base de données de CVE et d'avis de sécurité provenant de GitHub affectant le monde open source. Dependency-Track s'intègre à GHSA en reflétant les avis via l'API publique GraphQL de GitHub. Le miroir est actualisé quotidiennement ou au redémarrage de l'instance Dependency-Track. Un jeton d'accès personnel (PAT) est requis pour s'authentifier auprès de GitHub, mais aucun périmètre ne doit lui être attribuée.", diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json index 741337bfb..5313374a3 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -314,7 +314,6 @@ "vulnerability_id_generation": "Internal Vulnerability ID Generation", "vulnerability_id_template": "Vulnerability ID Template", "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", - "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "भेद्यता उपनाम सिंक्रनाइज़ेशन सक्षम करें", "vulnsource_alias_sync_enable_tooltip": "उपनाम डेटा कई डेटाबेस में समान कमजोरियों की पहचान करने में मदद कर सकता है। यदि स्रोत यह डेटा प्रदान करता है, तो इसे डिपेंडेंसी-ट्रैक के डेटाबेस के साथ सिंक्रनाइज़ करें।", "vulnsource_github_advisories_desc": "GitHub एडवाइज़रीज (GHSA) CVE और GitHub द्वारा उत्पन्न सुरक्षा सलाह का एक डेटाबेस है जो ओपन सोर्स दुनिया को प्रभावित करता है। डिपेंडेंसी-ट्रैक GitHub के सार्वजनिक GraphQL API के माध्यम से सलाह को मिरर करके GHSA के साथ एकीकृत होता है। मिरर को प्रतिदिन या डिपेंडेंसी-ट्रैक इंस्टेंस के पुनरारंभ होने पर रिफ्रेश किया जाता है। GitHub के साथ प्रमाणीकरण के लिए एक व्यक्तिगत एक्सेस टोकन (PAT) की आवश्यकता होती है, लेकिन इसके लिए कोई स्कोप असाइन करने की आवश्यकता नहीं होती है।", diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index a8b8c95f6..f4741d074 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -314,7 +314,6 @@ "vulnerability_id_generation": "Internal Vulnerability ID Generation", "vulnerability_id_template": "Vulnerability ID Template", "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", - "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "Abilita la sincronizzazione degli alias di vulnerabilità", "vulnsource_alias_sync_enable_tooltip": "I dati alias possono aiutare a identificare vulnerabilità identiche su più database. Se la fonte fornisce questi dati, sincronizzali con il database di Dependency-Track.", "vulnsource_github_advisories_desc": "GitHub Advisories (GHSA) è un database di CVE e avvisi di sicurezza originati da GitHub che interessano il mondo open source. Dependency-Track si integra con GHSA eseguendo il mirroring degli avvisi tramite l'API GraphQL pubblica di GitHub. Il mirror viene aggiornato quotidianamente o al riavvio dell'istanza Dependency-Track. Per eseguire l'autenticazione con GitHub è necessario un token di accesso personale (PAT), ma non è necessario assegnargli alcun ambito.", diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index d44869da0..c0a2f3868 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -314,7 +314,6 @@ "vulnerability_id_generation": "Internal Vulnerability ID Generation", "vulnerability_id_template": "Vulnerability ID Template", "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", - "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "脆弱性エイリアスの同期を有効にする", "vulnsource_alias_sync_enable_tooltip": "エイリアス データは、複数のデータベース間で同一の脆弱性を識別するのに役立ちます。ソースがこのデータを提供する場合は、Dependency-Track のデータベースと同期します。", "vulnsource_github_advisories_desc": "GitHub Advisories (GHSA) は、オープンソースの世界に影響を与える CVE と GitHub 発のセキュリティ アドバイザリのデータベースです。Dependency-Track は、GitHub のパブリック GraphQL API を介してアドバイザリをミラーリングすることで GHSA と統合します。ミラーは毎日、または Dependency-Track インスタンスの再起動時に更新されます。GitHub で認証するには個人アクセス トークン (PAT) が必要ですが、スコープを割り当てる必要はありません。", diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index f0dcef1bf..8b9931ecd 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -314,7 +314,6 @@ "vulnerability_id_generation": "Internal Vulnerability ID Generation", "vulnerability_id_template": "Vulnerability ID Template", "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", - "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "Włącz synchronizację aliasów luk w zabezpieczeniach", "vulnsource_alias_sync_enable_tooltip": "Dane aliasów mogą pomóc w identyfikacji identycznych luk w zabezpieczeniach wielu baz danych. Jeśli źródło dostarcza te dane, zsynchronizuj je z bazą danych Depency-Track.", "vulnsource_github_advisories_desc": "GitHub Advisories (GHSA) to baza danych CVE i porad bezpieczeństwa pochodzących z GitHub, mających wpływ na świat open source. Zależność-Track integruje się z GHSA, odzwierciedlając porady za pośrednictwem publicznego API GraphQL GitHuba. Lustro jest odświeżane codziennie lub po ponownym uruchomieniu instancji Depency-Track. Do uwierzytelnienia w GitHub wymagany jest osobisty token dostępu (PAT), ale nie trzeba do niego przypisywać żadnych zakresów.", diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 5417263d6..ced3a8db4 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -314,7 +314,6 @@ "vulnerability_id_generation": "Internal Vulnerability ID Generation", "vulnerability_id_template": "Vulnerability ID Template", "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", - "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "Habilitar sincronização de alias de vulnerabilidade", "vulnsource_alias_sync_enable_tooltip": "Os dados de alias podem ajudar a identificar vulnerabilidades idênticas em vários bancos de dados. Se a fonte fornecer esses dados, sincronize-os com o banco de dados do Dependency-Track.", "vulnsource_github_advisories_desc": "GitHub Advisories (GHSA) é um banco de dados de CVEs e avisos de segurança originados no GitHub que afetam o mundo do código aberto. Dependency-Track integra-se ao GHSA espelhando avisos por meio da API GraphQL pública do GitHub. O espelho é atualizado diariamente ou na reinicialização da instância Dependency-Track. Um token de acesso pessoal (PAT) é necessário para autenticar no GitHub, mas nenhum escopo precisa ser atribuído a ele.", diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json index 5e1fc2beb..392fb85dd 100644 --- a/src/i18n/locales/pt.json +++ b/src/i18n/locales/pt.json @@ -314,7 +314,6 @@ "vulnerability_id_generation": "Internal Vulnerability ID Generation", "vulnerability_id_template": "Vulnerability ID Template", "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", - "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "Habilitar sincronização de alias de vulnerabilidade", "vulnsource_alias_sync_enable_tooltip": "Os dados de alias podem ajudar a identificar vulnerabilidades idênticas em vários bancos de dados. Se a fonte fornecer esses dados, sincronize-os com o banco de dados do Dependency-Track.", "vulnsource_github_advisories_desc": "GitHub Advisories (GHSA) é um banco de dados de CVEs e avisos de segurança originados no GitHub que afetam o mundo do código aberto. Dependency-Track integra-se ao GHSA espelhando avisos por meio da API GraphQL pública do GitHub. O espelho é atualizado diariamente ou na reinicialização da instância Dependency-Track. Um token de acesso pessoal (PAT) é necessário para autenticar no GitHub, mas nenhum escopo precisa ser atribuído a ele.", diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index 3c64a91e1..cbf1e9806 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -314,7 +314,6 @@ "vulnerability_id_generation": "Internal Vulnerability ID Generation", "vulnerability_id_template": "Vulnerability ID Template", "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", - "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "Включить синхронизацию псевдонимов уязвимостей", "vulnsource_alias_sync_enable_tooltip": "Данные псевдонимов могут помочь в идентификации одинаковых уязвимостей в разных базах данных. Если источник предоставляет такие данные, синхронизируйте их с базой данных Dependency-Track.", "vulnsource_github_advisories_desc": "GitHub Advisories (GHSA) — это база данных CVE и рекомендаций по безопасности, инициированных GitHub, которые затрагивают открытый исходный код. Dependency-Track интегрируется с GHSA, зеркалируя рекомендации через публичный GraphQL API GitHub. Зеркало обновляется ежедневно или при перезапуске экземпляра Dependency-Track. Для аутентификации с GitHub требуется персональный токен доступа (PAT), но ему не нужно присваивать какие-либо права.", diff --git a/src/i18n/locales/uk-UA.json b/src/i18n/locales/uk-UA.json index a489d3b04..329f85a9a 100644 --- a/src/i18n/locales/uk-UA.json +++ b/src/i18n/locales/uk-UA.json @@ -314,7 +314,6 @@ "vulnerability_id_generation": "Internal Vulnerability ID Generation", "vulnerability_id_template": "Vulnerability ID Template", "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", - "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "Увімкнути синхронізацію псевдонімів уразливостей", "vulnsource_alias_sync_enable_tooltip": "Дані псевдонімів можуть допомогти в ідентифікації однакових уразливостей у кількох базах даних. Якщо джерело надає ці дані, синхронізуйте їх з базою даних Dependency-Track.", "vulnsource_github_advisories_desc": "GitHub Advisories (GHSA) – це база даних CVE та рекомендацій з безпеки, створених GitHub, що стосуються відкритого програмного забезпечення. Dependency-Track інтегрується з GHSA, дзеркалюючи рекомендації через публічний GraphQL API GitHub. Дзеркало оновлюється щодня або після перезапуску екземпляра Dependency-Track. Для автентифікації на GitHub потрібен особистий токен доступу (PAT), але йому не потрібно призначати жодних областей дії.", diff --git a/src/i18n/locales/zh-TW.json b/src/i18n/locales/zh-TW.json index eab6de61f..ea16ce5d4 100644 --- a/src/i18n/locales/zh-TW.json +++ b/src/i18n/locales/zh-TW.json @@ -314,7 +314,6 @@ "vulnerability_id_generation": "Internal Vulnerability ID Generation", "vulnerability_id_template": "Vulnerability ID Template", "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", - "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "啟用漏洞別名同步", "vulnsource_alias_sync_enable_tooltip": "別名資料有助於識別多個資料庫中的相同漏洞。如果來源提供此資料,請將其與 Dependency-Track 的資料庫同步。", "vulnsource_github_advisories_desc": "GitHub 公告 (GHSA) 是一個 CVE 資料庫,其中包含影響開源世界的 GitHub 安全公告。Dependency-Track 透過 GitHub 的公開 GraphQL API 鏡像公告,與 GHSA 整合。鏡像每天重新整理一次,或在重新啟動 Dependency-Track 執行個體時重新整理。需要個人存取權杖 (PAT) 才能透過 GitHub 進行身分驗證,但無需為其分配範圍。", diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json index ab4335e5e..a9b0a50b5 100644 --- a/src/i18n/locales/zh.json +++ b/src/i18n/locales/zh.json @@ -314,7 +314,6 @@ "vulnerability_id_generation": "Internal Vulnerability ID Generation", "vulnerability_id_template": "Vulnerability ID Template", "vulnerability_id_template_placeholder": "Select placeholders to define your vulnerability ID format", - "vulnerability_ids": "Vulnerability IDs", "vulnsource_alias_sync_enable": "启用漏洞别名同步", "vulnsource_alias_sync_enable_tooltip": "别名数据有助于识别多个数据库中的相同漏洞。如果来源提供了此数据,请将其与 Dependency-Track 的数据库同步。", "vulnsource_github_advisories_desc": "GitHub 安全公告 (GHSA) 是一个 CVE 数据库,其中包含影响开源世界的 GitHub 安全公告。Dependency-Track 通过 GitHub 的公共 GraphQL API 镜像公告,与 GHSA 集成。镜像每天刷新一次,或在重新启动 Dependency-Track 实例时刷新。需要个人访问令牌 (PAT) 才能通过 GitHub 进行身份验证,但无需为其分配范围。",