From b6285642940e0444d676cdc8ddbba5946b2905cd Mon Sep 17 00:00:00 2001 From: Sven Dolderer Date: Fri, 15 Nov 2024 17:28:19 +0100 Subject: [PATCH 01/13] fixed web-ui release workflow #3620 --- .github/workflows/release-web-ui.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-web-ui.yml b/.github/workflows/release-web-ui.yml index 3a193dd16..d9e433f45 100644 --- a/.github/workflows/release-web-ui.yml +++ b/.github/workflows/release-web-ui.yml @@ -112,7 +112,7 @@ jobs: npm run build && \ cd dist && \ echo '${{ inputs.web-ui-version }}' > sechub-web-ui_version.txt && \ - zip -r ../../../$WEB_UI_RELEASE_ZIPFILE * + zip -r ../../$WEB_UI_RELEASE_ZIPFILE * - name: Collect GIT status if: always() From b0dcffc49713359b2b56d3f540ac4d5d3d31143e Mon Sep 17 00:00:00 2001 From: Sven Dolderer Date: Mon, 18 Nov 2024 10:23:40 +0100 Subject: [PATCH 02/13] env files updated #3623 - version - build type -cleanup --- sechub-web-server-solution/env | 2 +- sechub-web-ui-solution/env | 10 +++------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/sechub-web-server-solution/env b/sechub-web-server-solution/env index f80584d67..347e24f2e 100644 --- a/sechub-web-server-solution/env +++ b/sechub-web-server-solution/env @@ -6,7 +6,7 @@ BASE_IMAGE=debian:12-slim # build - clones and build SecHub # copy - copies jar into container # download - downloads the SecHub jar -BUILD_TYPE=build +BUILD_TYPE=download # The SecHub web-server version used if the BUILD_TYPE is set to `download` WEB_SERVER_VERSION="0.1.0" diff --git a/sechub-web-ui-solution/env b/sechub-web-ui-solution/env index d397754f5..bde262d72 100644 --- a/sechub-web-ui-solution/env +++ b/sechub-web-ui-solution/env @@ -1,10 +1,6 @@ -# Node Version +# Base image Version BASE_IMAGE=debian:12-slim -# Resource limits -MEMORY_LIMIT=300M -CPU_LIMIT=1.0 - # The build type of SecHub inside the container # Possible values are: build, copy, download (currently only copy) # build - clones and build from SecHub repository @@ -13,9 +9,9 @@ CPU_LIMIT=1.0 BUILD_TYPE=download # The PDS version used if the BUILD_TYPE is set to `download` -WEB_UI_VERSION="0.1.0" +WEB_UI_VERSION="0.2.0" # Git information if the BUILD_TYPE is set to `build` GIT_TAG="" GIT_BRANCH="" -WEB_UI_SSL_KEYSTORE_ALIAS="undefined" \ No newline at end of file +WEB_UI_SSL_KEYSTORE_ALIAS="undefined" From 6dc3cc5dac4e405f30d92be340ed5eda89653c27 Mon Sep 17 00:00:00 2001 From: Laura Date: Wed, 20 Nov 2024 17:20:55 +0100 Subject: [PATCH 03/13] Implement localization for web-ui (#3630) * Added Vue i18n to web-ui --- sechub-web-ui/package-lock.json | 380 +++++++++++++++++- sechub-web-ui/package.json | 2 + .../src/components/SecHubDefault.vue | 2 +- sechub-web-ui/src/i18n/index.ts | 16 + sechub-web-ui/src/i18n/locales/en.json | 3 + sechub-web-ui/src/plugins/index.ts | 3 + sechub-web-ui/vite.config.mts | 8 + 7 files changed, 412 insertions(+), 2 deletions(-) create mode 100644 sechub-web-ui/src/i18n/index.ts create mode 100644 sechub-web-ui/src/i18n/locales/en.json diff --git a/sechub-web-ui/package-lock.json b/sechub-web-ui/package-lock.json index 654d9f1b3..dba3e2272 100644 --- a/sechub-web-ui/package-lock.json +++ b/sechub-web-ui/package-lock.json @@ -12,10 +12,12 @@ "core-js": "^3.37.1", "roboto-fontface": "*", "vue": "^3.4.31", + "vue-i18n": "^10.0.4", "vuetify": "^3.6.11" }, "devDependencies": { "@babel/types": "^7.24.7", + "@intlify/unplugin-vue-i18n": "^6.0.0", "@types/node": "^20.14.10", "@vitejs/plugin-vue": "^5.0.5", "@vue/eslint-config-typescript": "^13.0.0", @@ -689,6 +691,261 @@ "dev": true, "license": "BSD-3-Clause" }, + "node_modules/@intlify/bundle-utils": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@intlify/bundle-utils/-/bundle-utils-10.0.0.tgz", + "integrity": "sha512-BR5yLOkF2dzrARTbAg7RGAIPcx9Aark7p1K/0O285F7rfzso9j2dsa+S4dA67clZ0rToZ10NSSTfbyUptVu7Bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@intlify/message-compiler": "next", + "@intlify/shared": "next", + "acorn": "^8.8.2", + "escodegen": "^2.1.0", + "estree-walker": "^2.0.2", + "jsonc-eslint-parser": "^2.3.0", + "mlly": "^1.2.0", + "source-map-js": "^1.0.1", + "yaml-eslint-parser": "^1.2.2" + }, + "engines": { + "node": ">= 18" + }, + "peerDependenciesMeta": { + "petite-vue-i18n": { + "optional": true + }, + "vue-i18n": { + "optional": true + } + } + }, + "node_modules/@intlify/core-base": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-10.0.4.tgz", + "integrity": "sha512-GG428DkrrWCMhxRMRQZjuS7zmSUzarYcaHJqG9VB8dXAxw4iQDoKVQ7ChJRB6ZtsCsX3Jse1PEUlHrJiyQrOTg==", + "license": "MIT", + "dependencies": { + "@intlify/message-compiler": "10.0.4", + "@intlify/shared": "10.0.4" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-10.0.4.tgz", + "integrity": "sha512-AFbhEo10DP095/45EauinQJ5hJ3rJUmuuqltGguvc3WsvezZN+g8qNHLGWKu60FHQVizMrQY7VJ+zVlBXlQQkQ==", + "license": "MIT", + "dependencies": { + "@intlify/shared": "10.0.4", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/shared": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-10.0.4.tgz", + "integrity": "sha512-ukFn0I01HsSgr3VYhYcvkTCLS7rGa0gw4A4AMpcy/A9xx/zRJy7PS2BElMXLwUazVFMAr5zuiTk3MQeoeGXaJg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/unplugin-vue-i18n": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-6.0.0.tgz", + "integrity": "sha512-PhFdVR0YggJcvbFrfXTKRv5S6/DPy7FPBtepVIloDpOvco5FHJYKHyaPXqMMWhN1o8MiD2KnSwS2222zWAQs+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@intlify/bundle-utils": "^10.0.0", + "@intlify/shared": "latest", + "@intlify/vue-i18n-extensions": "^7.0.0", + "@rollup/pluginutils": "^5.1.0", + "@typescript-eslint/scope-manager": "^8.13.0", + "@typescript-eslint/typescript-estree": "^8.13.0", + "debug": "^4.3.3", + "fast-glob": "^3.2.12", + "js-yaml": "^4.1.0", + "json5": "^2.2.3", + "pathe": "^1.0.0", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2", + "unplugin": "^1.1.0", + "vue": "^3.4" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "petite-vue-i18n": "*", + "vue": "^3.2.25", + "vue-i18n": "*" + }, + "peerDependenciesMeta": { + "petite-vue-i18n": { + "optional": true + }, + "vue-i18n": { + "optional": true + } + } + }, + "node_modules/@intlify/unplugin-vue-i18n/node_modules/@typescript-eslint/scope-manager": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.15.0.tgz", + "integrity": "sha512-QRGy8ADi4J7ii95xz4UoiymmmMd/zuy9azCaamnZ3FM8T5fZcex8UfJcjkiEZjJSztKfEBe3dZ5T/5RHAmw2mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.15.0", + "@typescript-eslint/visitor-keys": "8.15.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@intlify/unplugin-vue-i18n/node_modules/@typescript-eslint/types": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.15.0.tgz", + "integrity": "sha512-n3Gt8Y/KyJNe0S3yDCD2RVKrHBC4gTUcLTebVBXacPy091E6tNspFLKRXlk3hwT4G55nfr1n2AdFqi/XMxzmPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@intlify/unplugin-vue-i18n/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.15.0.tgz", + "integrity": "sha512-1eMp2JgNec/niZsR7ioFBlsh/Fk0oJbhaqO0jRyQBMgkz7RrFfkqF9lYYmBoGBaSiLnu8TAPQTwoTUiSTUW9dg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "8.15.0", + "@typescript-eslint/visitor-keys": "8.15.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@intlify/unplugin-vue-i18n/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.15.0.tgz", + "integrity": "sha512-h8vYOulWec9LhpwfAdZf2bjr8xIp0KNKnpgqSz0qqYYKAW/QZKw3ktRndbiAtUz4acH4QLQavwZBYCc0wulA/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.15.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@intlify/unplugin-vue-i18n/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@intlify/unplugin-vue-i18n/node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@intlify/vue-i18n-extensions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@intlify/vue-i18n-extensions/-/vue-i18n-extensions-7.0.0.tgz", + "integrity": "sha512-MtvfJnb4aklpCU5Q/dkWkBT/vGsp3qERiPIwtTq5lX4PCLHtUprAJZp8wQj5ZcwDaFCU7+yVMjYbeXpIf927cA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.24.6", + "@intlify/shared": "^10.0.0", + "@vue/compiler-dom": "^3.2.45", + "vue-i18n": "^10.0.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@intlify/shared": "^9.0.0 || ^10.0.0", + "@vue/compiler-dom": "^3.0.0", + "vue": "^3.0.0", + "vue-i18n": "^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "@intlify/shared": { + "optional": true + }, + "@vue/compiler-dom": { + "optional": true + }, + "vue": { + "optional": true + }, + "vue-i18n": { + "optional": true + } + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", @@ -828,6 +1085,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -841,6 +1099,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -854,6 +1113,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -867,6 +1127,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -880,6 +1141,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -893,6 +1155,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -906,6 +1169,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -919,6 +1183,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -932,6 +1197,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -945,6 +1211,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -958,6 +1225,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -971,6 +1239,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -984,6 +1253,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -997,6 +1267,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1010,6 +1281,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1023,6 +1295,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1036,6 +1309,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1049,6 +1323,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1420,7 +1695,6 @@ "version": "6.6.4", "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", - "dev": true, "license": "MIT" }, "node_modules/@vue/eslint-config-typescript": { @@ -2426,6 +2700,28 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, "node_modules/eslint": { "version": "8.57.1", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", @@ -3020,6 +3316,20 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/esquery": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", @@ -4012,6 +4322,25 @@ "json5": "lib/cli.js" } }, + "node_modules/jsonc-eslint-parser": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-2.4.0.tgz", + "integrity": "sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.5.0", + "eslint-visitor-keys": "^3.0.0", + "espree": "^9.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -4932,6 +5261,17 @@ "node": ">=8" } }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -5641,6 +5981,26 @@ "eslint": ">=6.0.0" } }, + "node_modules/vue-i18n": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-10.0.4.tgz", + "integrity": "sha512-1xkzVxqBLk2ZFOmeI+B5r1J7aD/WtNJ4j9k2mcFcQo5BnOmHBmD7z4/oZohh96AAaRZ4Q7mNQvxc9h+aT+Md3w==", + "license": "MIT", + "dependencies": { + "@intlify/core-base": "10.0.4", + "@intlify/shared": "10.0.4", + "@vue/devtools-api": "^6.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, "node_modules/vue-router": { "version": "4.4.5", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.4.5.tgz", @@ -5805,6 +6165,24 @@ "node": ">= 14" } }, + "node_modules/yaml-eslint-parser": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-1.2.3.tgz", + "integrity": "sha512-4wZWvE398hCP7O8n3nXKu/vdq1HcH01ixYlCREaJL5NUMwQ0g3MaGFUBNSlmBtKmhbtVG/Cm6lyYmSVTEVil8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.0.0", + "lodash": "^4.17.21", + "yaml": "^2.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/sechub-web-ui/package.json b/sechub-web-ui/package.json index 5de1bf2b1..f1a109fc3 100644 --- a/sechub-web-ui/package.json +++ b/sechub-web-ui/package.json @@ -12,10 +12,12 @@ "core-js": "^3.37.1", "roboto-fontface": "*", "vue": "^3.4.31", + "vue-i18n": "^10.0.4", "vuetify": "^3.6.11" }, "devDependencies": { "@babel/types": "^7.24.7", + "@intlify/unplugin-vue-i18n": "^6.0.0", "@types/node": "^20.14.10", "@vitejs/plugin-vue": "^5.0.5", "@vue/eslint-config-typescript": "^13.0.0", diff --git a/sechub-web-ui/src/components/SecHubDefault.vue b/sechub-web-ui/src/components/SecHubDefault.vue index e0c130bc3..e795fa08d 100644 --- a/sechub-web-ui/src/components/SecHubDefault.vue +++ b/sechub-web-ui/src/components/SecHubDefault.vue @@ -10,7 +10,7 @@ max-width="900" >
-
Welcome to
+
{{ $t('GREETING') }}

