diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index ec0c22f5..8dcbd9dc 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -45,6 +45,9 @@ "bearer_token_auth_enable": "Authenticate with a personal access token", "bom_formats": "BOM Formats", "bom_formats_desc": "Enables support for processing BOMs of various formats. Only BOM formats which are enabled will be processed.", + "bom_upload_storage": "BOM Upload Storage", + "bom_upload_storage_compression_level": "Compression Level", + "bom_upload_storage_provider": "Provider", "bom_validation": "BOM Validation", "bom_validation_info": "Historically, Dependency-Track did not validate uploaded BOMs and VEXs against the CycloneDX schema. While this allowed BOMs to be processed that did not strictly adhere to the schema, it could lead to confusion when uploaded files were accepted, but then failed to be ingested during asynchronous processing. Starting with this release, uploaded files will be rejected if they fail schema validation. Note that this may reveal issues in BOM generators that currently produce invalid CycloneDX documents", "cargo": "Cargo", diff --git a/src/views/administration/configuration/BomFormats.vue b/src/views/administration/configuration/BomFormats.vue index 4d3dc95f..9d298511 100644 --- a/src/views/administration/configuration/BomFormats.vue +++ b/src/views/administration/configuration/BomFormats.vue @@ -23,6 +23,59 @@ {{ $t('admin.bom_validation_info') }}

+
+ + + + Database + Local + + + + + + + + + {{ bomUploadStorageCompressionLevel }} + + + + +
{{ @@ -49,6 +102,8 @@ export default { return { isCycloneDXEnabled: false, bomValidate: true, + bomUploadStorageProvider: null, + bomUploadStorageCompressionLevel: null, }; }, methods: { @@ -64,13 +119,23 @@ export default { propertyName: 'bom.validation.enabled', propertyValue: this.bomValidate, }, + { + groupName: 'artifact', + propertyName: 'bom.upload.storage.provider', + propertyValue: this.bomUploadStorageProvider, + }, + { + groupName: 'artifact', + propertyName: 'bom.upload.storage.compression.level', + propertyValue: this.bomUploadStorageCompressionLevel, + }, ]); }, }, created() { this.axios.get(this.configUrl).then((response) => { let configItems = response.data.filter(function (item) { - return item.groupName === 'artifact' && item.propertyType === 'BOOLEAN'; + return item.groupName === 'artifact'; }); for (let i = 0; i < configItems.length; i++) { let item = configItems[i]; @@ -82,6 +147,12 @@ export default { case 'bom.validation.enabled': this.bomValidate = common.toBoolean(item.propertyValue); break; + case 'bom.upload.storage.provider': + this.bomUploadStorageProvider = item.propertyValue; + break; + case 'bom.upload.storage.compression.level': + this.bomUploadStorageCompressionLevel = item.propertyValue; + break; } } });