From 304637fcb23afc44b68f488364c15d80e164e658 Mon Sep 17 00:00:00 2001
From: Antonio Tarricone <110115827+antoniotarricone@users.noreply.github.com>
Date: Fri, 9 Jun 2023 16:45:50 +0200
Subject: [PATCH] fix: Build automation and securing. (#2)
---
.github/workflows/pr-validation.yml | 92 +
.github/workflows/release.yml | 184 ++
.gitignore | 3 +
.releaserc.json | 23 +
dep-sha256.json | 2174 +++++++++++++++++
pom.xml | 116 +-
src/main/docker/Dockerfile.jvm | 95 -
src/main/docker/Dockerfile.legacy-jar | 91 -
src/main/docker/Dockerfile.native | 27 -
src/main/docker/Dockerfile.native-micro | 21 +-
src/main/resources/application.properties | 8 +-
src/main/terraform/identity/01_data.tf | 18 +
.../identity/02_application_environment_cd.tf | 31 +
.../identity/03_github_environment_cd.tf | 60 +
src/main/terraform/identity/99_locals.tf | 4 +
src/main/terraform/identity/99_main.tf | 32 +
src/main/terraform/identity/99_main.tf.ci | 30 +
src/main/terraform/identity/99_outputs.tf | 7 +
src/main/terraform/identity/99_variables.tf | 51 +
.../terraform/identity/env/dev/backend.ini | 1 +
.../terraform/identity/env/dev/backend.tfvars | 4 +
.../identity/env/dev/terraform.tfvars | 12 +
.../terraform/identity/env/prod/backend.ini | 1 +
.../identity/env/prod/backend.tfvars | 4 +
.../identity/env/prod/terraform.tfvars | 46 +
.../terraform/identity/env/uat/backend.ini | 1 +
.../terraform/identity/env/uat/backend.tfvars | 4 +
.../identity/env/uat/terraform.tfvars | 46 +
src/main/terraform/identity/terraform.sh | 64 +
29 files changed, 2956 insertions(+), 294 deletions(-)
create mode 100644 .github/workflows/pr-validation.yml
create mode 100644 .github/workflows/release.yml
create mode 100644 .releaserc.json
create mode 100644 dep-sha256.json
delete mode 100644 src/main/docker/Dockerfile.jvm
delete mode 100644 src/main/docker/Dockerfile.legacy-jar
delete mode 100644 src/main/docker/Dockerfile.native
create mode 100644 src/main/terraform/identity/01_data.tf
create mode 100644 src/main/terraform/identity/02_application_environment_cd.tf
create mode 100644 src/main/terraform/identity/03_github_environment_cd.tf
create mode 100644 src/main/terraform/identity/99_locals.tf
create mode 100644 src/main/terraform/identity/99_main.tf
create mode 100644 src/main/terraform/identity/99_main.tf.ci
create mode 100644 src/main/terraform/identity/99_outputs.tf
create mode 100644 src/main/terraform/identity/99_variables.tf
create mode 100644 src/main/terraform/identity/env/dev/backend.ini
create mode 100644 src/main/terraform/identity/env/dev/backend.tfvars
create mode 100644 src/main/terraform/identity/env/dev/terraform.tfvars
create mode 100644 src/main/terraform/identity/env/prod/backend.ini
create mode 100644 src/main/terraform/identity/env/prod/backend.tfvars
create mode 100644 src/main/terraform/identity/env/prod/terraform.tfvars
create mode 100644 src/main/terraform/identity/env/uat/backend.ini
create mode 100644 src/main/terraform/identity/env/uat/backend.tfvars
create mode 100644 src/main/terraform/identity/env/uat/terraform.tfvars
create mode 100755 src/main/terraform/identity/terraform.sh
diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml
new file mode 100644
index 0000000..415899e
--- /dev/null
+++ b/.github/workflows/pr-validation.yml
@@ -0,0 +1,92 @@
+name: Pull request validation
+
+on:
+ pull_request:
+ branches:
+ - main
+ types:
+ - opened
+ - edited
+ - synchronize
+
+jobs:
+ pr-validation:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: PR title validation
+ uses: amannn/action-semantic-pull-request@c3cd5d1ea3580753008872425915e343e351ab54
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ types: |
+ docs
+ refactor
+ chore
+ fix
+ feat
+ breaking
+ requireScope: false
+ subjectPattern: ^[A-Z].+$
+ subjectPatternError: |
+ The subject "{subject}" found in the pull request title "{title}"
+ doesn't match the configured pattern. Please ensure that the subject
+ starts with an uppercase character.
+ wip: false
+
+ - name: Checkout the source code
+ uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
+ with:
+ token: ${{ secrets.GIT_PAT }}
+ fetch-depth: 0
+
+ - name: Cache JDK
+ uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8
+ id: cache-jdk
+ with:
+ key: OpenJDK17U-jdk_x64_linux_hotspot_17.0.7_7.tar.gz
+ path: |
+ ${{ runner.temp }}/jdk_setup.tar.gz
+ ${{ runner.temp }}/jdk_setup.sha256
+
+ - name: Download JDK and verify its hash
+ if: steps.cache-jdk.outputs.cache-hit != 'true'
+ run: |
+ echo "e9458b38e97358850902c2936a1bb5f35f6cffc59da9fcd28c63eab8dbbfbc3b ${{ runner.temp }}/jdk_setup.tar.gz" >> ${{ runner.temp }}/jdk_setup.sha256
+ curl -L "/~https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jdk_x64_linux_hotspot_17.0.7_7.tar.gz" -o "${{ runner.temp }}/jdk_setup.tar.gz"
+ sha256sum --check --status "${{ runner.temp }}/jdk_setup.sha256"
+
+ - name: Setup JDK
+ uses: actions/setup-java@5ffc13f4174014e2d4d4572b3d74c3fa61aeb2c2
+ with:
+ distribution: "jdkfile"
+ jdkFile: "${{ runner.temp }}/jdk_setup.tar.gz"
+ java-version: "17"
+ cache: maven
+
+ - name: Cache Maven
+ uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8
+ id: cache-maven
+ with:
+ key: apache-maven-3.9.2-bin.tar.gz
+ path: |
+ ${{ runner.temp }}/maven_setup.tar.gz
+ ${{ runner.temp }}/maven_setup.sha256
+
+ - name: Download Maven and verify its hash
+ if: steps.cache-maven.outputs.cache-hit != 'true'
+ run: |
+ echo "809ef3220c6d179195c06c324cb9a6d34d8ecba566c5cfd8eb83167bc034117d ${{ runner.temp }}/maven_setup.tar.gz" >> ${{ runner.temp }}/maven_setup.sha256
+ curl -L "https://dlcdn.apache.org/maven/maven-3/3.9.2/binaries/apache-maven-3.9.2-bin.tar.gz" -o "${{ runner.temp }}/maven_setup.tar.gz"
+ sha256sum --check --status "${{ runner.temp }}/maven_setup.sha256"
+
+ - name: Setup Maven
+ run: |
+ mkdir ${{ runner.temp }}/maven
+ tar -xvf ${{ runner.temp }}/maven_setup.tar.gz -C ${{ runner.temp }}/maven --strip-components=1
+ echo "github${{ secrets.GIT_USER }}${{ secrets.GIT_PAT }}" >> ${{ runner.temp }}/settings.xml
+
+ - name: Execute unit-test + Calculate test coverage + SCA with Sonar
+ env:
+ SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
+ run: ${{ runner.temp }}/maven/bin/mvn verify -Pvalidate -s ${{ runner.temp }}/settings.xml --no-transfer-progress
\ No newline at end of file
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..18a1575
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,184 @@
+name: Release a new version
+
+on:
+ pull_request:
+ types:
+ - closed
+ branches:
+ - main
+
+jobs:
+ release:
+ if: github.event.pull_request.merged == true
+
+ runs-on: ubuntu-latest
+
+ outputs:
+ new_release_published: ${{ steps.semantic.outputs.new_release_published }}
+ new_release_version: ${{ steps.semantic.outputs.new_release_version }}
+
+ steps:
+ #
+ # Checkout the source code.
+ #
+ - name: Checkout the source code
+ uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
+ with:
+ token: ${{ secrets.GIT_PAT }}
+ fetch-depth: 0
+
+ #
+ # Calculation of the new version (dry-run).
+ #
+ - name: Calculation of the new version (dry-run)
+ uses: cycjimmy/semantic-release-action@8e58d20d0f6c8773181f43eb74d6a05e3099571d
+ id: semantic
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ semantic_version: 19
+ branch: main
+ extra_plugins: |
+ @semantic-release/release-notes-generator@10.0.3
+ @semantic-release/git@10.0.1
+ dry_run: true
+
+ #
+ # Cache JDK.
+ #
+ - name: Cache JDK
+ uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8
+ id: cache-jdk
+ with:
+ key: OpenJDK17U-jdk_x64_linux_hotspot_17.0.7_7.tar.gz
+ path: |
+ ${{ runner.temp }}/jdk_setup.tar.gz
+ ${{ runner.temp }}/jdk_setup.sha256
+
+ #
+ # Download JDK and verify its hash.
+ #
+ - name: Download JDK and verify its hash
+ if: steps.cache-jdk.outputs.cache-hit != 'true'
+ run: |
+ echo "e9458b38e97358850902c2936a1bb5f35f6cffc59da9fcd28c63eab8dbbfbc3b ${{ runner.temp }}/jdk_setup.tar.gz" >> ${{ runner.temp }}/jdk_setup.sha256
+ curl -L "/~https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jdk_x64_linux_hotspot_17.0.7_7.tar.gz" -o "${{ runner.temp }}/jdk_setup.tar.gz"
+ sha256sum --check --status "${{ runner.temp }}/jdk_setup.sha256"
+
+ #
+ # Setup JDK.
+ #
+ - name: Setup JDK
+ uses: actions/setup-java@5ffc13f4174014e2d4d4572b3d74c3fa61aeb2c2
+ with:
+ distribution: "jdkfile"
+ jdkFile: "${{ runner.temp }}/jdk_setup.tar.gz"
+ java-version: "17"
+ cache: maven
+
+ #
+ # Cache Maven.
+ #
+ - name: Cache Maven
+ uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8
+ id: cache-maven
+ with:
+ key: apache-maven-3.9.2-bin.tar.gz
+ path: |
+ ${{ runner.temp }}/maven_setup.tar.gz
+ ${{ runner.temp }}/maven_setup.sha256
+
+ #
+ # Download Maven and verify its hash.
+ #
+ - name: Download Maven and verify its hash
+ if: steps.cache-maven.outputs.cache-hit != 'true'
+ run: |
+ echo "809ef3220c6d179195c06c324cb9a6d34d8ecba566c5cfd8eb83167bc034117d ${{ runner.temp }}/maven_setup.tar.gz" >> ${{ runner.temp }}/maven_setup.sha256
+ curl -L "https://dlcdn.apache.org/maven/maven-3/3.9.2/binaries/apache-maven-3.9.2-bin.tar.gz" -o "${{ runner.temp }}/maven_setup.tar.gz"
+ sha256sum --check --status "${{ runner.temp }}/maven_setup.sha256"
+
+ #
+ # Setup Maven.
+ #
+ - name: Setup Maven
+ run: |
+ mkdir ${{ runner.temp }}/maven
+ tar -xvf ${{ runner.temp }}/maven_setup.tar.gz -C ${{ runner.temp }}/maven --strip-components=1
+ echo "github${{ secrets.GIT_USER }}${{ secrets.GIT_PAT }}" >> ${{ runner.temp }}/settings.xml
+
+ #
+ # Update of pom.xml with the new version + Git add + commit + push of the updated pom.xml.
+ #
+ - name: Update of pom.xml with the new version + Git add + commit + push of the updated pom.xml
+ if: steps.semantic.outputs.new_release_published == 'true'
+ run: |
+ ${{ runner.temp }}/maven/bin/mvn versions:set -DnewVersion=${{ steps.semantic.outputs.new_release_version }} -s ${{ runner.temp }}/settings.xml --no-transfer-progress
+ git config user.name "GitHub Workflow"
+ git config user.email "<>"
+ git add pom.xml
+ git commit -m "pom.xml updated with new version ${{ steps.semantic.outputs.new_release_version }}"
+ git push origin main
+
+ #
+ # Calculation of the new version (again) with tagging + releasing + etc.
+ #
+ - name: Calculation of the new version (again) with tagging + releasing + etc
+ if: steps.semantic.outputs.new_release_published == 'true'
+ uses: cycjimmy/semantic-release-action@8e58d20d0f6c8773181f43eb74d6a05e3099571d
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ semantic_version: 19
+ branch: main
+ extra_plugins: |
+ @semantic-release/release-notes-generator@10.0.3
+ @semantic-release/git@10.0.1
+ dry_run: false
+
+ #
+ # Execute unit-test + Calculate test coverage + SCA with Sonar + Build native image + Docker build + Docker login + Docker push
+ #
+ - name: Execute unit-test + Calculate test coverage + SCA with Sonar + Build native image + Docker build + Docker login + Docker push
+ if: steps.semantic.outputs.new_release_published == 'true'
+ env:
+ SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
+ run: |
+ ${{ runner.temp }}/maven/bin/mvn verify -Pvalidate -s ${{ runner.temp }}/settings.xml --no-transfer-progress
+ ${{ runner.temp }}/maven/bin/mvn clean package -Pnative -Dmaven.test.skip=true -Dquarkus.native.container-build=true -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-mandrel-builder-image@sha256:05baf3fd2173f6f25ad35216b6b066c35fbfb97f06daba75efb5b22bc0a85b9c -s ${{ runner.temp }}/settings.xml --no-transfer-progress
+ docker build -f src/main/docker/Dockerfile.native-micro -t ghcr.io/${{ github.repository }}:latest -t ghcr.io/${{ github.repository }}:${{ steps.semantic.outputs.new_release_version }} .
+ echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
+ docker push -a ghcr.io/${{ github.repository }}
+
+ deploy:
+ needs: release
+
+ if: needs.release.outputs.new_release_published == 'true'
+
+ runs-on: ubuntu-latest
+
+ environment: dev-cd
+
+ permissions:
+ id-token: write
+
+ steps:
+ #
+ # Login to Azure.
+ #
+ - name: Login to Azure
+ uses: azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2
+ with:
+ client-id: ${{ secrets.AZURE_CLIENT_ID }}
+ tenant-id: ${{ secrets.AZURE_TENANT_ID }}
+ subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
+
+ #
+ # Update Container App
+ #
+ - name: Update Container App
+ uses: azure/CLI@fa0f960f00db49b95fdb54328a767aee31e80105
+ with:
+ inlineScript: |
+ az config set extension.use_dynamic_install=yes_without_prompt
+ az containerapp update -n ${{ secrets.AZURE_CONTAINER_APP_NAME }} -g ${{ secrets.AZURE_RESOURCE_GROUP_NAME }} --image ghcr.io/${{ github.repository }}:${{ needs.release.outputs.new_release_version }}
diff --git a/.gitignore b/.gitignore
index 693002a..03b5d93 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,3 +38,6 @@ nb-configuration.xml
# Local environment
.env
+
+src/main/terraform/identity/.terraform
+src/main/terraform/identity/.terraform.lock.hcl
diff --git a/.releaserc.json b/.releaserc.json
new file mode 100644
index 0000000..20031e7
--- /dev/null
+++ b/.releaserc.json
@@ -0,0 +1,23 @@
+{
+ "branches": [
+ "main"
+ ],
+ "ci": false,
+ "tagFormat": "${version}",
+ "plugins": [
+ [
+ "@semantic-release/commit-analyzer",
+ {
+ "preset": "angular",
+ "releaseRules": [
+ {
+ "type": "breaking",
+ "release": "major"
+ }
+ ]
+ }
+ ],
+ "@semantic-release/release-notes-generator",
+ "@semantic-release/github"
+ ]
+}
diff --git a/dep-sha256.json b/dep-sha256.json
new file mode 100644
index 0000000..97b51df
--- /dev/null
+++ b/dep-sha256.json
@@ -0,0 +1,2174 @@
+{
+ "dependencies": [
+ {
+ "id": "io.quarkus:quarkus-resteasy-reactive-jackson:jar:3.1.0.Final",
+ "artifactId": "quarkus-resteasy-reactive-jackson",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "PXs4okE49O3GExTNaEtprFIsR1y5F1iyCFlNmp9S-ts="
+ },
+ {
+ "id": "io.quarkus:quarkus-resteasy-reactive-jackson-common:jar:3.1.0.Final",
+ "artifactId": "quarkus-resteasy-reactive-jackson-common",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "JDnGxsnHGg65o06U-8rNA08RoQ3eJXfRXWzTBbBlBj0="
+ },
+ {
+ "id": "io.quarkus:quarkus-hibernate-validator:jar:3.1.0.Final",
+ "artifactId": "quarkus-hibernate-validator",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "n3tBrqzJ0Klm_hhY87yrPIinILeD3smvvOjfq_TzA9o="
+ },
+ {
+ "id": "io.quarkus:quarkus-core:jar:3.1.0.Final",
+ "artifactId": "quarkus-core",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "uGcsTEi8IRHBxSN0bUC5fee1JcUDmBskjhFNCiLDtiY="
+ },
+ {
+ "id": "jakarta.enterprise:jakarta.enterprise.cdi-api:jar:4.0.1",
+ "artifactId": "jakarta.enterprise.cdi-api",
+ "groupId": "jakarta.enterprise",
+ "version": "4.0.1",
+ "sha256": "vq90xPJhgYkwnj9KCcQ-_6tjPdlqofbcWKa6fuAEJxc="
+ },
+ {
+ "id": "jakarta.enterprise:jakarta.enterprise.lang-model:jar:4.0.1",
+ "artifactId": "jakarta.enterprise.lang-model",
+ "groupId": "jakarta.enterprise",
+ "version": "4.0.1",
+ "sha256": "U6yv5ltu8Blfobig7yZQ5aoCTDLLQFnE3zctazIInNM="
+ },
+ {
+ "id": "jakarta.interceptor:jakarta.interceptor-api:jar:2.1.0",
+ "artifactId": "jakarta.interceptor-api",
+ "groupId": "jakarta.interceptor",
+ "version": "2.1.0",
+ "sha256": "73h9P3E_xv9PAs1LDb7Qj5PYrzQAyQy7Q_tLXAWDcQs="
+ },
+ {
+ "id": "jakarta.inject:jakarta.inject-api:jar:2.0.1",
+ "artifactId": "jakarta.inject-api",
+ "groupId": "jakarta.inject",
+ "version": "2.0.1",
+ "sha256": "99yYBi_M8UEmq7dRtk-rEsMSVm6MvchINZi__OqTr3w="
+ },
+ {
+ "id": "io.smallrye.common:smallrye-common-os:jar:2.1.0",
+ "artifactId": "smallrye-common-os",
+ "groupId": "io.smallrye.common",
+ "version": "2.1.0",
+ "sha256": "zxlEyMicsNEN4f9L4UMpMJ4FzAW0xIx6RBfc2SjO1r4="
+ },
+ {
+ "id": "io.quarkus:quarkus-ide-launcher:jar:3.1.0.Final",
+ "artifactId": "quarkus-ide-launcher",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "ApNfumCqsWUJikh62tSRIsfv4sf-XkAqYMS4XZk2gj0="
+ },
+ {
+ "id": "io.quarkus:quarkus-development-mode-spi:jar:3.1.0.Final",
+ "artifactId": "quarkus-development-mode-spi",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "X0O6AvQQAwmy8xgjZOLgE4hawBgvsIr_19GSe_fmEwU="
+ },
+ {
+ "id": "io.smallrye.config:smallrye-config:jar:3.2.1",
+ "artifactId": "smallrye-config",
+ "groupId": "io.smallrye.config",
+ "version": "3.2.1",
+ "sha256": "OBGFYr_Ptdle7uo6wQ1mMwFNAqcHAeHmIWMco61LzyY="
+ },
+ {
+ "id": "io.smallrye.config:smallrye-config-core:jar:3.2.1",
+ "artifactId": "smallrye-config-core",
+ "groupId": "io.smallrye.config",
+ "version": "3.2.1",
+ "sha256": "5KtGfWXFQTipZXYELXxyEEqcW6D5KvdYAx8ghJAcwGk="
+ },
+ {
+ "id": "org.eclipse.microprofile.config:microprofile-config-api:jar:3.0.3",
+ "artifactId": "microprofile-config-api",
+ "groupId": "org.eclipse.microprofile.config",
+ "version": "3.0.3",
+ "sha256": "bJe41cNkmp0D5z2DAMqc6RKjny4V5qNg9STn2ZZiojw="
+ },
+ {
+ "id": "io.smallrye.common:smallrye-common-expression:jar:2.1.0",
+ "artifactId": "smallrye-common-expression",
+ "groupId": "io.smallrye.common",
+ "version": "2.1.0",
+ "sha256": "h1R7mgBYaYSi6q_E1dBcKUPSHGSUvFMnHzTgdgzGHgU="
+ },
+ {
+ "id": "io.smallrye.common:smallrye-common-function:jar:2.1.0",
+ "artifactId": "smallrye-common-function",
+ "groupId": "io.smallrye.common",
+ "version": "2.1.0",
+ "sha256": "fFygFWVh0aWwTwfOwbSgEvjVnXV5CeR0KOE2dugvoNs="
+ },
+ {
+ "id": "io.smallrye.common:smallrye-common-classloader:jar:2.1.0",
+ "artifactId": "smallrye-common-classloader",
+ "groupId": "io.smallrye.common",
+ "version": "2.1.0",
+ "sha256": "Jwb_NxWPio3lezngd1CInHpwuNrtGseXdBSYOW0T9AI="
+ },
+ {
+ "id": "io.smallrye.config:smallrye-config-common:jar:3.2.1",
+ "artifactId": "smallrye-config-common",
+ "groupId": "io.smallrye.config",
+ "version": "3.2.1",
+ "sha256": "KYr0DmE95RsNSH7hMPALpdXu_ExpsHJVCnbA98cdYm4="
+ },
+ {
+ "id": "org.jboss.logmanager:jboss-logmanager-embedded:jar:1.1.1",
+ "artifactId": "jboss-logmanager-embedded",
+ "groupId": "org.jboss.logmanager",
+ "version": "1.1.1",
+ "sha256": "SDI6QtNWLT8EIOxgvJiO0OoCmCy5M0qI66cEIRNQwpE="
+ },
+ {
+ "id": "org.jboss.logging:jboss-logging-annotations:jar:2.2.1.Final",
+ "artifactId": "jboss-logging-annotations",
+ "groupId": "org.jboss.logging",
+ "version": "2.2.1.Final",
+ "sha256": "8VJPydftOvyH02WrDSgO8mDI3Rg2Q1aJ6DAP1aUe0Xg="
+ },
+ {
+ "id": "org.jboss.threads:jboss-threads:jar:3.5.0.Final",
+ "artifactId": "jboss-threads",
+ "groupId": "org.jboss.threads",
+ "version": "3.5.0.Final",
+ "sha256": "4VC2en9ShSX-aN1ghBUgwi1Z4Kgx6iN8RacE3ki5kLE="
+ },
+ {
+ "id": "org.jboss.slf4j:slf4j-jboss-logmanager:jar:2.0.0.Final",
+ "artifactId": "slf4j-jboss-logmanager",
+ "groupId": "org.jboss.slf4j",
+ "version": "2.0.0.Final",
+ "sha256": "J3iFEEtyeiE-94S6sxSZ0jIhB03tKLBIJ-gJ0vVIlpM="
+ },
+ {
+ "id": "org.graalvm.sdk:graal-sdk:jar:22.3.2",
+ "artifactId": "graal-sdk",
+ "groupId": "org.graalvm.sdk",
+ "version": "22.3.2",
+ "sha256": "gv3rMmA7mxIfO8RVkH1-Pv_LJo6X1y160P0z_dfT6zs="
+ },
+ {
+ "id": "org.wildfly.common:wildfly-common:jar:1.5.4.Final-format-001",
+ "artifactId": "wildfly-common",
+ "groupId": "org.wildfly.common",
+ "version": "1.5.4.Final-format-001",
+ "sha256": "mIT3kfgV0P7YxRdxr3EWSv1I-W5iHyYAn56-eRwFPxs="
+ },
+ {
+ "id": "io.quarkus:quarkus-bootstrap-runner:jar:3.1.0.Final",
+ "artifactId": "quarkus-bootstrap-runner",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "b0HJmZ92FKZ7qq9Zc9b5nZKH9il06JE3WengkLfJDUI="
+ },
+ {
+ "id": "io.quarkus:quarkus-fs-util:jar:0.0.9",
+ "artifactId": "quarkus-fs-util",
+ "groupId": "io.quarkus",
+ "version": "0.0.9",
+ "sha256": "6go6O0a6DWDu4xhpH22d2k0M1H0ghRK5DYOmLU7NyjY="
+ },
+ {
+ "id": "org.hibernate.validator:hibernate-validator:jar:8.0.0.Final",
+ "artifactId": "hibernate-validator",
+ "groupId": "org.hibernate.validator",
+ "version": "8.0.0.Final",
+ "sha256": "V6Ms2gWDREsZ0C_XbHtPIwNc24d-C2xz6DQ4AJTiIUU="
+ },
+ {
+ "id": "jakarta.validation:jakarta.validation-api:jar:3.0.2",
+ "artifactId": "jakarta.validation-api",
+ "groupId": "jakarta.validation",
+ "version": "3.0.2",
+ "sha256": "KRwl5pEMxqfr2W1Ma66_bXw3Z2xUgsLZYUbpAbYsH8k="
+ },
+ {
+ "id": "com.fasterxml:classmate:jar:1.5.1",
+ "artifactId": "classmate",
+ "groupId": "com.fasterxml",
+ "version": "1.5.1",
+ "sha256": "qrTeMAaAjAnSXdT_SjYRz7Y8lUY8_ZnnPS4WgNIpozs="
+ },
+ {
+ "id": "org.glassfish.expressly:expressly:jar:5.0.0",
+ "artifactId": "expressly",
+ "groupId": "org.glassfish.expressly",
+ "version": "5.0.0",
+ "sha256": "sMhyc3u4OBkhswTQlShUZm0boyC5s8W_TXCgmoa2FSQ="
+ },
+ {
+ "id": "jakarta.el:jakarta.el-api:jar:5.0.1",
+ "artifactId": "jakarta.el-api",
+ "groupId": "jakarta.el",
+ "version": "5.0.1",
+ "sha256": "kEMtGCgXF7NjuBmXjGoXJDOiZUt364fIY8IvwZwg7O0="
+ },
+ {
+ "id": "io.smallrye.config:smallrye-config-validator:jar:3.2.1",
+ "artifactId": "smallrye-config-validator",
+ "groupId": "io.smallrye.config",
+ "version": "3.2.1",
+ "sha256": "PzK_I5gjhBkVpxLwanPVbLuQ3hipXNrdQrWXSNLTxig="
+ },
+ {
+ "id": "jakarta.ws.rs:jakarta.ws.rs-api:jar:3.1.0",
+ "artifactId": "jakarta.ws.rs-api",
+ "groupId": "jakarta.ws.rs",
+ "version": "3.1.0",
+ "sha256": "azs2KLi0rt2g0kwzVDNemFSX2O88UQuPMCjpINW4Zj0="
+ },
+ {
+ "id": "io.quarkus:quarkus-smallrye-health:jar:3.1.0.Final",
+ "artifactId": "quarkus-smallrye-health",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "vVJB745P-rZZE58v4bmmX0I3C7308uv4zH2RoPMXur4="
+ },
+ {
+ "id": "io.smallrye:smallrye-health:jar:4.0.1",
+ "artifactId": "smallrye-health",
+ "groupId": "io.smallrye",
+ "version": "4.0.1",
+ "sha256": "SyPcEyJs1loRZNH5VhllXzCcWOq951Jkc1NVDE28JBA="
+ },
+ {
+ "id": "org.eclipse.microprofile.health:microprofile-health-api:jar:4.0.1",
+ "artifactId": "microprofile-health-api",
+ "groupId": "org.eclipse.microprofile.health",
+ "version": "4.0.1",
+ "sha256": "uJyktsT3oEQlDTHAZz9rwiHkD9Zp_Fhx261eWgdpykc="
+ },
+ {
+ "id": "io.smallrye:smallrye-health-api:jar:4.0.1",
+ "artifactId": "smallrye-health-api",
+ "groupId": "io.smallrye",
+ "version": "4.0.1",
+ "sha256": "76nYih3yhmgIi6-z04ZkjruBsT1weshDtlVKfF6ZJJ4="
+ },
+ {
+ "id": "jakarta.json:jakarta.json-api:jar:2.1.1",
+ "artifactId": "jakarta.json-api",
+ "groupId": "jakarta.json",
+ "version": "2.1.1",
+ "sha256": "w8D_55ZVOS9_9APc-b8B5xApm1oEBvboSJ6fJKCPgyc="
+ },
+ {
+ "id": "io.smallrye:smallrye-health-provided-checks:jar:4.0.1",
+ "artifactId": "smallrye-health-provided-checks",
+ "groupId": "io.smallrye",
+ "version": "4.0.1",
+ "sha256": "RSfC9buC6Sx2qrv79jKUflVSNUus0cjIm22nYKMqOmQ="
+ },
+ {
+ "id": "io.quarkus:quarkus-vertx-http:jar:3.1.0.Final",
+ "artifactId": "quarkus-vertx-http",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "t0uMXjBQIRUqvIsVwFHAGIaQG954oBbb7V5cSP9-eXQ="
+ },
+ {
+ "id": "io.quarkus:quarkus-security-runtime-spi:jar:3.1.0.Final",
+ "artifactId": "quarkus-security-runtime-spi",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "_WMHlba9PWrMa_i6KGXwV7Y7hKcWDWd8Ycf8OMMcHtM="
+ },
+ {
+ "id": "io.quarkus:quarkus-credentials:jar:3.1.0.Final",
+ "artifactId": "quarkus-credentials",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "n5dmYY3K-qJ6OzzVFcXLBwqwRWTWFdjRTaTLVvTl6HI="
+ },
+ {
+ "id": "io.smallrye.common:smallrye-common-vertx-context:jar:2.1.0",
+ "artifactId": "smallrye-common-vertx-context",
+ "groupId": "io.smallrye.common",
+ "version": "2.1.0",
+ "sha256": "FGtrg-XDonRrOC6Sng_ng9WsT3NfNkUYdTxI5thGbKE="
+ },
+ {
+ "id": "io.vertx:vertx-core:jar:4.4.2",
+ "artifactId": "vertx-core",
+ "groupId": "io.vertx",
+ "version": "4.4.2",
+ "sha256": "UzKuUoA_mmpjaSE434BH5k2ommo8jZVVrZ-HjKni3Jc="
+ },
+ {
+ "id": "io.netty:netty-common:jar:4.1.92.Final",
+ "artifactId": "netty-common",
+ "groupId": "io.netty",
+ "version": "4.1.92.Final",
+ "sha256": "r4xXdB-1RgbekJCxM7XA-C8qWpQIwa48LY-tuayhVA4="
+ },
+ {
+ "id": "io.netty:netty-buffer:jar:4.1.92.Final",
+ "artifactId": "netty-buffer",
+ "groupId": "io.netty",
+ "version": "4.1.92.Final",
+ "sha256": "XOvv4hlfpFMYNDY0VMecdnVVFRjKI2tkCJxAPaeWd3A="
+ },
+ {
+ "id": "io.netty:netty-transport:jar:4.1.92.Final",
+ "artifactId": "netty-transport",
+ "groupId": "io.netty",
+ "version": "4.1.92.Final",
+ "sha256": "dHTl4npPkIoAOs5JZZZMzbb4zKICsYDqIPzK_r5Xypk="
+ },
+ {
+ "id": "io.netty:netty-handler:jar:4.1.92.Final",
+ "artifactId": "netty-handler",
+ "groupId": "io.netty",
+ "version": "4.1.92.Final",
+ "sha256": "0sPBeHnzYZohYwdkSxDa7t2rGwShKH3_UGdKh9oUQ7I="
+ },
+ {
+ "id": "io.netty:netty-transport-native-unix-common:jar:4.1.92.Final",
+ "artifactId": "netty-transport-native-unix-common",
+ "groupId": "io.netty",
+ "version": "4.1.92.Final",
+ "sha256": "s3ubG371z1Ym2S05HeVCLV_VoYFhk0R-57thxwqi2zE="
+ },
+ {
+ "id": "io.netty:netty-handler-proxy:jar:4.1.92.Final",
+ "artifactId": "netty-handler-proxy",
+ "groupId": "io.netty",
+ "version": "4.1.92.Final",
+ "sha256": "q0Agm9pa4lVmfaaXjrf4tig0JPiSiWtkYeJWSZrQy_o="
+ },
+ {
+ "id": "io.netty:netty-codec-socks:jar:4.1.92.Final",
+ "artifactId": "netty-codec-socks",
+ "groupId": "io.netty",
+ "version": "4.1.92.Final",
+ "sha256": "hXSAtt6lJUOFHWONZcycK6hbhbzShieXpzCZDVcLTHU="
+ },
+ {
+ "id": "io.netty:netty-codec-http:jar:4.1.92.Final",
+ "artifactId": "netty-codec-http",
+ "groupId": "io.netty",
+ "version": "4.1.92.Final",
+ "sha256": "qwUch9RsMrXp5IbmESQDWNLfpemvhUG2y0dqCd3F5Ug="
+ },
+ {
+ "id": "io.netty:netty-codec-http2:jar:4.1.92.Final",
+ "artifactId": "netty-codec-http2",
+ "groupId": "io.netty",
+ "version": "4.1.92.Final",
+ "sha256": "7MTQhhDyimhI7OSnirpjfghU66bpXbjiCZve8WZ3H8M="
+ },
+ {
+ "id": "io.netty:netty-resolver:jar:4.1.92.Final",
+ "artifactId": "netty-resolver",
+ "groupId": "io.netty",
+ "version": "4.1.92.Final",
+ "sha256": "SUF3OFjz_duEx8bSzGfPDEyZH8PrimCJFtmYLmmXrU0="
+ },
+ {
+ "id": "io.netty:netty-resolver-dns:jar:4.1.92.Final",
+ "artifactId": "netty-resolver-dns",
+ "groupId": "io.netty",
+ "version": "4.1.92.Final",
+ "sha256": "mbZewhWt4pA34x1_iEo_lxL5hssexcGIv-ElHLdTGZ0="
+ },
+ {
+ "id": "io.netty:netty-codec-dns:jar:4.1.92.Final",
+ "artifactId": "netty-codec-dns",
+ "groupId": "io.netty",
+ "version": "4.1.92.Final",
+ "sha256": "PCsL12Eyz8-cP6mpOIIXkOF0vDBRmkRHkwJMrArdTnM="
+ },
+ {
+ "id": "io.smallrye.common:smallrye-common-constraint:jar:2.1.0",
+ "artifactId": "smallrye-common-constraint",
+ "groupId": "io.smallrye.common",
+ "version": "2.1.0",
+ "sha256": "Fp3rJq6MT9Ae11u619ktSjDSnXxemjynE_DgjfYoh6Y="
+ },
+ {
+ "id": "io.quarkus:quarkus-vertx-http-dev-console-runtime-spi:jar:3.1.0.Final",
+ "artifactId": "quarkus-vertx-http-dev-console-runtime-spi",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "93hxnC40LfPg7ZBbooz3H6M9Zax12FbaV8-IvWvpX_A="
+ },
+ {
+ "id": "io.quarkus.security:quarkus-security:jar:2.0.2.Final",
+ "artifactId": "quarkus-security",
+ "groupId": "io.quarkus.security",
+ "version": "2.0.2.Final",
+ "sha256": "-7Nfls8Zn0EMx5xmVOQFjo3VrqiwtSRxIYRHpTXNJdQ="
+ },
+ {
+ "id": "io.quarkus:quarkus-vertx:jar:3.1.0.Final",
+ "artifactId": "quarkus-vertx",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "ZAUaljhwhT9Q9BnBhfPVLo-7lNEpO4B9PnA9yeObNIA="
+ },
+ {
+ "id": "io.quarkus:quarkus-netty:jar:3.1.0.Final",
+ "artifactId": "quarkus-netty",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "ETIoYz60zHwXJj1hPnxd3hJBHIrsL1v2rqb5SRmH7gs="
+ },
+ {
+ "id": "io.netty:netty-codec:jar:4.1.92.Final",
+ "artifactId": "netty-codec",
+ "groupId": "io.netty",
+ "version": "4.1.92.Final",
+ "sha256": "_IqakUDaAcfpGT88-FBAtFMwWfFRoEjUF11EdlWfZ1E="
+ },
+ {
+ "id": "com.aayushatharva.brotli4j:brotli4j:jar:1.11.0",
+ "artifactId": "brotli4j",
+ "groupId": "com.aayushatharva.brotli4j",
+ "version": "1.11.0",
+ "sha256": "XvoDngc9wW0wVKQ7OF1CXBdHzwH1Jn4aSlFO7DqXrD8="
+ },
+ {
+ "id": "com.aayushatharva.brotli4j:service:jar:1.11.0",
+ "artifactId": "service",
+ "groupId": "com.aayushatharva.brotli4j",
+ "version": "1.11.0",
+ "sha256": "8XkfMr5OWeFX_srCcjXP9HIu5iWL4qMZM78JwfN_nTI="
+ },
+ {
+ "id": "com.aayushatharva.brotli4j:native-osx-aarch64:jar:1.11.0",
+ "artifactId": "native-osx-aarch64",
+ "groupId": "com.aayushatharva.brotli4j",
+ "version": "1.11.0",
+ "sha256": "LCxbfByd8uYohfSWydvcfO63dqxSJsJG51luCsRnPgE="
+ },
+ {
+ "id": "com.aayushatharva.brotli4j:native-linux-x86_64:jar:1.11.0",
+ "artifactId": "native-linux-x86_64",
+ "groupId": "com.aayushatharva.brotli4j",
+ "version": "1.11.0",
+ "sha256": "bD-neL_jA9OBHsi6E-qQisZH9ymMf_HGOptXgpF18m0="
+ },
+ {
+ "id": "io.netty:netty-codec-haproxy:jar:4.1.92.Final",
+ "artifactId": "netty-codec-haproxy",
+ "groupId": "io.netty",
+ "version": "4.1.92.Final",
+ "sha256": "Xnm3j6tFiMQE2qZ9Jo7m5F9OMA0ymOAQ5zRZXonLmp0="
+ },
+ {
+ "id": "io.quarkus:quarkus-vertx-latebound-mdc-provider:jar:3.1.0.Final",
+ "artifactId": "quarkus-vertx-latebound-mdc-provider",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "fFunrigjJJjjLsTgjJv9jwHbI4PzpVJjubh0Ww9WMmQ="
+ },
+ {
+ "id": "io.smallrye:smallrye-fault-tolerance-vertx:jar:6.2.2",
+ "artifactId": "smallrye-fault-tolerance-vertx",
+ "groupId": "io.smallrye",
+ "version": "6.2.2",
+ "sha256": "laieRRclc0tCyliXP4pqullBSTDu1amSMB1WocmLgQY="
+ },
+ {
+ "id": "io.smallrye.reactive:smallrye-mutiny-vertx-web:jar:3.3.0",
+ "artifactId": "smallrye-mutiny-vertx-web",
+ "groupId": "io.smallrye.reactive",
+ "version": "3.3.0",
+ "sha256": "EKfuSiucZKGk3BZ4z_0NoM9SQE4CyrbFdXQqn-AdgNk="
+ },
+ {
+ "id": "io.smallrye.reactive:smallrye-mutiny-vertx-web-common:jar:3.3.0",
+ "artifactId": "smallrye-mutiny-vertx-web-common",
+ "groupId": "io.smallrye.reactive",
+ "version": "3.3.0",
+ "sha256": "PEbrry6llXQlA4W1MwFIp9Lexxa5p8Uk-RWJSV-hOIY="
+ },
+ {
+ "id": "io.smallrye.reactive:smallrye-mutiny-vertx-auth-common:jar:3.3.0",
+ "artifactId": "smallrye-mutiny-vertx-auth-common",
+ "groupId": "io.smallrye.reactive",
+ "version": "3.3.0",
+ "sha256": "ZmLIDTzAANZ3QHQ-MI7tQv44t5iR0KWQsxhVN-wOynI="
+ },
+ {
+ "id": "io.smallrye.reactive:smallrye-mutiny-vertx-bridge-common:jar:3.3.0",
+ "artifactId": "smallrye-mutiny-vertx-bridge-common",
+ "groupId": "io.smallrye.reactive",
+ "version": "3.3.0",
+ "sha256": "DaEizb6OUnmZzmYXp_83kHWND5HiYHUQR-hcX6Mwrz0="
+ },
+ {
+ "id": "io.smallrye.reactive:smallrye-mutiny-vertx-uri-template:jar:3.3.0",
+ "artifactId": "smallrye-mutiny-vertx-uri-template",
+ "groupId": "io.smallrye.reactive",
+ "version": "3.3.0",
+ "sha256": "-8gIy3H_2Eu0HnipACydIHMBgUuLi_zNSRA01Dxjsk4="
+ },
+ {
+ "id": "io.vertx:vertx-uri-template:jar:4.4.2",
+ "artifactId": "vertx-uri-template",
+ "groupId": "io.vertx",
+ "version": "4.4.2",
+ "sha256": "k37tXZko0urphBlCOESHRu2xLlR-fJczUUNCSIb5PUA="
+ },
+ {
+ "id": "io.vertx:vertx-web:jar:4.4.2",
+ "artifactId": "vertx-web",
+ "groupId": "io.vertx",
+ "version": "4.4.2",
+ "sha256": "meYbrlFjcZCwCrqdpQNFXYLFWfzR5Kj6cV0RvOOoln0="
+ },
+ {
+ "id": "io.vertx:vertx-web-common:jar:4.4.2",
+ "artifactId": "vertx-web-common",
+ "groupId": "io.vertx",
+ "version": "4.4.2",
+ "sha256": "uyCJRNiOSRN0jSA4xGBsgswBRvF3ytUZkMoWypI11q8="
+ },
+ {
+ "id": "io.vertx:vertx-auth-common:jar:4.4.2",
+ "artifactId": "vertx-auth-common",
+ "groupId": "io.vertx",
+ "version": "4.4.2",
+ "sha256": "vFqd0P-vhCQlRZnMHKCuLwOVJ_5Zhh-urpL61S2RYwk="
+ },
+ {
+ "id": "io.vertx:vertx-bridge-common:jar:4.4.2",
+ "artifactId": "vertx-bridge-common",
+ "groupId": "io.vertx",
+ "version": "4.4.2",
+ "sha256": "TofB79Az9V2SLeFgE7SwvfzNyZj89y5wcCXy1E0Dn84="
+ },
+ {
+ "id": "io.github.crac:org-crac:jar:0.1.3",
+ "artifactId": "org-crac",
+ "groupId": "io.github.crac",
+ "version": "0.1.3",
+ "sha256": "13oMYo0Tme5oJziFHcoT0GD-9RYBrtrW0e_NMYX5rwk="
+ },
+ {
+ "id": "io.quarkus:quarkus-jsonp:jar:3.1.0.Final",
+ "artifactId": "quarkus-jsonp",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "NsW73GoAFuGqJF2VwyiVKltHWDvl2B4YHfBaolRY_AI="
+ },
+ {
+ "id": "org.eclipse.parsson:parsson:jar:1.1.1",
+ "artifactId": "parsson",
+ "groupId": "org.eclipse.parsson",
+ "version": "1.1.1",
+ "sha256": "TWNoZrAQ7DCv2AEQLqwM1wqzOm5OxtOaYZrgE-pf_9M="
+ },
+ {
+ "id": "io.quarkus:quarkus-arc:jar:3.1.0.Final",
+ "artifactId": "quarkus-arc",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "Eb-4APo0ixksKasixqRjdp-fgXXEP6WnFlDC0X3g5S0="
+ },
+ {
+ "id": "io.quarkus.arc:arc:jar:3.1.0.Final",
+ "artifactId": "arc",
+ "groupId": "io.quarkus.arc",
+ "version": "3.1.0.Final",
+ "sha256": "1ZJkU2XVz4R7mutuCnNTouu5I7zi-W6X9qKYHW3RW4Y="
+ },
+ {
+ "id": "jakarta.transaction:jakarta.transaction-api:jar:2.0.1",
+ "artifactId": "jakarta.transaction-api",
+ "groupId": "jakarta.transaction",
+ "version": "2.0.1",
+ "sha256": "UMCnx2DBOubAQqzxgrKPAEdBPblbRjb7iHm8_6tbqHU="
+ },
+ {
+ "id": "org.eclipse.microprofile.context-propagation:microprofile-context-propagation-api:jar:1.3",
+ "artifactId": "microprofile-context-propagation-api",
+ "groupId": "org.eclipse.microprofile.context-propagation",
+ "version": "1.3",
+ "sha256": "aczARIfod3nUlwqlDGc8w0qd8IDBwOjY6rLotG-CXPQ="
+ },
+ {
+ "id": "io.quarkus:quarkus-resteasy-reactive:jar:3.1.0.Final",
+ "artifactId": "quarkus-resteasy-reactive",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "qp0xZWJhU7869pbMquxpGYc1E33SyltJKSsiyO2R9EY="
+ },
+ {
+ "id": "io.quarkus:quarkus-resteasy-reactive-common:jar:3.1.0.Final",
+ "artifactId": "quarkus-resteasy-reactive-common",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "2WAycgjy6ElCaGsgdkl3sr-6LiEh_7arIZirrwZ_j_k="
+ },
+ {
+ "id": "io.quarkus.resteasy.reactive:resteasy-reactive-common:jar:3.1.0.Final",
+ "artifactId": "resteasy-reactive-common",
+ "groupId": "io.quarkus.resteasy.reactive",
+ "version": "3.1.0.Final",
+ "sha256": "zNhP4qte6Mj088SChE6korUI2JXD1CuGnbNMtVf8_NQ="
+ },
+ {
+ "id": "io.quarkus.resteasy.reactive:resteasy-reactive-common-types:jar:3.1.0.Final",
+ "artifactId": "resteasy-reactive-common-types",
+ "groupId": "io.quarkus.resteasy.reactive",
+ "version": "3.1.0.Final",
+ "sha256": "8vPoay6U8P5pXPtG50TQmk4nlC1lVYClLf-6N4DIzdM="
+ },
+ {
+ "id": "io.quarkus.resteasy.reactive:resteasy-reactive-vertx:jar:3.1.0.Final",
+ "artifactId": "resteasy-reactive-vertx",
+ "groupId": "io.quarkus.resteasy.reactive",
+ "version": "3.1.0.Final",
+ "sha256": "eoIVAQwIKGe1Nu-GfZp68d5y-15MEvTHmWeUG7oFwoU="
+ },
+ {
+ "id": "io.smallrye.reactive:smallrye-mutiny-vertx-core:jar:3.3.0",
+ "artifactId": "smallrye-mutiny-vertx-core",
+ "groupId": "io.smallrye.reactive",
+ "version": "3.3.0",
+ "sha256": "ZmMkkW_yRrlkCn0NyGZAB-g5rLmd8p6KE3X7WK_AgAo="
+ },
+ {
+ "id": "io.smallrye.reactive:smallrye-mutiny-vertx-runtime:jar:3.3.0",
+ "artifactId": "smallrye-mutiny-vertx-runtime",
+ "groupId": "io.smallrye.reactive",
+ "version": "3.3.0",
+ "sha256": "d1CSNGZ6vb8Pp7M1OLkTHEDyH8lgE7n1gJWPkLmzQHs="
+ },
+ {
+ "id": "io.smallrye.reactive:vertx-mutiny-generator:jar:3.3.0",
+ "artifactId": "vertx-mutiny-generator",
+ "groupId": "io.smallrye.reactive",
+ "version": "3.3.0",
+ "sha256": "POOTxlbBumVSxFpHZxEePDzpx6IY3U0vu_4omAKI6wk="
+ },
+ {
+ "id": "io.vertx:vertx-codegen:jar:4.4.2",
+ "artifactId": "vertx-codegen",
+ "groupId": "io.vertx",
+ "version": "4.4.2",
+ "sha256": "B3GAnHPcg-0IjuBU0UL3GWhFvcVwQ_uzqWZs1zijr3g="
+ },
+ {
+ "id": "io.quarkus.resteasy.reactive:resteasy-reactive:jar:3.1.0.Final",
+ "artifactId": "resteasy-reactive",
+ "groupId": "io.quarkus.resteasy.reactive",
+ "version": "3.1.0.Final",
+ "sha256": "e1XyQI3RBA1X2vny402VuMTne7PnPf4tqGsl-gcdujc="
+ },
+ {
+ "id": "org.jboss.logging:commons-logging-jboss-logging:jar:1.0.0.Final",
+ "artifactId": "commons-logging-jboss-logging",
+ "groupId": "org.jboss.logging",
+ "version": "1.0.0.Final",
+ "sha256": "8SF2Jj6iX054u0-ks20zWilzjd5qgSPhttqJplXRUP8="
+ },
+ {
+ "id": "jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.0",
+ "artifactId": "jakarta.xml.bind-api",
+ "groupId": "jakarta.xml.bind",
+ "version": "4.0.0",
+ "sha256": "V-N5atV1NkAIj1-dPFPBg_LCULfa2QUp6j4ZpVFaoSI="
+ },
+ {
+ "id": "jakarta.activation:jakarta.activation-api:jar:2.1.2",
+ "artifactId": "jakarta.activation-api",
+ "groupId": "jakarta.activation",
+ "version": "2.1.2",
+ "sha256": "9T9XjdDrQXDBlaTiFcWaOKv7QSPcuV3ZAv75KHZJn7s="
+ },
+ {
+ "id": "io.quarkus:quarkus-rest-client-reactive:jar:3.1.0.Final",
+ "artifactId": "quarkus-rest-client-reactive",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "oEYCf4cuN6gOjy9z0bhSiO0EvKY7lar31P_JZ9HjGjU="
+ },
+ {
+ "id": "io.quarkus:quarkus-jaxrs-client-reactive:jar:3.1.0.Final",
+ "artifactId": "quarkus-jaxrs-client-reactive",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "vthh4lVyQq1pMizLOhrJT78bU-LkaUWOUK8PIBYntx4="
+ },
+ {
+ "id": "io.quarkus.resteasy.reactive:resteasy-reactive-client:jar:3.1.0.Final",
+ "artifactId": "resteasy-reactive-client",
+ "groupId": "io.quarkus.resteasy.reactive",
+ "version": "3.1.0.Final",
+ "sha256": "M_cnN2VQ2EUfDrbZdHknKSkg9cQzR3Cs0oiEc1OCcWo="
+ },
+ {
+ "id": "io.vertx:vertx-web-client:jar:4.4.2",
+ "artifactId": "vertx-web-client",
+ "groupId": "io.vertx",
+ "version": "4.4.2",
+ "sha256": "yutnhBLYsB-tO1eNK13rDiz3Hy-Crxvf22y2pMfBHFU="
+ },
+ {
+ "id": "io.quarkus:quarkus-smallrye-stork:jar:3.1.0.Final",
+ "artifactId": "quarkus-smallrye-stork",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "wkVQmH5csj_JZ5uv83mLfR8-Y9wYKX5wvRvuG2AYM44="
+ },
+ {
+ "id": "io.quarkus:quarkus-rest-client-config:jar:3.1.0.Final",
+ "artifactId": "quarkus-rest-client-config",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "eHWjI9b8rGPBy4S7sToV4tdK0JSnyTEn9aTV6l99Hho="
+ },
+ {
+ "id": "io.smallrye:jandex:jar:3.1.1",
+ "artifactId": "jandex",
+ "groupId": "io.smallrye",
+ "version": "3.1.1",
+ "sha256": "FP3vJDxsU0EA1CCc9P8ORZtRIBHGrPesN0wDPnk2VJ8="
+ },
+ {
+ "id": "io.smallrye.stork:stork-api:jar:2.2.0",
+ "artifactId": "stork-api",
+ "groupId": "io.smallrye.stork",
+ "version": "2.2.0",
+ "sha256": "BMYAdNq7xXhGLidjDIkUOE_Qxce6Ir9kTEisNXzHljA="
+ },
+ {
+ "id": "io.smallrye.stork:stork-core:jar:2.2.0",
+ "artifactId": "stork-core",
+ "groupId": "io.smallrye.stork",
+ "version": "2.2.0",
+ "sha256": "9SEzjWk-426yyc5QAwC2wrgAeHRyXfjxKp-7DlIDOiw="
+ },
+ {
+ "id": "org.eclipse.microprofile.rest.client:microprofile-rest-client-api:jar:3.0.1",
+ "artifactId": "microprofile-rest-client-api",
+ "groupId": "org.eclipse.microprofile.rest.client",
+ "version": "3.0.1",
+ "sha256": "K3Fpi5XIksxlkjX0_-ZjteLxFRzrTncmiyP_KwxjIcs="
+ },
+ {
+ "id": "io.quarkus:quarkus-mongodb-panache:jar:3.1.0.Final",
+ "artifactId": "quarkus-mongodb-panache",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "JpvAXtj1eY8MRXhwmwUHIU7wAzPKsa9OTjOO4-5pMD8="
+ },
+ {
+ "id": "io.quarkus:quarkus-panache-common:jar:3.1.0.Final",
+ "artifactId": "quarkus-panache-common",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "phj1ajdvbPPdRpzIlQMNrbTCB9qqEuU5G7gWwHpyMWg="
+ },
+ {
+ "id": "io.quarkus:quarkus-mongodb-panache-common:jar:3.1.0.Final",
+ "artifactId": "quarkus-mongodb-panache-common",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "z54r2I5V0NS-cFxRhxxZmadVA89AniuBDIxfVSlWjD4="
+ },
+ {
+ "id": "io.quarkus:quarkus-mongodb-client:jar:3.1.0.Final",
+ "artifactId": "quarkus-mongodb-client",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "PC_sMnm4Mx2XKgxIHIZzDEuAnit2fn6rrq0g59Z-zeA="
+ },
+ {
+ "id": "org.mongodb:mongodb-driver-sync:jar:4.9.1",
+ "artifactId": "mongodb-driver-sync",
+ "groupId": "org.mongodb",
+ "version": "4.9.1",
+ "sha256": "X85UEBNq6AjuW6XJ6xdcuFsQwBseZjCtpmAc-jnrCLs="
+ },
+ {
+ "id": "org.mongodb:bson:jar:4.9.1",
+ "artifactId": "bson",
+ "groupId": "org.mongodb",
+ "version": "4.9.1",
+ "sha256": "RZpeIF-plqVfX1KjbVvwN0XFMaDWxg_j0c8kyhA19lw="
+ },
+ {
+ "id": "org.mongodb:mongodb-driver-core:jar:4.9.1",
+ "artifactId": "mongodb-driver-core",
+ "groupId": "org.mongodb",
+ "version": "4.9.1",
+ "sha256": "-Cvzl82DHHdxE3HL2xl4IZJNSRHXt9D_5lq6v6NDlxQ="
+ },
+ {
+ "id": "org.mongodb:bson-record-codec:jar:4.9.1",
+ "artifactId": "bson-record-codec",
+ "groupId": "org.mongodb",
+ "version": "4.9.1",
+ "sha256": "CAxgIiXg2cIM_g7yGsE1l08VImjPJwVtXZA3qo2HVPU="
+ },
+ {
+ "id": "org.mongodb:mongodb-driver-reactivestreams:jar:4.9.1",
+ "artifactId": "mongodb-driver-reactivestreams",
+ "groupId": "org.mongodb",
+ "version": "4.9.1",
+ "sha256": "ABviZXeUPPSuhvjmLJ1gaDMN9WYvvTrNfKuYwwPQBrA="
+ },
+ {
+ "id": "io.projectreactor:reactor-core:jar:3.5.0",
+ "artifactId": "reactor-core",
+ "groupId": "io.projectreactor",
+ "version": "3.5.0",
+ "sha256": "e8tnFp-GFxqTQOJEoCZoTI41vfGQX4zIaYpYU_KKlvs="
+ },
+ {
+ "id": "org.mongodb:mongodb-crypt:jar:1.7.3",
+ "artifactId": "mongodb-crypt",
+ "groupId": "org.mongodb",
+ "version": "1.7.3",
+ "sha256": "H8YFSfOQoYzMQDQAoCLYJ8UJNY2rMKS0eo4w9huLSRs="
+ },
+ {
+ "id": "io.quarkus:quarkus-panacheql:jar:3.1.0.Final",
+ "artifactId": "quarkus-panacheql",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "cboXsCodEdXaQP-ASDa88L6Yhu7BUXtMtmvc3YIO8hY="
+ },
+ {
+ "id": "org.antlr:antlr4-runtime:jar:4.10.1",
+ "artifactId": "antlr4-runtime",
+ "groupId": "org.antlr",
+ "version": "4.10.1",
+ "sha256": "2ma-DJis-ym8cIMA0F8aMmnED5mEpMuSUc8roYmNEzQ="
+ },
+ {
+ "id": "io.quarkus:quarkus-narayana-jta:jar:3.1.0.Final",
+ "artifactId": "quarkus-narayana-jta",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "d_BDV_zNXt9PC2OnO5pci0T__xi73NmWJbnYFhKo9a8="
+ },
+ {
+ "id": "io.quarkus:quarkus-transaction-annotations:jar:3.1.0.Final",
+ "artifactId": "quarkus-transaction-annotations",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "XN1jMaVSubvpGEWqwtbiP8KuM_e4x90tJVfcMxN7jGQ="
+ },
+ {
+ "id": "io.smallrye:smallrye-context-propagation-jta:jar:2.1.0",
+ "artifactId": "smallrye-context-propagation-jta",
+ "groupId": "io.smallrye",
+ "version": "2.1.0",
+ "sha256": "kwoNodHB80MJcmG84etWktoNHu7BQ5SZ6eS3yumGpGY="
+ },
+ {
+ "id": "io.smallrye.reactive:smallrye-reactive-converter-mutiny:jar:3.0.0",
+ "artifactId": "smallrye-reactive-converter-mutiny",
+ "groupId": "io.smallrye.reactive",
+ "version": "3.0.0",
+ "sha256": "ZTUth3TJ83Dfze4ADLSpOaBDnoON7sUOnGyDqlvEgdQ="
+ },
+ {
+ "id": "org.jboss.narayana.jta:narayana-jta:jar:6.0.1.Final",
+ "artifactId": "narayana-jta",
+ "groupId": "org.jboss.narayana.jta",
+ "version": "6.0.1.Final",
+ "sha256": "iNqRq2SAgJsXF5dO8ghBRSn9aYh48hiz9X0hT04cRQ0="
+ },
+ {
+ "id": "org.jboss:jboss-transaction-spi:jar:8.0.0.Final",
+ "artifactId": "jboss-transaction-spi",
+ "groupId": "org.jboss",
+ "version": "8.0.0.Final",
+ "sha256": "B-TmLOrgdajBGnFdibGZksh59QW0i-aycn9b55hWKuE="
+ },
+ {
+ "id": "jakarta.resource:jakarta.resource-api:jar:2.0.0",
+ "artifactId": "jakarta.resource-api",
+ "groupId": "jakarta.resource",
+ "version": "2.0.0",
+ "sha256": "0PQlBOXd9zHT1bYj5pYY77Woki4ltf-DtuA0CVHMB5A="
+ },
+ {
+ "id": "org.jboss.invocation:jboss-invocation:jar:2.0.0.Final",
+ "artifactId": "jboss-invocation",
+ "groupId": "org.jboss.invocation",
+ "version": "2.0.0.Final",
+ "sha256": "75vrO_-FkwcQs2e2-E1Av3ISiJjKbM3zd1U3eTt0sGc="
+ },
+ {
+ "id": "jakarta.ejb:jakarta.ejb-api:jar:4.0.1",
+ "artifactId": "jakarta.ejb-api",
+ "groupId": "jakarta.ejb",
+ "version": "4.0.1",
+ "sha256": "RspS6aHfRwEuvMy1MZtXCfWwxyFPlU8zN-bt0t_myxU="
+ },
+ {
+ "id": "org.jboss.narayana.jts:narayana-jts-integration:jar:6.0.1.Final",
+ "artifactId": "narayana-jts-integration",
+ "groupId": "org.jboss.narayana.jts",
+ "version": "6.0.1.Final",
+ "sha256": "pz7JaGMDk_t-SzfqaPPb0yE_BGPk0M5IN6UN-lbvIo0="
+ },
+ {
+ "id": "org.apache.commons:commons-lang3:jar:3.12.0",
+ "artifactId": "commons-lang3",
+ "groupId": "org.apache.commons",
+ "version": "3.12.0",
+ "sha256": "2RnZBEhsA3-NGTQS2gyS4iqfokIwudZ6V4VcXDHH6U4="
+ },
+ {
+ "id": "it.pagopa.swclient.mil:common:jar:2.0.2",
+ "artifactId": "common",
+ "groupId": "it.pagopa.swclient.mil",
+ "version": "2.0.2",
+ "sha256": "ntDsMD3I1EDFqEs4rg-6ZuUG5fASYx_71DIxCz8fwmw="
+ },
+ {
+ "id": "io.quarkus:quarkus-container-image-docker:jar:3.1.0.Final",
+ "artifactId": "quarkus-container-image-docker",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "S70LYmILKCp5_8K9ZV-GdiWBUclnZ_gnacg8-P0paBc="
+ },
+ {
+ "id": "io.quarkus:quarkus-container-image:jar:3.1.0.Final",
+ "artifactId": "quarkus-container-image",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "2Ngn4oVxvd4Z134kM-lmdlCx_aqj_6gJ9OXjE1j59_c="
+ },
+ {
+ "id": "io.quarkus:quarkus-rest-client-reactive-jackson:jar:3.1.0.Final",
+ "artifactId": "quarkus-rest-client-reactive-jackson",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "2fThhcFyu7inY4lcjK5RlbCGdsccgrncXQnwh1zMJ6A="
+ },
+ {
+ "id": "io.quarkus.resteasy.reactive:resteasy-reactive-jackson:jar:3.1.0.Final",
+ "artifactId": "resteasy-reactive-jackson",
+ "groupId": "io.quarkus.resteasy.reactive",
+ "version": "3.1.0.Final",
+ "sha256": "4YiPmFxMs1E6wz5audzWgfsg5QWRZdZcF3D54rQdMqM="
+ },
+ {
+ "id": "com.fasterxml.jackson.core:jackson-databind:jar:2.15.0",
+ "artifactId": "jackson-databind",
+ "groupId": "com.fasterxml.jackson.core",
+ "version": "2.15.0",
+ "sha256": "AMWl1a5xrI6NW42mBoQeIlHIBjVZOctdUcTNxrZEoNw="
+ },
+ {
+ "id": "com.fasterxml.jackson.core:jackson-core:jar:2.15.0",
+ "artifactId": "jackson-core",
+ "groupId": "com.fasterxml.jackson.core",
+ "version": "2.15.0",
+ "sha256": "W0g_aPqd1qo32jfR953VxLlGQjj08GYKJCy2tccklQw="
+ },
+ {
+ "id": "io.quarkus:quarkus-smallrye-reactive-messaging-kafka:jar:3.1.0.Final",
+ "artifactId": "quarkus-smallrye-reactive-messaging-kafka",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "l98yEeFyNFeKGTslKltoFEjL3TW9SV8vztMljOgDzTo="
+ },
+ {
+ "id": "io.quarkus:quarkus-kafka-client:jar:3.1.0.Final",
+ "artifactId": "quarkus-kafka-client",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "BCODKwYrIHj1pvhdyYfOqodlOAAfKlk99DRbgBCsOOs="
+ },
+ {
+ "id": "io.quarkus:quarkus-caffeine:jar:3.1.0.Final",
+ "artifactId": "quarkus-caffeine",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "G-2b66CHrBghibti14oDF1GzkDLklnmGgUyR-xwhDew="
+ },
+ {
+ "id": "com.github.ben-manes.caffeine:caffeine:jar:3.1.5",
+ "artifactId": "caffeine",
+ "groupId": "com.github.ben-manes.caffeine",
+ "version": "3.1.5",
+ "sha256": "AsNP0rp4sZVu9uXemskVrum_pJhYmWb6hyVfuttlNJk="
+ },
+ {
+ "id": "com.google.errorprone:error_prone_annotations:jar:2.19.1",
+ "artifactId": "error_prone_annotations",
+ "groupId": "com.google.errorprone",
+ "version": "2.19.1",
+ "sha256": "rdOZAphQH9y27Fj_8mYIwdKY-13-L4DXSGe_D1xTlmg="
+ },
+ {
+ "id": "io.smallrye.reactive:smallrye-reactive-messaging-kafka:jar:4.5.0",
+ "artifactId": "smallrye-reactive-messaging-kafka",
+ "groupId": "io.smallrye.reactive",
+ "version": "4.5.0",
+ "sha256": "F-7H0Dibwd0_RuWeFkJuApOa7lpogjwJSDKpA_hSFIU="
+ },
+ {
+ "id": "io.smallrye.reactive:smallrye-reactive-messaging-kafka-api:jar:4.5.0",
+ "artifactId": "smallrye-reactive-messaging-kafka-api",
+ "groupId": "io.smallrye.reactive",
+ "version": "4.5.0",
+ "sha256": "lcrJ08YnpjJIiIUaEvWDNx8b-3e0vEIeHhwXhTKCK78="
+ },
+ {
+ "id": "io.smallrye.reactive:smallrye-reactive-messaging-otel:jar:4.5.0",
+ "artifactId": "smallrye-reactive-messaging-otel",
+ "groupId": "io.smallrye.reactive",
+ "version": "4.5.0",
+ "sha256": "A-mbV-kMwHKQrboBM6NyhqXSc-ZiH3kBX3chqlsRxRM="
+ },
+ {
+ "id": "io.opentelemetry:opentelemetry-api:jar:1.25.0",
+ "artifactId": "opentelemetry-api",
+ "groupId": "io.opentelemetry",
+ "version": "1.25.0",
+ "sha256": "iRQjrLUg8Pgho3GN6HeRMy8Apf3Kz6RhCiIaeJma9IE="
+ },
+ {
+ "id": "io.opentelemetry:opentelemetry-context:jar:1.25.0",
+ "artifactId": "opentelemetry-context",
+ "groupId": "io.opentelemetry",
+ "version": "1.25.0",
+ "sha256": "4uAxnDKQJ4YRs2CGIFPdodjQpzMPhFXBf2c7jx4NNVE="
+ },
+ {
+ "id": "io.opentelemetry:opentelemetry-semconv:jar:1.25.0-alpha",
+ "artifactId": "opentelemetry-semconv",
+ "groupId": "io.opentelemetry",
+ "version": "1.25.0-alpha",
+ "sha256": "B0zDaXVdoysxHl1vJqUJhZ9L49c3cBpXW3vj34-FXiI="
+ },
+ {
+ "id": "io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:jar:1.25.0",
+ "artifactId": "opentelemetry-instrumentation-api",
+ "groupId": "io.opentelemetry.instrumentation",
+ "version": "1.25.0",
+ "sha256": "Yt-1c1puZHRMof1oeOKn0v0-BP6Y6Uc5axGz7vIzlbY="
+ },
+ {
+ "id": "io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-semconv:jar:1.25.0-alpha",
+ "artifactId": "opentelemetry-instrumentation-api-semconv",
+ "groupId": "io.opentelemetry.instrumentation",
+ "version": "1.25.0-alpha",
+ "sha256": "fuPyBOXDDcIOABfHqxsxxNsOfAum3S2FRCAuzX-TrXI="
+ },
+ {
+ "id": "io.quarkus:quarkus-jackson:jar:3.1.0.Final",
+ "artifactId": "quarkus-jackson",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "MkTlJJPXGkO889caSSkj7Zc-25JueJbl6b1gGWVhoQc="
+ },
+ {
+ "id": "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.15.0",
+ "artifactId": "jackson-datatype-jsr310",
+ "groupId": "com.fasterxml.jackson.datatype",
+ "version": "2.15.0",
+ "sha256": "1d65LVlmio3grI2oGNXZwP37Tbay8dZqd5_jV_MQ1kg="
+ },
+ {
+ "id": "com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.15.0",
+ "artifactId": "jackson-datatype-jdk8",
+ "groupId": "com.fasterxml.jackson.datatype",
+ "version": "2.15.0",
+ "sha256": "YIxserorUSOU4zghnMCboNv-hbaDBF2bj0FZksJ0a3E="
+ },
+ {
+ "id": "com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.15.0",
+ "artifactId": "jackson-module-parameter-names",
+ "groupId": "com.fasterxml.jackson.module",
+ "version": "2.15.0",
+ "sha256": "DNhSpOXD5O9emIJphiPVnuGhiz3TzeRSKz2sESuWzVs="
+ },
+ {
+ "id": "org.apache.kafka:kafka-clients:jar:3.4.0",
+ "artifactId": "kafka-clients",
+ "groupId": "org.apache.kafka",
+ "version": "3.4.0",
+ "sha256": "SPON7eab8u03CeJwr7a3L6yGllH8JYmXcn26NQMzrGQ="
+ },
+ {
+ "id": "com.github.luben:zstd-jni:jar:1.5.2-1",
+ "artifactId": "zstd-jni",
+ "groupId": "com.github.luben",
+ "version": "1.5.2-1",
+ "sha256": "k_fky8kHwmUPifnwvslIc3NaWPHktmpUlzKU5OwYeOg="
+ },
+ {
+ "id": "org.lz4:lz4-java:jar:1.8.0",
+ "artifactId": "lz4-java",
+ "groupId": "org.lz4",
+ "version": "1.8.0",
+ "sha256": "10ozNPs1GVAJszipUfkYID1rvKPR01kDPcM-3Rytye8="
+ },
+ {
+ "id": "org.xerial.snappy:snappy-java:jar:1.1.8.4",
+ "artifactId": "snappy-java",
+ "groupId": "org.xerial.snappy",
+ "version": "1.1.8.4",
+ "sha256": "JMTR_B6J4HgzGrj0AamcrWhZm95KLkUWBCy1SMUbHD4="
+ },
+ {
+ "id": "io.quarkus:quarkus-smallrye-reactive-messaging:jar:3.1.0.Final",
+ "artifactId": "quarkus-smallrye-reactive-messaging",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "6fqmbaZu-i0t_fCiig59Huc8qle5Y4G7ui_8cuHtIU8="
+ },
+ {
+ "id": "io.quarkus:quarkus-mutiny-reactive-streams-operators:jar:3.1.0.Final",
+ "artifactId": "quarkus-mutiny-reactive-streams-operators",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "stbBMmhNLem7rGKwP_Y4gqDut2akhJsImvEbNtMXhYw="
+ },
+ {
+ "id": "org.eclipse.microprofile.reactive-streams-operators:microprofile-reactive-streams-operators-api:jar:3.0",
+ "artifactId": "microprofile-reactive-streams-operators-api",
+ "groupId": "org.eclipse.microprofile.reactive-streams-operators",
+ "version": "3.0",
+ "sha256": "pThfputVk5xP4vimVz-KqTttfbTm9ReKC9LLPSYyiQU="
+ },
+ {
+ "id": "org.eclipse.microprofile.reactive-streams-operators:microprofile-reactive-streams-operators-core:jar:3.0",
+ "artifactId": "microprofile-reactive-streams-operators-core",
+ "groupId": "org.eclipse.microprofile.reactive-streams-operators",
+ "version": "3.0",
+ "sha256": "91cVMVN6gkGtbGWRNLRwIK0_ZtOg2SouHKCn2BC36Z8="
+ },
+ {
+ "id": "io.smallrye.reactive:mutiny-reactive-streams-operators:jar:2.1.0",
+ "artifactId": "mutiny-reactive-streams-operators",
+ "groupId": "io.smallrye.reactive",
+ "version": "2.1.0",
+ "sha256": "y2Kq3ddVDFeDCPoy-cqygZCsshQJJZMbziya4ee-frg="
+ },
+ {
+ "id": "io.quarkus:quarkus-smallrye-reactive-messaging-kotlin:jar:3.1.0.Final",
+ "artifactId": "quarkus-smallrye-reactive-messaging-kotlin",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "zb76ve-vu7Sv8FWkJlLVlV0JpN8vAVQz-jrFLtim80k="
+ },
+ {
+ "id": "io.smallrye.common:smallrye-common-annotation:jar:2.1.0",
+ "artifactId": "smallrye-common-annotation",
+ "groupId": "io.smallrye.common",
+ "version": "2.1.0",
+ "sha256": "ucbZrBiH9kUlnY0Nb_R1W8F9lh4uAug-rW9pmuPW-Mc="
+ },
+ {
+ "id": "io.smallrye.reactive:smallrye-reactive-messaging-health:jar:4.5.0",
+ "artifactId": "smallrye-reactive-messaging-health",
+ "groupId": "io.smallrye.reactive",
+ "version": "4.5.0",
+ "sha256": "se9rU1XA2E1OFT9kSfbNmA646DMwzBFKnXOjbf3jNTY="
+ },
+ {
+ "id": "io.smallrye.reactive:smallrye-reactive-messaging-provider:jar:4.5.0",
+ "artifactId": "smallrye-reactive-messaging-provider",
+ "groupId": "io.smallrye.reactive",
+ "version": "4.5.0",
+ "sha256": "VnJ36tmzYXC8EwdnjMRiXHTwu4WlAAglv-U8LvOKwQ0="
+ },
+ {
+ "id": "io.smallrye.reactive:smallrye-reactive-messaging-api:jar:4.5.0",
+ "artifactId": "smallrye-reactive-messaging-api",
+ "groupId": "io.smallrye.reactive",
+ "version": "4.5.0",
+ "sha256": "mYrt8LddEK0WdaT3F3_SHTROVth73HHQvs3VElzQCE0="
+ },
+ {
+ "id": "jakarta.annotation:jakarta.annotation-api:jar:2.1.1",
+ "artifactId": "jakarta.annotation-api",
+ "groupId": "jakarta.annotation",
+ "version": "2.1.1",
+ "sha256": "X2X9r0JO7itV4diCupuzdr6T-wmze4CL5uIuiFHJCf4="
+ },
+ {
+ "id": "io.smallrye.reactive:smallrye-reactive-messaging-in-memory:jar:4.5.0",
+ "artifactId": "smallrye-reactive-messaging-in-memory",
+ "groupId": "io.smallrye.reactive",
+ "version": "4.5.0",
+ "sha256": "5VE5YbZEwPTArTQneQveulv8iyI58QSwmnlwgwTQ3SA="
+ },
+ {
+ "id": "org.jboss.logging:jboss-logging:jar:3.5.0.Final",
+ "artifactId": "jboss-logging",
+ "groupId": "org.jboss.logging",
+ "version": "3.5.0.Final",
+ "sha256": "e7E1sIGVL20y2DN0YZrlIBsFyjv4YqKN0REBbOGbLAc="
+ },
+ {
+ "id": "io.smallrye.reactive:smallrye-reactive-converter-api:jar:3.0.0",
+ "artifactId": "smallrye-reactive-converter-api",
+ "groupId": "io.smallrye.reactive",
+ "version": "3.0.0",
+ "sha256": "U8oj7z6Q2G01LZDC1Fv6ISJXd0KYLc0uPUpwydGtppI="
+ },
+ {
+ "id": "org.reactivestreams:reactive-streams:jar:1.0.4",
+ "artifactId": "reactive-streams",
+ "groupId": "org.reactivestreams",
+ "version": "1.0.4",
+ "sha256": "91yll3ibPaxY9hhXuawuEDSmj6Zy2zUFWo-0UJ4yXyg="
+ },
+ {
+ "id": "io.smallrye.reactive:mutiny:jar:2.1.0",
+ "artifactId": "mutiny",
+ "groupId": "io.smallrye.reactive",
+ "version": "2.1.0",
+ "sha256": "UnxMJd0bD1xsEQB0u97UKq20qNsXokro0hhCRuSD36A="
+ },
+ {
+ "id": "io.smallrye.reactive:mutiny-zero:jar:1.0.0",
+ "artifactId": "mutiny-zero",
+ "groupId": "io.smallrye.reactive",
+ "version": "1.0.0",
+ "sha256": "bgKnB3u9tgqovLYoC5PunGgBONqSUVfi7YJMruKgAAg="
+ },
+ {
+ "id": "io.smallrye.reactive:mutiny-zero-flow-adapters:jar:1.0.0",
+ "artifactId": "mutiny-zero-flow-adapters",
+ "groupId": "io.smallrye.reactive",
+ "version": "1.0.0",
+ "sha256": "tcTuAhmpyCYpGEYkZRN2C9kAHUkpJm8VRPGoSUZmalI="
+ },
+ {
+ "id": "org.testcontainers:testcontainers:jar:1.18.1",
+ "artifactId": "testcontainers",
+ "groupId": "org.testcontainers",
+ "version": "1.18.1",
+ "sha256": "mTH2juAaZzLzZvgZafJlB6ei5og9iBz6Jsecnr-ZoRk="
+ },
+ {
+ "id": "junit:junit:jar:4.13.2",
+ "artifactId": "junit",
+ "groupId": "junit",
+ "version": "4.13.2",
+ "sha256": "jklbY0Rp1k-4rPo0laBly6zIoP_1XOHjEAe-TBbcV9M="
+ },
+ {
+ "id": "org.slf4j:slf4j-api:jar:2.0.6",
+ "artifactId": "slf4j-api",
+ "groupId": "org.slf4j",
+ "version": "2.0.6",
+ "sha256": "LyqS1BCyaBOdfWO3XtJeIZlc_kEAwZvyNXfP28gHe9o="
+ },
+ {
+ "id": "org.apache.commons:commons-compress:jar:1.23.0",
+ "artifactId": "commons-compress",
+ "groupId": "org.apache.commons",
+ "version": "1.23.0",
+ "sha256": "wmfxcWDp72YrTXi38p3KfIKxXFz_LLaphl70qz3Vt4c="
+ },
+ {
+ "id": "org.rnorth.duct-tape:duct-tape:jar:1.0.8",
+ "artifactId": "duct-tape",
+ "groupId": "org.rnorth.duct-tape",
+ "version": "1.0.8",
+ "sha256": "Mc7xLd7JedH4bXz3CMQaF9pSPQXGhf1mQunQsq3bckA="
+ },
+ {
+ "id": "org.jetbrains:annotations:jar:24.0.1",
+ "artifactId": "annotations",
+ "groupId": "org.jetbrains",
+ "version": "24.0.1",
+ "sha256": "YWZtvOfkLmyFtDwE_PuCk6Idy1WzyA6GknDOQsAaazU="
+ },
+ {
+ "id": "com.github.docker-java:docker-java-api:jar:3.3.0",
+ "artifactId": "docker-java-api",
+ "groupId": "com.github.docker-java",
+ "version": "3.3.0",
+ "sha256": "JZWi-XaCZOGYeCmdx3OQJH5QCd_IykiLiU6kaI0dzE4="
+ },
+ {
+ "id": "com.fasterxml.jackson.core:jackson-annotations:jar:2.15.0",
+ "artifactId": "jackson-annotations",
+ "groupId": "com.fasterxml.jackson.core",
+ "version": "2.15.0",
+ "sha256": "ka3NPc9f2aFkmZNOdTaiPUVmkqAJPj1P1S8TjDk2NIw="
+ },
+ {
+ "id": "com.github.docker-java:docker-java-transport-zerodep:jar:3.3.0",
+ "artifactId": "docker-java-transport-zerodep",
+ "groupId": "com.github.docker-java",
+ "version": "3.3.0",
+ "sha256": "_6-vkFntNZKAZVayrUjD_VuWjDs50mgBIyYKprc7wy8="
+ },
+ {
+ "id": "com.github.docker-java:docker-java-transport:jar:3.3.0",
+ "artifactId": "docker-java-transport",
+ "groupId": "com.github.docker-java",
+ "version": "3.3.0",
+ "sha256": "JR7QpLExzfeLlRMm1GkEpPgxjjNR-kd0SeNMlw9jxKg="
+ },
+ {
+ "id": "net.java.dev.jna:jna:jar:5.8.0",
+ "artifactId": "jna",
+ "groupId": "net.java.dev.jna",
+ "version": "5.8.0",
+ "sha256": "kwJzzBxJLyVmHqYkE6baP9f24BvxxNzAgX_IaWp7B6w="
+ },
+ {
+ "id": "io.quarkus:quarkus-junit5:jar:3.1.0.Final",
+ "artifactId": "quarkus-junit5",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "gPGsuXew_GznOkdS7GEJdu9a-Iys4foq5wJ5yodGcIU="
+ },
+ {
+ "id": "io.quarkus:quarkus-bootstrap-core:jar:3.1.0.Final",
+ "artifactId": "quarkus-bootstrap-core",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "AihONrK96gK8lAd8xk6bRHzpR4q_WhjapSH2v3AJHFk="
+ },
+ {
+ "id": "io.quarkus:quarkus-bootstrap-app-model:jar:3.1.0.Final",
+ "artifactId": "quarkus-bootstrap-app-model",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "bM4RXT0ELcHgR2ESBPOn-swAjEcjddGBW8UPbAXkXYs="
+ },
+ {
+ "id": "io.smallrye.common:smallrye-common-io:jar:2.1.0",
+ "artifactId": "smallrye-common-io",
+ "groupId": "io.smallrye.common",
+ "version": "2.1.0",
+ "sha256": "0bM8h_DqyHX6lYENhksCbf6s5UZS8HUtDzNVbPsJv1Q="
+ },
+ {
+ "id": "org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.3.5",
+ "artifactId": "org.eclipse.sisu.inject",
+ "groupId": "org.eclipse.sisu",
+ "version": "0.3.5",
+ "sha256": "xZlAELzc4dK9YDpNUMRxkd29eHXRFXsjqqJtM8gv2hM="
+ },
+ {
+ "id": "io.quarkus:quarkus-test-common:jar:3.1.0.Final",
+ "artifactId": "quarkus-test-common",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "Ti7msfJLKRsxj7ViDO8XBFbeYF2_CvuBBJesC8qt_IY="
+ },
+ {
+ "id": "io.quarkus:quarkus-core-deployment:jar:3.1.0.Final",
+ "artifactId": "quarkus-core-deployment",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "nYskDjL0L_rlU11UNhyQnpyhZ8-PH-Xuk_sRSubB5KY="
+ },
+ {
+ "id": "org.aesh:readline:jar:2.4",
+ "artifactId": "readline",
+ "groupId": "org.aesh",
+ "version": "2.4",
+ "sha256": "pilUF2mhVkkwUfLsWV8TQjmE1KBfg8hJ3FoDmgB-d3s="
+ },
+ {
+ "id": "org.fusesource.jansi:jansi:jar:2.4.0",
+ "artifactId": "jansi",
+ "groupId": "org.fusesource.jansi",
+ "version": "2.4.0",
+ "sha256": "bNkZkTI917L7KMqT16wSr1qGovUyeeKzWCezAxP9C58="
+ },
+ {
+ "id": "org.aesh:aesh:jar:2.7",
+ "artifactId": "aesh",
+ "groupId": "org.aesh",
+ "version": "2.7",
+ "sha256": "NNtAwroutEG4Y09fOscw_1fYJWyVATbzGV8Mx6XGIeM="
+ },
+ {
+ "id": "io.quarkus.gizmo:gizmo:jar:1.6.1.Final",
+ "artifactId": "gizmo",
+ "groupId": "io.quarkus.gizmo",
+ "version": "1.6.1.Final",
+ "sha256": "PSqXTZ-3C1O07_u_DAHAyQasl8oSJjqa7x4CMNoq7kw="
+ },
+ {
+ "id": "org.ow2.asm:asm-util:jar:9.5",
+ "artifactId": "asm-util",
+ "groupId": "org.ow2.asm",
+ "version": "9.5",
+ "sha256": "xGfxuzwIiI9HJD4tR1IJs0p3LWJ-RPygZ1Lhi7A4vXQ="
+ },
+ {
+ "id": "org.ow2.asm:asm-analysis:jar:9.5",
+ "artifactId": "asm-analysis",
+ "groupId": "org.ow2.asm",
+ "version": "9.5",
+ "sha256": "OfHPF5EzVwHDsCyueyvCEFfsmlWyJAeJy21VKyssYvo="
+ },
+ {
+ "id": "io.quarkus:quarkus-class-change-agent:jar:3.1.0.Final",
+ "artifactId": "quarkus-class-change-agent",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "V7SZ-RzIyvPRaq5d0ZHy1XakXPUQj4A9ddL1w7XudoY="
+ },
+ {
+ "id": "io.quarkus:quarkus-devtools-utilities:jar:3.1.0.Final",
+ "artifactId": "quarkus-devtools-utilities",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "NuKE-zd3fECO4mvpvFzhZc7GDiR9HX9CagbtOg6aFSU="
+ },
+ {
+ "id": "io.quarkus:quarkus-builder:jar:3.1.0.Final",
+ "artifactId": "quarkus-builder",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "Qqf38rj2P5AaIMRKfnc1tMvyB5UmckU4ELLEu8G4QNU="
+ },
+ {
+ "id": "org.junit.platform:junit-platform-launcher:jar:1.9.3",
+ "artifactId": "junit-platform-launcher",
+ "groupId": "org.junit.platform",
+ "version": "1.9.3",
+ "sha256": "hRXpGAignIya9eNZGFtZkbXna4rc8YW5o9q07I5bqP8="
+ },
+ {
+ "id": "io.quarkus:quarkus-bootstrap-maven-resolver:jar:3.1.0.Final",
+ "artifactId": "quarkus-bootstrap-maven-resolver",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "o0LlJGu7gAZTKiWAlBoYpB6zX5jJw8qdIAwoHfKI3Ww="
+ },
+ {
+ "id": "io.smallrye.beanbag:smallrye-beanbag-maven:jar:1.1.0",
+ "artifactId": "smallrye-beanbag-maven",
+ "groupId": "io.smallrye.beanbag",
+ "version": "1.1.0",
+ "sha256": "9srzaK-4FCXyliCQ6T05cSEaMOm4prykDXaAuV2HgUk="
+ },
+ {
+ "id": "io.smallrye.beanbag:smallrye-beanbag-sisu:jar:1.1.0",
+ "artifactId": "smallrye-beanbag-sisu",
+ "groupId": "io.smallrye.beanbag",
+ "version": "1.1.0",
+ "sha256": "FT2rLdCrWFq-OKRcpoyJthXWgADqlKSuCKNawA-Hf00="
+ },
+ {
+ "id": "io.smallrye.beanbag:smallrye-beanbag:jar:1.1.0",
+ "artifactId": "smallrye-beanbag",
+ "groupId": "io.smallrye.beanbag",
+ "version": "1.1.0",
+ "sha256": "mt8a7XJGt35rq94C8MgN6DjQk0Dvp-5pwV17d5s73MY="
+ },
+ {
+ "id": "javax.inject:javax.inject:jar:1",
+ "artifactId": "javax.inject",
+ "groupId": "javax.inject",
+ "version": "1",
+ "sha256": "kcdwRKUMSBY2wy2Rb9ickRinIZU5BFLIEGUID5V95_8="
+ },
+ {
+ "id": "org.apache.maven:maven-artifact:jar:3.9.1",
+ "artifactId": "maven-artifact",
+ "groupId": "org.apache.maven",
+ "version": "3.9.1",
+ "sha256": "G2c9ds-HdzRMY1DViFM-o5Tdk_6aGyv_MZ2Wyw3edPI="
+ },
+ {
+ "id": "org.apache.maven:maven-builder-support:jar:3.9.1",
+ "artifactId": "maven-builder-support",
+ "groupId": "org.apache.maven",
+ "version": "3.9.1",
+ "sha256": "_-UV0667ouXb5Vgbjv_sQcsDT0CePcF4T9poC9xGAxs="
+ },
+ {
+ "id": "org.apache.maven:maven-model:jar:3.9.1",
+ "artifactId": "maven-model",
+ "groupId": "org.apache.maven",
+ "version": "3.9.1",
+ "sha256": "daSBALi0BXpbGpMFam4yk6cwha2SrQ98QUi28mfd8Hg="
+ },
+ {
+ "id": "org.apache.maven:maven-model-builder:jar:3.9.1",
+ "artifactId": "maven-model-builder",
+ "groupId": "org.apache.maven",
+ "version": "3.9.1",
+ "sha256": "ODiFpM8aGwz5QbtNLcPTvN0lG0a2jAScJ3Ma9QszIpA="
+ },
+ {
+ "id": "org.apache.maven:maven-repository-metadata:jar:3.9.1",
+ "artifactId": "maven-repository-metadata",
+ "groupId": "org.apache.maven",
+ "version": "3.9.1",
+ "sha256": "_kZQXv0VA7pIufdfJU2Z_pCv8mfBP4qq7f3kydg4VNc="
+ },
+ {
+ "id": "org.apache.maven:maven-settings:jar:3.9.1",
+ "artifactId": "maven-settings",
+ "groupId": "org.apache.maven",
+ "version": "3.9.1",
+ "sha256": "Jhf0vPV7ewabkzW76AC-mnDznQxGnj_RrGLk-veK2G4="
+ },
+ {
+ "id": "org.apache.maven.resolver:maven-resolver-api:jar:1.9.7",
+ "artifactId": "maven-resolver-api",
+ "groupId": "org.apache.maven.resolver",
+ "version": "1.9.7",
+ "sha256": "iU6wfqeV83SjA33-6Vg-LSUp1SxkoqH92tiscXSewlI="
+ },
+ {
+ "id": "org.apache.maven.resolver:maven-resolver-impl:jar:1.9.7",
+ "artifactId": "maven-resolver-impl",
+ "groupId": "org.apache.maven.resolver",
+ "version": "1.9.7",
+ "sha256": "6dlbsg2tDt7WXo3ilDBlH_8SGOPhH859AqK9IzcuY4s="
+ },
+ {
+ "id": "org.apache.maven.resolver:maven-resolver-named-locks:jar:1.9.7",
+ "artifactId": "maven-resolver-named-locks",
+ "groupId": "org.apache.maven.resolver",
+ "version": "1.9.7",
+ "sha256": "ZFsfbFnTJTXhGEh5yj-dRumDUiX738T1lfHymRwkHnU="
+ },
+ {
+ "id": "org.apache.maven.resolver:maven-resolver-spi:jar:1.9.7",
+ "artifactId": "maven-resolver-spi",
+ "groupId": "org.apache.maven.resolver",
+ "version": "1.9.7",
+ "sha256": "ddn8IobI5C2r1HLql28QZDLnrnPFtg8EDCuP-7oEN20="
+ },
+ {
+ "id": "org.apache.maven.resolver:maven-resolver-util:jar:1.9.7",
+ "artifactId": "maven-resolver-util",
+ "groupId": "org.apache.maven.resolver",
+ "version": "1.9.7",
+ "sha256": "VRFq5uED5nCv92GqfUfbjTnoVwirY6ddx2QB5g_vPxw="
+ },
+ {
+ "id": "org.apache.maven.wagon:wagon-provider-api:jar:3.5.3",
+ "artifactId": "wagon-provider-api",
+ "groupId": "org.apache.maven.wagon",
+ "version": "3.5.3",
+ "sha256": "XnIAAziUXtPpb45PV40dBnLhr34ZwOkBQZeuWzGvPvQ="
+ },
+ {
+ "id": "org.apache.maven.wagon:wagon-http-lightweight:jar:3.5.3",
+ "artifactId": "wagon-http-lightweight",
+ "groupId": "org.apache.maven.wagon",
+ "version": "3.5.3",
+ "sha256": "mi9pIwcYuGIxG7LUeOC055mr_wB2eSr3wmt5i5kWnCM="
+ },
+ {
+ "id": "org.apache.maven.wagon:wagon-http-shared:jar:3.5.3",
+ "artifactId": "wagon-http-shared",
+ "groupId": "org.apache.maven.wagon",
+ "version": "3.5.3",
+ "sha256": "jn2nZvVRZP3od5qqoSWDJQbChIyrSHa1MFE4hz4oA38="
+ },
+ {
+ "id": "org.codehaus.plexus:plexus-interpolation:jar:1.26",
+ "artifactId": "plexus-interpolation",
+ "groupId": "org.codehaus.plexus",
+ "version": "1.26",
+ "sha256": "s7VBLOF4iRA-pWS838-fs9-lQDRP_qxrU4pzydcYJmI="
+ },
+ {
+ "id": "org.codehaus.plexus:plexus-utils:jar:3.5.1",
+ "artifactId": "plexus-utils",
+ "groupId": "org.codehaus.plexus",
+ "version": "3.5.1",
+ "sha256": "huAlXUyHnGG0gz7X8TEk6LtnnfR967EnMm59t91JoHs="
+ },
+ {
+ "id": "org.sonatype.plexus:plexus-cipher:jar:1.7",
+ "artifactId": "plexus-cipher",
+ "groupId": "org.sonatype.plexus",
+ "version": "1.7",
+ "sha256": "EUhZhh_xD5h7iA1vNOMhUnSvPMkrOnODHITVluN8ZRE="
+ },
+ {
+ "id": "org.sonatype.plexus:plexus-sec-dispatcher:jar:1.4",
+ "artifactId": "plexus-sec-dispatcher",
+ "groupId": "org.sonatype.plexus",
+ "version": "1.4",
+ "sha256": "2nPjK1gTLmTa8SJp_Z0BHAswPyNIQPF5kIclpjK2tXw="
+ },
+ {
+ "id": "org.apache.maven:maven-embedder:jar:3.9.1",
+ "artifactId": "maven-embedder",
+ "groupId": "org.apache.maven",
+ "version": "3.9.1",
+ "sha256": "4fWlcTtwMsUF7NmhlljA6BSKY81tO6XYZBHW8QpUsYo="
+ },
+ {
+ "id": "org.apache.maven:maven-core:jar:3.9.1",
+ "artifactId": "maven-core",
+ "groupId": "org.apache.maven",
+ "version": "3.9.1",
+ "sha256": "eUlEmkNRQ6idMWSJf3P718IAoMPIuVoK9oyB3T6Peug="
+ },
+ {
+ "id": "org.codehaus.plexus:plexus-component-annotations:jar:2.1.0",
+ "artifactId": "plexus-component-annotations",
+ "groupId": "org.codehaus.plexus",
+ "version": "2.1.0",
+ "sha256": "veNhfOm1vPlYQSYEYIAEOvaks7rqQKOxU_Aue7wyrKw="
+ },
+ {
+ "id": "org.apache.maven:maven-plugin-api:jar:3.9.1",
+ "artifactId": "maven-plugin-api",
+ "groupId": "org.apache.maven",
+ "version": "3.9.1",
+ "sha256": "3mGFwQojTCGeCpXotnAsjLsocn_VfAmX2Kl-24n56KM="
+ },
+ {
+ "id": "org.apache.maven.shared:maven-shared-utils:jar:3.3.4",
+ "artifactId": "maven-shared-utils",
+ "groupId": "org.apache.maven.shared",
+ "version": "3.3.4",
+ "sha256": "eSXZxaDiBA0kuPrj9hLrOZy__lg4szujaHd9x73fbdo="
+ },
+ {
+ "id": "com.google.inject:guice:jar:5.1.0",
+ "artifactId": "guice",
+ "groupId": "com.google.inject",
+ "version": "5.1.0",
+ "sha256": "QTDlC_rEgJnIYPDZA7kYYMgaJJyQ84JF-P7Vj8gXvCY="
+ },
+ {
+ "id": "aopalliance:aopalliance:jar:1.0",
+ "artifactId": "aopalliance",
+ "groupId": "aopalliance",
+ "version": "1.0",
+ "sha256": "Ct3sZw_tzT8RPFyAkdeDKA0j9146y4QbYanNsHk3agg="
+ },
+ {
+ "id": "com.google.guava:guava:jar:31.1-jre",
+ "artifactId": "guava",
+ "groupId": "com.google.guava",
+ "version": "31.1-jre",
+ "sha256": "pC7cnKt5Ljn-ObuU8_ymVe0Vf_h6iveOHWulsHxKAKs="
+ },
+ {
+ "id": "com.google.guava:failureaccess:jar:1.0.1",
+ "artifactId": "failureaccess",
+ "groupId": "com.google.guava",
+ "version": "1.0.1",
+ "sha256": "oXHuTHNN0tqDfksWvp30Zhr6typBra8x64Tf2vk2yiY="
+ },
+ {
+ "id": "javax.annotation:javax.annotation-api:jar:1.3.2",
+ "artifactId": "javax.annotation-api",
+ "groupId": "javax.annotation",
+ "version": "1.3.2",
+ "sha256": "4EulGVvNVV3JVlD3zGFNFR5LzVLSmhC4qiGX86uJq5s="
+ },
+ {
+ "id": "org.codehaus.plexus:plexus-classworlds:jar:2.6.0",
+ "artifactId": "plexus-classworlds",
+ "groupId": "org.codehaus.plexus",
+ "version": "2.6.0",
+ "sha256": "Uvd8XsSfeHycQX6-1dbv2ZIvRKIC8hc3bk-UwNdPNUk="
+ },
+ {
+ "id": "org.codehaus.plexus:plexus-sec-dispatcher:jar:2.0",
+ "artifactId": "plexus-sec-dispatcher",
+ "groupId": "org.codehaus.plexus",
+ "version": "2.0",
+ "sha256": "hzE5lgxMeAF23aWAsAOixL-CGIvc5buZI04iTves_Os="
+ },
+ {
+ "id": "org.codehaus.plexus:plexus-cipher:jar:2.0",
+ "artifactId": "plexus-cipher",
+ "groupId": "org.codehaus.plexus",
+ "version": "2.0",
+ "sha256": "mn8bXFqe_9Yerf2HMUUqL3ao55ER-sOR73XqgBvqIDo="
+ },
+ {
+ "id": "commons-cli:commons-cli:jar:1.4",
+ "artifactId": "commons-cli",
+ "groupId": "commons-cli",
+ "version": "1.4",
+ "sha256": "_Tx8lUWpzbIFHR-RVcT3ax5KxaVzBEBKbu21eP-6cyg="
+ },
+ {
+ "id": "org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.3.5",
+ "artifactId": "org.eclipse.sisu.plexus",
+ "groupId": "org.eclipse.sisu",
+ "version": "0.3.5",
+ "sha256": "fkxhCW1wgm8g96fVXFmlUo56pa0kfuLf5UTk3SX2p4Q="
+ },
+ {
+ "id": "org.apache.maven:maven-settings-builder:jar:3.9.1",
+ "artifactId": "maven-settings-builder",
+ "groupId": "org.apache.maven",
+ "version": "3.9.1",
+ "sha256": "8_gkH_fwkfttwLNG69FyyCD1gliri5YCRp4OMTd_7lU="
+ },
+ {
+ "id": "org.apache.maven:maven-resolver-provider:jar:3.9.1",
+ "artifactId": "maven-resolver-provider",
+ "groupId": "org.apache.maven",
+ "version": "3.9.1",
+ "sha256": "disdXelEKYX8zDivgJPM9TUaY90N9MH_Y3rK3KNPXrM="
+ },
+ {
+ "id": "org.apache.maven.resolver:maven-resolver-connector-basic:jar:1.9.7",
+ "artifactId": "maven-resolver-connector-basic",
+ "groupId": "org.apache.maven.resolver",
+ "version": "1.9.7",
+ "sha256": "untePGywve-5xOSYcc0w3LWex0m85Z-OFXHN9cKPOWM="
+ },
+ {
+ "id": "org.apache.maven.resolver:maven-resolver-transport-wagon:jar:1.9.7",
+ "artifactId": "maven-resolver-transport-wagon",
+ "groupId": "org.apache.maven.resolver",
+ "version": "1.9.7",
+ "sha256": "S-wOg7vnvx6N-IsxyMIyTOArnj6YdQgoT4lTBGgieAs="
+ },
+ {
+ "id": "org.apache.maven.wagon:wagon-http:jar:3.5.3",
+ "artifactId": "wagon-http",
+ "groupId": "org.apache.maven.wagon",
+ "version": "3.5.3",
+ "sha256": "0rbkjJ_L5XnhhYxiLRRGQBH_Jl-m4o55QASmiCFUpQk="
+ },
+ {
+ "id": "org.apache.maven.wagon:wagon-file:jar:3.5.3",
+ "artifactId": "wagon-file",
+ "groupId": "org.apache.maven.wagon",
+ "version": "3.5.3",
+ "sha256": "r8khb6l7eNrSJ7So1NZ7mJe_ETpX-AWY1imThBET4QM="
+ },
+ {
+ "id": "io.quarkus:quarkus-bootstrap-gradle-resolver:jar:3.1.0.Final",
+ "artifactId": "quarkus-bootstrap-gradle-resolver",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "BGNEr2loSacP_slGPqXUhxtrFxqnExTgu2M506XrgWE="
+ },
+ {
+ "id": "commons-io:commons-io:jar:2.11.0",
+ "artifactId": "commons-io",
+ "groupId": "commons-io",
+ "version": "2.11.0",
+ "sha256": "lhsvbYfbrMXVSr9Fq3puJJX4m3VZiWLYxyPOqbwhCQg="
+ },
+ {
+ "id": "io.quarkus:quarkus-junit5-properties:jar:3.1.0.Final",
+ "artifactId": "quarkus-junit5-properties",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "Z9wmOcN_8Emade_bta40FOODySm8Fhp6v9Uz1oYxPyk="
+ },
+ {
+ "id": "org.junit.jupiter:junit-jupiter:jar:5.9.3",
+ "artifactId": "junit-jupiter",
+ "groupId": "org.junit.jupiter",
+ "version": "5.9.3",
+ "sha256": "Zy4XmLfVM3i_QIy2NPyFbP78F9dB5V8m1ohjg4Y-IYo="
+ },
+ {
+ "id": "org.junit.jupiter:junit-jupiter-api:jar:5.9.3",
+ "artifactId": "junit-jupiter-api",
+ "groupId": "org.junit.jupiter",
+ "version": "5.9.3",
+ "sha256": "2JXj7t9PobEN4xqRvlWjAbswe_GO8yWz-l2z-A7pLRw="
+ },
+ {
+ "id": "org.opentest4j:opentest4j:jar:1.2.0",
+ "artifactId": "opentest4j",
+ "groupId": "org.opentest4j",
+ "version": "1.2.0",
+ "sha256": "WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI="
+ },
+ {
+ "id": "org.junit.platform:junit-platform-commons:jar:1.9.3",
+ "artifactId": "junit-platform-commons",
+ "groupId": "org.junit.platform",
+ "version": "1.9.3",
+ "sha256": "hRkVffgTwhDoX8FBS3QQnj2F9D1wklY-1wTEPEjw1eY="
+ },
+ {
+ "id": "org.apiguardian:apiguardian-api:jar:1.1.2",
+ "artifactId": "apiguardian-api",
+ "groupId": "org.apiguardian",
+ "version": "1.1.2",
+ "sha256": "tQlEisUG1gcxnxglN_CzXXEAdYLsdBgyofER5bW3Czg="
+ },
+ {
+ "id": "org.junit.jupiter:junit-jupiter-params:jar:5.9.3",
+ "artifactId": "junit-jupiter-params",
+ "groupId": "org.junit.jupiter",
+ "version": "5.9.3",
+ "sha256": "KvKC_pHlZJXAO4TpyucC6qIS_C9qMf2deeMcy2TNgf0="
+ },
+ {
+ "id": "org.junit.jupiter:junit-jupiter-engine:jar:5.9.3",
+ "artifactId": "junit-jupiter-engine",
+ "groupId": "org.junit.jupiter",
+ "version": "5.9.3",
+ "sha256": "tV4wSxzS6PEWwat3pdw-yoxNm0amnghLY6ylHN61Xw8="
+ },
+ {
+ "id": "org.junit.platform:junit-platform-engine:jar:1.9.3",
+ "artifactId": "junit-platform-engine",
+ "groupId": "org.junit.platform",
+ "version": "1.9.3",
+ "sha256": "DDlVPZoDUQdXIn9aHGzGUwKHsaMh7WJYRQZkh0qioWo="
+ },
+ {
+ "id": "com.thoughtworks.xstream:xstream:jar:1.4.20",
+ "artifactId": "xstream",
+ "groupId": "com.thoughtworks.xstream",
+ "version": "1.4.20",
+ "sha256": "h98PC-V8kgN9ARD7siWjC2UXAtwnVlPSha_P7zG8LoE="
+ },
+ {
+ "id": "io.github.x-stream:mxparser:jar:1.2.2",
+ "artifactId": "mxparser",
+ "groupId": "io.github.x-stream",
+ "version": "1.2.2",
+ "sha256": "ru7iOjMD2BG8qHkOp_JbU0MUhhwDz_Ntr9zCGAlp65c="
+ },
+ {
+ "id": "xmlpull:xmlpull:jar:1.1.3.1",
+ "artifactId": "xmlpull",
+ "groupId": "xmlpull",
+ "version": "1.1.3.1",
+ "sha256": "NOCO5iEWBxy7acDtcNFaelsgjWJ5jFnyEgu4kpMky2M="
+ },
+ {
+ "id": "io.rest-assured:rest-assured:jar:5.3.0",
+ "artifactId": "rest-assured",
+ "groupId": "io.rest-assured",
+ "version": "5.3.0",
+ "sha256": "4VmnWMCH6gISGmoR2AbK1i_-NE7N72GDiGDoYPPlCW4="
+ },
+ {
+ "id": "org.apache.groovy:groovy:jar:4.0.6",
+ "artifactId": "groovy",
+ "groupId": "org.apache.groovy",
+ "version": "4.0.6",
+ "sha256": "lZHPVTfKvV04czilbcS3btHQJg-_S2kRYJirVEGcbx8="
+ },
+ {
+ "id": "org.apache.groovy:groovy-xml:jar:4.0.6",
+ "artifactId": "groovy-xml",
+ "groupId": "org.apache.groovy",
+ "version": "4.0.6",
+ "sha256": "IvN6adrRk_9xYY3F84cNM05wJxq74HeyYmURO04sRuc="
+ },
+ {
+ "id": "org.apache.httpcomponents:httpclient:jar:4.5.14",
+ "artifactId": "httpclient",
+ "groupId": "org.apache.httpcomponents",
+ "version": "4.5.14",
+ "sha256": "yLx-HFGm1M5y9A0uu6vxxLaL_nbnMhBLBDgbSTR46dY="
+ },
+ {
+ "id": "org.apache.httpcomponents:httpcore:jar:4.4.16",
+ "artifactId": "httpcore",
+ "groupId": "org.apache.httpcomponents",
+ "version": "4.4.16",
+ "sha256": "bJs90UKgncRo4jrTmq1vdaDyuFElEERp8CblKkdORk8="
+ },
+ {
+ "id": "commons-codec:commons-codec:jar:1.15",
+ "artifactId": "commons-codec",
+ "groupId": "commons-codec",
+ "version": "1.15",
+ "sha256": "s-n21jp5AQm_DQVmEfvtHPaQVYJt7-uYlKcTadJG7WM="
+ },
+ {
+ "id": "org.apache.httpcomponents:httpmime:jar:4.5.14",
+ "artifactId": "httpmime",
+ "groupId": "org.apache.httpcomponents",
+ "version": "4.5.14",
+ "sha256": "1AEkPVxurpKKNxIbboGRWMjDLqBYR5PnKFu0iasqPRc="
+ },
+ {
+ "id": "org.hamcrest:hamcrest:jar:2.1",
+ "artifactId": "hamcrest",
+ "groupId": "org.hamcrest",
+ "version": "2.1",
+ "sha256": "upOy46ViMiukMvChtTrdzFXLGIJTMZoCDtd_gk5pIFA="
+ },
+ {
+ "id": "org.ccil.cowan.tagsoup:tagsoup:jar:1.2.1",
+ "artifactId": "tagsoup",
+ "groupId": "org.ccil.cowan.tagsoup",
+ "version": "1.2.1",
+ "sha256": "rJf3tLHY6TN-36DjQET40O_nIj9q2POoXVTMEBjqLgQ="
+ },
+ {
+ "id": "io.rest-assured:json-path:jar:5.3.0",
+ "artifactId": "json-path",
+ "groupId": "io.rest-assured",
+ "version": "5.3.0",
+ "sha256": "4zbLjZ20HIzkILDXbTNWxa72HKycahGMJKwMz-MN9qk="
+ },
+ {
+ "id": "org.apache.groovy:groovy-json:jar:4.0.6",
+ "artifactId": "groovy-json",
+ "groupId": "org.apache.groovy",
+ "version": "4.0.6",
+ "sha256": "myTBLoRJhMPXn-TU_iUG5XFJ5DPARb4T80TYEtLDNe8="
+ },
+ {
+ "id": "io.rest-assured:rest-assured-common:jar:5.3.0",
+ "artifactId": "rest-assured-common",
+ "groupId": "io.rest-assured",
+ "version": "5.3.0",
+ "sha256": "CnfHX353_wGexnusYTJb_0ulcC2Bp9azk-opvQYi3vw="
+ },
+ {
+ "id": "io.rest-assured:xml-path:jar:5.3.0",
+ "artifactId": "xml-path",
+ "groupId": "io.rest-assured",
+ "version": "5.3.0",
+ "sha256": "pFZuPS2t-0-iPb8N8TwwIQ9KxBPzn-rBxmiGkaIWaw4="
+ },
+ {
+ "id": "io.quarkus:quarkus-junit5-mockito:jar:3.1.0.Final",
+ "artifactId": "quarkus-junit5-mockito",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "m_A-_q5hEEwOdKwrQyjXy2sgAycts0vFOXsQYrT7JDU="
+ },
+ {
+ "id": "io.quarkus:quarkus-junit5-mockito-config:jar:3.1.0.Final",
+ "artifactId": "quarkus-junit5-mockito-config",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "QEezby3GQjgcnBoeAITtu-vuT5OxsPh69Ba4D3W6oH4="
+ },
+ {
+ "id": "io.quarkus:quarkus-arc-deployment:jar:3.1.0.Final",
+ "artifactId": "quarkus-arc-deployment",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "6bx4ms6M4Mm24qWi-Q0Xj2UpekAJ_SVIpq38iFcrJEc="
+ },
+ {
+ "id": "io.quarkus:quarkus-smallrye-context-propagation-spi:jar:3.1.0.Final",
+ "artifactId": "quarkus-smallrye-context-propagation-spi",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "vMBQ_jnsgFuUGpGaCdu8JZgu55Msdptale9s7ep6TJ8="
+ },
+ {
+ "id": "io.quarkus:quarkus-vertx-http-dev-console-spi:jar:3.1.0.Final",
+ "artifactId": "quarkus-vertx-http-dev-console-spi",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "FiMGXbIxBzlCZzqjcwvg6S-1Vq4Z3p32BebvqlY4MGY="
+ },
+ {
+ "id": "io.quarkus:quarkus-vertx-http-dev-ui-spi:jar:3.1.0.Final",
+ "artifactId": "quarkus-vertx-http-dev-ui-spi",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "diRRF-W-SoGsRVrRSlXC4cOSSrLY65W9Fk0rvQf5q8E="
+ },
+ {
+ "id": "io.quarkus.arc:arc-processor:jar:3.1.0.Final",
+ "artifactId": "arc-processor",
+ "groupId": "io.quarkus.arc",
+ "version": "3.1.0.Final",
+ "sha256": "dclA1WfYBRlGJL8R9Dwy-wGKMBnIjOMb4Qz_ts3ZuSc="
+ },
+ {
+ "id": "org.mockito:mockito-subclass:jar:5.3.1",
+ "artifactId": "mockito-subclass",
+ "groupId": "org.mockito",
+ "version": "5.3.1",
+ "sha256": "fhxMciD8O89i4H5Aq8rn3DHQF8Rc_qiKxsg2lfLlGEo="
+ },
+ {
+ "id": "io.quarkus:quarkus-mutiny:jar:3.1.0.Final",
+ "artifactId": "quarkus-mutiny",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "g1IMlJGeXX_XSkrUEhYeOKA8F1PjLCMicQoetGDztfs="
+ },
+ {
+ "id": "io.quarkus:quarkus-smallrye-context-propagation:jar:3.1.0.Final",
+ "artifactId": "quarkus-smallrye-context-propagation",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "FPjAZf46X79Aqhb5BkPWcEZQcQ0f-pNQG9EpJrRwyyA="
+ },
+ {
+ "id": "io.smallrye:smallrye-context-propagation:jar:2.1.0",
+ "artifactId": "smallrye-context-propagation",
+ "groupId": "io.smallrye",
+ "version": "2.1.0",
+ "sha256": "mudqxaICUFD5ng1BwVv6eVfYqERYqtM7eaNwrQYnHBo="
+ },
+ {
+ "id": "io.smallrye:smallrye-context-propagation-api:jar:2.1.0",
+ "artifactId": "smallrye-context-propagation-api",
+ "groupId": "io.smallrye",
+ "version": "2.1.0",
+ "sha256": "F2_yFsVyPQ-aGNswPfrtzzuYi077Cn4OVu2Ld1YfLIk="
+ },
+ {
+ "id": "io.smallrye:smallrye-context-propagation-storage:jar:2.1.0",
+ "artifactId": "smallrye-context-propagation-storage",
+ "groupId": "io.smallrye",
+ "version": "2.1.0",
+ "sha256": "BaFJvAxKV73abzKF5Flz1kxg86MCYdYD0a8hLy_Gd1s="
+ },
+ {
+ "id": "io.smallrye.reactive:mutiny-smallrye-context-propagation:jar:2.1.0",
+ "artifactId": "mutiny-smallrye-context-propagation",
+ "groupId": "io.smallrye.reactive",
+ "version": "2.1.0",
+ "sha256": "NO4pU_LvoHyBulXKRDwiP3DiNYaJi4q_4eV11oXF82A="
+ },
+ {
+ "id": "io.quarkus:quarkus-panache-mock:jar:3.1.0.Final",
+ "artifactId": "quarkus-panache-mock",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "fGgTDvxRCi-PSV1FnRI2KPDSSS-qru8psEv3K-z2CA0="
+ },
+ {
+ "id": "io.quarkus:quarkus-panache-common-deployment:jar:3.1.0.Final",
+ "artifactId": "quarkus-panache-common-deployment",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "xr6qfi01YejWVQoigkr_kkIu_80uSSr-UQj31BU_fmo="
+ },
+ {
+ "id": "org.ow2.asm:asm:jar:9.5",
+ "artifactId": "asm",
+ "groupId": "org.ow2.asm",
+ "version": "9.5",
+ "sha256": "ti6EtZgHKXUbBFjFNM8TZvcnVCu40VhiEzVoKkYPA1M="
+ },
+ {
+ "id": "org.mockito:mockito-core:jar:5.3.1",
+ "artifactId": "mockito-core",
+ "groupId": "org.mockito",
+ "version": "5.3.1",
+ "sha256": "N_TbrtJf-mve2rp4dGxEniJLEF1W_O3uh1WTZkLZkqg="
+ },
+ {
+ "id": "net.bytebuddy:byte-buddy:jar:1.12.18",
+ "artifactId": "byte-buddy",
+ "groupId": "net.bytebuddy",
+ "version": "1.12.18",
+ "sha256": "OSAME6craj9OxDx7bS-3jsvrJcKemG9O-lcmNrOddQ4="
+ },
+ {
+ "id": "net.bytebuddy:byte-buddy-agent:jar:1.14.4",
+ "artifactId": "byte-buddy-agent",
+ "groupId": "net.bytebuddy",
+ "version": "1.14.4",
+ "sha256": "-9GrPbQ8bHi4gEkIy5W2VlF_XILn_ejSVdi9zu9BLXA="
+ },
+ {
+ "id": "org.objenesis:objenesis:jar:3.3",
+ "artifactId": "objenesis",
+ "groupId": "org.objenesis",
+ "version": "3.3",
+ "sha256": "At_QsEOaVZHjW3CO0vVHTrCUj1Or90Y36Vm45O9pv-s="
+ },
+ {
+ "id": "io.quarkus:quarkus-jacoco:jar:3.1.0.Final",
+ "artifactId": "quarkus-jacoco",
+ "groupId": "io.quarkus",
+ "version": "3.1.0.Final",
+ "sha256": "Bkp09d9s7IShUzB_MPI6KnUVIcE9c0tVeTS3WyV79qs="
+ },
+ {
+ "id": "org.jacoco:org.jacoco.core:jar:0.8.10",
+ "artifactId": "org.jacoco.core",
+ "groupId": "org.jacoco",
+ "version": "0.8.10",
+ "sha256": "54lmfZOnUDk47peK5Pu8mhvM2jtUYpmyTYVQ2BbYDgg="
+ },
+ {
+ "id": "org.ow2.asm:asm-tree:jar:9.5",
+ "artifactId": "asm-tree",
+ "groupId": "org.ow2.asm",
+ "version": "9.5",
+ "sha256": "PDOmSBkQea6urrfBmkmxU5UvnkD-hvusUgVVTd2azZQ="
+ },
+ {
+ "id": "org.jacoco:org.jacoco.report:jar:0.8.10",
+ "artifactId": "org.jacoco.report",
+ "groupId": "org.jacoco",
+ "version": "0.8.10",
+ "sha256": "PjXBT3hTx8iNvgTPCG7gU6Vzn0GemACZCbvt7N3d1Qw="
+ },
+ {
+ "id": "org.jacoco:org.jacoco.agent:jar:0.8.10",
+ "artifactId": "org.jacoco.agent",
+ "groupId": "org.jacoco",
+ "version": "0.8.10",
+ "sha256": "MtYiEcCjI_UIIqdQpkfBIrKxtVn2NTPqLjJMAyQ4E3A="
+ },
+ {
+ "id": "org.jacoco:org.jacoco.agent:jar:runtime:0.8.10",
+ "artifactId": "org.jacoco.agent",
+ "groupId": "org.jacoco",
+ "version": "0.8.10",
+ "sha256": "QNJZl95MYldpv10Sg-uFW4fJyu9MofoDuO8LdSuktUo="
+ },
+ {
+ "id": "org.ow2.asm:asm-commons:jar:9.5",
+ "artifactId": "asm-commons",
+ "groupId": "org.ow2.asm",
+ "version": "9.5",
+ "sha256": "cu7p-6-53o2UY_IN1YSkjO635RUq1MmHv74X3UgRya4="
+ },
+ {
+ "id": "org.testcontainers:redpanda:jar:1.18.1",
+ "artifactId": "redpanda",
+ "groupId": "org.testcontainers",
+ "version": "1.18.1",
+ "sha256": "JUpiqtCtmAp5evdD4lkYS2wvUaSgSYmMVSD6JR6oh5k="
+ },
+ {
+ "id": "org.awaitility:awaitility:jar:4.2.0",
+ "artifactId": "awaitility",
+ "groupId": "org.awaitility",
+ "version": "4.2.0",
+ "sha256": "LSO3khH90ZA29pQMx4NUN3kyCq-G841uOFov8m2kEnI="
+ },
+ {
+ "id": "com.nimbusds:nimbus-jose-jwt:jar:9.31",
+ "artifactId": "nimbus-jose-jwt",
+ "groupId": "com.nimbusds",
+ "version": "9.31",
+ "sha256": "4NHZvq_efr1GtpJGv_1z3LM0CepKt7kaxWIrHmdm804="
+ },
+ {
+ "id": "com.github.stephenc.jcip:jcip-annotations:jar:1.0-1",
+ "artifactId": "jcip-annotations",
+ "groupId": "com.github.stephenc.jcip",
+ "version": "1.0-1",
+ "sha256": "T8z_g4Kq_FiZYsTtsmL2qlleNPHhHmEFfRxqluj8cyM="
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 447536c..5f8d2a8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,15 +11,23 @@
${java.version}
${java.version}
${java.version}
- 3.8.1
- 3.0.0-M7
+ 3.11.0
+ 3.0.0
+ 3.9.1.2184
UTF-8
UTF-8
quarkus-bom
io.quarkus.platform
3.1.0.Final
- 2.0.1
true
+ 1.1.1
+ 2.0.2
+ https://sonarcloud.io:443/
+ pagopa
+ pagopa_mil-preset
+ true
+ 300
+ target/jacoco-report/jacoco.xml
@@ -73,6 +81,7 @@
io.quarkus
quarkus-container-image-docker
+ test
io.quarkus
@@ -133,6 +142,18 @@
test
+
+
+ github
+ https://maven.pkg.github.com/pagopa/mil-common
+
+
+
+
+ github
+ https://maven.pkg.github.com/pagopa/depcheck
+
+
@@ -195,46 +216,27 @@
+
+ it.pagopa.maven
+ depcheck
+ ${depcheck-plugin.version}
+
+
+ validate
+
+ verify
+
+
+
+
+ dep-sha256.json
+ false
+ false
+
+
-
-
-
- bootstrap
-
-
- bootstrap
-
-
-
-
-
- org.apache.maven.plugins
- maven-scm-plugin
- 2.0.0-M3
-
- ${maven.home}
- install
-
-
-
- clone_and_install_mil-common
- validate
-
- scm:git:/~https://github.com/pagopa/mil-common.git
- tag
- ${common.version}
-
-
- bootstrap
-
-
-
-
-
-
-
native
@@ -247,31 +249,31 @@
native
+
+
+
- coverage
+ validate
+
+
+ validate
+
+
+
- org.jacoco
- jacoco-maven-plugin
- 0.8.8
+ org.sonarsource.scanner.maven
+ sonar-maven-plugin
+ ${sonar-plugin.version}
- prepare-agent
-
- prepare-agent
-
-
-
- report
+ sca_with_sonar
+
+ test
- report
+ sonar
-
-
- XML
-
-
diff --git a/src/main/docker/Dockerfile.jvm b/src/main/docker/Dockerfile.jvm
deleted file mode 100644
index dc889bf..0000000
--- a/src/main/docker/Dockerfile.jvm
+++ /dev/null
@@ -1,95 +0,0 @@
-####
-# This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode
-#
-# Before building the container image run:
-#
-# ./mvnw package
-#
-# Then, build the image with:
-#
-# docker build -f src/main/docker/Dockerfile.jvm -t quarkus/code-with-quarkus-jvm .
-#
-# Then run the container using:
-#
-# docker run -i --rm -p 8080:8080 quarkus/code-with-quarkus-jvm
-#
-# If you want to include the debug port into your docker image
-# you will have to expose the debug port (default 5005 being the default) like this : EXPOSE 8080 5005.
-# Additionally you will have to set -e JAVA_DEBUG=true and -e JAVA_DEBUG_PORT=*:5005
-# when running the container
-#
-# Then run the container using :
-#
-# docker run -i --rm -p 8080:8080 quarkus/code-with-quarkus-jvm
-#
-# This image uses the `run-java.sh` script to run the application.
-# This scripts computes the command line to execute your Java application, and
-# includes memory/GC tuning.
-# You can configure the behavior using the following environment properties:
-# - JAVA_OPTS: JVM options passed to the `java` command (example: "-verbose:class")
-# - JAVA_OPTS_APPEND: User specified Java options to be appended to generated options
-# in JAVA_OPTS (example: "-Dsome.property=foo")
-# - JAVA_MAX_MEM_RATIO: Is used when no `-Xmx` option is given in JAVA_OPTS. This is
-# used to calculate a default maximal heap memory based on a containers restriction.
-# If used in a container without any memory constraints for the container then this
-# option has no effect. If there is a memory constraint then `-Xmx` is set to a ratio
-# of the container available memory as set here. The default is `50` which means 50%
-# of the available memory is used as an upper boundary. You can skip this mechanism by
-# setting this value to `0` in which case no `-Xmx` option is added.
-# - JAVA_INITIAL_MEM_RATIO: Is used when no `-Xms` option is given in JAVA_OPTS. This
-# is used to calculate a default initial heap memory based on the maximum heap memory.
-# If used in a container without any memory constraints for the container then this
-# option has no effect. If there is a memory constraint then `-Xms` is set to a ratio
-# of the `-Xmx` memory as set here. The default is `25` which means 25% of the `-Xmx`
-# is used as the initial heap size. You can skip this mechanism by setting this value
-# to `0` in which case no `-Xms` option is added (example: "25")
-# - JAVA_MAX_INITIAL_MEM: Is used when no `-Xms` option is given in JAVA_OPTS.
-# This is used to calculate the maximum value of the initial heap memory. If used in
-# a container without any memory constraints for the container then this option has
-# no effect. If there is a memory constraint then `-Xms` is limited to the value set
-# here. The default is 4096MB which means the calculated value of `-Xms` never will
-# be greater than 4096MB. The value of this variable is expressed in MB (example: "4096")
-# - JAVA_DIAGNOSTICS: Set this to get some diagnostics information to standard output
-# when things are happening. This option, if set to true, will set
-# `-XX:+UnlockDiagnosticVMOptions`. Disabled by default (example: "true").
-# - JAVA_DEBUG: If set remote debugging will be switched on. Disabled by default (example:
-# true").
-# - JAVA_DEBUG_PORT: Port used for remote debugging. Defaults to 5005 (example: "8787").
-# - CONTAINER_CORE_LIMIT: A calculated core limit as described in
-# https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt. (example: "2")
-# - CONTAINER_MAX_MEMORY: Memory limit given to the container (example: "1024").
-# - GC_MIN_HEAP_FREE_RATIO: Minimum percentage of heap free after GC to avoid expansion.
-# (example: "20")
-# - GC_MAX_HEAP_FREE_RATIO: Maximum percentage of heap free after GC to avoid shrinking.
-# (example: "40")
-# - GC_TIME_RATIO: Specifies the ratio of the time spent outside the garbage collection.
-# (example: "4")
-# - GC_ADAPTIVE_SIZE_POLICY_WEIGHT: The weighting given to the current GC time versus
-# previous GC times. (example: "90")
-# - GC_METASPACE_SIZE: The initial metaspace size. (example: "20")
-# - GC_MAX_METASPACE_SIZE: The maximum metaspace size. (example: "100")
-# - GC_CONTAINER_OPTIONS: Specify Java GC to use. The value of this variable should
-# contain the necessary JRE command-line options to specify the required GC, which
-# will override the default of `-XX:+UseParallelGC` (example: -XX:+UseG1GC).
-# - HTTPS_PROXY: The location of the https proxy. (example: "myuser@127.0.0.1:8080")
-# - HTTP_PROXY: The location of the http proxy. (example: "myuser@127.0.0.1:8080")
-# - NO_PROXY: A comma separated lists of hosts, IP addresses or domains that can be
-# accessed directly. (example: "foo.example.com,bar.example.com")
-#
-###
-FROM registry.access.redhat.com/ubi8/openjdk-17:1.14
-
-ENV LANGUAGE='en_US:en'
-
-
-# We make four distinct layers so if there are application changes the library layers can be re-used
-COPY --chown=185 target/quarkus-app/lib/ /deployments/lib/
-COPY --chown=185 target/quarkus-app/*.jar /deployments/
-COPY --chown=185 target/quarkus-app/app/ /deployments/app/
-COPY --chown=185 target/quarkus-app/quarkus/ /deployments/quarkus/
-
-EXPOSE 8080
-USER 185
-ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
-ENV JAVA_APP_JAR="/deployments/quarkus-run.jar"
-
diff --git a/src/main/docker/Dockerfile.legacy-jar b/src/main/docker/Dockerfile.legacy-jar
deleted file mode 100644
index 0d4ff83..0000000
--- a/src/main/docker/Dockerfile.legacy-jar
+++ /dev/null
@@ -1,91 +0,0 @@
-####
-# This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode
-#
-# Before building the container image run:
-#
-# ./mvnw package -Dquarkus.package.type=legacy-jar
-#
-# Then, build the image with:
-#
-# docker build -f src/main/docker/Dockerfile.legacy-jar -t quarkus/code-with-quarkus-legacy-jar .
-#
-# Then run the container using:
-#
-# docker run -i --rm -p 8080:8080 quarkus/code-with-quarkus-legacy-jar
-#
-# If you want to include the debug port into your docker image
-# you will have to expose the debug port (default 5005 being the default) like this : EXPOSE 8080 5005.
-# Additionally you will have to set -e JAVA_DEBUG=true and -e JAVA_DEBUG_PORT=*:5005
-# when running the container
-#
-# Then run the container using :
-#
-# docker run -i --rm -p 8080:8080 quarkus/code-with-quarkus-legacy-jar
-#
-# This image uses the `run-java.sh` script to run the application.
-# This scripts computes the command line to execute your Java application, and
-# includes memory/GC tuning.
-# You can configure the behavior using the following environment properties:
-# - JAVA_OPTS: JVM options passed to the `java` command (example: "-verbose:class")
-# - JAVA_OPTS_APPEND: User specified Java options to be appended to generated options
-# in JAVA_OPTS (example: "-Dsome.property=foo")
-# - JAVA_MAX_MEM_RATIO: Is used when no `-Xmx` option is given in JAVA_OPTS. This is
-# used to calculate a default maximal heap memory based on a containers restriction.
-# If used in a container without any memory constraints for the container then this
-# option has no effect. If there is a memory constraint then `-Xmx` is set to a ratio
-# of the container available memory as set here. The default is `50` which means 50%
-# of the available memory is used as an upper boundary. You can skip this mechanism by
-# setting this value to `0` in which case no `-Xmx` option is added.
-# - JAVA_INITIAL_MEM_RATIO: Is used when no `-Xms` option is given in JAVA_OPTS. This
-# is used to calculate a default initial heap memory based on the maximum heap memory.
-# If used in a container without any memory constraints for the container then this
-# option has no effect. If there is a memory constraint then `-Xms` is set to a ratio
-# of the `-Xmx` memory as set here. The default is `25` which means 25% of the `-Xmx`
-# is used as the initial heap size. You can skip this mechanism by setting this value
-# to `0` in which case no `-Xms` option is added (example: "25")
-# - JAVA_MAX_INITIAL_MEM: Is used when no `-Xms` option is given in JAVA_OPTS.
-# This is used to calculate the maximum value of the initial heap memory. If used in
-# a container without any memory constraints for the container then this option has
-# no effect. If there is a memory constraint then `-Xms` is limited to the value set
-# here. The default is 4096MB which means the calculated value of `-Xms` never will
-# be greater than 4096MB. The value of this variable is expressed in MB (example: "4096")
-# - JAVA_DIAGNOSTICS: Set this to get some diagnostics information to standard output
-# when things are happening. This option, if set to true, will set
-# `-XX:+UnlockDiagnosticVMOptions`. Disabled by default (example: "true").
-# - JAVA_DEBUG: If set remote debugging will be switched on. Disabled by default (example:
-# true").
-# - JAVA_DEBUG_PORT: Port used for remote debugging. Defaults to 5005 (example: "8787").
-# - CONTAINER_CORE_LIMIT: A calculated core limit as described in
-# https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt. (example: "2")
-# - CONTAINER_MAX_MEMORY: Memory limit given to the container (example: "1024").
-# - GC_MIN_HEAP_FREE_RATIO: Minimum percentage of heap free after GC to avoid expansion.
-# (example: "20")
-# - GC_MAX_HEAP_FREE_RATIO: Maximum percentage of heap free after GC to avoid shrinking.
-# (example: "40")
-# - GC_TIME_RATIO: Specifies the ratio of the time spent outside the garbage collection.
-# (example: "4")
-# - GC_ADAPTIVE_SIZE_POLICY_WEIGHT: The weighting given to the current GC time versus
-# previous GC times. (example: "90")
-# - GC_METASPACE_SIZE: The initial metaspace size. (example: "20")
-# - GC_MAX_METASPACE_SIZE: The maximum metaspace size. (example: "100")
-# - GC_CONTAINER_OPTIONS: Specify Java GC to use. The value of this variable should
-# contain the necessary JRE command-line options to specify the required GC, which
-# will override the default of `-XX:+UseParallelGC` (example: -XX:+UseG1GC).
-# - HTTPS_PROXY: The location of the https proxy. (example: "myuser@127.0.0.1:8080")
-# - HTTP_PROXY: The location of the http proxy. (example: "myuser@127.0.0.1:8080")
-# - NO_PROXY: A comma separated lists of hosts, IP addresses or domains that can be
-# accessed directly. (example: "foo.example.com,bar.example.com")
-#
-###
-FROM registry.access.redhat.com/ubi8/openjdk-17:1.14
-
-ENV LANGUAGE='en_US:en'
-
-
-COPY target/lib/* /deployments/lib/
-COPY target/*-runner.jar /deployments/quarkus-run.jar
-
-EXPOSE 8080
-USER 185
-ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
-ENV JAVA_APP_JAR="/deployments/quarkus-run.jar"
diff --git a/src/main/docker/Dockerfile.native b/src/main/docker/Dockerfile.native
deleted file mode 100644
index 4e076cf..0000000
--- a/src/main/docker/Dockerfile.native
+++ /dev/null
@@ -1,27 +0,0 @@
-####
-# This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode.
-#
-# Before building the container image run:
-#
-# ./mvnw package -Pnative
-#
-# Then, build the image with:
-#
-# docker build -f src/main/docker/Dockerfile.native -t quarkus/code-with-quarkus .
-#
-# Then run the container using:
-#
-# docker run -i --rm -p 8080:8080 quarkus/code-with-quarkus
-#
-###
-FROM registry.access.redhat.com/ubi8/ubi-minimal:8.6
-WORKDIR /work/
-RUN chown 1001 /work \
- && chmod "g+rwX" /work \
- && chown 1001:root /work
-COPY --chown=1001:root target/*-runner /work/application
-
-EXPOSE 8080
-USER 1001
-
-CMD ["./application", "-Dquarkus.http.host=0.0.0.0"]
diff --git a/src/main/docker/Dockerfile.native-micro b/src/main/docker/Dockerfile.native-micro
index 40afb1a..df1619c 100644
--- a/src/main/docker/Dockerfile.native-micro
+++ b/src/main/docker/Dockerfile.native-micro
@@ -1,23 +1,4 @@
-####
-# This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode.
-# It uses a micro base image, tuned for Quarkus native executables.
-# It reduces the size of the resulting container image.
-# Check https://quarkus.io/guides/quarkus-runtime-base-image for further information about this image.
-#
-# Before building the container image run:
-#
-# ./mvnw package -Pnative
-#
-# Then, build the image with:
-#
-# docker build -f src/main/docker/Dockerfile.native-micro -t quarkus/code-with-quarkus .
-#
-# Then run the container using:
-#
-# docker run -i --rm -p 8080:8080 quarkus/code-with-quarkus
-#
-###
-FROM quay.io/quarkus/quarkus-micro-image:2.0
+FROM quay.io/quarkus/quarkus-micro-image@sha256:a9182e3618935ab7decb6ec0a7cdd2dd60288ea4a61e0c08c8c486fff42696e8
WORKDIR /work/
RUN chown 1001 /work \
&& chmod "g+rwX" /work \
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index c48129a..8a58661 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -60,10 +60,10 @@ mp.messaging.incoming.presets.group.id=preset-processor
%test.kafka.bootstrap.servers=localhost:2024
quarkus.kafka.devservices.enabled=false
-%prod.kafka.bootstrap.servers=${kafka-bootstrap-server}
-%prod.kafka.security.protocol=${kafka-security-protocol}
-%prod.kafka.sasl.mechanism=${kafka-sasl-mechanism}
-%prod.kafka.sasl.jaas.config=${kafka-sasl-jaas-config}
+#%prod.kafka.bootstrap.servers=${kafka-connection-string-1},${kafka-connection-string-2}
+%prod.kafka.security.protocol=SASL_SSL
+%prod.kafka.sasl.mechanism=PLAIN
+%prod.kafka.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="${kafka-connection-string-1}";
# ------------------------------------------------------------------------------
# JWT RBAC configurations
diff --git a/src/main/terraform/identity/01_data.tf b/src/main/terraform/identity/01_data.tf
new file mode 100644
index 0000000..b20299c
--- /dev/null
+++ b/src/main/terraform/identity/01_data.tf
@@ -0,0 +1,18 @@
+data "azurerm_storage_account" "tfstate_app" {
+ name = "tfapp${lower(replace(data.azurerm_subscription.current.display_name, "-", ""))}"
+ resource_group_name = "terraform-state-rg"
+}
+
+data "azurerm_storage_account" "tfstate_inf" {
+ name = "tfinf${lower(replace(data.azurerm_subscription.current.display_name, "-", ""))}"
+ resource_group_name = "terraform-state-rg"
+}
+
+data "azurerm_resource_group" "github_runner_rg" {
+ name = "${local.project}-github-runner-rg"
+}
+
+data "github_organization_teams" "all" {
+ root_teams_only = true
+ summary_only = true
+}
diff --git a/src/main/terraform/identity/02_application_environment_cd.tf b/src/main/terraform/identity/02_application_environment_cd.tf
new file mode 100644
index 0000000..cb76679
--- /dev/null
+++ b/src/main/terraform/identity/02_application_environment_cd.tf
@@ -0,0 +1,31 @@
+resource "azuread_application" "environment_cd" {
+ display_name = "${local.app_name}-cd"
+}
+
+resource "azuread_service_principal" "environment_cd" {
+ application_id = azuread_application.environment_cd.application_id
+}
+
+resource "azuread_application_federated_identity_credential" "environment_cd" {
+ application_object_id = azuread_application.environment_cd.object_id
+ display_name = "github-federated"
+ description = "github-federated"
+ audiences = ["api://AzureADTokenExchange"]
+ issuer = "https://token.actions.githubusercontent.com"
+ subject = "repo:${var.github.org}/${var.github.repository}:environment:${var.env}-cd"
+}
+
+resource "azurerm_role_assignment" "environment_cd_subscription" {
+ scope = data.azurerm_subscription.current.id
+ role_definition_name = "Contributor"
+ principal_id = azuread_service_principal.environment_cd.object_id
+}
+
+output "azure_environment_cd" {
+ value = {
+ app_name = "${local.app_name}-cd"
+ client_id = azuread_service_principal.environment_cd.application_id
+ application_id = azuread_service_principal.environment_cd.application_id
+ object_id = azuread_service_principal.environment_cd.object_id
+ }
+}
diff --git a/src/main/terraform/identity/03_github_environment_cd.tf b/src/main/terraform/identity/03_github_environment_cd.tf
new file mode 100644
index 0000000..194aaf3
--- /dev/null
+++ b/src/main/terraform/identity/03_github_environment_cd.tf
@@ -0,0 +1,60 @@
+resource "github_repository_environment" "github_repository_environment_cd" {
+ environment = "${var.env}-cd"
+ repository = var.github.repository
+ # filter teams reviewers from github_organization_teams
+ # if reviewers_teams is null no reviewers will be configured for environment
+ dynamic "reviewers" {
+ for_each = (var.github_repository_environment_cd.reviewers_teams == null ? [] : [1])
+ content {
+ teams = matchkeys(
+ data.github_organization_teams.all.teams.*.id,
+ data.github_organization_teams.all.teams.*.name,
+ var.github_repository_environment_cd.reviewers_teams
+ )
+ }
+ }
+ deployment_branch_policy {
+ protected_branches = var.github_repository_environment_cd.protected_branches
+ custom_branch_policies = var.github_repository_environment_cd.custom_branch_policies
+ }
+}
+
+#tfsec:ignore:github-actions-no-plain-text-action-secrets # not real secret
+resource "github_actions_environment_secret" "azure_cd_tenant_id" {
+ repository = var.github.repository
+ environment = "${var.env}-cd"
+ secret_name = "AZURE_TENANT_ID"
+ plaintext_value = data.azurerm_client_config.current.tenant_id
+}
+
+#tfsec:ignore:github-actions-no-plain-text-action-secrets # not real secret
+resource "github_actions_environment_secret" "azure_cd_subscription_id" {
+ repository = var.github.repository
+ environment = "${var.env}-cd"
+ secret_name = "AZURE_SUBSCRIPTION_ID"
+ plaintext_value = data.azurerm_subscription.current.subscription_id
+}
+
+#tfsec:ignore:github-actions-no-plain-text-action-secrets # not real secret
+resource "github_actions_environment_secret" "azure_cd_client_id" {
+ repository = var.github.repository
+ environment = "${var.env}-cd"
+ secret_name = "AZURE_CLIENT_ID"
+ plaintext_value = azuread_service_principal.environment_cd.application_id
+}
+
+#tfsec:ignore:github-actions-no-plain-text-action-secrets # not real secret
+resource "github_actions_environment_secret" "azure_cd_container_app_environment_name" {
+ repository = var.github.repository
+ environment = "${var.env}-cd"
+ secret_name = "AZURE_CONTAINER_APP_ENVIRONMENT_NAME"
+ plaintext_value = "${local.project}-cae"
+}
+
+#tfsec:ignore:github-actions-no-plain-text-action-secrets # not real secret
+resource "github_actions_environment_secret" "azure_cd_resource_group_name" {
+ repository = var.github.repository
+ environment = "${var.env}-cd"
+ secret_name = "AZURE_RESOURCE_GROUP_NAME"
+ plaintext_value = "${local.project}-app-rg"
+}
diff --git a/src/main/terraform/identity/99_locals.tf b/src/main/terraform/identity/99_locals.tf
new file mode 100644
index 0000000..d311dca
--- /dev/null
+++ b/src/main/terraform/identity/99_locals.tf
@@ -0,0 +1,4 @@
+locals {
+ project = "${var.prefix}-${var.env_short}"
+ app_name = "github-${var.github.org}-${var.github.repository}-${var.env}"
+}
diff --git a/src/main/terraform/identity/99_main.tf b/src/main/terraform/identity/99_main.tf
new file mode 100644
index 0000000..9d51c34
--- /dev/null
+++ b/src/main/terraform/identity/99_main.tf
@@ -0,0 +1,32 @@
+terraform {
+ required_version = ">=1.3.0"
+
+ required_providers {
+ azuread = {
+ source = "hashicorp/azuread"
+ version = "2.30.0"
+ }
+ azurerm = {
+ source = "hashicorp/azurerm"
+ version = "3.33.0"
+ }
+ github = {
+ source = "integrations/github"
+ version = "5.12.0"
+ }
+ }
+
+ backend "azurerm" {}
+}
+
+provider "azurerm" {
+ features {}
+}
+
+provider "github" {
+ owner = var.github.org
+}
+
+data "azurerm_subscription" "current" {}
+
+data "azurerm_client_config" "current" {}
diff --git a/src/main/terraform/identity/99_main.tf.ci b/src/main/terraform/identity/99_main.tf.ci
new file mode 100644
index 0000000..d04ea52
--- /dev/null
+++ b/src/main/terraform/identity/99_main.tf.ci
@@ -0,0 +1,30 @@
+terraform {
+ required_version = ">=1.3.0"
+
+ required_providers {
+ azuread = {
+ source = "hashicorp/azuread"
+ version = "2.30.0"
+ }
+ azurerm = {
+ source = "hashicorp/azurerm"
+ version = "3.33.0"
+ }
+ github = {
+ source = "integrations/github"
+ version = "5.12.0"
+ }
+ }
+}
+
+provider "azurerm" {
+ features {}
+}
+
+provider "github" {
+ owner = var.github.org
+}
+
+data "azurerm_subscription" "current" {}
+
+data "azurerm_client_config" "current" {}
diff --git a/src/main/terraform/identity/99_outputs.tf b/src/main/terraform/identity/99_outputs.tf
new file mode 100644
index 0000000..468f12d
--- /dev/null
+++ b/src/main/terraform/identity/99_outputs.tf
@@ -0,0 +1,7 @@
+output "tenant_id" {
+ value = data.azurerm_client_config.current.tenant_id
+}
+
+output "subscription_id" {
+ value = data.azurerm_subscription.current.subscription_id
+}
diff --git a/src/main/terraform/identity/99_variables.tf b/src/main/terraform/identity/99_variables.tf
new file mode 100644
index 0000000..6365cab
--- /dev/null
+++ b/src/main/terraform/identity/99_variables.tf
@@ -0,0 +1,51 @@
+variable "prefix" {
+ type = string
+ validation {
+ condition = (
+ length(var.prefix) <= 6
+ )
+ error_message = "Max length is 6 chars."
+ }
+}
+
+variable "env" {
+ type = string
+ description = "Environment"
+}
+
+variable "env_short" {
+ type = string
+ validation {
+ condition = (
+ length(var.env_short) <= 1
+ )
+ error_message = "Max length is 1 chars."
+ }
+}
+
+variable "github" {
+ type = object({
+ org = string
+ repository = string
+ })
+ description = "GitHub Organization and repository name"
+ default = {
+ org = "pagopa"
+ repository = "mil-preset"
+ }
+}
+
+variable "github_token" {
+ type = string
+ sensitive = true
+ description = "GitHub Organization and repository name"
+}
+
+variable "github_repository_environment_cd" {
+ type = object({
+ protected_branches = bool
+ custom_branch_policies = bool
+ reviewers_teams = list(string)
+ })
+ description = "GitHub Continous Integration roles"
+}
diff --git a/src/main/terraform/identity/env/dev/backend.ini b/src/main/terraform/identity/env/dev/backend.ini
new file mode 100644
index 0000000..56e9127
--- /dev/null
+++ b/src/main/terraform/identity/env/dev/backend.ini
@@ -0,0 +1 @@
+subscription=dev-mil
diff --git a/src/main/terraform/identity/env/dev/backend.tfvars b/src/main/terraform/identity/env/dev/backend.tfvars
new file mode 100644
index 0000000..0b1ccfd
--- /dev/null
+++ b/src/main/terraform/identity/env/dev/backend.tfvars
@@ -0,0 +1,4 @@
+resource_group_name = "terraform-state-rg"
+storage_account_name = "tfappdevmil"
+container_name = "terraform-state"
+key = "mil-preset.tfstate"
diff --git a/src/main/terraform/identity/env/dev/terraform.tfvars b/src/main/terraform/identity/env/dev/terraform.tfvars
new file mode 100644
index 0000000..f0bb966
--- /dev/null
+++ b/src/main/terraform/identity/env/dev/terraform.tfvars
@@ -0,0 +1,12 @@
+prefix = "mil"
+env_short = "d"
+env = "dev"
+
+github_repository_environment_cd = {
+ protected_branches = false
+ custom_branch_policies = true
+ reviewers_teams = [
+ "infrastructure-admins",
+ "mil-team",
+ ]
+}
diff --git a/src/main/terraform/identity/env/prod/backend.ini b/src/main/terraform/identity/env/prod/backend.ini
new file mode 100644
index 0000000..bc561a3
--- /dev/null
+++ b/src/main/terraform/identity/env/prod/backend.ini
@@ -0,0 +1 @@
+subscription=prod-mil
diff --git a/src/main/terraform/identity/env/prod/backend.tfvars b/src/main/terraform/identity/env/prod/backend.tfvars
new file mode 100644
index 0000000..2d38bfa
--- /dev/null
+++ b/src/main/terraform/identity/env/prod/backend.tfvars
@@ -0,0 +1,4 @@
+resource_group_name = "terraform-state-rg"
+storage_account_name = "tfappprodmil"
+container_name = "terraform-state"
+key = "mil-preset.tfstate"
diff --git a/src/main/terraform/identity/env/prod/terraform.tfvars b/src/main/terraform/identity/env/prod/terraform.tfvars
new file mode 100644
index 0000000..5a0f4c1
--- /dev/null
+++ b/src/main/terraform/identity/env/prod/terraform.tfvars
@@ -0,0 +1,46 @@
+prefix = "mil"
+env_short = "p"
+env = "prod"
+
+environment_ci_roles = {
+ subscription = [
+ "Reader",
+ "Reader and Data Access",
+ "Storage Blob Data Reader",
+ "Storage File Data SMB Share Reader",
+ "Storage Queue Data Reader",
+ "Storage Table Data Reader",
+ "PagoPA Export Deployments Template",
+ "Key Vault Secrets User",
+ "DocumentDB Account Contributor",
+ "API Management Service Contributor",
+ ]
+}
+
+github_repository_environment_ci = {
+ protected_branches = false
+ custom_branch_policies = true
+}
+
+environment_cd_roles = {
+ subscription = [
+ "Contributor",
+ "Storage Account Contributor",
+ "Storage Blob Data Contributor",
+ "Storage File Data SMB Share Contributor",
+ "Storage Queue Data Contributor",
+ "Storage Table Data Contributor",
+ "Key Vault Certificates Officer",
+ "Key Vault Crypto Officer",
+ "Key Vault Secrets Officer",
+ ]
+}
+
+github_repository_environment_cd = {
+ protected_branches = true
+ custom_branch_policies = false
+ reviewers_teams = [
+ "infrastructure-admins",
+ "mil-team",
+ ]
+}
diff --git a/src/main/terraform/identity/env/uat/backend.ini b/src/main/terraform/identity/env/uat/backend.ini
new file mode 100644
index 0000000..0e4a6de
--- /dev/null
+++ b/src/main/terraform/identity/env/uat/backend.ini
@@ -0,0 +1 @@
+subscription=uat-mil
diff --git a/src/main/terraform/identity/env/uat/backend.tfvars b/src/main/terraform/identity/env/uat/backend.tfvars
new file mode 100644
index 0000000..7fdd0a1
--- /dev/null
+++ b/src/main/terraform/identity/env/uat/backend.tfvars
@@ -0,0 +1,4 @@
+resource_group_name = "terraform-state-rg"
+storage_account_name = "tfappuatmil"
+container_name = "terraform-state"
+key = "mil-preset.tfstate"
diff --git a/src/main/terraform/identity/env/uat/terraform.tfvars b/src/main/terraform/identity/env/uat/terraform.tfvars
new file mode 100644
index 0000000..0a95cd7
--- /dev/null
+++ b/src/main/terraform/identity/env/uat/terraform.tfvars
@@ -0,0 +1,46 @@
+prefix = "mil"
+env_short = "u"
+env = "uat"
+
+environment_ci_roles = {
+ subscription = [
+ "Reader",
+ "Reader and Data Access",
+ "Storage Blob Data Reader",
+ "Storage File Data SMB Share Reader",
+ "Storage Queue Data Reader",
+ "Storage Table Data Reader",
+ "PagoPA Export Deployments Template",
+ "Key Vault Secrets User",
+ "DocumentDB Account Contributor",
+ "API Management Service Contributor",
+ ]
+}
+
+github_repository_environment_ci = {
+ protected_branches = false
+ custom_branch_policies = true
+}
+
+environment_cd_roles = {
+ subscription = [
+ "Contributor",
+ "Storage Account Contributor",
+ "Storage Blob Data Contributor",
+ "Storage File Data SMB Share Contributor",
+ "Storage Queue Data Contributor",
+ "Storage Table Data Contributor",
+ "Key Vault Certificates Officer",
+ "Key Vault Crypto Officer",
+ "Key Vault Secrets Officer",
+ ]
+}
+
+github_repository_environment_cd = {
+ protected_branches = false
+ custom_branch_policies = true
+ reviewers_teams = [
+ "infrastructure-admins",
+ "mil-team",
+ ]
+}
diff --git a/src/main/terraform/identity/terraform.sh b/src/main/terraform/identity/terraform.sh
new file mode 100755
index 0000000..d14425b
--- /dev/null
+++ b/src/main/terraform/identity/terraform.sh
@@ -0,0 +1,64 @@
+#!/bin/bash
+
+set -e
+
+ACTION=$1
+ENV=$2
+shift 2
+other="$@"
+# must be subscription in lower case
+subscription=""
+BACKEND_CONFIG_PATH="./env/${ENV}/backend.tfvars"
+
+if [ -z "$ACTION" ]; then
+ echo "[ERROR] Missed ACTION: init, apply, plan"
+ exit 0
+fi
+
+if [ -z "$ENV" ]; then
+ echo "[ERROR] ENV should be: dev, uat or prod."
+ exit 0
+fi
+
+#
+# 🏁 Source & init shell
+#
+
+# shellcheck source=/dev/null
+source "./env/$ENV/backend.ini"
+
+# Subscription set
+az account set -s "${subscription}"
+
+# if using cygwin, we have to transcode the WORKDIR
+if [[ $WORKDIR == /cygdrive/* ]]; then
+ WORKDIR=$(cygpath -w $WORKDIR)
+fi
+
+# Helm
+export HELM_DEBUG=1
+export TF_VAR_github_token="${GITHUB_TOKEN}"
+
+#
+# 🌎 Terraform
+#
+if echo "init plan apply refresh import output state taint destroy" | grep -w "$ACTION" > /dev/null; then
+ if [ "$ACTION" = "init" ]; then
+ echo "[INFO] init tf on ENV: ${ENV}"
+ terraform "$ACTION" -backend-config="${BACKEND_CONFIG_PATH}" $other
+ elif [ "$ACTION" = "output" ] || [ "$ACTION" = "state" ] || [ "$ACTION" = "taint" ]; then
+ # init terraform backend
+ terraform init -reconfigure -backend-config="${BACKEND_CONFIG_PATH}"
+ terraform "$ACTION" $other
+ else
+ # init terraform backend
+ echo "[INFO] init tf on ENV: ${ENV}"
+ terraform init -reconfigure -backend-config="${BACKEND_CONFIG_PATH}"
+
+ echo "[INFO] run tf with: ${ACTION} on ENV: ${ENV} and other: >${other}<"
+ terraform "${ACTION}" -var-file="./env/${ENV}/terraform.tfvars" -compact-warnings $other
+ fi
+else
+ echo "[ERROR] ACTION not allowed."
+ exit 1
+fi