SecHub!

diff --git a/sechub-web-ui/src/i18n/index.ts b/sechub-web-ui/src/i18n/index.ts new file mode 100644 index 000000000..217fb09d5 --- /dev/null +++ b/sechub-web-ui/src/i18n/index.ts @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: MIT + +import {createI18n} from 'vue-i18n'; + +import en from './locales/en.json'; + +const i18n = createI18n({ + legacy: false, + locale: 'en', + fallbackLocale: 'en', + messages: { + en + }, +}) + +export default i18n \ No newline at end of file diff --git a/sechub-web-ui/src/i18n/locales/en.json b/sechub-web-ui/src/i18n/locales/en.json new file mode 100644 index 000000000..5f7dd584a --- /dev/null +++ b/sechub-web-ui/src/i18n/locales/en.json @@ -0,0 +1,3 @@ +{ + "GREETING": "Welcome" +} \ No newline at end of file diff --git a/sechub-web-ui/src/plugins/index.ts b/sechub-web-ui/src/plugins/index.ts index c22bfc77e..42885eace 100644 --- a/sechub-web-ui/src/plugins/index.ts +++ b/sechub-web-ui/src/plugins/index.ts @@ -8,6 +8,8 @@ // Plugins import vuetify from './vuetify' import router from '../router' +import i18n from '@/i18n'; + // Types import type { App } from 'vue' @@ -16,4 +18,5 @@ export function registerPlugins (app: App) { app .use(vuetify) .use(router) + .use (i18n) } diff --git a/sechub-web-ui/vite.config.mts b/sechub-web-ui/vite.config.mts index 5ef05c55a..97c2ea387 100644 --- a/sechub-web-ui/vite.config.mts +++ b/sechub-web-ui/vite.config.mts @@ -7,10 +7,14 @@ import Layouts from 'vite-plugin-vue-layouts' import Vue from '@vitejs/plugin-vue' import VueRouter from 'unplugin-vue-router/vite' import Vuetify, { transformAssetUrls } from 'vite-plugin-vuetify' +import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite' + // Utilities import { defineConfig } from 'vite' import { fileURLToPath, URL } from 'node:url' +import path from 'path'; + // https://vitejs.dev/config/ export default defineConfig({ @@ -45,6 +49,10 @@ export default defineConfig({ configFile: 'src/styles/settings.scss', }, }), + VueI18nPlugin({ + include: [path.resolve(__dirname, './src/i18n/locales/**')], + strictMessage: false, + }), Fonts({ google: { families: [ { From 7086228addb6c652a29295bf4d962cd1151b0105 Mon Sep 17 00:00:00 2001 From: Sven Dolderer Date: Wed, 20 Nov 2024 18:07:48 +0100 Subject: [PATCH 04/13] removed deprecated external access from web-server #3631 also fixed setting for logging --- .../helm/web-server/Chart.yaml | 4 +- .../helm/web-server/templates/deployment.yaml | 39 +------------------ .../web-server/templates/networkpolicy.yaml | 13 ++----- .../templates/service-internal.yaml | 15 ------- .../helm/web-server/templates/service.yaml | 23 ++--------- .../helm/web-server/values.yaml | 27 ------------- .../docker/nginx/nginx.conf | 8 ++-- 7 files changed, 15 insertions(+), 114 deletions(-) delete mode 100644 sechub-web-server-solution/helm/web-server/templates/service-internal.yaml diff --git a/sechub-web-server-solution/helm/web-server/Chart.yaml b/sechub-web-server-solution/helm/web-server/Chart.yaml index 43e354351..aa77267b6 100644 --- a/sechub-web-server-solution/helm/web-server/Chart.yaml +++ b/sechub-web-server-solution/helm/web-server/Chart.yaml @@ -2,11 +2,11 @@ apiVersion: v2 name: web-server -description: SecHub Web Server Helm chart for Kubernetes +description: SecHub Web Server (Web-UI backend) Helm chart for Kubernetes home: https://github.com/mercedes-benz/sechub type: application # This is the chart version. # This version number should be incremented each time you make changes to the chart and its templates. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.4.0 +version: 1.0.0 diff --git a/sechub-web-server-solution/helm/web-server/templates/deployment.yaml b/sechub-web-server-solution/helm/web-server/templates/deployment.yaml index 4b3410e80..85e8822f2 100644 --- a/sechub-web-server-solution/helm/web-server/templates/deployment.yaml +++ b/sechub-web-server-solution/helm/web-server/templates/deployment.yaml @@ -32,43 +32,8 @@ spec: - name: secret-web-ui-ssl-volume secret: secretName: secret-web-ui-ssl -{{- end }} -{{- if .Values.go_mmproxy.enabled }} - initContainers: - - name: setup - image: {{ .Values.go_mmproxy.image }} - imagePullPolicy: {{ .Values.imagePullPolicy }} - command: - - "/bin/sh" - - "-cx" - args: - - | - /sbin/ip rule add from 127.0.0.1/8 iif lo table 123 - /sbin/ip route add local 0.0.0.0/0 dev lo table 123 - securityContext: - capabilities: - add: - - NET_ADMIN {{- end }} containers: -{{- if .Values.go_mmproxy.enabled }} - # go-mmproxy sidecar container - - name: go-mmproxy - image: {{ .Values.go_mmproxy.image }} - imagePullPolicy: {{ .Values.imagePullPolicy }} - ports: - - containerPort: 8080 - securityContext: - capabilities: - add: - - NET_ADMIN - args: - - "-v=0" # loglevel 0 - no logging ; 1 - log errors ; 2 - log all state changes - - "-l" # listen - - "0.0.0.0:8080" # on port 8080 - - "-4" # tcp v4 - - "127.0.0.1:4443" # forward to SecHub Web Server container (localhost port 4443) -{{- end }} # SecHub web-server container - name: web-server image: {{ .Values.image }} @@ -129,9 +94,9 @@ spec: - name: DEPLOYMENT_COMMENT value: "{{ .Values.deploymentComment }}" {{- end }} -{{- if .Values.web_server.loggingType }} +{{- if .Values.web_server.logging.type.enabled }} - name: LOGGING_TYPE - value: "{{ .Values.web_server.loggingType }}" + value: "{{ .Values.web_server.logging.type.appenderName }}" {{- end }} # +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # + Connection to SecHub server diff --git a/sechub-web-server-solution/helm/web-server/templates/networkpolicy.yaml b/sechub-web-server-solution/helm/web-server/templates/networkpolicy.yaml index ff12d41f6..61e2edfaa 100644 --- a/sechub-web-server-solution/helm/web-server/templates/networkpolicy.yaml +++ b/sechub-web-server-solution/helm/web-server/templates/networkpolicy.yaml @@ -5,6 +5,9 @@ kind: NetworkPolicy metadata: name: web-server-policy spec: + podSelector: + matchLabels: + name: web-server ingress: - from: - podSelector: @@ -13,13 +16,3 @@ spec: ports: - protocol: TCP port: 4443 - - ports: -{{- if .Values.go_mmproxy.enabled }} - - port: 8080 -{{- else }} - - port: 4443 -{{- end }} - protocol: TCP - podSelector: - matchLabels: - name: web-server diff --git a/sechub-web-server-solution/helm/web-server/templates/service-internal.yaml b/sechub-web-server-solution/helm/web-server/templates/service-internal.yaml deleted file mode 100644 index d872515b2..000000000 --- a/sechub-web-server-solution/helm/web-server/templates/service-internal.yaml +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-License-Identifier: MIT - -# Internal access via cluster IP (maybe obsolete when an api-gateway is in place) -apiVersion: v1 -kind: Service -metadata: - name: web-server-internal -spec: - selector: - name: web-server - ports: - - protocol: TCP - port: 4443 - targetPort: 4443 - type: ClusterIP diff --git a/sechub-web-server-solution/helm/web-server/templates/service.yaml b/sechub-web-server-solution/helm/web-server/templates/service.yaml index 5fe7239b1..80b66aaad 100644 --- a/sechub-web-server-solution/helm/web-server/templates/service.yaml +++ b/sechub-web-server-solution/helm/web-server/templates/service.yaml @@ -1,30 +1,15 @@ # SPDX-License-Identifier: MIT +# Internal access via cluster IP (maybe obsolete when an api-gateway is in place) apiVersion: v1 kind: Service metadata: name: web-server - labels: - name: web-server -{{- if .Values.service.annotations }} - annotations: - {{ .Values.service.annotations | indent 4 | trim }} -{{- end }} -{{- if .Values.service.finalizers }} - finalizers: - {{ .Values.service.finalizers | indent 4 | trim }} -{{- end }} spec: - type: LoadBalancer - loadBalancerIP: {{ .Values.service.loadbalancer.ip }} selector: name: web-server ports: - - name: {{ .Values.service.loadbalancer.port.name }} - port: {{ .Values.service.loadbalancer.port.number }} - protocol: TCP -{{- if .Values.go_mmproxy.enabled }} - targetPort: 8080 -{{- else }} + - protocol: TCP + port: 4443 targetPort: 4443 -{{- end }} + type: ClusterIP diff --git a/sechub-web-server-solution/helm/web-server/values.yaml b/sechub-web-server-solution/helm/web-server/values.yaml index 17ea66e88..53d3e2888 100644 --- a/sechub-web-server-solution/helm/web-server/values.yaml +++ b/sechub-web-server-solution/helm/web-server/values.yaml @@ -70,23 +70,6 @@ web_server: # This way, you can force deployments e.g. when only secrets have changed. deploymentComment: "my deployment comment" -service: - loadbalancer: - ip: "" - port: - name: web-server-https - number: 443 - # optional: Add annotations (goes to metadata.annotations) - # Can contain multiple lines. Example: - # annotations: |- - # loadbalancer.openstack.org/keep-floatingip: "true" - # loadbalancer.openstack.org/proxy-protocol: "true" - # - # optional: Add finalizers (goes to metadata.finalizers) - # Can contain multiple lines. Example: - # finalizers: |- - # - service.kubernetes.io/load-balancer-cleanup - # optional: Add annotations to template.metadata.annotations # Can contain multiple lines. Example for Prometheus actuator: # templateMetadataAnnotations: |- @@ -106,13 +89,3 @@ service: # secretKeyRef: # name: secret-web-server-example # key: password - -go_mmproxy: - # Log the real client IP addresses via a go-mmproxy sidecar container - # Otherwise one sees only the loadbalancer's IP in the logs. - # go-mmproxy -> https://github.com/path-network/go-mmproxy - # Spoofs the real client address taken from proxy-protocol so the SecHub server will log correctly. - # (needs annotation loadbalancer.openstack.org/proxy-protocol: "true" - see above) - enabled: false - # Choose a "go-mmproxy" docker image. See e.g. https://hub.docker.com/search?q=go-mmproxy - image: "example.org/go-mmproxy:2.1.0" diff --git a/sechub-web-ui-solution/docker/nginx/nginx.conf b/sechub-web-ui-solution/docker/nginx/nginx.conf index 999678218..be47f6a5e 100644 --- a/sechub-web-ui-solution/docker/nginx/nginx.conf +++ b/sechub-web-ui-solution/docker/nginx/nginx.conf @@ -26,22 +26,22 @@ http { } location /api { - proxy_pass https://web-server-internal:4443/api; + proxy_pass https://web-server:4443/api; include sechub_proxy_settings.conf; } location /error { - proxy_pass https://web-server-internal:4443/error; + proxy_pass https://web-server:4443/error; include sechub_proxy_settings.conf; } location /login { - proxy_pass https://web-server-internal:4443/login; + proxy_pass https://web-server:4443/login; include sechub_proxy_settings.conf; } location /oauth2 { - proxy_pass https://web-server-internal:4443/oauth2; + proxy_pass https://web-server:4443/oauth2; include sechub_proxy_settings.conf; } From b0992bd76fe2cda6b44394288c347d6ddfd52f99 Mon Sep 17 00:00:00 2001 From: Hamid <94196804+hamidonos@users.noreply.github.com> Date: Thu, 21 Nov 2024 15:28:13 +0100 Subject: [PATCH 05/13] add logback-spring.xml to SecHub WebServer #3639 (#3640) --- .../src/main/resources/banner.txt | 8 ++++++ .../src/main/resources/logback-spring.xml | 27 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 sechub-web-server/src/main/resources/banner.txt create mode 100644 sechub-web-server/src/main/resources/logback-spring.xml diff --git a/sechub-web-server/src/main/resources/banner.txt b/sechub-web-server/src/main/resources/banner.txt new file mode 100644 index 000000000..c071cd43f --- /dev/null +++ b/sechub-web-server/src/main/resources/banner.txt @@ -0,0 +1,8 @@ + ____ _ _ _ __ __ _ ____ + / ___| ___ ___| | | |_ _| |__ \ \ / /__| |__/ ___| ___ _ ____ _____ _ __ + \___ \ / _ \/ __| |_| | | | | '_ \ \ \ /\ / / _ \ '_ \___ \ / _ \ '__\ \ / / _ \ '__| + ___) | __/ (__| _ | |_| | |_) | \ V V / __/ |_) |__) | __/ | \ V / __/ | + |____/ \___|\___|_| |_|\__,_|_.__/ \_/\_/ \___|_.__/____/ \___|_| \_/ \___|_| + +:: SecHub Web Server :: ${application.formatted-version} +:: Spring Boot :: ${spring-boot.formatted-version} \ No newline at end of file diff --git a/sechub-web-server/src/main/resources/logback-spring.xml b/sechub-web-server/src/main/resources/logback-spring.xml new file mode 100644 index 000000000..763b30380 --- /dev/null +++ b/sechub-web-server/src/main/resources/logback-spring.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 847255dbed43ae122a8a092dcae9717807328963 Mon Sep 17 00:00:00 2001 From: Laura Date: Fri, 22 Nov 2024 12:06:32 +0100 Subject: [PATCH 06/13] Web UI navigation bar (#3637) --- sechub-web-ui/index.html | 2 +- sechub-web-ui/src/assets/logo.png | Bin 11955 -> 0 bytes sechub-web-ui/src/assets/logo.svg | 6 - sechub-web-ui/src/assets/sechub-logo.svg | 494 +++++++++++++++++++++ sechub-web-ui/src/components.d.ts | 2 +- sechub-web-ui/src/components/AppFooter.vue | 80 ---- sechub-web-ui/src/components/AppHeader.vue | 52 +++ sechub-web-ui/src/layouts/default.vue | 3 +- sechub-web-ui/src/pages/index.vue | 3 +- sechub-web-ui/src/plugins/vuetify.ts | 2 +- 10 files changed, 551 insertions(+), 93 deletions(-) delete mode 100644 sechub-web-ui/src/assets/logo.png delete mode 100644 sechub-web-ui/src/assets/logo.svg create mode 100644 sechub-web-ui/src/assets/sechub-logo.svg delete mode 100644 sechub-web-ui/src/components/AppFooter.vue create mode 100644 sechub-web-ui/src/components/AppHeader.vue diff --git a/sechub-web-ui/index.html b/sechub-web-ui/index.html index 44eb85db3..2ff910aab 100644 --- a/sechub-web-ui/index.html +++ b/sechub-web-ui/index.html @@ -5,7 +5,7 @@ - Welcome to Vuetify 3 + SecHub diff --git a/sechub-web-ui/src/assets/logo.png b/sechub-web-ui/src/assets/logo.png deleted file mode 100644 index a5f23ae7bff64954cf3537377a9f99306baf083d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11955 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 - - - - - diff --git a/sechub-web-ui/src/assets/sechub-logo.svg b/sechub-web-ui/src/assets/sechub-logo.svg new file mode 100644 index 000000000..39495203c --- /dev/null +++ b/sechub-web-ui/src/assets/sechub-logo.svg @@ -0,0 +1,494 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sechub-web-ui/src/components.d.ts b/sechub-web-ui/src/components.d.ts index 40db9751e..4c26b6b0b 100644 --- a/sechub-web-ui/src/components.d.ts +++ b/sechub-web-ui/src/components.d.ts @@ -8,7 +8,7 @@ export {} /* prettier-ignore */ declare module 'vue' { export interface GlobalComponents { - AppFooter: typeof import('./components/AppFooter.vue')['default'] + AppHeader: typeof import('./components/AppHeader.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] SecHubDefault: typeof import('./components/SecHubDefault.vue')['default'] diff --git a/sechub-web-ui/src/components/AppFooter.vue b/sechub-web-ui/src/components/AppFooter.vue deleted file mode 100644 index eab590d23..000000000 --- a/sechub-web-ui/src/components/AppFooter.vue +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - diff --git a/sechub-web-ui/src/components/AppHeader.vue b/sechub-web-ui/src/components/AppHeader.vue new file mode 100644 index 000000000..cb49f21bb --- /dev/null +++ b/sechub-web-ui/src/components/AppHeader.vue @@ -0,0 +1,52 @@ + + + + \ No newline at end of file diff --git a/sechub-web-ui/src/layouts/default.vue b/sechub-web-ui/src/layouts/default.vue index 21ebb23dd..2979d4110 100644 --- a/sechub-web-ui/src/layouts/default.vue +++ b/sechub-web-ui/src/layouts/default.vue @@ -1,11 +1,10 @@ diff --git a/sechub-web-ui/src/pages/index.vue b/sechub-web-ui/src/pages/index.vue index 1e9340fa2..c7d96cff6 100644 --- a/sechub-web-ui/src/pages/index.vue +++ b/sechub-web-ui/src/pages/index.vue @@ -4,6 +4,5 @@ diff --git a/sechub-web-ui/src/plugins/vuetify.ts b/sechub-web-ui/src/plugins/vuetify.ts index c654e043b..a8cbc7166 100644 --- a/sechub-web-ui/src/plugins/vuetify.ts +++ b/sechub-web-ui/src/plugins/vuetify.ts @@ -15,6 +15,6 @@ import { createVuetify } from 'vuetify' // https://vuetifyjs.com/en/introduction/why-vuetify/#feature-guides export default createVuetify({ theme: { - defaultTheme: 'dark', + defaultTheme: 'light', }, }) From 4a969ca32979191bb9116eac599ec4b04746a890 Mon Sep 17 00:00:00 2001 From: Sven Dolderer Date: Fri, 22 Nov 2024 14:51:18 +0100 Subject: [PATCH 07/13] removed timestamp from builds #3641 --- gradle/build-versioning.gradle | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/gradle/build-versioning.gradle b/gradle/build-versioning.gradle index c065072e9..2d9fcde3c 100644 --- a/gradle/build-versioning.gradle +++ b/gradle/build-versioning.gradle @@ -63,7 +63,7 @@ def buildVersionFiles(){ def noStagedChanges = stagedChanges.getAllChanges().isEmpty() def hasChanged = !noUnstagedChanges || !noStagedChanges def buildNumber = getBuildNr() - def docsTimeStamp = getLocalBuildNr() + def docsTimeStamp = getTimeStamp() def currentGitCommit = git.head().abbreviatedId // ------------------------ @@ -336,8 +336,8 @@ def buildVersionString(commitTag, boolean hasChanged, buildNumber){ calcversion = calcversion - "-libraries" calcversion = calcversion - "-pds-tools" calcversion = calcversion - "-pds" - calcversion = calcversion - "-server" calcversion = calcversion - "-web-server" + calcversion = calcversion - "-server" calcversion = calcversion - "-checkmarx-wrapper" calcversion = calcversion - "-owaspzap-wrapper" calcversion = calcversion - "-prepare-wrapper" @@ -349,20 +349,22 @@ def buildVersionString(commitTag, boolean hasChanged, buildNumber){ if (hasChanged){ calcversion = "${calcversion}-dirty" } - calcversion = "${calcversion}-${buildNumber}" + if (buildNumber != "") { + calcversion = "${calcversion}-${buildNumber}" + } return calcversion } def getBuildNr(){ - if (getServerBuildNr()!=null){ + if (getServerBuildNr()!=null) { return "b"+getServerBuildNr() - }else{ + } else { if (project.hasProperty('sechub.build.timestamp')){ if (project.getProperty('sechub.build.timestamp')=="false"){ return "latest" } } - return getLocalBuildNr() + return "" } } @@ -370,8 +372,8 @@ def getServerBuildNr(){ return System.getenv('BUILD_NUMBER' ) } -def getLocalBuildNr() { - return new Date().format('yyyyMMddHHmmss') +def getTimeStamp() { + return new Date().format("yyyy-MM-dd HH:mm ('UTC'X)") } From 207261270b53d8f1f85217450fa3d45b206887b3 Mon Sep 17 00:00:00 2001 From: Sven Dolderer Date: Fri, 22 Nov 2024 15:39:56 +0100 Subject: [PATCH 08/13] tweak Go compile flags to make builds reproducible #3641 --- sechub-cli/build_go.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sechub-cli/build_go.sh b/sechub-cli/build_go.sh index 9ab65006e..5f34495ed 100755 --- a/sechub-cli/build_go.sh +++ b/sechub-cli/build_go.sh @@ -64,7 +64,8 @@ init_go_modules cd "$SRC_PATH/main" export CGO_ENABLED=0 # This forces statically linked binaries -GO_LD_FLAGS="-s -w" # strip (reduce size): disable debug symbol table / disable DWARF generation +GO_LD_FLAGS="-s -w -buildid=" # strip (reduce size): disable debug symbol table / disable DWARF generation +GO_COMPILE_FLAGS="-trimpath" # Aim to make builds reproducible for platform in "${platforms[@]}" ; do platform_split=(${platform//\// }) @@ -82,7 +83,7 @@ for platform in "${platforms[@]}" ; do fi echo "> building $targetSubFolder" - go build -ldflags="$GO_LD_FLAGS" -o "$buildDir/$output_name" . + go build $GO_COMPILE_FLAGS -ldflags="$GO_LD_FLAGS" -o "$buildDir/$output_name" . if [ $? -ne 0 ]; then echo 'Go build failed because of an error' exit 1 From 4497cd17767b4447673bc50868c8d6cc5b21d65b Mon Sep 17 00:00:00 2001 From: Sven Dolderer Date: Mon, 25 Nov 2024 12:22:09 +0100 Subject: [PATCH 09/13] documented dev tagging for published artifacts #3433 Also improved wording in SecHub's introduction --- README.adoc | 3 ++- .../docs/asciidoc/documents/techdoc/05_build.adoc | 15 +++++++++------ sechub-website/components/home/Hero.vue | 2 +- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/README.adoc b/README.adoc index 1f8a6e97d..45b1d073d 100644 --- a/README.adoc +++ b/README.adoc @@ -13,7 +13,8 @@ toc::[] image::sechub-doc/src/docs/asciidoc/images/sechub-logo.png["Eugen" - the SecHub mascot] -The free and open-source security platform SecHub, provides a central API to test software with different security tools. Many free and open-source as well proprietary security tools are supported by SecHub. +The free and open-source security platform SecHub, provides a central API to test software with different security tools. +SecHub supports many free and open-source as well as proprietary security tools. SecHub features: diff --git a/sechub-doc/src/docs/asciidoc/documents/techdoc/05_build.adoc b/sechub-doc/src/docs/asciidoc/documents/techdoc/05_build.adoc index f4eff1d77..b4e0c2706 100644 --- a/sechub-doc/src/docs/asciidoc/documents/techdoc/05_build.adoc +++ b/sechub-doc/src/docs/asciidoc/documents/techdoc/05_build.adoc @@ -99,9 +99,12 @@ Just call ./gradlew documentation ---- -==== Publish artefacts -Just call ----- -./gradlew publish ----- -_(if not already builds done this will be triggered automatically)_ \ No newline at end of file +=== Publishing artifacts / development naming convention +https://github.com/mercedes-benz/sechub/packages[Artifacts] are being published automatically when a https://github.com/mercedes-benz/sechub/actions?query=workflow%3A%22Release*%22[release workflow] runs on github.com. + +If you publish artifacts while developing and testing then make sure that the versioning tag contains "-SNAPSHOT" behind the product version. + +Examples (SecHub server 1.10.0 development): + +- `1.10.0_alpine-SNAPSHOT` + +- `1.10.0_alpine-SNAPSHOT1` + +- `1.10.0_alpine-SNAPSHOT-2024-11-30` diff --git a/sechub-website/components/home/Hero.vue b/sechub-website/components/home/Hero.vue index 5d66039a2..b2f6bf40d 100644 --- a/sechub-website/components/home/Hero.vue +++ b/sechub-website/components/home/Hero.vue @@ -11,7 +11,7 @@ import { PlayIcon } from '@heroicons/vue/20/solid';

