From d5e78662651e2a8d3f12a67d820e03616e0ea448 Mon Sep 17 00:00:00 2001 From: Lucas ONeil Date: Fri, 23 Aug 2024 14:43:47 -0700 Subject: [PATCH 01/52] Update readme Signed-off-by: Lucas ONeil --- README.md | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/README.md b/README.md index 34930ad5c..7ed09873f 100644 --- a/README.md +++ b/README.md @@ -104,15 +104,6 @@ git rebase origin/main git push --force ``` -## Who is maintaining Traction? -[The Province of British Columbia](https://github.com/bcgov/) is maintaining Traction as an open-source project. - -Maintainer(s): -- Jason Sherman -- Jason Syrotuck -- Lucas O'Neil -- Jamie Popkin - ## How is Traction licensed? Traction is licensed under Apache License 2.0 which can be reviewed [here](./LICENSE). @@ -121,5 +112,4 @@ Traction is licensed under Apache License 2.0 which can be reviewed [here](./LIC ## Engage with the community Connect with others -- on Discord: [EMDT Public Discord Channel](https://discord.com/channels/766403442599657522/854432442382680104) - for Aries discussion see the Hyperlerger Aries Github [participation section](https://github.com/hyperledger/aries#project-participation) From 44aa85e7af58677fe9c7402d243c1fb6be6d3a78 Mon Sep 17 00:00:00 2001 From: Lucas ONeil Date: Fri, 23 Aug 2024 15:28:15 -0700 Subject: [PATCH 02/52] Dependecy updates Signed-off-by: Lucas ONeil --- services/tenant-ui/frontend/package-lock.json | 404 +++++++++++------- services/tenant-ui/frontend/package.json | 10 +- .../src/components/about/Traction.vue | 4 +- services/tenant-ui/package-lock.json | 171 +++----- services/tenant-ui/package.json | 10 +- 5 files changed, 330 insertions(+), 269 deletions(-) diff --git a/services/tenant-ui/frontend/package-lock.json b/services/tenant-ui/frontend/package-lock.json index 6241e377a..73d1c6e49 100644 --- a/services/tenant-ui/frontend/package-lock.json +++ b/services/tenant-ui/frontend/package-lock.json @@ -1,6 +1,6 @@ { "name": "tenant-ui-frontend", - "version": "0.5.0", + "version": "0.5.2", "lockfileVersion": 3, "requires": true, "packages": { @@ -13,18 +13,18 @@ "@jsonforms/vue-vanilla": "^3.3.0", "@vuelidate/core": "^2.0.3", "@vuelidate/validators": "^2.0.4", - "axios": "^1.7.4", + "axios": "^1.7.5", "date-fns": "^3.6.0", "dompurify": "^3.1.6", "json-editor-vue": "^0.15.2", "marked": "^14.0.0", "oidc-client-ts": "^3.0.1", - "pinia": "^2.2.1", + "pinia": "^2.2.2", "primeflex": "^3.3.1", "primeicons": "^7.0.0", "primevue": "^3.53.0", "qrcode.vue": "^3.4.1", - "vue": "^3.4.37", + "vue": "^3.4.38", "vue-i18n": "^9.13.1", "vue-json-pretty": "^2.4.0", "vue-router": "^4.4.3", @@ -51,7 +51,7 @@ "prettier": "^3.3.3", "sass": "^1.77.8", "typescript": "^5.5.4", - "vite": "^5.4.0", + "vite": "^5.4.2", "vitest": "^2.0.5", "vue-tsc": "^2.0.29", "whatwg-fetch": "^3.6.20" @@ -900,12 +900,14 @@ } }, "node_modules/@intlify/core-base": { - "version": "9.13.1", - "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.13.1.tgz", - "integrity": "sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==", + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.14.0.tgz", + "integrity": "sha512-zJn0imh9HIsZZUtt9v8T16PeVstPv6bP2YzlrYJwoF8F30gs4brZBwW2KK6EI5WYKFi3NeqX6+UU4gniz5TkGg==", + "dev": true, + "license": "MIT", "dependencies": { - "@intlify/message-compiler": "9.13.1", - "@intlify/shared": "9.13.1" + "@intlify/message-compiler": "9.14.0", + "@intlify/shared": "9.14.0" }, "engines": { "node": ">= 16" @@ -1050,11 +1052,12 @@ } }, "node_modules/@intlify/message-compiler": { - "version": "9.13.1", - "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.13.1.tgz", - "integrity": "sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==", + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.14.0.tgz", + "integrity": "sha512-sXNsoMI0YsipSXW8SR75drmVK56tnJHoYbPXUv2Cf9lz6FzvwsosFm6JtC1oQZI/kU+n7qx0qRrEWkeYFTgETA==", + "license": "MIT", "dependencies": { - "@intlify/shared": "9.13.1", + "@intlify/shared": "9.14.0", "source-map-js": "^1.0.2" }, "engines": { @@ -1065,9 +1068,10 @@ } }, "node_modules/@intlify/shared": { - "version": "9.13.1", - "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.13.1.tgz", - "integrity": "sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ==", + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.14.0.tgz", + "integrity": "sha512-r+N8KRQL7LgN1TMTs1A2svfuAU0J94Wu9wWdJVJqYsoMMLIeJxrPjazihfHpmJqfgZq0ah3Y9Q4pgWV2O90Fyg==", + "license": "MIT", "engines": { "node": ">= 16" }, @@ -1478,169 +1482,224 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", - "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.0.tgz", + "integrity": "sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", - "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.0.tgz", + "integrity": "sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", - "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.0.tgz", + "integrity": "sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", - "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.0.tgz", + "integrity": "sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", - "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.0.tgz", + "integrity": "sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.0.tgz", + "integrity": "sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", - "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.0.tgz", + "integrity": "sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", - "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.0.tgz", + "integrity": "sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.0.tgz", + "integrity": "sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", - "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.0.tgz", + "integrity": "sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.0.tgz", + "integrity": "sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", - "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.0.tgz", + "integrity": "sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", - "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.0.tgz", + "integrity": "sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", - "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.0.tgz", + "integrity": "sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", - "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.0.tgz", + "integrity": "sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", - "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.0.tgz", + "integrity": "sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -2100,51 +2159,39 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.4.37", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.37.tgz", - "integrity": "sha512-ZDDT/KiLKuCRXyzWecNzC5vTcubGz4LECAtfGPENpo0nrmqJHwuWtRLxk/Sb9RAKtR9iFflFycbkjkY+W/PZUQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.38.tgz", + "integrity": "sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==", "license": "MIT", "dependencies": { "@babel/parser": "^7.24.7", - "@vue/shared": "3.4.37", - "entities": "^5.0.0", + "@vue/shared": "3.4.38", + "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" } }, - "node_modules/@vue/compiler-core/node_modules/entities": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-5.0.0.tgz", - "integrity": "sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/@vue/compiler-dom": { - "version": "3.4.37", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.37.tgz", - "integrity": "sha512-rIiSmL3YrntvgYV84rekAtU/xfogMUJIclUMeIKEtVBFngOL3IeZHhsH3UaFEgB5iFGpj6IW+8YuM/2Up+vVag==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.38.tgz", + "integrity": "sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==", "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.4.37", - "@vue/shared": "3.4.37" + "@vue/compiler-core": "3.4.38", + "@vue/shared": "3.4.38" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.4.37", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.37.tgz", - "integrity": "sha512-vCfetdas40Wk9aK/WWf8XcVESffsbNkBQwS5t13Y/PcfqKfIwJX2gF+82th6dOpnpbptNMlMjAny80li7TaCIg==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.38.tgz", + "integrity": "sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==", "license": "MIT", "dependencies": { "@babel/parser": "^7.24.7", - "@vue/compiler-core": "3.4.37", - "@vue/compiler-dom": "3.4.37", - "@vue/compiler-ssr": "3.4.37", - "@vue/shared": "3.4.37", + "@vue/compiler-core": "3.4.38", + "@vue/compiler-dom": "3.4.38", + "@vue/compiler-ssr": "3.4.38", + "@vue/shared": "3.4.38", "estree-walker": "^2.0.2", "magic-string": "^0.30.10", "postcss": "^8.4.40", @@ -2152,13 +2199,13 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.4.37", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.37.tgz", - "integrity": "sha512-TyAgYBWrHlFrt4qpdACh8e9Ms6C/AZQ6A6xLJaWrCL8GCX5DxMzxyeFAEMfU/VFr4tylHm+a2NpfJpcd7+20XA==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.38.tgz", + "integrity": "sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.4.37", - "@vue/shared": "3.4.37" + "@vue/compiler-dom": "3.4.38", + "@vue/shared": "3.4.38" } }, "node_modules/@vue/compiler-vue2": { @@ -2264,53 +2311,53 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.4.37", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.37.tgz", - "integrity": "sha512-UmdKXGx0BZ5kkxPqQr3PK3tElz6adTey4307NzZ3whZu19i5VavYal7u2FfOmAzlcDVgE8+X0HZ2LxLb/jgbYw==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.38.tgz", + "integrity": "sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw==", "license": "MIT", "dependencies": { - "@vue/shared": "3.4.37" + "@vue/shared": "3.4.38" } }, "node_modules/@vue/runtime-core": { - "version": "3.4.37", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.37.tgz", - "integrity": "sha512-MNjrVoLV/sirHZoD7QAilU1Ifs7m/KJv4/84QVbE6nyAZGQNVOa1HGxaOzp9YqCG+GpLt1hNDC4RbH+KtanV7w==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.38.tgz", + "integrity": "sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.4.37", - "@vue/shared": "3.4.37" + "@vue/reactivity": "3.4.38", + "@vue/shared": "3.4.38" } }, "node_modules/@vue/runtime-dom": { - "version": "3.4.37", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.37.tgz", - "integrity": "sha512-Mg2EwgGZqtwKrqdL/FKMF2NEaOHuH+Ks9TQn3DHKyX//hQTYOun+7Tqp1eo0P4Ds+SjltZshOSRq6VsU0baaNg==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.38.tgz", + "integrity": "sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.4.37", - "@vue/runtime-core": "3.4.37", - "@vue/shared": "3.4.37", + "@vue/reactivity": "3.4.38", + "@vue/runtime-core": "3.4.38", + "@vue/shared": "3.4.38", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.4.37", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.37.tgz", - "integrity": "sha512-jZ5FAHDR2KBq2FsRUJW6GKDOAG9lUTX8aBEGq4Vf6B/35I9fPce66BornuwmqmKgfiSlecwuOb6oeoamYMohkg==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.38.tgz", + "integrity": "sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA==", "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.4.37", - "@vue/shared": "3.4.37" + "@vue/compiler-ssr": "3.4.38", + "@vue/shared": "3.4.38" }, "peerDependencies": { - "vue": "3.4.37" + "vue": "3.4.38" } }, "node_modules/@vue/shared": { - "version": "3.4.37", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.37.tgz", - "integrity": "sha512-nIh8P2fc3DflG8+5Uw8PT/1i17ccFn0xxN/5oE9RfV5SVnd7G0XEFRwakrnNFE/jlS95fpGXDVG5zDETS26nmg==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.38.tgz", + "integrity": "sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==", "license": "MIT" }, "node_modules/@vue/test-utils": { @@ -2601,9 +2648,9 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/axios": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz", - "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.5.tgz", + "integrity": "sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -3176,7 +3223,6 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, "engines": { "node": ">=0.12" }, @@ -4620,11 +4666,12 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -5105,9 +5152,9 @@ } }, "node_modules/pinia": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.2.1.tgz", - "integrity": "sha512-ltEU3xwiz5ojVMizdP93AHi84Rtfz0+yKd8ud75hr9LVyWX2alxp7vLbY1kFm7MXFmHHr/9B08Xf8Jj6IHTEiQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.2.2.tgz", + "integrity": "sha512-ja2XqFWZC36mupU4z1ZzxeTApV7DOw44cV4dhQ9sGwun+N89v/XP7+j7q6TanS1u1tdbK4r+1BUx7heMaIdagA==", "license": "MIT", "dependencies": { "@vue/devtools-api": "^6.6.3", @@ -5413,10 +5460,11 @@ } }, "node_modules/rollup": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", - "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.0.tgz", + "integrity": "sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==", "devOptional": true, + "license": "MIT", "dependencies": { "@types/estree": "1.0.5" }, @@ -5428,19 +5476,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.13.0", - "@rollup/rollup-android-arm64": "4.13.0", - "@rollup/rollup-darwin-arm64": "4.13.0", - "@rollup/rollup-darwin-x64": "4.13.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", - "@rollup/rollup-linux-arm64-gnu": "4.13.0", - "@rollup/rollup-linux-arm64-musl": "4.13.0", - "@rollup/rollup-linux-riscv64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-musl": "4.13.0", - "@rollup/rollup-win32-arm64-msvc": "4.13.0", - "@rollup/rollup-win32-ia32-msvc": "4.13.0", - "@rollup/rollup-win32-x64-msvc": "4.13.0", + "@rollup/rollup-android-arm-eabi": "4.21.0", + "@rollup/rollup-android-arm64": "4.21.0", + "@rollup/rollup-darwin-arm64": "4.21.0", + "@rollup/rollup-darwin-x64": "4.21.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.21.0", + "@rollup/rollup-linux-arm-musleabihf": "4.21.0", + "@rollup/rollup-linux-arm64-gnu": "4.21.0", + "@rollup/rollup-linux-arm64-musl": "4.21.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.21.0", + "@rollup/rollup-linux-riscv64-gnu": "4.21.0", + "@rollup/rollup-linux-s390x-gnu": "4.21.0", + "@rollup/rollup-linux-x64-gnu": "4.21.0", + "@rollup/rollup-linux-x64-musl": "4.21.0", + "@rollup/rollup-win32-arm64-msvc": "4.21.0", + "@rollup/rollup-win32-ia32-msvc": "4.21.0", + "@rollup/rollup-win32-x64-msvc": "4.21.0", "fsevents": "~2.3.2" } }, @@ -6193,15 +6244,15 @@ } }, "node_modules/vite": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.0.tgz", - "integrity": "sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==", + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.2.tgz", + "integrity": "sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==", "dev": true, "license": "MIT", "dependencies": { "esbuild": "^0.21.3", - "postcss": "^8.4.40", - "rollup": "^4.13.0" + "postcss": "^8.4.41", + "rollup": "^4.20.0" }, "bin": { "vite": "bin/vite.js" @@ -6347,16 +6398,16 @@ "dev": true }, "node_modules/vue": { - "version": "3.4.37", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.37.tgz", - "integrity": "sha512-3vXvNfkKTBsSJ7JP+LyR7GBuwQuckbWvuwAid3xbqK9ppsKt/DUvfqgZ48fgOLEfpy1IacL5f8QhUVl77RaI7A==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.38.tgz", + "integrity": "sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.4.37", - "@vue/compiler-sfc": "3.4.37", - "@vue/runtime-dom": "3.4.37", - "@vue/server-renderer": "3.4.37", - "@vue/shared": "3.4.37" + "@vue/compiler-dom": "3.4.38", + "@vue/compiler-sfc": "3.4.38", + "@vue/runtime-dom": "3.4.38", + "@vue/server-renderer": "3.4.38", + "@vue/shared": "3.4.38" }, "peerDependencies": { "typescript": "*" @@ -6401,6 +6452,7 @@ "version": "9.13.1", "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.13.1.tgz", "integrity": "sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==", + "license": "MIT", "dependencies": { "@intlify/core-base": "9.13.1", "@intlify/shared": "9.13.1", @@ -6416,6 +6468,50 @@ "vue": "^3.0.0" } }, + "node_modules/vue-i18n/node_modules/@intlify/core-base": { + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.13.1.tgz", + "integrity": "sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==", + "license": "MIT", + "dependencies": { + "@intlify/message-compiler": "9.13.1", + "@intlify/shared": "9.13.1" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/vue-i18n/node_modules/@intlify/message-compiler": { + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.13.1.tgz", + "integrity": "sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==", + "license": "MIT", + "dependencies": { + "@intlify/shared": "9.13.1", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/vue-i18n/node_modules/@intlify/shared": { + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.13.1.tgz", + "integrity": "sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, "node_modules/vue-json-pretty": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/vue-json-pretty/-/vue-json-pretty-2.4.0.tgz", diff --git a/services/tenant-ui/frontend/package.json b/services/tenant-ui/frontend/package.json index 488b9bf92..f4f4144f1 100644 --- a/services/tenant-ui/frontend/package.json +++ b/services/tenant-ui/frontend/package.json @@ -1,7 +1,7 @@ { "name": "tenant-ui-frontend", "private": true, - "version": "0.5.0", + "version": "0.5.2", "type": "module", "scripts": { "dev": "vite", @@ -21,18 +21,18 @@ "@jsonforms/vue-vanilla": "^3.3.0", "@vuelidate/core": "^2.0.3", "@vuelidate/validators": "^2.0.4", - "axios": "^1.7.4", + "axios": "^1.7.5", "date-fns": "^3.6.0", "dompurify": "^3.1.6", "json-editor-vue": "^0.15.2", "marked": "^14.0.0", "oidc-client-ts": "^3.0.1", - "pinia": "^2.2.1", + "pinia": "^2.2.2", "primeflex": "^3.3.1", "primeicons": "^7.0.0", "primevue": "^3.53.0", "qrcode.vue": "^3.4.1", - "vue": "^3.4.37", + "vue": "^3.4.38", "vue-i18n": "^9.13.1", "vue-json-pretty": "^2.4.0", "vue-router": "^4.4.3", @@ -59,7 +59,7 @@ "prettier": "^3.3.3", "sass": "^1.77.8", "typescript": "^5.5.4", - "vite": "^5.4.0", + "vite": "^5.4.2", "vitest": "^2.0.5", "vue-tsc": "^2.0.29", "whatwg-fetch": "^3.6.20" diff --git a/services/tenant-ui/frontend/src/components/about/Traction.vue b/services/tenant-ui/frontend/src/components/about/Traction.vue index 554f0502a..5bfd7a611 100644 --- a/services/tenant-ui/frontend/src/components/about/Traction.vue +++ b/services/tenant-ui/frontend/src/components/about/Traction.vue @@ -3,10 +3,10 @@
{{ $t('about.traction.info') }}

- {{ $t('about.traction.tractionVersion', { version: '0.5.0' }) }} + {{ $t('about.traction.tractionVersion', { version: '0.5.2' }) }}

- {{ $t('about.traction.uiVersion', { version: '0.5.0' }) }} + {{ $t('about.traction.uiVersion', { version: '0.5.2' }) }}

diff --git a/services/tenant-ui/package-lock.json b/services/tenant-ui/package-lock.json index 5e2ad9079..4a214a103 100644 --- a/services/tenant-ui/package-lock.json +++ b/services/tenant-ui/package-lock.json @@ -1,6 +1,6 @@ { "name": "tenant-ui", - "version": "0.5.0", + "version": "0.5.2", "lockfileVersion": 2, "requires": true, "packages": { @@ -9,7 +9,7 @@ "version": "0.5.0", "license": "ISC", "dependencies": { - "axios": "^1.7.4", + "axios": "^1.7.5", "config": "^3.3.12", "connect-history-api-fallback": "^2.0.0", "cors": "^2.8.5", @@ -17,7 +17,7 @@ "express": "^4.19.2", "express-oauth-jwt": "^2.0.2", "express-validator": "^7.2.0", - "jose": "^5.6.3", + "jose": "^5.7.0", "nodemailer": "^6.9.14" }, "devDependencies": { @@ -26,14 +26,14 @@ "@types/cors": "^2.8.17", "@types/express": "^4.17.21", "@types/jest": "^29.5.12", - "@types/node": "^22.3.0", + "@types/node": "^22.5.0", "@types/nodemailer": "^6.4.15", "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", "eslint": "^8.57.0", "jest": "^29.7.0", "rimraf": "^6.0.1", - "ts-jest": "^29.2.4", + "ts-jest": "^29.2.5", "ts-node-dev": "^2.0.0", "typescript": "^5.5.4" } @@ -1775,13 +1775,13 @@ "dev": true }, "node_modules/@types/node": { - "version": "22.3.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.3.0.tgz", - "integrity": "sha512-nrWpWVaDZuaVc5X84xJ0vNrLvomM205oQyLsRt7OHNZbSHslcWsvgFR7O7hire2ZonjLrWBbedmotmIlJDVd6g==", + "version": "22.5.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.0.tgz", + "integrity": "sha512-DkFrJOe+rfdHTqqMg0bSNlGlQ85hSoh2TPzZyhHsXnMtligRWpxUySiyw8FY14ITt24HVCiQPWxS3KO/QlGmWg==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.18.2" + "undici-types": "~6.19.2" } }, "node_modules/@types/nodemailer": { @@ -2292,9 +2292,9 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/axios": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz", - "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.5.tgz", + "integrity": "sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -4834,9 +4834,10 @@ } }, "node_modules/jose": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/jose/-/jose-5.6.3.tgz", - "integrity": "sha512-1Jh//hEEwMhNYPDDLwXHa2ePWgWiFNNUadVmguAAw2IJ6sj9mNxV5tGXJNqlMkJAybF6Lgw1mISDxTePP/187g==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/jose/-/jose-5.7.0.tgz", + "integrity": "sha512-3P9qfTYDVnNn642LCAqIKbTGb9a1TBxZ9ti5zEVEr48aDdflgRjhspWFb6WM4PzAfFbGMJYC4+803v8riCRAKw==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/panva" } @@ -4984,18 +4985,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", @@ -5063,12 +5052,13 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -5880,13 +5870,11 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -6265,20 +6253,21 @@ } }, "node_modules/ts-jest": { - "version": "29.2.4", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.4.tgz", - "integrity": "sha512-3d6tgDyhCI29HlpwIq87sNuI+3Q6GLTTCeYRHCs7vDz+/3GCMwEtV9jezLyl4ZtnBgx00I7hm8PCP8cTksMGrw==", + "version": "29.2.5", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz", + "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==", "dev": true, + "license": "MIT", "dependencies": { - "bs-logger": "0.x", + "bs-logger": "^0.2.6", "ejs": "^3.1.10", - "fast-json-stable-stringify": "2.x", + "fast-json-stable-stringify": "^2.1.0", "jest-util": "^29.0.0", "json5": "^2.2.3", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "^7.5.3", - "yargs-parser": "^21.0.1" + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.6.3", + "yargs-parser": "^21.1.1" }, "bin": { "ts-jest": "cli.js" @@ -6472,9 +6461,9 @@ } }, "node_modules/undici-types": { - "version": "6.18.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.18.2.tgz", - "integrity": "sha512-5ruQbENj95yDYJNS3TvcaxPMshV7aizdv/hWYjGIKoANWKjhWNBsr2YEuYZKodQulB1b8l7ILOuDQep3afowQQ==", + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true, "license": "MIT" }, @@ -6681,12 +6670,6 @@ "node": ">=10" } }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -8117,12 +8100,12 @@ "dev": true }, "@types/node": { - "version": "22.3.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.3.0.tgz", - "integrity": "sha512-nrWpWVaDZuaVc5X84xJ0vNrLvomM205oQyLsRt7OHNZbSHslcWsvgFR7O7hire2ZonjLrWBbedmotmIlJDVd6g==", + "version": "22.5.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.0.tgz", + "integrity": "sha512-DkFrJOe+rfdHTqqMg0bSNlGlQ85hSoh2TPzZyhHsXnMtligRWpxUySiyw8FY14ITt24HVCiQPWxS3KO/QlGmWg==", "dev": true, "requires": { - "undici-types": "~6.18.2" + "undici-types": "~6.19.2" } }, "@types/nodemailer": { @@ -8477,9 +8460,9 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "axios": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz", - "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.5.tgz", + "integrity": "sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==", "requires": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -10342,9 +10325,9 @@ } }, "jose": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/jose/-/jose-5.6.3.tgz", - "integrity": "sha512-1Jh//hEEwMhNYPDDLwXHa2ePWgWiFNNUadVmguAAw2IJ6sj9mNxV5tGXJNqlMkJAybF6Lgw1mISDxTePP/187g==" + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/jose/-/jose-5.7.0.tgz", + "integrity": "sha512-3P9qfTYDVnNn642LCAqIKbTGb9a1TBxZ9ti5zEVEr48aDdflgRjhspWFb6WM4PzAfFbGMJYC4+803v8riCRAKw==" }, "js-tokens": { "version": "4.0.0", @@ -10459,15 +10442,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", @@ -10520,12 +10494,12 @@ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" }, "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "requires": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" } }, @@ -11075,13 +11049,10 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true }, "send": { "version": "0.18.0", @@ -11367,20 +11338,20 @@ "requires": {} }, "ts-jest": { - "version": "29.2.4", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.4.tgz", - "integrity": "sha512-3d6tgDyhCI29HlpwIq87sNuI+3Q6GLTTCeYRHCs7vDz+/3GCMwEtV9jezLyl4ZtnBgx00I7hm8PCP8cTksMGrw==", + "version": "29.2.5", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz", + "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==", "dev": true, "requires": { - "bs-logger": "0.x", + "bs-logger": "^0.2.6", "ejs": "^3.1.10", - "fast-json-stable-stringify": "2.x", + "fast-json-stable-stringify": "^2.1.0", "jest-util": "^29.0.0", "json5": "^2.2.3", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "^7.5.3", - "yargs-parser": "^21.0.1" + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.6.3", + "yargs-parser": "^21.1.1" } }, "ts-node": { @@ -11482,9 +11453,9 @@ "dev": true }, "undici-types": { - "version": "6.18.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.18.2.tgz", - "integrity": "sha512-5ruQbENj95yDYJNS3TvcaxPMshV7aizdv/hWYjGIKoANWKjhWNBsr2YEuYZKodQulB1b8l7ILOuDQep3afowQQ==", + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true }, "unpipe": { @@ -11629,12 +11600,6 @@ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", diff --git a/services/tenant-ui/package.json b/services/tenant-ui/package.json index 69c8724c3..7e3b267f6 100644 --- a/services/tenant-ui/package.json +++ b/services/tenant-ui/package.json @@ -1,6 +1,6 @@ { "name": "tenant-ui", - "version": "0.5.0", + "version": "0.5.2", "description": "", "main": "index.ts", "scripts": { @@ -15,7 +15,7 @@ "author": "", "license": "ISC", "dependencies": { - "axios": "^1.7.4", + "axios": "^1.7.5", "config": "^3.3.12", "connect-history-api-fallback": "^2.0.0", "cors": "^2.8.5", @@ -23,7 +23,7 @@ "express": "^4.19.2", "express-oauth-jwt": "^2.0.2", "express-validator": "^7.2.0", - "jose": "^5.6.3", + "jose": "^5.7.0", "nodemailer": "^6.9.14" }, "devDependencies": { @@ -32,14 +32,14 @@ "@types/cors": "^2.8.17", "@types/express": "^4.17.21", "@types/jest": "^29.5.12", - "@types/node": "^22.3.0", + "@types/node": "^22.5.0", "@types/nodemailer": "^6.4.15", "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", "eslint": "^8.57.0", "jest": "^29.7.0", "rimraf": "^6.0.1", - "ts-jest": "^29.2.4", + "ts-jest": "^29.2.5", "ts-node-dev": "^2.0.0", "typescript": "^5.5.4" } From e2ca85525129ecaacd2be0c36943aa47923d9bbd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:56:52 +0000 Subject: [PATCH 03/52] chore(deps): Bump marked in /services/tenant-ui/frontend Bumps [marked](https://github.com/markedjs/marked) from 14.0.0 to 14.1.0. - [Release notes](https://github.com/markedjs/marked/releases) - [Changelog](https://github.com/markedjs/marked/blob/master/.releaserc.json) - [Commits](https://github.com/markedjs/marked/compare/v14.0.0...v14.1.0) --- updated-dependencies: - dependency-name: marked dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- services/tenant-ui/frontend/package-lock.json | 11 +++++------ services/tenant-ui/frontend/package.json | 2 +- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/services/tenant-ui/frontend/package-lock.json b/services/tenant-ui/frontend/package-lock.json index 73d1c6e49..0e29de994 100644 --- a/services/tenant-ui/frontend/package-lock.json +++ b/services/tenant-ui/frontend/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "tenant-ui-frontend", - "version": "0.5.0", + "version": "0.5.2", "dependencies": { "@intlify/unplugin-vue-i18n": "^4.0.0", "@jsonforms/vue": "^3.3.0", @@ -17,7 +17,7 @@ "date-fns": "^3.6.0", "dompurify": "^3.1.6", "json-editor-vue": "^0.15.2", - "marked": "^14.0.0", + "marked": "^14.1.0", "oidc-client-ts": "^3.0.1", "pinia": "^2.2.2", "primeflex": "^3.3.1", @@ -4627,10 +4627,9 @@ } }, "node_modules/marked": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-14.0.0.tgz", - "integrity": "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==", - "license": "MIT", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-14.1.0.tgz", + "integrity": "sha512-P93GikH/Pde0hM5TAXEd8I4JAYi8IB03n8qzW8Bh1BIEFpEyBoYxi/XWZA53LSpTeLBiMQOoSMj0u5E/tiVYTA==", "bin": { "marked": "bin/marked.js" }, diff --git a/services/tenant-ui/frontend/package.json b/services/tenant-ui/frontend/package.json index f4f4144f1..cf6cced03 100644 --- a/services/tenant-ui/frontend/package.json +++ b/services/tenant-ui/frontend/package.json @@ -25,7 +25,7 @@ "date-fns": "^3.6.0", "dompurify": "^3.1.6", "json-editor-vue": "^0.15.2", - "marked": "^14.0.0", + "marked": "^14.1.0", "oidc-client-ts": "^3.0.1", "pinia": "^2.2.2", "primeflex": "^3.3.1", From 14a7085f3cfce245eaed116ec7f7a264156548ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emiliano=20Su=C3=B1=C3=A9?= Date: Mon, 26 Aug 2024 09:51:19 -0700 Subject: [PATCH 04/52] Always deploy dev environment from main MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Emiliano Suñé --- .github/workflows/on_push_main.yaml | 97 +---------------------------- 1 file changed, 1 insertion(+), 96 deletions(-) diff --git a/.github/workflows/on_push_main.yaml b/.github/workflows/on_push_main.yaml index ac00a6ee0..1febb4a87 100644 --- a/.github/workflows/on_push_main.yaml +++ b/.github/workflows/on_push_main.yaml @@ -69,100 +69,6 @@ jobs: image_tag: ${{ steps.builder.outputs.image_tag }} image_version: ${{ steps.builder.outputs.image_version }} - check_helm_changes: - runs-on: ubuntu-latest - name: Check for Helm Chart changes - outputs: - helm_changed: ${{ steps.list-changed.outputs.changed }} - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Check for chart changes - id: list-changed - run: | - if git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep -q "^charts/"; then - echo "changed=true" >> "$GITHUB_OUTPUT" - else - echo "changed=false" >> "$GITHUB_OUTPUT" - fi - - update_configs_repo: - runs-on: ubuntu-latest - name: Update Configurations Repo - needs: - - build_ui - - build_acapy - - build_proxy - - check_helm_changes - steps: - - uses: actions/checkout@v4 - - - name: Checkout services directory from the trust-over-ip-configurations repo - uses: actions/checkout@v4 - with: - repository: bcgov/trust-over-ip-configurations - ssh-key: ${{ secrets.DITP_CONFIGS_REPO_SECRET }} - sparse-checkout: | - services - path: trust-over-ip-configurations - - - name: Lookup Helm Chart and App versions - id: chart_version - run: | - helm repo add traction https://bcgov.github.io/traction - helm repo update - - if [[ "${{ needs.check_helm_changes.outputs.helm_changed }}" == "true" ]]; then - echo "APP_VERSION=$(yq e .appVersion charts/traction/Chart.yaml)" >> $GITHUB_OUTPUT - echo "CHART_VERSION=$(yq e .version charts/traction/Chart.yaml)" >> $GITHUB_OUTPUT - else - echo "APP_VERSION=$(helm search repo traction -ojson | jq '.[0].app_version')" >> $GITHUB_OUTPUT - echo "CHART_VERSION=$(helm search repo traction -ojson | jq '.[0].version')" >> $GITHUB_OUTPUT - fi - - - name: Update versions - env: - APP_VERSION: ${{ steps.chart_version.outputs.APP_VERSION }} - CHART_VERSION: ${{ steps.chart_version.outputs.CHART_VERSION }} - IMAGE_TAG: ${{ needs.build_acapy.outputs.image_version }} - run: | - cd trust-over-ip-configurations - - yq e -i '.appVersion = env(APP_VERSION)' services/traction/charts/dev/Chart.yaml - yq e -i '.version = env(CHART_VERSION)' services/traction/charts/dev/Chart.yaml - yq e -i '.dependencies[0].version = env(CHART_VERSION)' services/traction/charts/dev/Chart.yaml - yq e -i '.traction.acapy.image.tag = env(IMAGE_TAG)' services/traction/charts/dev/values.yaml - yq e -i '.traction.tenant_proxy.image.tag = env(IMAGE_TAG)' services/traction/charts/dev/values.yaml - yq e -i '.traction.ui.image.tag = env(IMAGE_TAG)' services/traction/charts/dev/values.yaml - - - name: Commit and Push to trust-over-ip-configurations Repo - run: | - cd trust-over-ip-configurations - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - git add services/traction/charts/dev/values.yaml services/traction/charts/dev/Chart.yaml - git commit -m "Update chart version and image tags" || echo "No changes to commit" - git push origin main - - - uses: convictional/trigger-workflow-and-wait@v1.6.5 - id: workflow-trigger - with: - owner: bcgov - repo: trust-over-ip-configurations - github_token: ${{ secrets.DITP_CONFIGS_REPO_TOKEN }} - workflow_file_name: gitops_sync.yaml - - - name: Trigger ArgoCD Sync of bc0192-dev-traction - uses: OpsVerseIO/argocd-sync@0.2.0 - if: needs.check_helm_changes.outputs.helm_changed != 'true' && steps.workflow-trigger.outputs.conclusion == 'success' - with: - address: gitops-shared.apps.silver.devops.gov.bc.ca - token: ${{ secrets.DITP_GITOPS_ARGO_SECRET}} - action: sync - appName: "bc0192-dev-traction" - deploy_dev: name: Deploy Dev environment: development @@ -171,8 +77,7 @@ jobs: - build_ui - build_acapy - build_proxy - - check_helm_changes - if: ${{ needs.check_helm_changes.outputs.helm_changed == 'true' && contains(needs.*.result, 'success') && !(contains(needs.*.result, 'failure')) && (github.repository_owner == 'bcgov') }} + if: ${{ contains(needs.*.result, 'success') && !(contains(needs.*.result, 'failure')) && (github.repository_owner == 'bcgov') }} steps: - uses: actions/checkout@v4 From 0b55066be4279c54da0b21be7ef24cc3bfaaa443 Mon Sep 17 00:00:00 2001 From: Gavin Jaeger-Freeborn Date: Wed, 14 Aug 2024 11:09:51 -0700 Subject: [PATCH 05/52] delete api records and changing wallet based tokens Signed-off-by: Gavin Jaeger-Freeborn --- .../v1_0/innkeeper/models.py | 9 ++- .../v1_0/innkeeper/routes.py | 67 +++++++++++++++++++ .../v1_0/innkeeper/utils.py | 11 ++- .../traction_innkeeper/v1_0/tenant/routes.py | 25 +++++++ services/aca-py/ngrok-wait.sh | 2 +- 5 files changed, 109 insertions(+), 5 deletions(-) diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/models.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/models.py index f16eb5be6..4e8158600 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/models.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/models.py @@ -357,12 +357,19 @@ async def soft_delete(self, session: ProfileSession): Soft delete the tenant record by setting its state to 'deleted'. Note: This method should be called on an instance of the TenantRecord. """ + # Delete api records + recs = await TenantAuthenticationApiRecord.query_by_tenant_id( + session, self.tenant_id + ) + for rec in recs: + if rec.tenant_id == self.tenant_id: + await rec.delete_record(session) + if self.state != self.STATE_DELETED: self.state = self.STATE_DELETED self.deleted_at = datetime_to_str(datetime.utcnow()) await self.save(session, reason="Soft delete") - async def restore_deleted(self, session: ProfileSession): """ Un-soft-delete the tenant record by setting its state to 'active'. diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/routes.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/routes.py index 89eac03c2..12418b1c8 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/routes.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/routes.py @@ -450,6 +450,16 @@ async def tenant_checkin(request: web.BaseRequest): ) +async def delete_auth_tokens(context: AdminRequestContext, wallet_record: WalletRecord): + mgr = context.inject(TenantManager) + profile = mgr.profile + multitenant_mgr = profile.inject(BaseMultitenantManager) + + wallet_record.jwt_iat = None + async with multitenant_mgr._profile.session() as session: + await wallet_record.save(session) + + @docs(tags=["multitenancy"], summary="Get auth token for a tenant") @match_info_schema(TenantIdMatchInfoSchema()) @request_schema(CustomCreateWalletTokenRequestSchema) @@ -522,6 +532,60 @@ async def tenant_create_token(request: web.BaseRequest): return web.json_response({"token": token}) +@docs( + tags=["multitenancy"], + summary="Get auth token for a subwallet (innkeeper plugin override)", +) +@request_schema(CreateWalletTokenRequestSchema) +@response_schema(CreateWalletTokenResponseSchema(), 200, description="") +@error_handler +async def tenant_wallet_create_token(request: web.BaseRequest): + raise web.HTTPUnauthorized(reason="Tenant is disabled") + context: AdminRequestContext = request["context"] + wallet_id = request.match_info["wallet_id"] + wallet_key = None + + mgr = context.inject(TenantManager) + profile = mgr.profile + + # Tenants must always be fetch by their wallet id. + rec = await TenantRecord.query_by_wallet_id(profile.session(), wallet_id) + LOGGER.warn("when creating token ", rec) + if rec.state == TenantRecord.STATE_DELETED: + raise web.HTTPUnauthorized(reason="Tenant is disabled") + + # The rest is from https://github.com/hyperledger/aries-acapy-plugins/blob/main/multitenant_provider/multitenant_provider/v1_0/routes.py + LOGGER.warn(f"wallet_id = {wallet_id}") + + # "builtin" wallet_create_token uses request.has_body / can_read_body + # which do not always return true, so wallet_key wasn't getting set or passed + # into create_auth_token. + + # if there's no body or the wallet_key is not in the body, + # or wallet_key is blank, return an error + if not request.body_exists: + raise web.HTTPUnauthorized(reason="Missing wallet_key") + + body = await request.json() + wallet_key = body.get("wallet_key") + LOGGER.warn(f"wallet_key = {wallet_key}") + + # If wallet_key is not there or blank return an error + if not wallet_key: + raise web.HTTPUnauthorized(reason="Missing wallet_key") + + profile = context.profile + # TODO + # config = profile.inject(MultitenantProviderConfig) + multitenant_mgr = profile.inject(BaseMultitenantManager) + async with profile.session() as session: + wallet_record = await WalletRecord.retrieve_by_id(session, wallet_id) + + token = await multitenant_mgr.create_auth_token(wallet_record, wallet_key) + + return web.json_response({"token": token}) + + @docs( tags=[SWAGGER_CATEGORY], ) @@ -1029,6 +1093,9 @@ async def register(app: web.Application): "/multitenancy/reservations/{reservation_id}/check-in", tenant_checkin ), web.post("/multitenancy/tenant/{tenant_id}/token", tenant_create_token), + web.post( + "/multitenancy/wallet/{wallet_id}/token", tenant_wallet_create_token + ), ] ) # routes that require a tenant token for the innkeeper wallet/tenant/agent. diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/utils.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/utils.py index ed6a4741a..065cb010f 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/utils.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/utils.py @@ -7,7 +7,7 @@ from aries_cloudagent.messaging.models.openapi import OpenAPISchema from marshmallow import fields -from .models import ReservationRecord, TenantAuthenticationApiRecord +from .models import ReservationRecord, TenantAuthenticationApiRecord, TenantRecord from . import TenantManager @@ -114,7 +114,9 @@ async def refresh_registration_token(reservation_id: str, manager: TenantManager ) except Exception as err: LOGGER.error("Failed to retrieve reservation: %s", err) - raise ReservationException("Could not retrieve reservation record.") from err + raise ReservationException( + "Could not retrieve reservation record." + ) from err if reservation.state != ReservationRecord.STATE_APPROVED: raise ReservationException("Only approved reservations can refresh tokens.") @@ -140,7 +142,8 @@ async def refresh_registration_token(reservation_id: str, manager: TenantManager LOGGER.info("Refreshed token for reservation %s", reservation_id) - return _pwd + return _pwd + def generate_api_key_data(): _key = str(uuid.uuid4().hex) @@ -156,6 +159,8 @@ def generate_api_key_data(): async def create_api_key(rec: TenantAuthenticationApiRecord, manager: TenantManager): + if rec.state == TenantRecord.STATE_DELETED: + raise ValueError("Tenant is disabled") async with manager.profile.session() as session: _key, _salt, _hash = generate_api_key_data() rec.api_key_token_salt = _salt.decode("utf-8") diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/tenant/routes.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/tenant/routes.py index eaf84cdbb..44196970c 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/tenant/routes.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/tenant/routes.py @@ -109,6 +109,31 @@ async def setup_tenant_context(request: web.Request, handler): return await handler(request) +def active_tenant_only(func): + @functools.wraps(func) + async def wrapper(request): + print("> innkeeper_only") + context: AdminRequestContext = request["context"] + profile = context.profile + wallet_name = str(profile.settings.get("wallet.name")) + wallet_innkeeper = bool(profile.settings.get("wallet.innkeeper")) + LOGGER.info(f"wallet.name = {wallet_name}") + LOGGER.info(f"wallet.innkeeper = {wallet_innkeeper}") + if wallet_innkeeper: + try: + ret = await func(request) + return ret + finally: + print("< innkeeper_only") + else: + LOGGER.error( + f"API call is for innkeepers only. wallet.name = '{wallet_name}', wallet.innkeeper = {wallet_innkeeper}" + ) + raise web.HTTPUnauthorized() + + return wrapper + + @docs( tags=[SWAGGER_CATEGORY], ) diff --git a/services/aca-py/ngrok-wait.sh b/services/aca-py/ngrok-wait.sh index a9db533f7..f55bed2f8 100755 --- a/services/aca-py/ngrok-wait.sh +++ b/services/aca-py/ngrok-wait.sh @@ -37,8 +37,8 @@ exec aca-py start \ --wallet-storage-config "{\"url\":\"${POSTGRESQL_HOST}:5432\",\"max_connections\":5, \"wallet_scheme\":\"${TRACTION_ACAPY_WALLET_SCHEME}\"}" \ --wallet-storage-creds "{\"account\":\"${POSTGRESQL_USER}\",\"password\":\"${POSTGRESQL_PASSWORD}\",\"admin_account\":\"${POSTGRESQL_USER}\",\"admin_password\":\"${POSTGRESQL_PASSWORD}\"}" \ --admin "0.0.0.0" ${TRACTION_ACAPY_ADMIN_PORT} \ + --plugin multitenant_provider.v1_0 \ --plugin traction_plugins.traction_innkeeper.v1_0 \ --plugin basicmessage_storage.v1_0 \ --plugin connection_update.v1_0 \ - --plugin multitenant_provider.v1_0 \ --plugin rpc.v1_0 \ From d052472e07bc29f33183d652d3b3650c6c9b3b7a Mon Sep 17 00:00:00 2001 From: Gavin Jaeger-Freeborn Date: Wed, 14 Aug 2024 13:17:18 -0700 Subject: [PATCH 06/52] Properly override url Signed-off-by: Gavin Jaeger-Freeborn --- .../traction/templates/acapy/deployment.yaml | 6 ++--- .../v1_0/innkeeper/routes.py | 23 +++++++++++++++---- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/charts/traction/templates/acapy/deployment.yaml b/charts/traction/templates/acapy/deployment.yaml index a2bc962a7..48c41b8b0 100644 --- a/charts/traction/templates/acapy/deployment.yaml +++ b/charts/traction/templates/acapy/deployment.yaml @@ -51,6 +51,9 @@ spec: --endpoint https://{{ include "acapy.host" . }} \ --arg-file '/home/aries/argfile.yml' \ --plugin 'aries_cloudagent.messaging.jsonld' \ + {{- if .Values.acapy.plugins.multitenantProvider }} + --plugin multitenant_provider.v1_0 \ + {{- end }} {{- if .Values.acapy.plugins.tractionInnkeeper }} --plugin traction_plugins.traction_innkeeper.v1_0 \ --plugin-config-value traction_innkeeper.innkeeper_wallet.tenant_id=\"$(INNKEEPER_WALLET_TENANT_ID)\" \ @@ -62,9 +65,6 @@ spec: {{- if .Values.acapy.plugins.connectionUpdate }} --plugin connection_update.v1_0 \ {{- end }} - {{- if .Values.acapy.plugins.multitenantProvider }} - --plugin multitenant_provider.v1_0 \ - {{- end }} {{- if .Values.acapy.plugins.rpc }} --plugin rpc.v1_0 \ {{- end }} diff --git a/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/routes.py b/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/routes.py index 12418b1c8..093c33c88 100644 --- a/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/routes.py +++ b/plugins/traction_innkeeper/traction_innkeeper/v1_0/innkeeper/routes.py @@ -540,7 +540,6 @@ async def tenant_create_token(request: web.BaseRequest): @response_schema(CreateWalletTokenResponseSchema(), 200, description="") @error_handler async def tenant_wallet_create_token(request: web.BaseRequest): - raise web.HTTPUnauthorized(reason="Tenant is disabled") context: AdminRequestContext = request["context"] wallet_id = request.match_info["wallet_id"] wallet_key = None @@ -549,10 +548,11 @@ async def tenant_wallet_create_token(request: web.BaseRequest): profile = mgr.profile # Tenants must always be fetch by their wallet id. - rec = await TenantRecord.query_by_wallet_id(profile.session(), wallet_id) - LOGGER.warn("when creating token ", rec) - if rec.state == TenantRecord.STATE_DELETED: - raise web.HTTPUnauthorized(reason="Tenant is disabled") + async with profile.session() as session: + rec = await TenantRecord.query_by_wallet_id(session, wallet_id) + LOGGER.warn("when creating token ", rec) + if rec.state == TenantRecord.STATE_DELETED: + raise web.HTTPUnauthorized(reason="Tenant is disabled") # The rest is from https://github.com/hyperledger/aries-acapy-plugins/blob/main/multitenant_provider/multitenant_provider/v1_0/routes.py LOGGER.warn(f"wallet_id = {wallet_id}") @@ -1098,6 +1098,19 @@ async def register(app: web.Application): ), ] ) + for r in app.router.routes(): + if r.method == "POST": + if ( + r.resource + and r.resource.canonical == "/multitenancy/wallet/{wallet_id}/token" + ): + LOGGER.info( + f"found route: {r.method} {r.resource.canonical} ({r.handler})" + ) + LOGGER.info(f"... replacing current handler: {r.handler}") + r._handler = tenant_wallet_create_token + LOGGER.info(f"... with new handler: {r.handler}") + has_wallet_create_token = True # routes that require a tenant token for the innkeeper wallet/tenant/agent. # these require not only a tenant, but it has to be the innkeeper tenant! app.add_routes( From 2dc2bf1ac2812be7c716db2b035c1d57cbe2e5fe Mon Sep 17 00:00:00 2001 From: Gavin Jaeger-Freeborn Date: Mon, 19 Aug 2024 14:47:06 -0700 Subject: [PATCH 07/52] Improved UI options for deletion of suspended tenants Signed-off-by: Gavin Jaeger-Freeborn --- .../src/components/innkeeper/tenants/Tenants.vue | 1 + .../deleteTenant/ConfirmTenantDeletion.vue | 15 +++++++++++---- .../tenants/deleteTenant/DeleteTenant.vue | 2 ++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/services/tenant-ui/frontend/src/components/innkeeper/tenants/Tenants.vue b/services/tenant-ui/frontend/src/components/innkeeper/tenants/Tenants.vue index 8929890f6..89691cc86 100644 --- a/services/tenant-ui/frontend/src/components/innkeeper/tenants/Tenants.vue +++ b/services/tenant-ui/frontend/src/components/innkeeper/tenants/Tenants.vue @@ -52,6 +52,7 @@ {{ $t('common.deleted') }} + diff --git a/services/tenant-ui/frontend/src/components/innkeeper/tenants/deleteTenant/ConfirmTenantDeletion.vue b/services/tenant-ui/frontend/src/components/innkeeper/tenants/deleteTenant/ConfirmTenantDeletion.vue index 4b20e2930..c051460e4 100644 --- a/services/tenant-ui/frontend/src/components/innkeeper/tenants/deleteTenant/ConfirmTenantDeletion.vue +++ b/services/tenant-ui/frontend/src/components/innkeeper/tenants/deleteTenant/ConfirmTenantDeletion.vue @@ -21,7 +21,7 @@ {{ $t('tenants.settings.permanentDelete') }} -
+