Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
ae040e2
prepare-release: set version to 5.6.0
dependencytrack-bot Jul 31, 2025
593d705
added gitlab integration & routing
EphraimEM Feb 11, 2025
c04e860
fix the error on gitlab enabled not found
EphraimEM Feb 11, 2025
47d1cd4
added the include archived project button
EphraimEM Feb 13, 2025
0557052
add gitlab enable to other locals language & rename GitLab folder
EphraimEM Feb 17, 2025
8621a13
add the topic buttons to gitlab integration
EphraimEM Feb 18, 2025
1cde373
intial try to fix permission modal. Having trouble with URL
jmayer-lm Apr 2, 2025
f44c3ed
Multi-select feature for SelectPermissionModal
emeremikwu-lm Apr 3, 2025
b0996b8
fix: fix projectlist refresh, add translation
ashearin Apr 3, 2025
e0c870f
change gitlab project sync to gitlab, add gitlab enable watch event/f…
ashearin Apr 16, 2025
b57f299
update index pathing
ashearin Apr 17, 2025
b879be8
add gitlab appID and url fields
ashearin Apr 24, 2025
84d0e8e
feat: add sbom push options to gitlab integration
alamb-lm May 6, 2025
d6823b6
feat: update conditional logic
alamb-lm May 20, 2025
bb16986
refactor: align gitlab integration enable with other integration flow…
ashearin Jun 4, 2025
6f85a1d
feat: add GitLab JWKS path field (#3)
jmayer-lm Jun 4, 2025
b5c4b51
fix: reflect proper default value of sbom enabled switch (#6)
ashearin Jun 12, 2025
980ae9b
Roles select prepopulation (#5)
emeremikwu-lm Jun 18, 2025
83890bb
Role dsync and gitlab view reorg (#8)
emeremikwu-lm Jul 2, 2025
361a791
fix: update GITLAB_SBOM_PUSH_ENABLED property name (#7)
alamb-lm Jul 9, 2025
8772ea9
parent 16ff88241a5dc01a8e756a80e89344c5deff165e
emeremikwu-lm Jul 25, 2025
5d7c8cc
build(deps): bump docker/login-action from 3.4.0 to 3.5.0
dependabot[bot] Aug 5, 2025
07f90f6
Require `VULNERABILITY_ANALYSIS` permission for project reanalysis (#…
nscuro Aug 11, 2025
95123c0
Fix misaligned required permissions for "export inventory w/ vulns" a…
nscuro Aug 11, 2025
4e591a2
build(deps): bump actions/checkout from 4.2.2 to 5.0.0
dependabot[bot] Aug 12, 2025
8dd0791
build(deps): bump nginxinc/nginx-unprivileged in /docker
dependabot[bot] Aug 12, 2025
39c6b1f
build(deps): bump actions/download-artifact from 4.3.0 to 5.0.0
dependabot[bot] Aug 5, 2025
25c3fdb
Introduce simple feature flagging mechanism (#325)
nscuro Aug 12, 2025
6535206
Support token-based pagination for tables (#326)
nscuro Aug 15, 2025
98034d4
Handle problem details responses for 5xx status codes (#327)
nscuro Aug 15, 2025
a54e07d
build(deps): bump nginxinc/nginx-unprivileged in /docker
dependabot[bot] Aug 19, 2025
87381e0
build(deps): bump nginxinc/nginx-unprivileged in /docker
dependabot[bot] Aug 20, 2025
00217d7
Remove duplicate field for include_archieved_projects
Sep 16, 2025
bcc0a66
prepare-release: set version to 5.6.0
dependencytrack-bot Jul 31, 2025
f004487
added gitlab integration & routing
EphraimEM Feb 11, 2025
4a46d5a
fix the error on gitlab enabled not found
EphraimEM Feb 11, 2025
8c4e389
added the include archived project button
EphraimEM Feb 13, 2025
5bbf61f
add gitlab enable to other locals language & rename GitLab folder
EphraimEM Feb 17, 2025
e9cbd8b
add the topic buttons to gitlab integration
EphraimEM Feb 18, 2025
3638571
intial try to fix permission modal. Having trouble with URL
jmayer-lm Apr 2, 2025
37de804
Multi-select feature for SelectPermissionModal
emeremikwu-lm Apr 3, 2025
efa6497
fix: fix projectlist refresh, add translation
ashearin Apr 3, 2025
0d30baa
change gitlab project sync to gitlab, add gitlab enable watch event/f…
ashearin Apr 16, 2025
39fe97f
update index pathing
ashearin Apr 17, 2025
d14e959
add gitlab appID and url fields
ashearin Apr 24, 2025
26c9200
feat: add sbom push options to gitlab integration
alamb-lm May 6, 2025
3074603
feat: update conditional logic
alamb-lm May 20, 2025
6e1d6dd
refactor: align gitlab integration enable with other integration flow…
ashearin Jun 4, 2025
e6b212c
feat: add GitLab JWKS path field (#3)
jmayer-lm Jun 4, 2025
d47db0c
fix: reflect proper default value of sbom enabled switch (#6)
ashearin Jun 12, 2025
8cd1949
Roles select prepopulation (#5)
emeremikwu-lm Jun 18, 2025
f1b52ba
Role dsync and gitlab view reorg (#8)
emeremikwu-lm Jul 2, 2025
f561405
fix: update GITLAB_SBOM_PUSH_ENABLED property name (#7)
alamb-lm Jul 9, 2025
d47ec46
parent 16ff88241a5dc01a8e756a80e89344c5deff165e
emeremikwu-lm Jul 25, 2025
30dbfb3
build(deps): bump docker/login-action from 3.4.0 to 3.5.0
dependabot[bot] Aug 5, 2025
69614df
Require `VULNERABILITY_ANALYSIS` permission for project reanalysis (#…
nscuro Aug 11, 2025
0b8ae2a
Fix misaligned required permissions for "export inventory w/ vulns" a…
nscuro Aug 11, 2025
fa1ddde
build(deps): bump actions/checkout from 4.2.2 to 5.0.0
dependabot[bot] Aug 12, 2025
7bec2a9
build(deps): bump nginxinc/nginx-unprivileged in /docker
dependabot[bot] Aug 12, 2025
60d8e73
build(deps): bump actions/download-artifact from 4.3.0 to 5.0.0
dependabot[bot] Aug 5, 2025
a04ba89
Introduce simple feature flagging mechanism (#325)
nscuro Aug 12, 2025
0562b42
Support token-based pagination for tables (#326)
nscuro Aug 15, 2025
0890e23
Handle problem details responses for 5xx status codes (#327)
nscuro Aug 15, 2025
a45b403
build(deps): bump nginxinc/nginx-unprivileged in /docker
dependabot[bot] Aug 19, 2025
5cc96c8
build(deps): bump nginxinc/nginx-unprivileged in /docker
dependabot[bot] Aug 20, 2025
fdaaa1a
Remove duplicate field for include_archieved_projects
Sep 16, 2025
f4c0ddd
Merge branch 'gitlab-integration-bom-upload' of https://github.com/lm…
jwienold413145 Sep 24, 2025
b210381
verify signature
jwienold413145 Sep 24, 2025
a535adb
verify signature
jwienold413145 Sep 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/_meta-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:

steps:
- name: Checkout Repository
uses: actions/checkout@v4.2.2
uses: actions/checkout@v5.0.0

- name: Set up NodeJs
uses: actions/[email protected]
Expand Down Expand Up @@ -60,10 +60,10 @@ jobs:

steps:
- name: Checkout Repository
uses: actions/checkout@v4.2.2
uses: actions/checkout@v5.0.0

- name: Download Artifacts
uses: actions/download-artifact@v4.3.0
uses: actions/download-artifact@v5.0.0
with:
name: assembled-frontend

Expand All @@ -77,7 +77,7 @@ jobs:
install: true

- name: Login to GitHub Container Registry
uses: docker/login-action@v3.4.0
uses: docker/login-action@v3.5.0
if: ${{ inputs.publish-container }}
with:
registry: ghcr.io
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/ci-publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
fi

- name: Checkout Repository
uses: actions/checkout@v4.2.2
uses: actions/checkout@v5.0.0

- name: Parse Version from package.json
id: parse
Expand Down Expand Up @@ -52,10 +52,10 @@ jobs:
- call-build
steps:
- name: Checkout Repository
uses: actions/checkout@v4.2.2
uses: actions/checkout@v5.0.0

- name: Download Artifacts
uses: actions/download-artifact@v4.3.0
uses: actions/download-artifact@v5.0.0
with:
name: assembled-frontend

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4.2.2
uses: actions/checkout@v5.0.0
with:
persist-credentials: false

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/codeql-analysis.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v4.2.2
uses: actions/checkout@v5.0.0

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dependency-review.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4.2.2
uses: actions/checkout@v5.0.0

- name: Dependency Review
uses: actions/dependency-review-action@v4
2 changes: 1 addition & 1 deletion .github/workflows/i18n.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:

steps:
- name: Checkout Repository
uses: actions/checkout@v4.2.2
uses: actions/checkout@v5.0.0

- name: Set up NodeJs
uses: actions/[email protected]
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:

steps:
- name: Checkout Repository
uses: actions/checkout@v4.2.2
uses: actions/checkout@v5.0.0

- name: Set up NodeJs
uses: actions/[email protected]
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/mirror-container-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
&& github.event.registry_package.package_version.container_metadata.tag.name != ''
steps:
- name: Login to Docker Hub
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # tag=v3.4.0
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # tag=v3.5.0
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_TOKEN }}
Expand Down
2 changes: 1 addition & 1 deletion docker/Dockerfile.alpine
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM nginxinc/nginx-unprivileged:1.29.0-alpine@sha256:43e46e21e93da1a7e6f3fb99595471c81426884e5a9beedb5b773b7a51d60e83
FROM nginxinc/nginx-unprivileged:1.29.1-alpine@sha256:69e8821ff71771c12686bfd1a3f74b92c02f53ea422e1378d26fc7bb29044cf2

# Arguments that can be passed at build time
ARG COMMIT_SHA=unknown
Expand Down
12 changes: 11 additions & 1 deletion docker/docker-entrypoint.d/30-oidc-configuration.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,18 @@ ME=$(basename $0)
if ! touch ./static/config.json 2>/dev/null; then
entrypoint_log "$ME: info: can not modify config.json - ENV configuration will be ignored"
else
CONFIG=$(jq '.API_BASE_URL = env.API_BASE_URL
feature_flags="$(jq -r '.FEATURE_FLAGS // {}' ./static/config.json)"
for feature_flag_var in $(env | grep '^FEATURE_FLAG_' | cut -d= -f1); do
feature_name=$(echo "${feature_flag_var}" | sed 's/^FEATURE_FLAG_//')
eval "feature_value=\$${feature_flag_var}"
entrypoint_log "$ME: info: ${feature_name}=${feature_value}"
feature_flags=$(echo "${feature_flags}" | jq --arg name "${feature_name}" --argjson enabled "${feature_value}" '. + {($name): $enabled}')
done

CONFIG=$(jq --argjson feature_flags "${feature_flags}" \
'.API_BASE_URL = env.API_BASE_URL
| .API_WITH_CREDENTIALS = env.API_WITH_CREDENTIALS
| .FEATURE_FLAGS = $feature_flags
| .OIDC_ISSUER = env.OIDC_ISSUER
| .OIDC_CLIENT_ID = env.OIDC_CLIENT_ID
| .OIDC_SCOPE = env.OIDC_SCOPE
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@dependencytrack/frontend",
"version": "5.5.0",
"version": "5.6.0",
"description": "Single Page Application for OWASP Dependency-Track",
"author": "Steve Springett",
"homepage": "https://dependencytrack.org/",
Expand Down
4 changes: 4 additions & 0 deletions public/static/config.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
{
"API_BASE_URL": "",
"API_WITH_CREDENTIALS": "",
"FEATURE_FLAGS": {
"GLOBAL_POLICY_VIOLATION_AUDIT": true,
"GLOBAL_VULNERABILITY_AUDIT": true
},
"OIDC_CLIENT_ID": "",
"OIDC_FLOW": "code",
"OIDC_ISSUER": "",
Expand Down
14 changes: 10 additions & 4 deletions src/App.vue
Original file line number Diff line number Diff line change
Expand Up @@ -86,10 +86,16 @@ export default {
);
}
} else {
this.$toastr.e(
error.response.statusText + ' (' + error.response.status + ')',
this.$t('condition.server_error'),
);
if (
error.response.headers['content-type'] === 'application/problem+json'
) {
this.$toastr.w(error.response.data.detail, error.response.data.title);
} else {
this.$toastr.e(
error.response.statusText + ' (' + error.response.status + ')',
this.$t('condition.server_error'),
);
}
}
return Promise.reject(error);
});
Expand Down
15 changes: 15 additions & 0 deletions src/containers/DefaultContainer.vue
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ import DefaultFooter from './DefaultFooter';
import EventBus from '../shared/eventbus';
import ProfileEditModal from '../views/components/ProfileEditModal';
import * as permissions from '../shared/permissions';
import * as featureFlags from '@/shared/featureFlags';

export default {
name: 'DefaultContainer',
Expand Down Expand Up @@ -118,18 +119,24 @@ export default {
permissions.VIEW_VULNERABILITY,
permissions.VIEW_POLICY_VIOLATION,
],
featureFlags: [
featureFlags.GLOBAL_POLICY_VIOLATION_AUDIT,
featureFlags.GLOBAL_VULNERABILITY_AUDIT,
],
},
{
name: this.$t('message.vulnerability_audit'),
url: '/vulnerabilityAudit',
icon: 'fa fa-tasks',
permission: permissions.VIEW_VULNERABILITY,
featureFlags: [featureFlags.GLOBAL_VULNERABILITY_AUDIT],
},
{
name: this.$t('message.policy_violation_audit'),
url: '/policyViolationAudit',
icon: 'fa fa-fire',
permission: permissions.VIEW_POLICY_VIOLATION,
featureFlags: [featureFlags.GLOBAL_POLICY_VIOLATION_AUDIT],
},
{
title: true,
Expand Down Expand Up @@ -262,6 +269,14 @@ export default {
let decodedToken = permissions.decodeToken(permissions.getToken());
let array = [];
for (const item of this.nav) {
if (
item.featureFlags &&
Array.isArray(item.featureFlags) &&
!this.$isAnyFeatureEnabled(item.featureFlags)
) {
continue;
}

if (
(item.permission !== null &&
permissions.hasPermission(item.permission, decodedToken)) ||
Expand Down
25 changes: 24 additions & 1 deletion src/i18n/locales/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
"api_keys": "API-Schlüssel",
"api_token": "API-Token",
"api_token_header": "Header des API-Tokens",
"app_id": "App ID",
"base_url": "Basis-URL",
"bearer_token_auth_enable": "Authentifizieren mit einem persönlichen Zugriffstoken",
"bom_formats": "BOM-Formate",
Expand Down Expand Up @@ -118,13 +119,17 @@
"general_template_configuration": "Allgemeine Vorlagenkonfiguration",
"github": "GitHub",
"github_advisories": "GitHub Advisories",
"gitlab": "GitLab",
"gitlab_audience": "Publikum",
"gitlab_jwks_path": "GitLab JWKS-Pfad",
"go_modules": "Go Module",
"group": "Gruppe",
"hackage": "Hackage",
"hex": "Hex",
"hours": "Stunden",
"identifier": "Kennung",
"include_active_children": "Aktive untergeordnete Projekte einschließen",
"include_archived_projects": "Archivierte Projekte einbeziehen",
"include_children": "Untergeordnete Projekte einbeziehen",
"index_consistency_check_cadence": "Kadenz (in Minuten)",
"index_consistency_check_description": "Sie können eine regelmäßige Hintergrundaufgabe aktivieren, die überprüft, ob alle Indizes vorhanden sind, nicht beschädigt sind und ob ihre Abweichung von der Dependency-Track-Datenbank unter einem definierten Schwellenwert liegt. Jeder Prüffehler löst eine Neuerstellung des entsprechenden Indexes aus. Ein Neustart ist erforderlich, um die Kadenzänderung zu berücksichtigen.",
Expand All @@ -133,9 +138,12 @@
"index_issues_description": "Die Lucene-Indizes können sich mit der Zeit verschlechtern oder von der Dependency Track-Datenbank abweichen. Obwohl DT sein Bestes tut, um die Abweichung zu minimieren, stehen die folgenden Verwaltungsfunktionen zur Verfügung, um die Indizes bei Bedarf zu überprüfen oder wiederherzustellen. Sie müssen mit Vorsicht verwendet werden.",
"index_rebuild_description": "Sie können selektiv einen sofortigen Neuaufbau einiger oder aller Indizes auslösen. Der Indexneuaufbau wird durch asynchrone Aufgaben durchgeführt. Sie können den Fortschritt mithilfe von Dependency Track-Protokollen überprüfen.",
"index_use_cases": "Die Volltextsuchfunktion wird hauptsächlich für die Such-API (d. h. alle Indizes) und das Fuzzy-Matching des internen Analyzers auf CPE (d. h. den Index für anfällige Software) verwendet.",
"integration_auto_create_enabled": "Automatische Erstellung aktivieren",
"integration_defectdojo_enable": "DefectDojo-Integration aktivieren",
"integration_defectdojo_reimport_enable": "Erneuten Import aktivieren",
"integration_fortify_ssc_enable": "Fortify SSC-Integration aktivieren",
"integration_gitlab_enable": "GitLab-Integration aktivieren",
"integration_gitlab_sbom_enable": "SBOM-Integration aktivieren",
"integration_kenna_connector_id": "Konnektor-ID",
"integration_kenna_enable": "Kenna Security-Integration aktivieren",
"integrations": "Integrationen",
Expand Down Expand Up @@ -167,7 +175,11 @@
"metrics": "Metriken",
"mime_type": "Mime Typ",
"minutes": "Minuten",
"multiselect_add_new_topic": "Fügen Sie dies als neues Thema hinzu",
"multiselect_add_topic": "Thema hinzufügen",
"multiselect_enter_new_topic": "Geben Sie ein neues Thema ein",
"multiselect_remove_role": "Rollen können nur geändert werden",
"multiselect_remove_topic": "Thema entfernen",
"name_regex": "Komponentenname Regex",
"name_regex_desc": "Gibt einen regulären Ausdruck an, der interne Komponenten anhand des Komponentennamens identifiziert.",
"namespace_regex": "Regulärer Ausdruck für den Komponenten-Namespace",
Expand All @@ -190,12 +202,16 @@
"old_key_format": "Dieser API -Schlüssel ist veraltet und sollte bald für fortgesetzte Funktionen aktualisiert werden!",
"oss_index": "Sonatype OSS-Index",
"osv_advisories": "Google OSV Advisories (Beta)",
"pagination_all": "Alle",
"pagination_current": "{start} bis {end} von {total}",
"pagination_per_page": "Pro Seite: {count}",
"password": "Passwort (oder Zugriffstoken)",
"password_confirm": "Bestätige das Passwort",
"password_never_expires": "Passwort verfällt niemals",
"password_updated": "Passwort aktualisiert",
"perform_identification": "Identifizierung durchführen",
"perform_test": "Test durchführen",
"permission_removed": "Genehmigung entfernt",
"permissions": "Berechtigungen",
"permissions_updated": "Die Berechtigungen wurden aktualisiert",
"personal_access_token": "Persönlicher Zugriffstoken",
Expand Down Expand Up @@ -297,6 +313,7 @@
"templates": "Vorlagen",
"test_notification_queued": "Eine Testbenachrichtigung wurde in die Warteschlange gestellt",
"token": "Token",
"topics": "Themen",
"trivy": "Trivy",
"url": "URL",
"user_created": "Benutzer erstellt",
Expand Down Expand Up @@ -391,6 +408,7 @@
"authenticated": "Authentifiziert",
"author": "Autor",
"authors": "Autoren",
"available_roles_failed": "Die verfügbaren Benutzerrollen nicht abrufen",
"bom": "BOM",
"bom_format": "BOM-Format",
"bom_uploaded": "BOM hochgeladen",
Expand Down Expand Up @@ -452,6 +470,9 @@
"contacts": "Kontakte",
"coordinates": "Koordinaten",
"coordinates_version_tooltip": "Mit den Vergleichsoperatoren >, <, >=, <=, == und != können Sie bestimmte Versionen oder Versionsbereiche vergleichen.",
"copy_failed": "Versäumt, in die Zwischenablage zu kopieren",
"copy_success": "In die Zwischenablage kopiert",
"copy_to_clipboard": "Kopieren Sie in die Zwischenablage",
"copyright": "Urheberrechte ©",
"cpe": "CPE",
"cpe_full": "Gemeinsame Plattformaufzählung (CPE)",
Expand Down Expand Up @@ -602,11 +623,11 @@
"license_text": "Lizenztext",
"license_url": "Lizenz-URL",
"licenses": "Lizenzen",
"loading": "Laden",
"login": "Anmeldung",
"login_desc": "Melden Sie sich bei Ihrem Konto an",
"login_forbidden": "Dieses Konto ist inaktiv oder wurde gesperrt",
"login_more_options": "Mehr Optionen",
"login_permission_required": "Die Anmeldung war erfolgreich, aber Sie verfügen anscheinend noch nicht über die erforderlichen Berechtigungen. Bitte wenden Sie sich an Ihren Administrator.",
"login_unauthorized": "ungültiger Benutzername oder Passwort",
"logout": "Ausloggen",
"manufacturer": "Hersteller",
Expand Down Expand Up @@ -787,6 +808,8 @@
"project_reanalyze_requested": "Es wurde eine Schwachstellenanalyse für das Projekt angefordert. Die Daten zu den Schwachstellen des Projekts werden aktualisiert, sobald die Neuanalyse abgeschlossen ist.",
"project_reanalyze_tooltip": "Führt konfigurierte Analyseprogramme aus, um Schwachstellen in den Komponenten dieses Projekts zu erkennen. Verwendet alle zwischengespeicherten Ergebnisse, die noch nicht abgelaufen sind.",
"project_retention_type": "Wählen Sie den Aufbewahrungstyp für Projekte aus",
"project_role_mappings_failed": "Ich habe keine Projektrollenzuordnungen abgerufen",
"project_roles": "Projektrollen",
"project_supplier_name_desc": "Die Organisation, die die im Projekt beschriebene Komponente geliefert hat",
"project_updated": "Projekt aktualisiert",
"project_vulnerabilities": "Projektschwachstellen",
Expand Down
Loading
Loading