SecHub Tool

The free and open-source security platform SecHub, provides a central API to test software with different - security tools. Many free and open-source as well proprietary security tools are supported by SecHub. + security tools. SecHub supports many free and open-source as well as proprietary security tools.

From 9fbe905ab78a1954bbd343bdfadd5664401716c5 Mon Sep 17 00:00:00 2001 From: Laura Date: Tue, 26 Nov 2024 15:19:41 +0100 Subject: [PATCH 10/13] Added themes and Project Overview Page --- sechub-web-ui/package-lock.json | 18 ------ sechub-web-ui/public/favicon.ico | Bin 15406 -> 3646 bytes sechub-web-ui/src/components.d.ts | 1 + sechub-web-ui/src/components/AppHeader.vue | 27 ++++++--- sechub-web-ui/src/components/Projects.vue | 66 +++++++++++++++++++++ sechub-web-ui/src/i18n/locales/en.json | 5 +- sechub-web-ui/src/layouts/default.vue | 15 +++-- sechub-web-ui/src/pages/README.md | 3 + sechub-web-ui/src/pages/index.vue | 4 +- sechub-web-ui/src/plugins/vuetify.ts | 16 ++++- sechub-web-ui/src/themes/README.md | 7 +++ sechub-web-ui/src/themes/darkTheme.js | 9 +++ sechub-web-ui/src/themes/lightTheme.js | 9 +++ 13 files changed, 144 insertions(+), 36 deletions(-) create mode 100644 sechub-web-ui/src/components/Projects.vue create mode 100644 sechub-web-ui/src/themes/README.md create mode 100644 sechub-web-ui/src/themes/darkTheme.js create mode 100644 sechub-web-ui/src/themes/lightTheme.js diff --git a/sechub-web-ui/package-lock.json b/sechub-web-ui/package-lock.json index dba3e2272..e6641b029 100644 --- a/sechub-web-ui/package-lock.json +++ b/sechub-web-ui/package-lock.json @@ -1085,7 +1085,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1099,7 +1098,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1113,7 +1111,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1127,7 +1124,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1141,7 +1137,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1155,7 +1150,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1169,7 +1163,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1183,7 +1176,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1197,7 +1189,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1211,7 +1202,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1225,7 +1215,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1239,7 +1228,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1253,7 +1241,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1267,7 +1254,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1281,7 +1267,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1295,7 +1280,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1309,7 +1293,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1323,7 +1306,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ diff --git a/sechub-web-ui/public/favicon.ico b/sechub-web-ui/public/favicon.ico index 8fb9f91b3aab4eec0c76ffc5342528033c61e247..3cb6ef78923c2a68cdc895e1fab0ea73c13af8d3 100644 GIT binary patch literal 3646 zcmc(i=~t6i8o-%9VCLg|>6f0*%q?3Z*)wC}`cMAgd4r zg2*C}fPf1KVM{PM` zoR8H*%u$bFU8F~HE}YqW7vp=v7p>6ozZtqg9XD>>WcQvu%-J#r`@_4i%4)@_VuC$Y z17vpSDD5-w&t@HNDjl|}ab}!}L$b<=O*=Nz`Ag?(@hrb8xqoJ_@Uc-eE$&su`TE)_H z9!M@;6E-t)p`{<~*c4j9=@fH$zme>I%)IEfAr`BKkmPpYc;FLUzH`B2|4K3yawaAw zUaF%kQ-*8!avX!cLQ?#Mud4ge7{;G-;tCXOIr%lxd+l6(EO`CX_|^1dCv0hR@+=>o zT*~6WrOaLDj5Hw@qw$Y(@_O+NmKu`;AMncJHc`186GygP(P)r2lU=Rm)7VYym;16gWgA~e{ZaHznr)fUGmdA)AeIUZ?|7d<5)_Zb%foC>*I;*| zlVg~gnlkhH`uZ3h8D&U6L}WrZPCi~(-RNci-2vgJY4RKE*dX14ceWpDkqdq|&f*!i z8Ci3WSue%IN!C|B7N2>@-@cb(m(hf6Y6I`MdNTju0zNtEMO{OknRPTckS`;>*&eck zB|eLBI2OR#aD!-uCo;=C->%s&L4K;8-7su>jc)NBb;v@F#D=~WP)bh zklAO=BO=!CYgm)G5$~jMvtH@lMm*HQhPhfK@>Xo(%CWh87yCjT)*Du{?D$fAL%(@m zyQe0n%y#VWeaPAc|wBf2e2<6 z?eRa%6ENOLxpC zyda8#-Vywha;UGb!!JIQ_cB^JlbrQhtZ@;O=i-uxuYW*dy@r6?c=o18aJY65JCRcx ztH(H^yv5$jr-->zCGuj3Q?e_Jjf{|fy#V(sHGD12!0=?~)jZMrU63Uam|x4TN&~ZU zx|vxph`l(6?L{AACwd+y-MAMH5^%eR!0;GG4Z~>K+X+a{BOtSg`o_kWvZf{{ zk&Ad*5|+j6!pF?KGmZUigos(xKL?TL4(eg?JY`;Y5c{S&>Ljb=8)+In4;~Pek|EBX z8WJ+IMZfdM4NqBR70yvNv8kNIzDh8J*qP*xc)l&9a!kzQ;(5xv{`@`FAj#?=AR&XA zni`HIWfOGyDlPZ#zfd=m4R%MTV^uPYtzcQ_Xn8-W+8oDo<4T#Gpu*|W9cIcZFg=^Z zbZ=`qS42-_D}K`~v8Jx7=BBa)?~sf5hB`Yu(q_h@KprcsFLUY@UHM}+7x!xYT=QO@babf%{!g}<7JznuCa6h)=w r?DG4bw$@fOZEcu*_qt=?(IYzAHKNbY#5eGy=xcua?6d!2|F8L9G#dTD literal 15406 zcmeHO3v5%@8NNVarCoU?zSqezmT6npu}xxXJJhY(x=s~hQ>SSYYSncU&|(|9Y?QVX z@}TB1G8mASM;tRKYgJkrAW)&g7${B%c>oE7;)O>NNO_bu4G-IdNB({PbTkJL{ZGDJe2DLL+vq#sL?l$jZPe_*I2y@|4sBRjso zUy`aUlJo$60})6B%aMKN&yMG1Qvjth%4dDy{HM^34) z&_TyGJg3UC{J|n2-wr)LDYwhNWBH4VL-JgYz;erTEKiMF20`|$Cf~GysBU40j@&)u zboK>@(yL25%R|RmS~6@99bG>PviV`j>&k~M@~J%cn{`uCzUOyY^23rlWt6DH=aut3 zlZo^g63xIXwP(4)hgT<|I>hSGqh7YbLP$jL+%p0>vM2Su?wmOV;-uyLFww=KN5Ox{j<% zmi}mZc22bZyxbmI!x+Ch3+qsk+#YbHJ{CdQjDh~;LRJB63Pq&~p

