diff --git a/.ci/ehs/buildContainerImage.js b/.ci/eh/buildContainerImage.js old mode 100644 new mode 100755 similarity index 87% rename from .ci/ehs/buildContainerImage.js rename to .ci/eh/buildContainerImage.js index 23d9537f36..24a74c0ae4 --- a/.ci/ehs/buildContainerImage.js +++ b/.ci/eh/buildContainerImage.js @@ -8,4 +8,4 @@ const tag = getRequiredEnvVar("TAG"); const platforms = process.env.PLATFORMS ?? "linux/amd64,linux/arm64"; const push = process.env.PUSH === "1" ? ["--push", "--provenance=true", "--sbom=true"] : ""; -await $`docker buildx build --file ./EventHandlerService/src/EventHandlerService/Dockerfile --tag ghcr.io/nmshd/backbone-event-handler-service:${tag} --platform ${platforms} ${push} .`; +await $`docker buildx build --file ./EventHandlerService/src/EventHandlerService/Dockerfile --tag ghcr.io/nmshd/backbone-event-handler:${tag} --platform ${platforms} ${push} .`; diff --git a/.github/workflows/publish-ehs.yml b/.github/workflows/publish-ehs.yml index 361c2469ff..f0ce2fc1d1 100644 --- a/.github/workflows/publish-ehs.yml +++ b/.github/workflows/publish-ehs.yml @@ -3,10 +3,10 @@ name: Publish Event Handler Service Container Image on: push: tags: - - "ehs/*" + - "eh/*" jobs: - publish-ehs-container-image: + publish-eh-container-image: name: Publish Event Handler Service Container Image runs-on: ubuntu-latest permissions: @@ -40,7 +40,7 @@ jobs: driver: cloud endpoint: "jssoft/js-soft" - name: Build and Push Container Image - run: ./.ci/ehs/buildContainerImage.js + run: ./.ci/eh/buildContainerImage.js env: TAG: ${{ steps.extract-version-from-git-tag.outputs.VERSION }} PUSH: 1 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3ce5a93f69..fe5a80906c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -205,7 +205,7 @@ jobs: TAG: test PLATFORMS: linux/amd64 - build-ehs-container-image: + build-eh-container-image: name: Build Event Handler Service Container Image runs-on: ubuntu-latest steps: @@ -216,7 +216,7 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build image - run: ./.ci/ehs/buildContainerImage.js + run: ./.ci/eh/buildContainerImage.js env: TAG: test PLATFORMS: linux/amd64 diff --git a/.gitignore b/.gitignore index ee910f9a14..6896a656f9 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,9 @@ # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs +# mono +.mono + # Build results [Dd]ebug/ [Dd]ebugPublic/ diff --git a/AdminApi/src/AdminApi/ClientApp/package-lock.json b/AdminApi/src/AdminApi/ClientApp/package-lock.json index 9846f8bfca..d5afda01e7 100644 --- a/AdminApi/src/AdminApi/ClientApp/package-lock.json +++ b/AdminApi/src/AdminApi/ClientApp/package-lock.json @@ -9,17 +9,17 @@ "version": "0.0.0", "license": "MIT", "dependencies": { - "@angular/animations": "^17.3.4", - "@angular/cdk": "^17.3.4", - "@angular/common": "^17.3.4", - "@angular/compiler": "^17.3.4", - "@angular/core": "^17.3.4", - "@angular/forms": "^17.3.4", - "@angular/material": "^17.3.4", - "@angular/platform-browser": "^17.3.4", - "@angular/platform-browser-dynamic": "^17.3.4", - "@angular/platform-server": "^17.3.4", - "@angular/router": "^17.3.4", + "@angular/animations": "^17.3.5", + "@angular/cdk": "^17.3.5", + "@angular/common": "^17.3.5", + "@angular/compiler": "^17.3.5", + "@angular/core": "^17.3.5", + "@angular/forms": "^17.3.5", + "@angular/material": "^17.3.5", + "@angular/platform-browser": "^17.3.5", + "@angular/platform-browser-dynamic": "^17.3.5", + "@angular/platform-server": "^17.3.5", + "@angular/router": "^17.3.5", "@ngx-env/builder": "^17.3.0", "bootstrap": "^5.3.3", "jquery": "^3.7.1", @@ -34,9 +34,9 @@ "zone.js": "~0.14.4" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.3.4", - "@angular/cli": "^17.3.4", - "@angular/compiler-cli": "^17.3.4", + "@angular-devkit/build-angular": "^17.3.5", + "@angular/cli": "^17.3.5", + "@angular/compiler-cli": "^17.3.5", "@js-soft/eslint-config-ts": "^1.6.7", "@js-soft/license-check": "^1.0.9", "@types/jasmine": "~5.1.4", @@ -76,12 +76,12 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1703.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.4.tgz", - "integrity": "sha512-o+XCMOiMh8tmQGEwcxjAj2/lmUVT7CGSUAM31ydDomVOFFw4CnBvsoyKqQNRC+/AUXvovb2dCegQl/lTAnrwOg==", + "version": "0.1703.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.5.tgz", + "integrity": "sha512-j3+9QeXIafuRMtk7N5Cmm/IiMSS/TOaybzfCv/LK+DP3hjEd8f8Az7hPmevUuOArvWNzUvoUeu30GmR3wABydA==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.3.4", + "@angular-devkit/core": "17.3.5", "rxjs": "7.8.1" }, "engines": { @@ -91,15 +91,15 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.3.4.tgz", - "integrity": "sha512-8KieoPrsJcFPoza0gLQ6yebtIb3WdH3j/V1TnAihk4tVpgtdch8tOBE3FP1TnSW3RF+iCsA0I5NO9/4YbEsWtw==", + "version": "17.3.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.3.5.tgz", + "integrity": "sha512-Ju2MkMidJglJq/iWgM9CNbhK7A/2n0LNYPZx+ucb+aOFWvurCQrU4Mt/es6xCsxOEs5OPhjqdva8mxE5FHwzTQ==", "dev": true, "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1703.4", - "@angular-devkit/build-webpack": "0.1703.4", - "@angular-devkit/core": "17.3.4", + "@angular-devkit/architect": "0.1703.5", + "@angular-devkit/build-webpack": "0.1703.5", + "@angular-devkit/core": "17.3.5", "@babel/core": "7.24.0", "@babel/generator": "7.23.6", "@babel/helper-annotate-as-pure": "7.22.5", @@ -110,7 +110,7 @@ "@babel/preset-env": "7.24.0", "@babel/runtime": "7.24.0", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "17.3.4", + "@ngtools/webpack": "17.3.5", "@vitejs/plugin-basic-ssl": "1.1.0", "ansi-colors": "4.1.3", "autoprefixer": "10.4.18", @@ -220,12 +220,12 @@ } }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1703.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1703.4.tgz", - "integrity": "sha512-9Vsl6rfIH8kF02W7i3tW/aMOT2Ld1zpcok7n7JdL3Pb7oW0SOjt73FN6Ykm/hVig12gsOGJtEsDfQRsnCddmfQ==", + "version": "0.1703.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1703.5.tgz", + "integrity": "sha512-KcoKlWhDP6+2q3laQ6elXLt2QrVxWJFdCPUC9dIm0Tnc997Tal/UVhlDKaZgITYDgDvRFqG+tzNm2uFd8l7h+A==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1703.4", + "@angular-devkit/architect": "0.1703.5", "rxjs": "7.8.1" }, "engines": { @@ -239,9 +239,9 @@ } }, "node_modules/@angular-devkit/core": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.4.tgz", - "integrity": "sha512-vE69/Db555NTRPh+LUFO3rAQBbv7QGrK59F7chRggDZKamtCq/FfhEg2O+0BXQnUitOQN6WgQ79+payFYWyCCg==", + "version": "17.3.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.5.tgz", + "integrity": "sha512-iqGv45HVI+yRROoTqQTY0QChYlRCZkFUfIjdfJLegjc6xq9sLtxDr03CWM45BKGG5lSxDOy+qu/pdRvtL3V2eg==", "dev": true, "dependencies": { "ajv": "8.12.0", @@ -266,12 +266,12 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.3.4.tgz", - "integrity": "sha512-Z6801QhIwrMTcKPzdo9si+ZtJkPz8fys0ftOTfTM66+tDECasU7pvk8Dr54WkDY29mdSHzPxpSxAsooEwfxvQQ==", + "version": "17.3.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.3.5.tgz", + "integrity": "sha512-oh/mvpMKxGfk5v9QIB7LfGsDC/iVpmsIAvbb4+1ddCx86EJXdz3xWnVDbUehOd6n7HJXnQrNirWjWvWquM2GhQ==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.3.4", + "@angular-devkit/core": "17.3.5", "jsonc-parser": "3.2.1", "magic-string": "0.30.8", "ora": "5.4.1", @@ -284,9 +284,9 @@ } }, "node_modules/@angular/animations": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.3.4.tgz", - "integrity": "sha512-2nBgXRdTSVPZMueV6ZJjajDRucwJBLxwiVhGafk/nI5MJF0Yss/Jfp2Kfzk5Xw2AqGhz0rd00IyNNUQIzO2mlw==", + "version": "17.3.5", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.3.5.tgz", + "integrity": "sha512-hbfCnBxwhYQMKB+9tDcmfvckUtB8LdY1gPST6TZ7CzrWCSPddsnXxqxBZSBjBI6zXvE4FOV3kUzaUXM/Bq5sRw==", "dependencies": { "tslib": "^2.3.0" }, @@ -294,13 +294,13 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.3.4" + "@angular/core": "17.3.5" } }, "node_modules/@angular/cdk": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.3.4.tgz", - "integrity": "sha512-/wbKUbc0YC3HGE2TCgW7D07Q99PZ/5uoRvMyWw0/wHa8VLNavXZPecbvtyLs//3HnqoCMSUFE7E2Mrd7jAWfcA==", + "version": "17.3.5", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.3.5.tgz", + "integrity": "sha512-6y8+yIPWG0wTdPwHIPxKrEFCX1JxxBh4aXcmQnrNTDIvtoEPGaea9SU9XKaU8ahiZMlcpUXqKLG0BVbEhA1Oow==", "dependencies": { "tslib": "^2.3.0" }, @@ -314,15 +314,15 @@ } }, "node_modules/@angular/cli": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.3.4.tgz", - "integrity": "sha512-o4oIA2stUwXOur/T/kP3Zr8ZUCB4VYmvjACbsQ3tpzVCFYPeaW9psQagBNJfaBVVDSYL+EacVYBYJR9ZImvcGw==", + "version": "17.3.5", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.3.5.tgz", + "integrity": "sha512-6MHJzPKy4uB9qlJO1eKs4rtDlRuCe0lOiz1f3kHFZ/GQQm5xA1xsmZJMN4ASsnu4yU3oZs6vJ/vt8i2/jvdPbA==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1703.4", - "@angular-devkit/core": "17.3.4", - "@angular-devkit/schematics": "17.3.4", - "@schematics/angular": "17.3.4", + "@angular-devkit/architect": "0.1703.5", + "@angular-devkit/core": "17.3.5", + "@angular-devkit/schematics": "17.3.5", + "@schematics/angular": "17.3.5", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "4.1.2", @@ -348,9 +348,9 @@ } }, "node_modules/@angular/common": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.3.4.tgz", - "integrity": "sha512-rEsmtwUMJaNvaimh9hwaHdDLXaOIrjEnYdhmJUvDaKPQaFfSbH3CGGVz9brUyzVJyiWJYkYM0ssxavczeiEe8g==", + "version": "17.3.5", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.3.5.tgz", + "integrity": "sha512-Ox91WxSnOSrQ6I21cHi69EfT2Pxtd5Knb5AsdwpxqE57V2E7EnWMhb+LP+holCtFUhK529EGXCk788M+Elyw6g==", "dependencies": { "tslib": "^2.3.0" }, @@ -358,14 +358,14 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.3.4", + "@angular/core": "17.3.5", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.3.4.tgz", - "integrity": "sha512-YrDClIzgj6nQwiYHrfV6AkT1C5LCDgJh+LICus/2EY1w80j1Qf48Zh4asictReePdVE2Tarq6dnpDh4RW6LenQ==", + "version": "17.3.5", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.3.5.tgz", + "integrity": "sha512-lTubBFNlpH9zK46+yeVI7VJQNUELLAB8W1ucndYLCA9Rr9Jop+rYIXijmr42AGokOYr7yLc8HRiSQ5e+X2pUQg==", "dependencies": { "tslib": "^2.3.0" }, @@ -373,7 +373,7 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.3.4" + "@angular/core": "17.3.5" }, "peerDependenciesMeta": { "@angular/core": { @@ -382,9 +382,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.3.4.tgz", - "integrity": "sha512-TVWjpZSI/GIXTYsmVgEKYjBckcW8Aj62DcxLNehRFR+c7UB95OY3ZFjU8U4jL0XvWPgTkkVWQVq+P6N4KCBsyw==", + "version": "17.3.5", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.3.5.tgz", + "integrity": "sha512-R53JNbbVDHWSGdL0e2vGQ5iJCrILOWZ1oemKjekOFB93fUBlEyi+nZmm4uTO7RU8PgjB0UpxI6ok5ZE3Amkt6A==", "dev": true, "dependencies": { "@babel/core": "7.23.9", @@ -405,7 +405,7 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/compiler": "17.3.4", + "@angular/compiler": "17.3.5", "typescript": ">=5.2 <5.5" } }, @@ -455,9 +455,9 @@ } }, "node_modules/@angular/core": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.3.4.tgz", - "integrity": "sha512-fvhBkfa/DDBzp1UcNzSxHj+Z9DebSS/o9pZpZlbu/0uEiu9hScmScnhaty5E0EbutzHB0SVUCz7zZuDeAywvWg==", + "version": "17.3.5", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.3.5.tgz", + "integrity": "sha512-y6P27lcrKy3yMx/rtMuGsAnDyVEsS3BdyArTXcD0TOImVGHhVIaB0L95DUCam3ajTe2f2x39eozJZDh7QSpJaw==", "dependencies": { "tslib": "^2.3.0" }, @@ -470,9 +470,9 @@ } }, "node_modules/@angular/forms": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.3.4.tgz", - "integrity": "sha512-XWA/FAs0r7VRdztMIfGU9EE0Chj+1U/sDnzJK3ZPO0n8F8oDAEWGJyiw8GIyWTLs+mz43thVIED3DhbRNsXbWw==", + "version": "17.3.5", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.3.5.tgz", + "integrity": "sha512-Rf/8XWHdFYZQaOVTJ0QVwxQm9fDqQqIJc0yfPcH/DYL5pT7R0U2z98I5McZawzUBJUo1Zt1gijzDlzNUGf6jiA==", "dependencies": { "tslib": "^2.3.0" }, @@ -480,16 +480,16 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.3.4", - "@angular/core": "17.3.4", - "@angular/platform-browser": "17.3.4", + "@angular/common": "17.3.5", + "@angular/core": "17.3.5", + "@angular/platform-browser": "17.3.5", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/material": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-17.3.4.tgz", - "integrity": "sha512-SgCroIlHKt3s9pTEYlhW4ww6Gm1sIzJKuk0wlputPZvQS5PTJ8YY8vDg4QohpQcltlaXCbutt4qw+CBNU9W9iA==", + "version": "17.3.5", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-17.3.5.tgz", + "integrity": "sha512-1+QqBQ8HVOwxOkx/v2n53JA9ALOee55yVDbnAv7TkseNN4JEDxOcE5TO5HGmdV2A4tcsXQ00MIdy04jiB4sCng==", "dependencies": { "@material/animation": "15.0.0-canary.7f224ddd4.0", "@material/auto-init": "15.0.0-canary.7f224ddd4.0", @@ -542,7 +542,7 @@ }, "peerDependencies": { "@angular/animations": "^17.0.0 || ^18.0.0", - "@angular/cdk": "17.3.4", + "@angular/cdk": "17.3.5", "@angular/common": "^17.0.0 || ^18.0.0", "@angular/core": "^17.0.0 || ^18.0.0", "@angular/forms": "^17.0.0 || ^18.0.0", @@ -551,9 +551,9 @@ } }, "node_modules/@angular/platform-browser": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.3.4.tgz", - "integrity": "sha512-W2nH9WSQJfdNG4HH9B1Cvj5CTmy9gF3321I+65Tnb8jFmpeljYDBC/VVUhTZUCRpg8udMWeMHEQHuSb8CbozmQ==", + "version": "17.3.5", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.3.5.tgz", + "integrity": "sha512-ITlu/GTD64Sr0FMaFCJiHoTJrEZw8qRFXjPjv3BKhAp5dQKcwnCm02o1NOaj5d8oIItIh5fbI2zP0CSU2qNZkQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -561,9 +561,9 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/animations": "17.3.4", - "@angular/common": "17.3.4", - "@angular/core": "17.3.4" + "@angular/animations": "17.3.5", + "@angular/common": "17.3.5", + "@angular/core": "17.3.5" }, "peerDependenciesMeta": { "@angular/animations": { @@ -572,9 +572,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.3.4.tgz", - "integrity": "sha512-S53jPyQtInVYkjdGEFt4dxM1NrHNkWCvXGRsCO7Uh+laDf1OpIDp9YHf49OZohYLajJradN6y4QfdZL6IUwXKA==", + "version": "17.3.5", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.3.5.tgz", + "integrity": "sha512-KuS4j3Gh1h/CEj+bIOc/IcZIdiCB/DNbtUvz1eNp1o23aM8QutqelI3A4WBnQuR4yq8Z/8M3FH9F1OVwwhn2QQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -582,16 +582,16 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.3.4", - "@angular/compiler": "17.3.4", - "@angular/core": "17.3.4", - "@angular/platform-browser": "17.3.4" + "@angular/common": "17.3.5", + "@angular/compiler": "17.3.5", + "@angular/core": "17.3.5", + "@angular/platform-browser": "17.3.5" } }, "node_modules/@angular/platform-server": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-17.3.4.tgz", - "integrity": "sha512-2tKIzUfYxaBFfMamujdhZNt+Nr72522Mpk6H0bbk/t91RcQWb/Zx3LoGfDb8mZaHATSTERYNsA9jIp5Awv0ucg==", + "version": "17.3.5", + "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-17.3.5.tgz", + "integrity": "sha512-cQRM+sj4NJZi6udXuoFowWIFLlHwUzNfS3WITbYw4iAI1qRgkVZctbA2aKU6lZg43lEDmts9TOqFB1smUXsdVA==", "dependencies": { "tslib": "^2.3.0", "xhr2": "^0.2.0" @@ -600,17 +600,17 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/animations": "17.3.4", - "@angular/common": "17.3.4", - "@angular/compiler": "17.3.4", - "@angular/core": "17.3.4", - "@angular/platform-browser": "17.3.4" + "@angular/animations": "17.3.5", + "@angular/common": "17.3.5", + "@angular/compiler": "17.3.5", + "@angular/core": "17.3.5", + "@angular/platform-browser": "17.3.5" } }, "node_modules/@angular/router": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.3.4.tgz", - "integrity": "sha512-B1zjUYyhN66dp47zdF96NRwo0dEdM5In4Ob8HN64PAbnaK3y1EPp31aN6EGernPvKum1ibgwSZw+Uwnbkuv7Ww==", + "version": "17.3.5", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.3.5.tgz", + "integrity": "sha512-KsIIs3t9IpxsdMSrJDZzO5WgIWkVE6Ep5WWiSyPIgEfA+ndGpJLmyv0d/r1yKKlYUJxz7Hde55o4thgT2n2x/A==", "dependencies": { "tslib": "^2.3.0" }, @@ -618,9 +618,9 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.3.4", - "@angular/core": "17.3.4", - "@angular/platform-browser": "17.3.4", + "@angular/common": "17.3.5", + "@angular/core": "17.3.5", + "@angular/platform-browser": "17.3.5", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -4064,9 +4064,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.3.4.tgz", - "integrity": "sha512-3uNX4tRTKPm91mSQcnmQtqDMMKLGDevJERSPJU7hlOXZZ05QrT4et1mwvXNYYMpXqi2OkC7D4ryIS2YxAiItBA==", + "version": "17.3.5", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.3.5.tgz", + "integrity": "sha512-0heI0yHUckdGI8uywu/wkp24KR/tdYMKYJOaYIU+9JydyN1zJRpbR7x0thddl7+k/zu2ZGbfFdv1779Ecw/xdA==", "dev": true, "engines": { "node": "^18.13.0 || >=20.9.0", @@ -4973,13 +4973,13 @@ ] }, "node_modules/@schematics/angular": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.3.4.tgz", - "integrity": "sha512-Rqhp5l76Ej6BOZCHPrvHlA2SBkjv1aHFWAfW9gREke826j46D+fuA0eDAdgeVTz0Fx9e7XM3LdtWsz7CBlV4Ug==", + "version": "17.3.5", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.3.5.tgz", + "integrity": "sha512-SWCK16Eob0K86hpZ3NHmrTS6LSzTlhvnIdf3BXC6nzoiyDhcAS0oJ2Tjdq1opW/PaL1hB7MulcbIhxYln5du0w==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.3.4", - "@angular-devkit/schematics": "17.3.4", + "@angular-devkit/core": "17.3.5", + "@angular-devkit/schematics": "17.3.5", "jsonc-parser": "3.2.1" }, "engines": { @@ -5247,9 +5247,9 @@ } }, "node_modules/@types/qs": { - "version": "6.9.14", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz", - "integrity": "sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==", + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", "dev": true }, "node_modules/@types/range-parser": { @@ -9359,9 +9359,9 @@ "dev": true }, "node_modules/ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", "dev": true, "engines": { "node": ">= 10" diff --git a/AdminApi/src/AdminApi/ClientApp/package.json b/AdminApi/src/AdminApi/ClientApp/package.json index 39ddf84114..ddb76e7a1b 100644 --- a/AdminApi/src/AdminApi/ClientApp/package.json +++ b/AdminApi/src/AdminApi/ClientApp/package.json @@ -13,17 +13,17 @@ }, "private": true, "dependencies": { - "@angular/animations": "^17.3.4", - "@angular/cdk": "^17.3.4", - "@angular/common": "^17.3.4", - "@angular/compiler": "^17.3.4", - "@angular/core": "^17.3.4", - "@angular/forms": "^17.3.4", - "@angular/material": "^17.3.4", - "@angular/platform-browser": "^17.3.4", - "@angular/platform-browser-dynamic": "^17.3.4", - "@angular/platform-server": "^17.3.4", - "@angular/router": "^17.3.4", + "@angular/animations": "^17.3.5", + "@angular/cdk": "^17.3.5", + "@angular/common": "^17.3.5", + "@angular/compiler": "^17.3.5", + "@angular/core": "^17.3.5", + "@angular/forms": "^17.3.5", + "@angular/material": "^17.3.5", + "@angular/platform-browser": "^17.3.5", + "@angular/platform-browser-dynamic": "^17.3.5", + "@angular/platform-server": "^17.3.5", + "@angular/router": "^17.3.5", "@ngx-env/builder": "^17.3.0", "bootstrap": "^5.3.3", "jquery": "^3.7.1", @@ -38,9 +38,9 @@ "zone.js": "~0.14.4" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.3.4", - "@angular/cli": "^17.3.4", - "@angular/compiler-cli": "^17.3.4", + "@angular-devkit/build-angular": "^17.3.5", + "@angular/cli": "^17.3.5", + "@angular/compiler-cli": "^17.3.5", "@js-soft/eslint-config-ts": "^1.6.7", "@js-soft/license-check": "^1.0.9", "@types/jasmine": "~5.1.4", diff --git a/EventHandlerService/src/EventHandlerService/Dockerfile b/EventHandlerService/src/EventHandlerService/Dockerfile index f04f944974..393a62461b 100644 --- a/EventHandlerService/src/EventHandlerService/Dockerfile +++ b/EventHandlerService/src/EventHandlerService/Dockerfile @@ -79,7 +79,7 @@ RUN dotnet publish -c Release -o /app/publish --no-restore "EventHandlerService. FROM base AS final -RUN apt install libicu +RUN apk add icu-libs ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=0 WORKDIR /app diff --git a/Jobs/src/Job.IdentityDeletion/Dockerfile b/Jobs/src/Job.IdentityDeletion/Dockerfile index 862fd17244..dbf0322698 100644 --- a/Jobs/src/Job.IdentityDeletion/Dockerfile +++ b/Jobs/src/Job.IdentityDeletion/Dockerfile @@ -78,7 +78,7 @@ RUN dotnet publish -c Release --output /app/publish --no-restore "Job.IdentityDe FROM base AS final -RUN apt install libicu +RUN apk add icu-libs ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=0 WORKDIR /app diff --git a/helm/charts/eventhandler/Chart.yaml b/helm/charts/eventhandler/Chart.yaml new file mode 100644 index 0000000000..0fe584190b --- /dev/null +++ b/helm/charts/eventhandler/Chart.yaml @@ -0,0 +1,9 @@ +apiVersion: v2 +name: eventhandler +description: A Helm chart for Kubernetes + +type: application + +version: "1.0.0" + +appVersion: "v1.0.0" diff --git a/helm/charts/eventhandler/templates/deployment.yaml b/helm/charts/eventhandler/templates/deployment.yaml new file mode 100644 index 0000000000..2ece25396b --- /dev/null +++ b/helm/charts/eventhandler/templates/deployment.yaml @@ -0,0 +1,77 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "global.name" . }} + labels: + {{- include "global.labels" . | nindent 4 }} + app: {{ include "global.name" . }} +spec: + replicas: 1 + selector: + matchLabels: + app: {{ include "global.name" . }} + template: + metadata: + {{- with .Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + app: {{ include "global.name" . }} + spec: + {{- with .Values.podSecurityContext }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + {{- end }} + {{- with .Values.image.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + volumes: + - name: settings-override + configMap: + name: configuration + containers: + - name: {{ include "global.name" . }} + {{- with .Values.securityContext }} + securityContext: + {{- toYaml .Values.securityContext | nindent 8 }} + {{- end }} + resources: + {{- toYaml .Values.resources | nindent 12 }} + image: "{{ .Values.image.repository }}:{{- default .Chart.AppVersion .Values.image.tagOverride }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + volumeMounts: + - name: settings-override + mountPath: /app/appsettings.override.json + subPath: appsettings.override.json + readOnly: true + env: + {{- if .Values.global.useBuiltInEventbus }} + - name: infrastructure__eventBus__vendor + value: RabbitMQ + - name: infrastructure__eventBus__connectionInfo + value: "rabbitmq" + - name: infrastructure__eventBus__rabbitMQUsername + value: "admin" + - name: infrastructure__eventBus__rabbitMQPassword + valueFrom: + secretKeyRef: + name: rabbitmq-password + key: "VALUE" + {{- end }} + {{- with .Values.env }} + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/helm/values.yaml b/helm/values.yaml index 9c183737ed..b60b707fce 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -188,6 +188,54 @@ adminui: # unhealthyThreshold - the number of consecutive failed checks required to mark a backend as unhealthy unhealthyThreshold: 2 +eventhandler: + nameOverride: "" + replicas: 1 + maxSurge: 2 + maxUnavailable: 0 + + image: + repository: "ghcr.io/nmshd/backbone-event-handler" + tagOverride: "" + pullPolicy: "IfNotPresent" + imagePullSecrets: [] + + # resources - the resources for the Event Handler container (see https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#resources) + resources: + requests: + cpu: "50m" + memory: "64Mi" + limits: + cpu: "200m" + memory: "512Mi" + + # securityContext - securityContext for the Consumer API container (see https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1) + securityContext: {} + + # podSecurityContext - securityContext for the pods deployed by the Deployment (see https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) + podSecurityContext: {} + + podAnnotations: {} + + # env - environment variables for the Event Handler container (see https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/) + env: [] + + # the nodeSelector for the pods deployed by the Deployment (see https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) + nodeSelector: {} + + # the tolerations for the pods deployed by the Deployment (see https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) + tolerations: [] + + # the affinity for the pods deployed by the Deployment (see https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#NodeAffinity) + affinity: {} + + autoscaling: + enabled: false + minReplicas: 1 + maxReplicas: 100 + targetCPUUtilizationPercentage: 80 + targetMemoryUtilizationPercentage: "" + admincli: nameOverride: ""