*N){PEn7FA;EAwj=|b_AUGw z{Eb1Zt8`N8chL?vjkw~yAvg~N+W_qV|N7U7a3HGfPY0GBqUxOaLJzPO2|Qz7H&yF{ z!Y@7SbxH$-YlpxgCaImE$Fk6T4dUMU!=a+u##*PZb&m9d@{VbA<&v z;n*Hvm#Nt5zF}Ud{=9#v%+3;8${f~WV?Q`CFATe5JXp$wT(q1TOU7#0jK6PDXZ)(1 zOSF4N3hStRA?+K$*ZctH(lRF!KFSL%W20hM6%Rz+k9We?_C36J>PVG2%Y`27X;nW+ z*x`6oe7S`dXABgw#vFYvuM;-c|L9ua=7z9?9B!cL=Fyiz34xz{6kpCd?PeyG2V7mkg!!m@d$btKgDK_Ib zt|Qt#$Am-fZ&{xA0GOAnn8Ue+QQBY3NiO*vfvd{5lsp3L_K5f@hhj{}^Nk#us4?p+ ztOM)g!1L3Ff(Tk8KQe4khoQS4_&0;4zo|FQr(iM%k4L+U*z zff0J2FQWxM*K?>u4d$6_8R>l`cK8U+!w`A!D@A2^2+L%A~GSv8* z(uV!wgkD)YqY(1-;X}j zv4?n}%=LOp! z;8GgCC~I2q%*#5{$kpuKJ6-ET*}o#)Z>p>vQsxF25{?c6CQ5()gsGtn{Ul`*ykb!bDMnnlGUdfYdn+9lsY%+pJ_Z_xHs+imH? z!L`+luUT1yv*4C1Z&<#Qlui*r2~lxBI`sAm+}oX{s=OcRf9A0%Q^56>8DC==kKtgy z>D-TeE@f3uu4&Y?ZVVlM3wLg~Z>Y}xfNE|1MIAijELQN`Y2<45F5=t5>wtYuk>yuH zXEJj-vN;uZD0|537U$Eq5Oek?f#JlNGq{dN(qiDuxO185eWG@Tuk1zKUsCs)MAVm# zZTvIN+Wl0&MDXYQF#3{qXA$(Ft>uw;>&qkE2f#n|`-?1D`gl8Gqj+=j77qvaV7#CH z-mDV$x0TsBRP5B|jZ%mFQ}FDv4Rn5l$yl(|`Q7Oe;~u+P58Qvv*6uy)7U=EIpPM-5 zPv}(pkwc!Zx3$@4;Y){)0d2tO5v#db4**wJ~;d2`ShTX zw|GaKwMoD4ydIzqSN(;l&j_8}$q^eYga7tU+}ZvgxyO*m1UDkuojePFZ zG`-$PpE1`DpyrLMO}R7wCfu3t6Y|B7d%f_n+{8^32;HSdS9&hVGwt*sUYr-!%%`a~|XP)!GJa zaPfvq9vz7{ms4}`U~qpQ+@r?~G$CeSuOWUWWPj8xrxoKsi%ALkMoN~Re@yeI<`b#& zQakqh?^Bfdlv*~90r${a#kP)=j;z5r;Qua|_8~6ciamnnhpFd84r{fjgNVx%{UgRa z5XnEKlf}cZ&elidYgP}Qi}Z0^o$C^y%G~k#_Qp8=1^BDy6=xQN&GlMeiCUK;x&F$^ zjA44c!M?-)Y1kOO--Oix|DE7=F!d?WE|oc-P;ICUYO&YsIA3qS68`^+SoxzLDfxQ- z)V%&7_{XQaWqV^?8s0=b5Yxwfs(L2+kBDu`F4FIF*gxGfML8AK#-01US-npCiqalZ z?M~DOWA<^ZR|~P;79^A!*A-C1sshAC6<~Z9P|a%vs7IcNOJh792S@Vc$sCItcXG)K z1Fn?E#hswKujQD~WT#qpf3`ix0(EL{#By^?PeQ2&