diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 156c13af..f63bdd96 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -73,7 +73,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
- uses: github/codeql-action/init@1b1aada464948af03b950897e5eb522f92603cc2 # v2.227
+ uses: github/codeql-action/init@d39d31e687223d841ef683f52467bd88e9b21c14 # v2.227
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -87,7 +87,7 @@ jobs:
# Automates dependency installation for Python, Ruby, and JavaScript, optimizing the CodeQL analysis setup.
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
- uses: github/codeql-action/autobuild@1b1aada464948af03b950897e5eb522f92603cc2 # v2.227
+ uses: github/codeql-action/autobuild@d39d31e687223d841ef683f52467bd88e9b21c14 # v2.227
# âšī¸ Command-line programs to run using the OS shell.
# đ See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
@@ -100,6 +100,6 @@ jobs:
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@1b1aada464948af03b950897e5eb522f92603cc2 # v2.227
+ uses: github/codeql-action/analyze@d39d31e687223d841ef683f52467bd88e9b21c14 # v2.227
with:
category: "/language:${{matrix.language}}"
diff --git a/.github/workflows/credential-expiry-app-docker.yml b/.github/workflows/credential-expiry-app-docker.yml
index ee62b8b5..db78b27c 100644
--- a/.github/workflows/credential-expiry-app-docker.yml
+++ b/.github/workflows/credential-expiry-app-docker.yml
@@ -55,7 +55,7 @@ jobs:
password: ${{ secrets.DOCKER_HUB_TOKEN }}
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@2b51285047da1547ffb1b2203d8be4c0af6b1f20 # v3.2.0
+ uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0
- name: Set up QEMU
uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0
diff --git a/.github/workflows/dependencies.yml b/.github/workflows/dependencies.yml
index 2f242add..e79e53ba 100644
--- a/.github/workflows/dependencies.yml
+++ b/.github/workflows/dependencies.yml
@@ -84,7 +84,7 @@ jobs:
if: steps.dependencies-changed.outputs.changed == 'true'
- name: Upload DEPENDENCIES file
- uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
+ uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
path: DEPENDENCIES
if: steps.dependencies-changed.outputs.changed == 'true'
diff --git a/.github/workflows/kics.yml b/.github/workflows/kics.yml
index 6e710097..fe5ffb61 100644
--- a/.github/workflows/kics.yml
+++ b/.github/workflows/kics.yml
@@ -69,7 +69,7 @@ jobs:
# Upload findings to GitHub Advanced Security Dashboard
- name: Upload SARIF file for GitHub Advanced Security Dashboard
if: always()
- uses: github/codeql-action/upload-sarif@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9
+ uses: github/codeql-action/upload-sarif@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3
with:
sarif_file: kicsResults/results.sarif
diff --git a/.github/workflows/lint-pull-request.yml b/.github/workflows/lint-pull-request.yml
index 9d5e2c49..0100ec1c 100644
--- a/.github/workflows/lint-pull-request.yml
+++ b/.github/workflows/lint-pull-request.yml
@@ -31,7 +31,7 @@ jobs:
name: Validate PR title
runs-on: ubuntu-latest
steps:
- - uses: amannn/action-semantic-pull-request@e9fabac35e210fea40ca5b14c0da95a099eff26f # v5.4.0
+ - uses: amannn/action-semantic-pull-request@cfb60706e18bc85e8aec535e3c577abe8f70378e # v5.5.2
id: lint_pr_title
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/migrations-docker.yml b/.github/workflows/migrations-docker.yml
index 27ae0371..1ee07010 100644
--- a/.github/workflows/migrations-docker.yml
+++ b/.github/workflows/migrations-docker.yml
@@ -56,7 +56,7 @@ jobs:
password: ${{ secrets.DOCKER_HUB_TOKEN }}
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@2b51285047da1547ffb1b2203d8be4c0af6b1f20 # v3.2.0
+ uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0
- name: Set up QEMU
uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0
diff --git a/.github/workflows/owasp-zap.yml b/.github/workflows/owasp-zap.yml
index 10940774..622fd001 100644
--- a/.github/workflows/owasp-zap.yml
+++ b/.github/workflows/owasp-zap.yml
@@ -56,7 +56,7 @@ jobs:
version: v0.20.0
- name: Set up Helm
- uses: azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 # v3.5
+ uses: azure/setup-helm@b7246b12e77f7134dc2d460a3d5bad15bbe29390 # v4.1.0
with:
version: v3.5.0
@@ -144,7 +144,7 @@ jobs:
- name: Upload HTML report
if: success() || failure()
- uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
+ uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: ZAP scan report
path: ./report_html.html
diff --git a/.github/workflows/processes-worker-docker.yml b/.github/workflows/processes-worker-docker.yml
index d782edf0..13bb638b 100644
--- a/.github/workflows/processes-worker-docker.yml
+++ b/.github/workflows/processes-worker-docker.yml
@@ -55,7 +55,7 @@ jobs:
password: ${{ secrets.DOCKER_HUB_TOKEN }}
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@2b51285047da1547ffb1b2203d8be4c0af6b1f20 # v3.2.0
+ uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0
- name: Set up QEMU
uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 7a7bc170..9733d56b 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -117,7 +117,7 @@ jobs:
password: ${{ secrets.DOCKER_HUB_TOKEN }}
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@2b51285047da1547ffb1b2203d8be4c0af6b1f20 # v3.2.0
+ uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0
- name: Set up QEMU
uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0
diff --git a/.github/workflows/release_candidate.yml b/.github/workflows/release_candidate.yml
index aec65337..d37b1f8c 100644
--- a/.github/workflows/release_candidate.yml
+++ b/.github/workflows/release_candidate.yml
@@ -59,7 +59,7 @@ jobs:
password: ${{ secrets.DOCKER_HUB_TOKEN }}
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@2b51285047da1547ffb1b2203d8be4c0af6b1f20 # v3.2.0
+ uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0
- name: Set up QEMU
uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0
diff --git a/.github/workflows/service-docker.yml b/.github/workflows/service-docker.yml
index 76f01b1e..409190e1 100644
--- a/.github/workflows/service-docker.yml
+++ b/.github/workflows/service-docker.yml
@@ -55,7 +55,7 @@ jobs:
password: ${{ secrets.DOCKER_HUB_TOKEN }}
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@2b51285047da1547ffb1b2203d8be4c0af6b1f20 # v3.2.0
+ uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0
- name: Set up QEMU
uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0
diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml
index 15562a3f..da6edae3 100644
--- a/.github/workflows/sonarcloud.yml
+++ b/.github/workflows/sonarcloud.yml
@@ -36,7 +36,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- dotnet-version: ['7.0']
+ dotnet-version: ['8.0']
steps:
- name: Set up JDK 17
diff --git a/.github/workflows/trivy-dev.yml b/.github/workflows/trivy-dev.yml
index da715a5b..58f50ed1 100644
--- a/.github/workflows/trivy-dev.yml
+++ b/.github/workflows/trivy-dev.yml
@@ -63,7 +63,7 @@ jobs:
timeout: "3600s"
- name: Upload Trivy scan results to GitHub Security tab
- uses: github/codeql-action/upload-sarif@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9
+ uses: github/codeql-action/upload-sarif@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3
if: always()
with:
sarif_file: "trivy-results1.sarif"
@@ -96,7 +96,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9
+ uses: github/codeql-action/upload-sarif@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3
with:
sarif_file: "trivy-results3.sarif"
@@ -129,7 +129,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9
+ uses: github/codeql-action/upload-sarif@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3
with:
sarif_file: "trivy-results9.sarif"
@@ -162,7 +162,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9
+ uses: github/codeql-action/upload-sarif@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3
with:
sarif_file: "trivy-results9.sarif"
@@ -195,7 +195,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9
+ uses: github/codeql-action/upload-sarif@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3
with:
sarif_file: "trivy-results9.sarif"
\ No newline at end of file
diff --git a/.github/workflows/trivy.yml b/.github/workflows/trivy.yml
index 1688ba06..cb1ecde1 100644
--- a/.github/workflows/trivy.yml
+++ b/.github/workflows/trivy.yml
@@ -64,7 +64,7 @@ jobs:
timeout: "3600s"
- name: Upload Trivy scan results to GitHub Security tab
- uses: github/codeql-action/upload-sarif@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9
+ uses: github/codeql-action/upload-sarif@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3
if: always()
with:
sarif_file: "trivy-results1.sarif"
@@ -97,7 +97,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9
+ uses: github/codeql-action/upload-sarif@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3
with:
sarif_file: "trivy-results3.sarif"
@@ -129,7 +129,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9
+ uses: github/codeql-action/upload-sarif@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3
with:
sarif_file: "trivy-results9.sarif"
@@ -161,7 +161,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9
+ uses: github/codeql-action/upload-sarif@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3
with:
sarif_file: "trivy-results9.sarif"
@@ -193,7 +193,7 @@ jobs:
- name: Upload Trivy scan results to GitHub Security tab
if: always()
- uses: github/codeql-action/upload-sarif@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9
+ uses: github/codeql-action/upload-sarif@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3
with:
sarif_file: "trivy-results9.sarif"
\ No newline at end of file
diff --git a/.github/workflows/unit.tests-formatting.yml b/.github/workflows/unit.tests-formatting.yml
index a778917f..8d2e8aa6 100644
--- a/.github/workflows/unit.tests-formatting.yml
+++ b/.github/workflows/unit.tests-formatting.yml
@@ -36,7 +36,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- dotnet-version: ['7.0']
+ dotnet-version: ['8.0']
steps:
- uses: actions/checkout@v4
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d360e4b8..7394d46d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,25 @@
# Changelog
+## [1.0.0-rc.3](https://github.com/eclipse-tractusx/ssi-credential-issuer/compare/v1.0.0-rc.1...v1.0.0-rc.3) (2024-04-30)
+
+
+### Features
+
+* **revocation:** add endpoints to revoke credentials ([#43](https://github.com/eclipse-tractusx/ssi-credential-issuer/issues/43)) ([dc9c70d](https://github.com/eclipse-tractusx/ssi-credential-issuer/commit/dc9c70da4c0bcba979c71b5c636526c13041c774))
+* **ssi:** adjust framework creation endpoint ([#70](https://github.com/eclipse-tractusx/ssi-credential-issuer/issues/70)) ([2d06fe6](https://github.com/eclipse-tractusx/ssi-credential-issuer/commit/2d06fe65365b644a209900a464c6823cb0db372e))
+
+
+### Bug Fixes
+
+* adjust bpn schema ([#84](https://github.com/eclipse-tractusx/ssi-credential-issuer/issues/84)) ([e32ec3a](https://github.com/eclipse-tractusx/ssi-credential-issuer/commit/e32ec3a47e94133294a8e7035f81e5d8fbe305e3))
+* **callback:** set the correct base address for the callback ([#83](https://github.com/eclipse-tractusx/ssi-credential-issuer/issues/83)) ([9f79c54](https://github.com/eclipse-tractusx/ssi-credential-issuer/commit/9f79c541873c951eb6335aba6b5b1adda0ee25e9)), closes [#71](https://github.com/eclipse-tractusx/ssi-credential-issuer/issues/71)
+* **ssi:** adjust schemas ([#72](https://github.com/eclipse-tractusx/ssi-credential-issuer/issues/72)) ([ba63179](https://github.com/eclipse-tractusx/ssi-credential-issuer/commit/ba63179300aa835bcb0f0d5c874c927ea48c89c9))
+
+
+### Miscellaneous Chores
+
+* release 1.0.0-rc.3 ([1d3132c](https://github.com/eclipse-tractusx/ssi-credential-issuer/commit/1d3132c4ddb34db4f4c71613f6360906c4fb8664))
+
## [1.0.0-rc.1](https://github.com/eclipse-tractusx/ssi-credential-issuer/compare/v1.0.0-rc.1...v1.0.0-rc.1) (2024-04-15)
diff --git a/DEPENDENCIES b/DEPENDENCIES
index fcae7a8a..08405a02 100644
--- a/DEPENDENCIES
+++ b/DEPENDENCIES
@@ -1,42 +1,39 @@
-nuget/nuget/-/AutoFixture.AutoFakeItEasy/4.18.0, MIT, approved, #10064
-nuget/nuget/-/AutoFixture.Xunit/4.18.0, MIT, approved, #10082
-nuget/nuget/-/AutoFixture/4.18.0, MIT, approved, #10057
+nuget/nuget/-/AutoFixture.AutoFakeItEasy/4.18.1, MIT, approved, #10064
+nuget/nuget/-/AutoFixture/4.18.1, MIT, approved, #10057
nuget/nuget/-/Castle.Core/4.3.1, Apache-2.0, approved, clearlydefined
-nuget/nuget/-/EFCore.NamingConventions/7.0.2, Apache-2.0, approved, #10067
+nuget/nuget/-/EFCore.NamingConventions/8.0.3, Apache-2.0, approved, #13983
nuget/nuget/-/FakeItEasy/7.4.0, MIT, approved, #10080
nuget/nuget/-/Fare/2.1.1, MIT, approved, clearlydefined
nuget/nuget/-/FluentAssertions/6.11.0, Apache-2.0 AND MIT, approved, #10061
-nuget/nuget/-/Flurl.Http.Signed/3.2.4, MIT, approved, #3503
nuget/nuget/-/Flurl.Signed/3.0.6, MIT, approved, #3501
nuget/nuget/-/Humanizer.Core/2.14.1, MIT, approved, #10060
nuget/nuget/-/Json.More.Net/2.0.0, MIT, approved, clearlydefined
nuget/nuget/-/JsonPointer.Net/4.0.0, MIT, approved, clearlydefined
-nuget/nuget/-/JsonSchema.Net/6.0.3, MIT AND OFL-1.1 AND CC-BY-SA-4.0, approved, #13370
-nuget/nuget/-/Laraue.EfCoreTriggers.Common/7.1.0, MIT, approved, #10247
-nuget/nuget/-/Laraue.EfCoreTriggers.PostgreSql/7.1.0, MIT, approved, #10248
+nuget/nuget/-/JsonSchema.Net/6.1.2, MIT AND OFL-1.1 AND CC-BY-SA-4.0, approved, #14591
+nuget/nuget/-/Laraue.EfCoreTriggers.Common/8.0.3, MIT, approved, #13968
+nuget/nuget/-/Laraue.EfCoreTriggers.PostgreSql/8.0.3, MIT, approved, #13984
nuget/nuget/-/Mono.TextTemplating/2.2.1, MIT, approved, clearlydefined
-nuget/nuget/-/Newtonsoft.Json/12.0.2, MIT AND BSD-3-Clause, approved, #11114
nuget/nuget/-/Newtonsoft.Json/13.0.1, MIT AND BSD-3-Clause, approved, #3266
nuget/nuget/-/Newtonsoft.Json/13.0.3, MIT AND BSD-3-Clause, approved, #3266
-nuget/nuget/-/Npgsql.EntityFrameworkCore.PostgreSQL/7.0.11, PostgreSQL AND MIT AND Apache-2.0, approved, #10081
-nuget/nuget/-/Npgsql/7.0.6, PostgreSQL, approved, #10062
+nuget/nuget/-/Npgsql.EntityFrameworkCore.PostgreSQL/8.0.2, PostgreSQL AND MIT, approved, #13972
+nuget/nuget/-/Npgsql/8.0.2, PostgreSQL, approved, #13963
nuget/nuget/-/PasswordGenerator/2.1.0, MIT, approved, #3192
nuget/nuget/-/Portable.BouncyCastle/1.9.0, MIT, approved, clearlydefined
nuget/nuget/-/SSH.NET/2020.0.2, MIT AND ISC AND LicenseRef-Public-domain AND (MIT AND MS-PL), approved, #10073
-nuget/nuget/-/Serilog.AspNetCore/7.0.0, Apache-2.0 AND MIT, approved, #10084
+nuget/nuget/-/Serilog.AspNetCore/8.0.1, Apache-2.0 AND MIT, approved, #13967
nuget/nuget/-/Serilog.Enrichers.CorrelationId/3.0.1, MIT, approved, clearlydefined
-nuget/nuget/-/Serilog.Enrichers.Environment/2.2.0, Apache-2.0, approved, clearlydefined
+nuget/nuget/-/Serilog.Enrichers.Environment/2.3.0, Apache-2.0, approved, #13959
nuget/nuget/-/Serilog.Enrichers.Process/2.0.2, Apache-2.0, approved, clearlydefined
nuget/nuget/-/Serilog.Enrichers.Sensitive/1.7.3, MIT, approved, clearlydefined
nuget/nuget/-/Serilog.Enrichers.Thread/3.1.0, Apache-2.0, approved, clearlydefined
-nuget/nuget/-/Serilog.Extensions.Hosting/7.0.0, Apache-2.0, approved, #10078
-nuget/nuget/-/Serilog.Extensions.Logging/7.0.0, Apache-2.0, approved, #10070
-nuget/nuget/-/Serilog.Formatting.Compact/1.1.0, Apache-2.0, approved, #11115
-nuget/nuget/-/Serilog.Settings.Configuration/7.0.0, Apache-2.0, approved, #10069
-nuget/nuget/-/Serilog.Sinks.Console/4.1.0, Apache-2.0, approved, #8434
+nuget/nuget/-/Serilog.Extensions.Hosting/8.0.0, Apache-2.0, approved, #13962
+nuget/nuget/-/Serilog.Extensions.Logging/8.0.0, Apache-2.0, approved, #13985
+nuget/nuget/-/Serilog.Formatting.Compact/2.0.0, Apache-2.0, approved, #13981
+nuget/nuget/-/Serilog.Settings.Configuration/8.0.0, Apache-2.0, approved, #13988
+nuget/nuget/-/Serilog.Sinks.Console/5.0.1, Apache-2.0, approved, #13980
nuget/nuget/-/Serilog.Sinks.Debug/2.0.0, Apache-2.0, approved, clearlydefined
nuget/nuget/-/Serilog.Sinks.File/5.0.0, Apache-2.0, approved, #11116
-nuget/nuget/-/Serilog/3.0.1, Apache-2.0, approved, #10063
+nuget/nuget/-/Serilog/3.1.1, Apache-2.0, approved, #13978
nuget/nuget/-/SharpZipLib/1.4.2, MIT AND GFDL-1.3-or-later AND (Apache-2.0 AND MIT) AND WTFPL AND bzip2-1.0.6 AND LicenseRef-Permissive-license-with-conditions AND LicenseRef-Permission-Notice, approved, #10058
nuget/nuget/-/SshNet.Security.Cryptography/1.3.0, MIT, approved, clearlydefined
nuget/nuget/-/Swashbuckle.AspNetCore.Swagger/6.5.0, MIT AND Apache-2.0, approved, #7160
@@ -46,7 +43,6 @@ nuget/nuget/-/Swashbuckle.AspNetCore/6.5.0, MIT AND Apache-2.0, approved, #7159
nuget/nuget/-/Testcontainers.PostgreSql/3.4.0, MIT, approved, #10056
nuget/nuget/-/Testcontainers/3.4.0, MIT, approved, #10083
nuget/nuget/-/Xunit.Extensions.AssemblyFixture/2.4.1, MIT, approved, #3502
-nuget/nuget/-/coverlet.collector/6.0.0, MIT, approved, #10075
nuget/nuget/-/xunit.abstractions/2.0.3, Apache-2.0, approved, clearlydefined
nuget/nuget/-/xunit.analyzers/1.2.0, Apache-2.0 AND MIT, approved, #10068
nuget/nuget/-/xunit.assert/2.5.0, Apache-2.0 AND MIT, approved, #10071
diff --git a/README.md b/README.md
index a1e81d58..9e60314f 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@ This repository contains the backend code for the SSI Credential Issuer written
## How to build and run
-Install the [.NET 7.0 SDK](https://www.microsoft.com/net/download).
+Install the [.NET 8.0 SDK](https://www.microsoft.com/net/download).
Run the following command from the CLI:
diff --git a/charts/ssi-credential-issuer/Chart.yaml b/charts/ssi-credential-issuer/Chart.yaml
index 1cd37b2d..c56664c4 100644
--- a/charts/ssi-credential-issuer/Chart.yaml
+++ b/charts/ssi-credential-issuer/Chart.yaml
@@ -20,8 +20,8 @@
apiVersion: v2
name: ssi-credential-issuer
type: application
-version: 1.0.0-rc.2
-appVersion: 1.0.0-rc.2
+version: 1.0.0-rc.3
+appVersion: 1.0.0-rc.3
description: Helm chart for SSI Credential Issuer
home: https://github.com/eclipse-tractusx/ssi-credential-issuer
dependencies:
diff --git a/charts/ssi-credential-issuer/README.md b/charts/ssi-credential-issuer/README.md
index 4ff2e5f2..7f7ab734 100644
--- a/charts/ssi-credential-issuer/README.md
+++ b/charts/ssi-credential-issuer/README.md
@@ -27,7 +27,7 @@ To use the helm chart as a dependency:
dependencies:
- name: ssi-credential-issuer
repository: https://eclipse-tractusx.github.io/charts/dev
- version: 1.0.0-rc.2
+ version: 1.0.0-rc.3
```
## Requirements
diff --git a/charts/ssi-credential-issuer/templates/cronjob-issuer-processes.yaml b/charts/ssi-credential-issuer/templates/cronjob-issuer-processes.yaml
index 46d92ca3..816d15ce 100644
--- a/charts/ssi-credential-issuer/templates/cronjob-issuer-processes.yaml
+++ b/charts/ssi-credential-issuer/templates/cronjob-issuer-processes.yaml
@@ -123,7 +123,7 @@ spec:
value: "{{ .Values.processesworker.wallet.scope }}"
- name: "WALLET__USERNAME"
value: "empty"
- - name: "WALLET__ENCRYPTIONCONFIG__ENCRYPTIONCONFIGINDEX"
+ - name: "WALLET__ENCRYPTIONCONFIGINDEX"
value: "{{ .Values.processesworker.wallet.encryptionConfigIndex }}"
- name: "WALLET__ENCRYPTIONCONFIGS__0__INDEX"
value: "{{ .Values.processesworker.wallet.encryptionConfigs.index0.index}}"
diff --git a/charts/ssi-credential-issuer/templates/deployment-issuer-service.yaml b/charts/ssi-credential-issuer/templates/deployment-issuer-service.yaml
index 2bb435ef..7266260c 100644
--- a/charts/ssi-credential-issuer/templates/deployment-issuer-service.yaml
+++ b/charts/ssi-credential-issuer/templates/deployment-issuer-service.yaml
@@ -131,6 +131,38 @@ spec:
secretKeyRef:
name: "{{ template "issuer.secretName" . }}"
key: "credential-encryption-key0"
+ - name: "WALLET__BASEADDRESS"
+ value: "{{ .Values.walletAddress }}"
+ - name: "WALLET__CLIENTID"
+ value: "{{ .Values.processesworker.wallet.clientId }}"
+ - name: "WALLET__CLIENTSECRET"
+ valueFrom:
+ secretKeyRef:
+ name: "{{ template "issuer.secretName" . }}"
+ key: "wallet-client-secret"
+ - name: "WALLET__GRANTTYPE"
+ value: "{{ .Values.processesworker.wallet.grantType }}"
+ - name: "WALLET__TOKENADDRESS"
+ value: "{{ .Values.walletTokenAddress }}"
+ - name: "WALLET__PASSWORD"
+ value: "empty"
+ - name: "WALLET__SCOPE"
+ value: "{{ .Values.processesworker.wallet.scope }}"
+ - name: "WALLET__USERNAME"
+ value: "empty"
+ - name: "WALLET__ENCRYPTIONCONFIG__ENCRYPTIONCONFIGINDEX"
+ value: "{{ .Values.processesworker.wallet.encryptionConfigIndex }}"
+ - name: "WALLET__ENCRYPTIONCONFIGS__0__INDEX"
+ value: "{{ .Values.processesworker.wallet.encryptionConfigs.index0.index}}"
+ - name: "WALLET__ENCRYPTIONCONFIGS__0__CIPHERMODE"
+ value: "{{ .Values.processesworker.wallet.encryptionConfigs.index0.cipherMode}}"
+ - name: "WALLET__ENCRYPTIONCONFIGS__0__PADDINGMODE"
+ value: "{{ .Values.processesworker.wallet.encryptionConfigs.index0.paddingMode}}"
+ - name: "WALLET__ENCRYPTIONCONFIGS__0__ENCRYPTIONKEY"
+ valueFrom:
+ secretKeyRef:
+ name: "{{ template "issuer.secretName" . }}"
+ key: "process-wallet-encryption-key0"
ports:
- name: http
containerPort: {{ .Values.portContainer }}
diff --git a/consortia/argocd-app-templates/appsetup-int.yaml b/consortia/argocd-app-templates/appsetup-int.yaml
index f1695f2b..b1549b76 100644
--- a/consortia/argocd-app-templates/appsetup-int.yaml
+++ b/consortia/argocd-app-templates/appsetup-int.yaml
@@ -28,7 +28,7 @@ spec:
source:
path: charts/ssi-credential-issuer
repoURL: 'https://github.com/eclipse-tractusx/ssi-credential-issuer.git'
- targetRevision: ssi-credential-issuer-1.0.0-rc.2
+ targetRevision: ssi-credential-issuer-1.0.0-rc.3
plugin:
env:
- name: AVP_SECRET
diff --git a/consortia/argocd-app-templates/appsetup-stable.yaml b/consortia/argocd-app-templates/appsetup-stable.yaml
index 33e28fc4..86d656ca 100644
--- a/consortia/argocd-app-templates/appsetup-stable.yaml
+++ b/consortia/argocd-app-templates/appsetup-stable.yaml
@@ -29,7 +29,7 @@ spec:
source:
path: ''
repoURL: 'https://eclipse-tractusx.github.io/charts/dev'
- targetRevision: ssi-credential-issuer-1.0.0-rc.2
+ targetRevision: ssi-credential-issuer-1.0.0-rc.3
plugin:
env:
- name: HELM_VALUES
diff --git a/consortia/environments/values-rc.yaml b/consortia/environments/values-rc.yaml
index 27176150..e8e66e94 100644
--- a/consortia/environments/values-rc.yaml
+++ b/consortia/environments/values-rc.yaml
@@ -88,7 +88,7 @@ credentialExpiry:
default: "Debug"
centralidp:
- address: "https://centralidp.dev.demo.catena-x.net"
+ address: "https://centralidp-rc.dev.demo.catena-x.net"
jwtBearerOptions:
tokenValidationParameters:
validAudience: "Cl24-CX-SSI-CredentialIssuer"
diff --git a/docker/Dockerfile-credential-expiry-app b/docker/Dockerfile-credential-expiry-app
index 7749fff2..cd0e954f 100644
--- a/docker/Dockerfile-credential-expiry-app
+++ b/docker/Dockerfile-credential-expiry-app
@@ -17,9 +17,9 @@
# SPDX-License-Identifier: Apache-2.0
###############################################################
-FROM mcr.microsoft.com/dotnet/runtime:7.0-alpine AS base
+FROM mcr.microsoft.com/dotnet/runtime:8.0-alpine AS base
-FROM mcr.microsoft.com/dotnet/sdk:7.0-alpine-amd64 AS publish
+FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine-amd64 AS publish
WORKDIR /
COPY LICENSE NOTICE.md DEPENDENCIES /
COPY src/ src/
diff --git a/docker/Dockerfile-credential-issuer-migrations b/docker/Dockerfile-credential-issuer-migrations
index c5fb1365..4ad007e7 100644
--- a/docker/Dockerfile-credential-issuer-migrations
+++ b/docker/Dockerfile-credential-issuer-migrations
@@ -17,9 +17,9 @@
# SPDX-License-Identifier: Apache-2.0
###############################################################
-FROM mcr.microsoft.com/dotnet/runtime:7.0-alpine AS base
+FROM mcr.microsoft.com/dotnet/runtime:8.0-alpine AS base
-FROM mcr.microsoft.com/dotnet/sdk:7.0-alpine-amd64 AS publish
+FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine-amd64 AS publish
WORKDIR /
COPY LICENSE NOTICE.md DEPENDENCIES /
COPY /src/database /src/database
diff --git a/docker/Dockerfile-credential-issuer-processes-worker b/docker/Dockerfile-credential-issuer-processes-worker
index d61ff7a7..5e637206 100644
--- a/docker/Dockerfile-credential-issuer-processes-worker
+++ b/docker/Dockerfile-credential-issuer-processes-worker
@@ -17,9 +17,9 @@
# SPDX-License-Identifier: Apache-2.0
###############################################################
-FROM mcr.microsoft.com/dotnet/runtime:7.0-alpine AS base
+FROM mcr.microsoft.com/dotnet/runtime:8.0-alpine AS base
-FROM mcr.microsoft.com/dotnet/sdk:7.0-alpine-amd64 AS publish
+FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine-amd64 AS publish
WORKDIR /
COPY LICENSE NOTICE.md DEPENDENCIES /
COPY src/ src/
diff --git a/docker/Dockerfile-credential-issuer-service b/docker/Dockerfile-credential-issuer-service
index 6747b1e0..37470114 100644
--- a/docker/Dockerfile-credential-issuer-service
+++ b/docker/Dockerfile-credential-issuer-service
@@ -17,9 +17,9 @@
# SPDX-License-Identifier: Apache-2.0
###############################################################
-FROM mcr.microsoft.com/dotnet/aspnet:7.0-alpine AS base
+FROM mcr.microsoft.com/dotnet/aspnet:8.0-alpine AS base
-FROM mcr.microsoft.com/dotnet/sdk:7.0-alpine-amd64 AS publish
+FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine-amd64 AS publish
WORKDIR /
COPY LICENSE NOTICE.md DEPENDENCIES /
COPY src/ src/
diff --git a/docker/notice-credential-expiry-app.md b/docker/notice-credential-expiry-app.md
index 2273a4a3..b1b48184 100644
--- a/docker/notice-credential-expiry-app.md
+++ b/docker/notice-credential-expiry-app.md
@@ -13,7 +13,7 @@ __Credential Expiry App__
__Used base images__
-- Dockerfile: [mcr.microsoft.com/dotnet/runtime:7.0-alpine](https://github.com/dotnet/dotnet-docker/blob/main/src/runtime/7.0/alpine3.19/amd64/Dockerfile)
+- Dockerfile: [mcr.microsoft.com/dotnet/runtime:8.0-alpine](https://github.com/dotnet/dotnet-docker/blob/main/src/runtime/8.0/alpine3.19/amd64/Dockerfile)
- GitHub project: [https://github.com/dotnet/dotnet-docker](https://github.com/dotnet/dotnet-docker)
- DockerHub: [https://hub.docker.com/_/microsoft-dotnet-runtime](https://hub.docker.com/_/microsoft-dotnet-runtime)
diff --git a/docker/notice-credential-issuer-migrations.md b/docker/notice-credential-issuer-migrations.md
index 384c6a01..d3c54858 100644
--- a/docker/notice-credential-issuer-migrations.md
+++ b/docker/notice-credential-issuer-migrations.md
@@ -13,7 +13,7 @@ __Credential Issuer Migrations__
__Used base images__
-- Dockerfile: [mcr.microsoft.com/dotnet/runtime:7.0-alpine](https://github.com/dotnet/dotnet-docker/blob/main/src/runtime/7.0/alpine3.19/amd64/Dockerfile)
+- Dockerfile: [mcr.microsoft.com/dotnet/runtime:8.0-alpine](https://github.com/dotnet/dotnet-docker/blob/main/src/runtime/8.0/alpine3.19/amd64/Dockerfile)
- GitHub project: [https://github.com/dotnet/dotnet-docker](https://github.com/dotnet/dotnet-docker)
- DockerHub: [https://hub.docker.com/_/microsoft-dotnet-runtime](https://hub.docker.com/_/microsoft-dotnet-runtime)
diff --git a/docker/notice-credential-issuer-processes-worker.md b/docker/notice-credential-issuer-processes-worker.md
index 11c091ed..a4684fc5 100644
--- a/docker/notice-credential-issuer-processes-worker.md
+++ b/docker/notice-credential-issuer-processes-worker.md
@@ -13,7 +13,7 @@ Issuer Checklist Worker__
__Used base images__
-- Dockerfile: [mcr.microsoft.com/dotnet/runtime:7.0-alpine](https://github.com/dotnet/dotnet-docker/blob/main/src/runtime/7.0/alpine3.17/amd64/Dockerfile)
+- Dockerfile: [mcr.microsoft.com/dotnet/runtime:8.0-alpine](https://github.com/dotnet/dotnet-docker/blob/main/src/runtime/8.0/alpine3.17/amd64/Dockerfile)
- GitHub project: [https://github.com/dotnet/dotnet-docker](https://github.com/dotnet/dotnet-docker)
- DockerHub: [https://hub.docker.com/_/microsoft-dotnet-runtime](https://hub.docker.com/_/microsoft-dotnet-runtime)
diff --git a/docker/notice-credential-issuer-service.md b/docker/notice-credential-issuer-service.md
index 138a4597..baa55a8e 100644
--- a/docker/notice-credential-issuer-service.md
+++ b/docker/notice-credential-issuer-service.md
@@ -13,7 +13,7 @@ __Policy Hub Service__
__Used base images__
-- Dockerfile: [mcr.microsoft.com/dotnet/aspnet:7.0-alpine](https://github.com/dotnet/dotnet-docker/blob/main/src/aspnet/7.0/alpine3.19/amd64/Dockerfile)
+- Dockerfile: [mcr.microsoft.com/dotnet/aspnet:8.0-alpine](https://github.com/dotnet/dotnet-docker/blob/main/src/aspnet/8.0/alpine3.19/amd64/Dockerfile)
- GitHub project: [https://github.com/dotnet/dotnet-docker](https://github.com/dotnet/dotnet-docker)
- DockerHub: [https://hub.docker.com/_/microsoft-dotnet-aspnet](https://hub.docker.com/_/microsoft-dotnet-aspnet)
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index ff5d3169..4f32e8a4 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -20,6 +20,6 @@
1.0.0
- rc.2
+ rc.3
diff --git a/src/credentials/SsiCredentialIssuer.Expiry.App/ExpiryCheckService.cs b/src/credentials/SsiCredentialIssuer.Expiry.App/ExpiryCheckService.cs
index 49649986..96460a25 100644
--- a/src/credentials/SsiCredentialIssuer.Expiry.App/ExpiryCheckService.cs
+++ b/src/credentials/SsiCredentialIssuer.Expiry.App/ExpiryCheckService.cs
@@ -80,6 +80,7 @@ public async Task ExecuteAsync(CancellationToken stoppingToken)
var now = dateTimeProvider.OffsetNow;
var companySsiDetailsRepository = repositories.GetInstance();
+ var processStepRepository = repositories.GetInstance();
var inactiveVcsToDelete = now.AddDays(-(_settings.InactiveVcsToDeleteInWeeks * 7));
var expiredVcsToDelete = now.AddMonths(-_settings.ExpiredVcsToDeleteInMonth);
@@ -87,8 +88,7 @@ public async Task ExecuteAsync(CancellationToken stoppingToken)
.GetExpiryData(now, inactiveVcsToDelete, expiredVcsToDelete);
await foreach (var credential in credentials.WithCancellation(stoppingToken).ConfigureAwait(false))
{
- await ProcessCredentials(credential, companySsiDetailsRepository, repositories, portalService,
- stoppingToken).ConfigureAwait(false);
+ await ProcessCredentials(credential, companySsiDetailsRepository, repositories, portalService, processStepRepository, stoppingToken).ConfigureAwait(ConfigureAwaitOptions.None);
}
}
catch (Exception ex)
@@ -104,6 +104,7 @@ private static async Task ProcessCredentials(
ICompanySsiDetailsRepository companySsiDetailsRepository,
IIssuerRepositories repositories,
IPortalService portalService,
+ IProcessStepRepository processStepRepository,
CancellationToken cancellationToken)
{
if (data.ScheduleData.IsVcToDelete)
@@ -112,7 +113,7 @@ private static async Task ProcessCredentials(
}
else if (data.ScheduleData.IsVcToDecline)
{
- await HandleDecline(data, companySsiDetailsRepository, portalService, cancellationToken).ConfigureAwait(false);
+ HandleDecline(data.Id, companySsiDetailsRepository, processStepRepository);
}
else
{
@@ -120,37 +121,24 @@ private static async Task ProcessCredentials(
}
// Saving here to make sure the each credential is handled by there own
- await repositories.SaveAsync().ConfigureAwait(false);
+ await repositories.SaveAsync().ConfigureAwait(ConfigureAwaitOptions.None);
}
- private static async ValueTask HandleDecline(
- CredentialExpiryData data,
+ private static void HandleDecline(
+ Guid credentialId,
ICompanySsiDetailsRepository companySsiDetailsRepository,
- IPortalService portalService,
- CancellationToken cancellationToken)
+ IProcessStepRepository processStepRepository)
{
- companySsiDetailsRepository.AttachAndModifyCompanySsiDetails(data.Id, c =>
+ var processId = processStepRepository.CreateProcess(ProcessTypeId.DECLINE_CREDENTIAL).Id;
+ processStepRepository.CreateProcessStep(ProcessStepTypeId.REVOKE_CREDENTIAL, ProcessStepStatusId.TODO, processId);
+ companySsiDetailsRepository.AttachAndModifyCompanySsiDetails(credentialId, c =>
{
- c.CompanySsiDetailStatusId = data.CompanySsiDetailStatusId;
+ c.ProcessId = null;
},
c =>
{
- c.CompanySsiDetailStatusId = CompanySsiDetailStatusId.INACTIVE;
+ c.ProcessId = processId;
});
-
- if (Guid.TryParse(data.RequesterId, out var requesterId))
- {
- var content = JsonSerializer.Serialize(new { Type = data.VerifiedCredentialTypeId, CredentialId = data.Id }, Options);
- await portalService.AddNotification(content, requesterId, NotificationTypeId.CREDENTIAL_REJECTED, cancellationToken).ConfigureAwait(false);
-
- var typeValue = data.VerifiedCredentialTypeId.GetEnumValue() ?? throw new UnexpectedConditionException($"VerifiedCredentialType {data.VerifiedCredentialTypeId} does not exists");
- var mailParameters = new Dictionary
- {
- { "requestName", typeValue },
- { "reason", "The credential is already expired" }
- };
- await portalService.TriggerMail("CredentialRejected", requesterId, mailParameters, cancellationToken).ConfigureAwait(false);
- }
}
private static async ValueTask HandleNotification(
@@ -189,16 +177,18 @@ private static async ValueTask HandleNotification(
if (Guid.TryParse(data.RequesterId, out var requesterId))
{
- await portalService.AddNotification(content, requesterId, NotificationTypeId.CREDENTIAL_EXPIRY, cancellationToken).ConfigureAwait(false);
- var typeValue = data.VerifiedCredentialTypeId.GetEnumValue() ?? throw new UnexpectedConditionException($"VerifiedCredentialType {data.VerifiedCredentialTypeId} does not exists");
- var mailParameters = new Dictionary
+ await portalService.AddNotification(content, requesterId, NotificationTypeId.CREDENTIAL_EXPIRY,
+ cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
+ var typeValue = data.VerifiedCredentialTypeId.GetEnumValue() ??
+ throw new UnexpectedConditionException(
+ $"VerifiedCredentialType {data.VerifiedCredentialTypeId} does not exists");
+ var mailParameters = new MailParameter[]
{
- { "typeId", typeValue },
- { "version", data.DetailVersion ?? "no version" },
- { "expiryDate", data.ExpiryDate?.ToString("dd MMMM yyyy") ?? throw new ConflictException("Expiry Date must be set here") }
+ new("typeId", typeValue), new("version", data.DetailVersion ?? "no version"),
+ new("expiryDate",
+ data.ExpiryDate?.ToString("dd MMMM yyyy") ?? throw new ConflictException("Expiry Date must be set here"))
};
-
- await portalService.TriggerMail("CredentialExpiry", requesterId, mailParameters, cancellationToken).ConfigureAwait(false);
+ await portalService.TriggerMail("CredentialExpiry", requesterId, mailParameters, cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
}
}
}
diff --git a/src/credentials/SsiCredentialIssuer.Expiry.App/Program.cs b/src/credentials/SsiCredentialIssuer.Expiry.App/Program.cs
index b6bdd269..b440d12f 100644
--- a/src/credentials/SsiCredentialIssuer.Expiry.App/Program.cs
+++ b/src/credentials/SsiCredentialIssuer.Expiry.App/Program.cs
@@ -57,7 +57,7 @@
Log.Information("Start processing");
var workerInstance = host.Services.GetRequiredService();
- await workerInstance.ExecuteAsync(tokenSource.Token).ConfigureAwait(false);
+ await workerInstance.ExecuteAsync(tokenSource.Token).ConfigureAwait(ConfigureAwaitOptions.None);
Log.Information("Execution finished shutting down");
}
catch (Exception ex) when (!ex.GetType().Name.Equals("StopTheHostException", StringComparison.Ordinal))
diff --git a/src/credentials/SsiCredentialIssuer.Expiry.App/SsiCredentialIssuer.Expiry.App.csproj b/src/credentials/SsiCredentialIssuer.Expiry.App/SsiCredentialIssuer.Expiry.App.csproj
index 45ffe379..29be6971 100644
--- a/src/credentials/SsiCredentialIssuer.Expiry.App/SsiCredentialIssuer.Expiry.App.csproj
+++ b/src/credentials/SsiCredentialIssuer.Expiry.App/SsiCredentialIssuer.Expiry.App.csproj
@@ -22,7 +22,7 @@
Org.Eclipse.TractusX.SsiCredentialIssuer.Expiry.App
Org.Eclipse.TractusX.SsiCredentialIssuer.Expiry.App
- net7.0
+ net8.0
enable
enable
37a22764-0a60-4c2e-a692-d59c4f14abbf
@@ -33,18 +33,18 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/src/database/SsiCredentialIssuer.DbAccess/Models/OwnedVerifiedCredentialData.cs b/src/database/SsiCredentialIssuer.DbAccess/Models/OwnedVerifiedCredentialData.cs
new file mode 100644
index 00000000..62d6b1ef
--- /dev/null
+++ b/src/database/SsiCredentialIssuer.DbAccess/Models/OwnedVerifiedCredentialData.cs
@@ -0,0 +1,29 @@
+/********************************************************************************
+ * Copyright (c) 2024 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Apache License, Version 2.0 which is available at
+ * https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ ********************************************************************************/
+
+using Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Enums;
+
+namespace Org.Eclipse.TractusX.SsiCredentialIssuer.DBAccess.Models;
+
+public record OwnedVerifiedCredentialData(
+ VerifiedCredentialTypeId CredentialType,
+ CompanySsiDetailStatusId Status,
+ DateTimeOffset? ExpiryDate,
+ string Authority
+);
diff --git a/src/database/SsiCredentialIssuer.DbAccess/Models/SsiApprovalData.cs b/src/database/SsiCredentialIssuer.DbAccess/Models/SsiApprovalData.cs
index 2180ec38..0daf4b1a 100644
--- a/src/database/SsiCredentialIssuer.DbAccess/Models/SsiApprovalData.cs
+++ b/src/database/SsiCredentialIssuer.DbAccess/Models/SsiApprovalData.cs
@@ -18,6 +18,7 @@
********************************************************************************/
using Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Enums;
+using System.Text.Json;
namespace Org.Eclipse.TractusX.SsiCredentialIssuer.DBAccess.Models;
@@ -27,6 +28,7 @@ public record SsiApprovalData(
Guid? ProcessId,
VerifiedCredentialTypeKindId? Kind,
string? Bpn,
+ JsonDocument? Schema,
DetailData? DetailData
);
diff --git a/src/database/SsiCredentialIssuer.DbAccess/Repositories/CompanySsiDetailsRepository.cs b/src/database/SsiCredentialIssuer.DbAccess/Repositories/CompanySsiDetailsRepository.cs
index baf127a3..6bbdb837 100644
--- a/src/database/SsiCredentialIssuer.DbAccess/Repositories/CompanySsiDetailsRepository.cs
+++ b/src/database/SsiCredentialIssuer.DbAccess/Repositories/CompanySsiDetailsRepository.cs
@@ -144,16 +144,16 @@ public Task CheckSsiDetailsExistsForCompany(string bpnl, VerifiedCredentia
(verifiedCredentialExternalTypeUseCaseDetailId == null || x.VerifiedCredentialExternalTypeDetailVersionId == verifiedCredentialExternalTypeUseCaseDetailId));
///
- public Task<(bool Exists, string? Version, string? Template, IEnumerable UseCase, DateTimeOffset Expiry)> CheckCredentialTypeIdExistsForExternalTypeDetailVersionId(Guid verifiedCredentialExternalTypeUseCaseDetailId, VerifiedCredentialTypeId verifiedCredentialTypeId) =>
+ public Task<(bool Exists, string? Version, string? Template, IEnumerable ExternalTypeIds, DateTimeOffset Expiry)> CheckCredentialTypeIdExistsForExternalTypeDetailVersionId(Guid verifiedCredentialExternalTypeUseCaseDetailId, VerifiedCredentialTypeId verifiedCredentialTypeId) =>
_context.VerifiedCredentialExternalTypeDetailVersions
.Where(x =>
x.Id == verifiedCredentialExternalTypeUseCaseDetailId &&
x.VerifiedCredentialExternalType!.VerifiedCredentialTypeAssignedExternalTypes.Any(y => y.VerifiedCredentialTypeId == verifiedCredentialTypeId))
- .Select(x => new ValueTuple, DateTimeOffset>(
+ .Select(x => new ValueTuple, DateTimeOffset>(
true,
x.Version,
x.Template,
- x.VerifiedCredentialExternalType!.VerifiedCredentialTypeAssignedExternalTypes.Select(y => y.VerifiedCredentialType!.VerifiedCredentialTypeAssignedUseCase!.UseCase!.Shortname),
+ x.VerifiedCredentialExternalType!.VerifiedCredentialTypeAssignedExternalTypes.Select(y => y.VerifiedCredentialExternalTypeId),
x.Expiry))
.SingleOrDefaultAsync();
@@ -176,6 +176,17 @@ public IQueryable GetAllCredentialDetails(CompanySsiDetailStat
(!companySsiDetailStatusId.HasValue || c.CompanySsiDetailStatusId == companySsiDetailStatusId.Value) &&
(!credentialTypeId.HasValue || c.VerifiedCredentialTypeId == credentialTypeId));
+ ///
+ public IAsyncEnumerable GetOwnCredentialDetails(string bpnl) =>
+ _context.CompanySsiDetails.AsNoTracking()
+ .Where(c => c.Bpnl == bpnl)
+ .Select(c => new OwnedVerifiedCredentialData(
+ c.VerifiedCredentialTypeId,
+ c.CompanySsiDetailStatusId,
+ c.ExpiryDate,
+ c.IssuerBpn))
+ .ToAsyncEnumerable();
+
///
public Task<(bool exists, SsiApprovalData data)> GetSsiApprovalData(Guid credentialId) =>
_context.CompanySsiDetails
@@ -188,6 +199,7 @@ public IQueryable GetAllCredentialDetails(CompanySsiDetailStat
x.ProcessId,
x.VerifiedCredentialType!.VerifiedCredentialTypeAssignedKind == null ? null : x.VerifiedCredentialType!.VerifiedCredentialTypeAssignedKind!.VerifiedCredentialTypeKindId,
x.Bpnl,
+ x.CompanySsiProcessData!.Schema,
x.VerifiedCredentialExternalTypeDetailVersion == null ?
null :
new DetailData(
diff --git a/src/database/SsiCredentialIssuer.DbAccess/Repositories/CredentialRepository.cs b/src/database/SsiCredentialIssuer.DbAccess/Repositories/CredentialRepository.cs
index 719103c5..7fca89d2 100644
--- a/src/database/SsiCredentialIssuer.DbAccess/Repositories/CredentialRepository.cs
+++ b/src/database/SsiCredentialIssuer.DbAccess/Repositories/CredentialRepository.cs
@@ -20,6 +20,7 @@
using Microsoft.EntityFrameworkCore;
using Org.Eclipse.TractusX.SsiCredentialIssuer.DBAccess.Models;
using Org.Eclipse.TractusX.SsiCredentialIssuer.Entities;
+using Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities;
using Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Enums;
using System.Text.Json;
@@ -76,4 +77,39 @@ public CredentialRepository(IssuerDbContext dbContext)
.Where(x => x.CompanySsiDetailId == credentialId)
.Select(x => new ValueTuple(x.CompanySsiDetail!.Bpnl, x.CallbackUrl))
.SingleOrDefaultAsync();
+
+ public Task<(bool Exists, bool IsSameBpnl, Guid? ExternalCredentialId, CompanySsiDetailStatusId StatusId, IEnumerable<(Guid DocumentId, DocumentStatusId DocumentStatusId)> Documents)> GetRevocationDataById(Guid credentialId, string bpnl) =>
+ _dbContext.CompanySsiDetails
+ .Where(x =>
+ x.Id == credentialId)
+ .Select(x => new ValueTuple>(
+ true,
+ x.Bpnl == bpnl,
+ x.ExternalCredentialId,
+ x.CompanySsiDetailStatusId,
+ x.Documents.Select(d => new ValueTuple(d.Id, d.DocumentStatusId))))
+ .SingleOrDefaultAsync();
+
+ public void AttachAndModifyCredential(Guid credentialId, Action? initialize, Action modify)
+ {
+ var entity = new CompanySsiDetail(credentialId, string.Empty, default!, default!, null!, null!, default!);
+ initialize?.Invoke(entity);
+ _dbContext.CompanySsiDetails.Attach(entity);
+ modify(entity);
+ }
+
+ public Task<(VerifiedCredentialTypeId TypeId, string RequesterId)> GetCredentialNotificationData(Guid credentialId) =>
+ _dbContext.CompanySsiDetails
+ .Where(x => x.Id == credentialId)
+ .Select(x => new ValueTuple(x.VerifiedCredentialTypeId, x.CreatorUserId))
+ .SingleOrDefaultAsync();
+
+ public Task<(bool Exists, bool IsSameCompany, IEnumerable<(DocumentStatusId StatusId, byte[] Content)> Documents)> GetSignedCredentialForCredentialId(Guid credentialId, string bpnl) =>
+ _dbContext.CompanySsiDetails
+ .Where(x => x.Id == credentialId)
+ .Select(x => new ValueTuple>>(
+ true,
+ x.Bpnl == bpnl,
+ x.Documents.Where(d => d.DocumentTypeId == DocumentTypeId.VERIFIED_CREDENTIAL).Select(d => new ValueTuple(d.DocumentStatusId, d.DocumentContent))))
+ .SingleOrDefaultAsync();
}
diff --git a/src/database/SsiCredentialIssuer.DbAccess/Repositories/DocumentRepository.cs b/src/database/SsiCredentialIssuer.DbAccess/Repositories/DocumentRepository.cs
index b6bf1b6d..95a94f74 100644
--- a/src/database/SsiCredentialIssuer.DbAccess/Repositories/DocumentRepository.cs
+++ b/src/database/SsiCredentialIssuer.DbAccess/Repositories/DocumentRepository.cs
@@ -34,7 +34,7 @@ public class DocumentRepository : IDocumentRepository
/// PortalDb context.
public DocumentRepository(IssuerDbContext dbContext)
{
- this._dbContext = dbContext;
+ _dbContext = dbContext;
}
///
@@ -60,4 +60,17 @@ public void AssignDocumentToCompanySsiDetails(Guid documentId, Guid companySsiDe
var document = new CompanySsiDetailAssignedDocument(documentId, companySsiDetailId);
_dbContext.CompanySsiDetailAssignedDocuments.Add(document);
}
+
+ public void AttachAndModifyDocuments(IEnumerable<(Guid DocumentId, Action? Initialize, Action Modify)> documentData)
+ {
+ var initial = documentData.Select(x =>
+ {
+ var document = new Document(x.DocumentId, null!, null!, null!, default, default, default, default);
+ x.Initialize?.Invoke(document);
+ return (Document: document, x.Modify);
+ }
+ ).ToList();
+ _dbContext.AttachRange(initial.Select(x => x.Document));
+ initial.ForEach(x => x.Modify(x.Document));
+ }
}
diff --git a/src/database/SsiCredentialIssuer.DbAccess/Repositories/ICompanySsiDetailsRepository.cs b/src/database/SsiCredentialIssuer.DbAccess/Repositories/ICompanySsiDetailsRepository.cs
index 38135954..1f96bc84 100644
--- a/src/database/SsiCredentialIssuer.DbAccess/Repositories/ICompanySsiDetailsRepository.cs
+++ b/src/database/SsiCredentialIssuer.DbAccess/Repositories/ICompanySsiDetailsRepository.cs
@@ -70,7 +70,7 @@ public interface ICompanySsiDetailsRepository
/// Id of vc external type use case detail id
/// Id of the vc type
/// Returns a valueTuple with identifiers if the externalTypeUseCaseDetailId exists and the corresponding credentialTypeId
- Task<(bool Exists, string? Version, string? Template, IEnumerable UseCase, DateTimeOffset Expiry)> CheckCredentialTypeIdExistsForExternalTypeDetailVersionId(Guid verifiedCredentialExternalTypeUseCaseDetailId, VerifiedCredentialTypeId verifiedCredentialTypeId);
+ Task<(bool Exists, string? Version, string? Template, IEnumerable ExternalTypeIds, DateTimeOffset Expiry)> CheckCredentialTypeIdExistsForExternalTypeDetailVersionId(Guid verifiedCredentialExternalTypeUseCaseDetailId, VerifiedCredentialTypeId verifiedCredentialTypeId);
///
/// Checks whether the given credentialTypeId is a Certificate
@@ -87,6 +87,12 @@ public interface ICompanySsiDetailsRepository
/// Returns data to create the pagination
IQueryable GetAllCredentialDetails(CompanySsiDetailStatusId? companySsiDetailStatusId, VerifiedCredentialTypeId? credentialTypeId);
+ ///
+ /// Gets all credentials for a specific bpn
+ ///
+ /// The bpn to filter the credentials for
+ IAsyncEnumerable GetOwnCredentialDetails(string bpnl);
+
Task<(bool exists, SsiApprovalData data)> GetSsiApprovalData(Guid credentialId);
Task<(bool Exists, CompanySsiDetailStatusId Status, VerifiedCredentialTypeId Type, Guid? ProcessId, IEnumerable ProcessStepIds)> GetSsiRejectionData(Guid credentialId);
void AttachAndModifyCompanySsiDetails(Guid id, Action? initialize, Action updateFields);
diff --git a/src/database/SsiCredentialIssuer.DbAccess/Repositories/ICredentialRepository.cs b/src/database/SsiCredentialIssuer.DbAccess/Repositories/ICredentialRepository.cs
index 3902ad2e..b1c0236e 100644
--- a/src/database/SsiCredentialIssuer.DbAccess/Repositories/ICredentialRepository.cs
+++ b/src/database/SsiCredentialIssuer.DbAccess/Repositories/ICredentialRepository.cs
@@ -18,6 +18,7 @@
********************************************************************************/
using Org.Eclipse.TractusX.SsiCredentialIssuer.DBAccess.Models;
+using Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities;
using Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Enums;
using System.Text.Json;
@@ -31,4 +32,8 @@ public interface ICredentialRepository
Task<(VerifiedCredentialTypeKindId CredentialTypeKindId, JsonDocument Schema)> GetCredentialStorageInformationById(Guid credentialId);
Task<(Guid? ExternalCredentialId, VerifiedCredentialTypeKindId KindId, bool HasEncryptionInformation, string? CallbackUrl)> GetExternalCredentialAndKindId(Guid credentialId);
Task<(string Bpn, string? CallbackUrl)> GetCallbackUrl(Guid credentialId);
+ Task<(bool Exists, bool IsSameBpnl, Guid? ExternalCredentialId, CompanySsiDetailStatusId StatusId, IEnumerable<(Guid DocumentId, DocumentStatusId DocumentStatusId)> Documents)> GetRevocationDataById(Guid credentialId, string bpnl);
+ void AttachAndModifyCredential(Guid credentialId, Action? initialize, Action modify);
+ Task<(VerifiedCredentialTypeId TypeId, string RequesterId)> GetCredentialNotificationData(Guid credentialId);
+ Task<(bool Exists, bool IsSameCompany, IEnumerable<(DocumentStatusId StatusId, byte[] Content)> Documents)> GetSignedCredentialForCredentialId(Guid credentialId, string bpnl);
}
diff --git a/src/database/SsiCredentialIssuer.DbAccess/Repositories/IDocumentRepository.cs b/src/database/SsiCredentialIssuer.DbAccess/Repositories/IDocumentRepository.cs
index 5b5c105b..e447f0de 100644
--- a/src/database/SsiCredentialIssuer.DbAccess/Repositories/IDocumentRepository.cs
+++ b/src/database/SsiCredentialIssuer.DbAccess/Repositories/IDocumentRepository.cs
@@ -40,4 +40,5 @@ public interface IDocumentRepository
Document CreateDocument(string documentName, byte[] documentContent, byte[] hash, MediaTypeId mediaTypeId, DocumentTypeId documentTypeId, Action? setupOptionalFields);
void AssignDocumentToCompanySsiDetails(Guid documentId, Guid companySsiDetailId);
+ void AttachAndModifyDocuments(IEnumerable<(Guid DocumentId, Action? Initialize, Action Modify)> documentData);
}
diff --git a/src/database/SsiCredentialIssuer.DbAccess/SsiCredentialIssuer.DbAccess.csproj b/src/database/SsiCredentialIssuer.DbAccess/SsiCredentialIssuer.DbAccess.csproj
index 6cb5fa65..30cdd933 100644
--- a/src/database/SsiCredentialIssuer.DbAccess/SsiCredentialIssuer.DbAccess.csproj
+++ b/src/database/SsiCredentialIssuer.DbAccess/SsiCredentialIssuer.DbAccess.csproj
@@ -21,22 +21,19 @@
Org.Eclipse.TractusX.SsiCredentialIssuer.DBAccess
Org.Eclipse.TractusX.SsiCredentialIssuer.DBAccess
- net7.0
+ net8.0
enable
enable
-
-
+
+
+
-
-
-
-
diff --git a/src/database/SsiCredentialIssuer.Entities/Entities/ProcessStepStatus.cs b/src/database/SsiCredentialIssuer.Entities/Entities/ProcessStepStatus.cs
index a62480b7..d8bf8ac7 100644
--- a/src/database/SsiCredentialIssuer.Entities/Entities/ProcessStepStatus.cs
+++ b/src/database/SsiCredentialIssuer.Entities/Entities/ProcessStepStatus.cs
@@ -26,8 +26,8 @@ public class ProcessStepStatus
{
private ProcessStepStatus()
{
- this.Label = null!;
- this.ProcessSteps = new HashSet();
+ Label = null!;
+ ProcessSteps = new HashSet();
}
public ProcessStepStatus(ProcessStepStatusId processStepStatusId) : this()
diff --git a/src/database/SsiCredentialIssuer.Entities/Entities/ProcessStepType.cs b/src/database/SsiCredentialIssuer.Entities/Entities/ProcessStepType.cs
index d175f667..dfc72b4d 100644
--- a/src/database/SsiCredentialIssuer.Entities/Entities/ProcessStepType.cs
+++ b/src/database/SsiCredentialIssuer.Entities/Entities/ProcessStepType.cs
@@ -26,8 +26,8 @@ public class ProcessStepType
{
private ProcessStepType()
{
- this.Label = null!;
- this.ProcessSteps = new HashSet();
+ Label = null!;
+ ProcessSteps = new HashSet();
}
public ProcessStepType(ProcessStepTypeId processStepTypeId) : this()
diff --git a/src/database/SsiCredentialIssuer.Entities/Entities/ProcessType.cs b/src/database/SsiCredentialIssuer.Entities/Entities/ProcessType.cs
index 87c8860a..387bde4e 100644
--- a/src/database/SsiCredentialIssuer.Entities/Entities/ProcessType.cs
+++ b/src/database/SsiCredentialIssuer.Entities/Entities/ProcessType.cs
@@ -26,8 +26,8 @@ public class ProcessType
{
private ProcessType()
{
- this.Label = null!;
- this.Processes = new HashSet();
+ Label = null!;
+ Processes = new HashSet();
}
public ProcessType(ProcessTypeId processTypeId) : this()
diff --git a/src/database/SsiCredentialIssuer.Entities/Enums/ProcessStepTypeId.cs b/src/database/SsiCredentialIssuer.Entities/Enums/ProcessStepTypeId.cs
index a44fed17..e870cf07 100644
--- a/src/database/SsiCredentialIssuer.Entities/Enums/ProcessStepTypeId.cs
+++ b/src/database/SsiCredentialIssuer.Entities/Enums/ProcessStepTypeId.cs
@@ -21,10 +21,15 @@ namespace Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Enums;
public enum ProcessStepTypeId
{
- // Issuer Process
+ // CREATE CREDENTIAL PROCESS
CREATE_CREDENTIAL = 1,
SIGN_CREDENTIAL = 2,
SAVE_CREDENTIAL_DOCUMENT = 3,
CREATE_CREDENTIAL_FOR_HOLDER = 4,
TRIGGER_CALLBACK = 5,
+
+ // DECLINE PROCESS
+ REVOKE_CREDENTIAL = 100,
+ TRIGGER_NOTIFICATION = 101,
+ TRIGGER_MAIL = 102
}
diff --git a/src/database/SsiCredentialIssuer.Entities/Enums/ProcessTypeId.cs b/src/database/SsiCredentialIssuer.Entities/Enums/ProcessTypeId.cs
index a07c1bca..faedae91 100644
--- a/src/database/SsiCredentialIssuer.Entities/Enums/ProcessTypeId.cs
+++ b/src/database/SsiCredentialIssuer.Entities/Enums/ProcessTypeId.cs
@@ -22,4 +22,5 @@ namespace Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Enums;
public enum ProcessTypeId
{
CREATE_CREDENTIAL = 1,
+ DECLINE_CREDENTIAL = 2
}
diff --git a/src/database/SsiCredentialIssuer.Entities/Enums/VerifiedCredentialExternalTypeId.cs b/src/database/SsiCredentialIssuer.Entities/Enums/VerifiedCredentialExternalTypeId.cs
index fbb6178c..a0e5fb13 100644
--- a/src/database/SsiCredentialIssuer.Entities/Enums/VerifiedCredentialExternalTypeId.cs
+++ b/src/database/SsiCredentialIssuer.Entities/Enums/VerifiedCredentialExternalTypeId.cs
@@ -35,12 +35,21 @@ public enum VerifiedCredentialExternalTypeId
[EnumMember(Value = "vehicleDismantle")]
VEHICLE_DISMANTLE = 4,
- [EnumMember(Value = "SustainabilityCredential")]
- SUSTAINABILITY_CREDENTIAL = 5,
+ [EnumMember(Value = "CircularEconomyCredential")]
+ CIRCULAR_ECONOMY = 5,
[EnumMember(Value = "QualityCredential")]
QUALITY_CREDENTIAL = 6,
[EnumMember(Value = "BusinessPartnerCredential")]
- BUSINESS_PARTNER_NUMBER = 7
+ BUSINESS_PARTNER_NUMBER = 7,
+
+ [EnumMember(Value = "DemandCapacityCredential")]
+ DEMAND_AND_CAPACITY_MANAGEMENT = 8,
+
+ [EnumMember(Value = "DemandCapacityCredential")]
+ DEMAND_AND_CAPACITY_MANAGEMENT_PURIS = 9,
+
+ [EnumMember(Value = "BusinessPartnerCredential")]
+ BUSINESS_PARTNER_DATA_MANAGEMENT = 10
}
diff --git a/src/database/SsiCredentialIssuer.Entities/Enums/VerifiedCredentialTypeId.cs b/src/database/SsiCredentialIssuer.Entities/Enums/VerifiedCredentialTypeId.cs
index 725f9d22..46d94ab7 100644
--- a/src/database/SsiCredentialIssuer.Entities/Enums/VerifiedCredentialTypeId.cs
+++ b/src/database/SsiCredentialIssuer.Entities/Enums/VerifiedCredentialTypeId.cs
@@ -35,12 +35,21 @@ public enum VerifiedCredentialTypeId
[EnumMember(Value = "Dismantler Certificate")]
DISMANTLER_CERTIFICATE = 4,
- [EnumMember(Value = "Sustainability Framework")]
- SUSTAINABILITY_FRAMEWORK = 5,
+ [EnumMember(Value = "Circular Economy")]
+ CIRCULAR_ECONOMY = 5,
[EnumMember(Value = "frameworkAgreement.quality")]
FRAMEWORK_AGREEMENT_QUALITY = 6,
[EnumMember(Value = "BusinessPartnerCredential")]
- BUSINESS_PARTNER_NUMBER = 7
+ BUSINESS_PARTNER_NUMBER = 7,
+
+ [EnumMember(Value = "Demand and Capacity Management")]
+ DEMAND_AND_CAPACITY_MANAGEMENT = 8,
+
+ [EnumMember(Value = "Demand and Capacity Management")]
+ DEMAND_AND_CAPACITY_MANAGEMENT_PURIS = 9,
+
+ [EnumMember(Value = "Business Partner Data Management")]
+ BUSINESS_PARTNER_DATA_MANAGEMENT = 10
}
diff --git a/src/database/SsiCredentialIssuer.Entities/SsiCredentialIssuer.Entities.csproj b/src/database/SsiCredentialIssuer.Entities/SsiCredentialIssuer.Entities.csproj
index 6d397738..56ad10c5 100644
--- a/src/database/SsiCredentialIssuer.Entities/SsiCredentialIssuer.Entities.csproj
+++ b/src/database/SsiCredentialIssuer.Entities/SsiCredentialIssuer.Entities.csproj
@@ -21,22 +21,22 @@
Org.Eclipse.TractusX.SsiCredentialIssuer.Entities
Org.Eclipse.TractusX.SsiCredentialIssuer.Entities
- net7.0
+ net8.0
enable
enable
-
-
-
+
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
-
-
-
-
+
+
+
+
+
diff --git a/src/database/SsiCredentialIssuer.Migrations/Migrations/20240424121211_1.0.0-rc.3.Designer.cs b/src/database/SsiCredentialIssuer.Migrations/Migrations/20240424121211_1.0.0-rc.3.Designer.cs
new file mode 100644
index 00000000..9711c734
--- /dev/null
+++ b/src/database/SsiCredentialIssuer.Migrations/Migrations/20240424121211_1.0.0-rc.3.Designer.cs
@@ -0,0 +1,1637 @@
+/********************************************************************************
+ * Copyright (c) 2024 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Apache License, Version 2.0 which is available at
+ * https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ ********************************************************************************/
+
+//
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Org.Eclipse.TractusX.SsiCredentialIssuer.Entities;
+using System.Text.Json;
+
+#nullable disable
+
+namespace Org.Eclipse.TractusX.SsiCredentialIssuer.Migrations.Migrations
+{
+ [DbContext(typeof(IssuerDbContext))]
+ [Migration("20240424121211_1.0.0-rc.3")]
+ partial class _100rc3
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasDefaultSchema("issuer")
+ .UseCollation("en_US.utf8")
+ .HasAnnotation("ProductVersion", "7.0.13")
+ .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+ NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.AuditEntities.AuditCompanySsiDetail20240228", b =>
+ {
+ b.Property("AuditV1Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid")
+ .HasColumnName("audit_v1id");
+
+ b.Property("AuditV1DateLastChanged")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("audit_v1date_last_changed");
+
+ b.Property("AuditV1LastEditorId")
+ .HasColumnType("uuid")
+ .HasColumnName("audit_v1last_editor_id");
+
+ b.Property("AuditV1OperationId")
+ .HasColumnType("integer")
+ .HasColumnName("audit_v1operation_id");
+
+ b.Property("Bpnl")
+ .IsRequired()
+ .HasColumnType("text")
+ .HasColumnName("bpnl");
+
+ b.Property("CompanySsiDetailStatusId")
+ .HasColumnType("integer")
+ .HasColumnName("company_ssi_detail_status_id");
+
+ b.Property("CreatorUserId")
+ .HasColumnType("uuid")
+ .HasColumnName("creator_user_id");
+
+ b.Property("Credential")
+ .HasColumnType("text")
+ .HasColumnName("credential");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("date_created");
+
+ b.Property("DateLastChanged")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("date_last_changed");
+
+ b.Property("ExpiryCheckTypeId")
+ .HasColumnType("integer")
+ .HasColumnName("expiry_check_type_id");
+
+ b.Property("ExpiryDate")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("expiry_date");
+
+ b.Property("ExternalCredentialId")
+ .HasColumnType("uuid")
+ .HasColumnName("external_credential_id");
+
+ b.Property("Id")
+ .HasColumnType("uuid")
+ .HasColumnName("id");
+
+ b.Property("IssuerBpn")
+ .IsRequired()
+ .HasColumnType("text")
+ .HasColumnName("issuer_bpn");
+
+ b.Property("LastEditorId")
+ .HasColumnType("uuid")
+ .HasColumnName("last_editor_id");
+
+ b.Property("ProcessId")
+ .HasColumnType("uuid")
+ .HasColumnName("process_id");
+
+ b.Property("VerifiedCredentialExternalTypeDetailVersionId")
+ .HasColumnType("uuid")
+ .HasColumnName("verified_credential_external_type_detail_version_id");
+
+ b.Property("VerifiedCredentialTypeId")
+ .HasColumnType("integer")
+ .HasColumnName("verified_credential_type_id");
+
+ b.HasKey("AuditV1Id")
+ .HasName("pk_audit_company_ssi_detail20240228");
+
+ b.ToTable("audit_company_ssi_detail20240228", "issuer");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.AuditEntities.AuditCompanySsiDetail20240419", b =>
+ {
+ b.Property("AuditV2Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid")
+ .HasColumnName("audit_v2id");
+
+ b.Property("AuditV2DateLastChanged")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("audit_v2date_last_changed");
+
+ b.Property("AuditV2LastEditorId")
+ .HasColumnType("text")
+ .HasColumnName("audit_v2last_editor_id");
+
+ b.Property("AuditV2OperationId")
+ .HasColumnType("integer")
+ .HasColumnName("audit_v2operation_id");
+
+ b.Property("Bpnl")
+ .IsRequired()
+ .HasColumnType("text")
+ .HasColumnName("bpnl");
+
+ b.Property("CompanySsiDetailStatusId")
+ .HasColumnType("integer")
+ .HasColumnName("company_ssi_detail_status_id");
+
+ b.Property("CreatorUserId")
+ .IsRequired()
+ .HasColumnType("text")
+ .HasColumnName("creator_user_id");
+
+ b.Property("Credential")
+ .HasColumnType("text")
+ .HasColumnName("credential");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("date_created");
+
+ b.Property("DateLastChanged")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("date_last_changed");
+
+ b.Property("ExpiryCheckTypeId")
+ .HasColumnType("integer")
+ .HasColumnName("expiry_check_type_id");
+
+ b.Property("ExpiryDate")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("expiry_date");
+
+ b.Property("ExternalCredentialId")
+ .HasColumnType("uuid")
+ .HasColumnName("external_credential_id");
+
+ b.Property("Id")
+ .HasColumnType("uuid")
+ .HasColumnName("id");
+
+ b.Property("IssuerBpn")
+ .IsRequired()
+ .HasColumnType("text")
+ .HasColumnName("issuer_bpn");
+
+ b.Property("LastEditorId")
+ .HasColumnType("text")
+ .HasColumnName("last_editor_id");
+
+ b.Property("ProcessId")
+ .HasColumnType("uuid")
+ .HasColumnName("process_id");
+
+ b.Property("VerifiedCredentialExternalTypeDetailVersionId")
+ .HasColumnType("uuid")
+ .HasColumnName("verified_credential_external_type_detail_version_id");
+
+ b.Property("VerifiedCredentialTypeId")
+ .HasColumnType("integer")
+ .HasColumnName("verified_credential_type_id");
+
+ b.HasKey("AuditV2Id")
+ .HasName("pk_audit_company_ssi_detail20240419");
+
+ b.ToTable("audit_company_ssi_detail20240419", "issuer");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.AuditEntities.AuditDocument20240305", b =>
+ {
+ b.Property("AuditV1Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid")
+ .HasColumnName("audit_v1id");
+
+ b.Property("AuditV1DateLastChanged")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("audit_v1date_last_changed");
+
+ b.Property("AuditV1LastEditorId")
+ .HasColumnType("uuid")
+ .HasColumnName("audit_v1last_editor_id");
+
+ b.Property("AuditV1OperationId")
+ .HasColumnType("integer")
+ .HasColumnName("audit_v1operation_id");
+
+ b.Property("CompanyUserId")
+ .HasColumnType("uuid")
+ .HasColumnName("company_user_id");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("date_created");
+
+ b.Property("DateLastChanged")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("date_last_changed");
+
+ b.Property("DocumentContent")
+ .HasColumnType("bytea")
+ .HasColumnName("document_content");
+
+ b.Property("DocumentHash")
+ .HasColumnType("bytea")
+ .HasColumnName("document_hash");
+
+ b.Property("DocumentName")
+ .HasColumnType("text")
+ .HasColumnName("document_name");
+
+ b.Property("DocumentStatusId")
+ .HasColumnType("integer")
+ .HasColumnName("document_status_id");
+
+ b.Property("DocumentTypeId")
+ .HasColumnType("integer")
+ .HasColumnName("document_type_id");
+
+ b.Property("Id")
+ .HasColumnType("uuid")
+ .HasColumnName("id");
+
+ b.Property("LastEditorId")
+ .HasColumnType("uuid")
+ .HasColumnName("last_editor_id");
+
+ b.Property("MediaTypeId")
+ .HasColumnType("integer")
+ .HasColumnName("media_type_id");
+
+ b.HasKey("AuditV1Id")
+ .HasName("pk_audit_document20240305");
+
+ b.ToTable("audit_document20240305", "issuer");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.AuditEntities.AuditDocument20240419", b =>
+ {
+ b.Property("AuditV2Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid")
+ .HasColumnName("audit_v2id");
+
+ b.Property("AuditV2DateLastChanged")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("audit_v2date_last_changed");
+
+ b.Property("AuditV2LastEditorId")
+ .HasColumnType("text")
+ .HasColumnName("audit_v2last_editor_id");
+
+ b.Property("AuditV2OperationId")
+ .HasColumnType("integer")
+ .HasColumnName("audit_v2operation_id");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("date_created");
+
+ b.Property("DateLastChanged")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("date_last_changed");
+
+ b.Property("DocumentContent")
+ .HasColumnType("bytea")
+ .HasColumnName("document_content");
+
+ b.Property("DocumentHash")
+ .HasColumnType("bytea")
+ .HasColumnName("document_hash");
+
+ b.Property("DocumentName")
+ .HasColumnType("text")
+ .HasColumnName("document_name");
+
+ b.Property("DocumentStatusId")
+ .HasColumnType("integer")
+ .HasColumnName("document_status_id");
+
+ b.Property("DocumentTypeId")
+ .HasColumnType("integer")
+ .HasColumnName("document_type_id");
+
+ b.Property("Id")
+ .HasColumnType("uuid")
+ .HasColumnName("id");
+
+ b.Property("IdentityId")
+ .HasColumnType("text")
+ .HasColumnName("identity_id");
+
+ b.Property("LastEditorId")
+ .HasColumnType("text")
+ .HasColumnName("last_editor_id");
+
+ b.Property("MediaTypeId")
+ .HasColumnType("integer")
+ .HasColumnName("media_type_id");
+
+ b.HasKey("AuditV2Id")
+ .HasName("pk_audit_document20240419");
+
+ b.ToTable("audit_document20240419", "issuer");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.CompanySsiDetail", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid")
+ .HasColumnName("id");
+
+ b.Property("Bpnl")
+ .IsRequired()
+ .HasColumnType("text")
+ .HasColumnName("bpnl");
+
+ b.Property("CompanySsiDetailStatusId")
+ .HasColumnType("integer")
+ .HasColumnName("company_ssi_detail_status_id");
+
+ b.Property("CreatorUserId")
+ .IsRequired()
+ .HasColumnType("text")
+ .HasColumnName("creator_user_id");
+
+ b.Property("Credential")
+ .HasColumnType("text")
+ .HasColumnName("credential");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("date_created");
+
+ b.Property("DateLastChanged")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("date_last_changed");
+
+ b.Property("ExpiryCheckTypeId")
+ .HasColumnType("integer")
+ .HasColumnName("expiry_check_type_id");
+
+ b.Property("ExpiryDate")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("expiry_date");
+
+ b.Property("ExternalCredentialId")
+ .HasColumnType("uuid")
+ .HasColumnName("external_credential_id");
+
+ b.Property("IssuerBpn")
+ .IsRequired()
+ .HasColumnType("text")
+ .HasColumnName("issuer_bpn");
+
+ b.Property("LastEditorId")
+ .HasColumnType("text")
+ .HasColumnName("last_editor_id");
+
+ b.Property("ProcessId")
+ .HasColumnType("uuid")
+ .HasColumnName("process_id");
+
+ b.Property("VerifiedCredentialExternalTypeDetailVersionId")
+ .HasColumnType("uuid")
+ .HasColumnName("verified_credential_external_type_detail_version_id");
+
+ b.Property("VerifiedCredentialTypeId")
+ .HasColumnType("integer")
+ .HasColumnName("verified_credential_type_id");
+
+ b.HasKey("Id")
+ .HasName("pk_company_ssi_details");
+
+ b.HasIndex("CompanySsiDetailStatusId")
+ .HasDatabaseName("ix_company_ssi_details_company_ssi_detail_status_id");
+
+ b.HasIndex("ExpiryCheckTypeId")
+ .HasDatabaseName("ix_company_ssi_details_expiry_check_type_id");
+
+ b.HasIndex("ProcessId")
+ .HasDatabaseName("ix_company_ssi_details_process_id");
+
+ b.HasIndex("VerifiedCredentialExternalTypeDetailVersionId")
+ .HasDatabaseName("ix_company_ssi_details_verified_credential_external_type_detai");
+
+ b.HasIndex("VerifiedCredentialTypeId")
+ .HasDatabaseName("ix_company_ssi_details_verified_credential_type_id");
+
+ b.ToTable("company_ssi_details", "issuer", t =>
+ {
+ t.HasTrigger("LC_TRIGGER_AFTER_INSERT_COMPANYSSIDETAIL");
+
+ t.HasTrigger("LC_TRIGGER_AFTER_UPDATE_COMPANYSSIDETAIL");
+ });
+
+ b
+ .HasAnnotation("LC_TRIGGER_AFTER_INSERT_COMPANYSSIDETAIL", "CREATE FUNCTION \"issuer\".\"LC_TRIGGER_AFTER_INSERT_COMPANYSSIDETAIL\"() RETURNS trigger as $LC_TRIGGER_AFTER_INSERT_COMPANYSSIDETAIL$\r\nBEGIN\r\n INSERT INTO \"issuer\".\"audit_company_ssi_detail20240419\" (\"id\", \"bpnl\", \"issuer_bpn\", \"verified_credential_type_id\", \"company_ssi_detail_status_id\", \"date_created\", \"creator_user_id\", \"expiry_date\", \"verified_credential_external_type_detail_version_id\", \"expiry_check_type_id\", \"process_id\", \"external_credential_id\", \"credential\", \"date_last_changed\", \"last_editor_id\", \"audit_v2id\", \"audit_v2operation_id\", \"audit_v2date_last_changed\", \"audit_v2last_editor_id\") SELECT NEW.\"id\", \r\n NEW.\"bpnl\", \r\n NEW.\"issuer_bpn\", \r\n NEW.\"verified_credential_type_id\", \r\n NEW.\"company_ssi_detail_status_id\", \r\n NEW.\"date_created\", \r\n NEW.\"creator_user_id\", \r\n NEW.\"expiry_date\", \r\n NEW.\"verified_credential_external_type_detail_version_id\", \r\n NEW.\"expiry_check_type_id\", \r\n NEW.\"process_id\", \r\n NEW.\"external_credential_id\", \r\n NEW.\"credential\", \r\n NEW.\"date_last_changed\", \r\n NEW.\"last_editor_id\", \r\n gen_random_uuid(), \r\n 1, \r\n CURRENT_DATE, \r\n NEW.\"last_editor_id\";\r\nRETURN NEW;\r\nEND;\r\n$LC_TRIGGER_AFTER_INSERT_COMPANYSSIDETAIL$ LANGUAGE plpgsql;\r\nCREATE TRIGGER LC_TRIGGER_AFTER_INSERT_COMPANYSSIDETAIL AFTER INSERT\r\nON \"issuer\".\"company_ssi_details\"\r\nFOR EACH ROW EXECUTE PROCEDURE \"issuer\".\"LC_TRIGGER_AFTER_INSERT_COMPANYSSIDETAIL\"();")
+ .HasAnnotation("LC_TRIGGER_AFTER_UPDATE_COMPANYSSIDETAIL", "CREATE FUNCTION \"issuer\".\"LC_TRIGGER_AFTER_UPDATE_COMPANYSSIDETAIL\"() RETURNS trigger as $LC_TRIGGER_AFTER_UPDATE_COMPANYSSIDETAIL$\r\nBEGIN\r\n INSERT INTO \"issuer\".\"audit_company_ssi_detail20240419\" (\"id\", \"bpnl\", \"issuer_bpn\", \"verified_credential_type_id\", \"company_ssi_detail_status_id\", \"date_created\", \"creator_user_id\", \"expiry_date\", \"verified_credential_external_type_detail_version_id\", \"expiry_check_type_id\", \"process_id\", \"external_credential_id\", \"credential\", \"date_last_changed\", \"last_editor_id\", \"audit_v2id\", \"audit_v2operation_id\", \"audit_v2date_last_changed\", \"audit_v2last_editor_id\") SELECT NEW.\"id\", \r\n NEW.\"bpnl\", \r\n NEW.\"issuer_bpn\", \r\n NEW.\"verified_credential_type_id\", \r\n NEW.\"company_ssi_detail_status_id\", \r\n NEW.\"date_created\", \r\n NEW.\"creator_user_id\", \r\n NEW.\"expiry_date\", \r\n NEW.\"verified_credential_external_type_detail_version_id\", \r\n NEW.\"expiry_check_type_id\", \r\n NEW.\"process_id\", \r\n NEW.\"external_credential_id\", \r\n NEW.\"credential\", \r\n NEW.\"date_last_changed\", \r\n NEW.\"last_editor_id\", \r\n gen_random_uuid(), \r\n 2, \r\n CURRENT_DATE, \r\n NEW.\"last_editor_id\";\r\nRETURN NEW;\r\nEND;\r\n$LC_TRIGGER_AFTER_UPDATE_COMPANYSSIDETAIL$ LANGUAGE plpgsql;\r\nCREATE TRIGGER LC_TRIGGER_AFTER_UPDATE_COMPANYSSIDETAIL AFTER UPDATE\r\nON \"issuer\".\"company_ssi_details\"\r\nFOR EACH ROW EXECUTE PROCEDURE \"issuer\".\"LC_TRIGGER_AFTER_UPDATE_COMPANYSSIDETAIL\"();");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.CompanySsiDetailAssignedDocument", b =>
+ {
+ b.Property("DocumentId")
+ .HasColumnType("uuid")
+ .HasColumnName("document_id");
+
+ b.Property("CompanySsiDetailId")
+ .HasColumnType("uuid")
+ .HasColumnName("company_ssi_detail_id");
+
+ b.HasKey("DocumentId", "CompanySsiDetailId")
+ .HasName("pk_company_ssi_detail_assigned_documents");
+
+ b.HasIndex("CompanySsiDetailId")
+ .HasDatabaseName("ix_company_ssi_detail_assigned_documents_company_ssi_detail_id");
+
+ b.ToTable("company_ssi_detail_assigned_documents", "issuer");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.CompanySsiDetailStatus", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ b.Property("Label")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("label");
+
+ b.HasKey("Id")
+ .HasName("pk_company_ssi_detail_statuses");
+
+ b.ToTable("company_ssi_detail_statuses", "issuer");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Label = "PENDING"
+ },
+ new
+ {
+ Id = 2,
+ Label = "ACTIVE"
+ },
+ new
+ {
+ Id = 3,
+ Label = "REVOKED"
+ },
+ new
+ {
+ Id = 4,
+ Label = "INACTIVE"
+ });
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.CompanySsiProcessData", b =>
+ {
+ b.Property("CompanySsiDetailId")
+ .HasColumnType("uuid")
+ .HasColumnName("company_ssi_detail_id");
+
+ b.Property("CallbackUrl")
+ .HasColumnType("text")
+ .HasColumnName("callback_url");
+
+ b.Property("ClientId")
+ .HasColumnType("text")
+ .HasColumnName("client_id");
+
+ b.Property("ClientSecret")
+ .HasColumnType("bytea")
+ .HasColumnName("client_secret");
+
+ b.Property("CredentialTypeKindId")
+ .HasColumnType("integer")
+ .HasColumnName("credential_type_kind_id");
+
+ b.Property("EncryptionMode")
+ .HasColumnType("integer")
+ .HasColumnName("encryption_mode");
+
+ b.Property("HolderWalletUrl")
+ .HasColumnType("text")
+ .HasColumnName("holder_wallet_url");
+
+ b.Property("InitializationVector")
+ .HasColumnType("bytea")
+ .HasColumnName("initialization_vector");
+
+ b.Property("Schema")
+ .IsRequired()
+ .HasColumnType("jsonb")
+ .HasColumnName("schema");
+
+ b.HasKey("CompanySsiDetailId")
+ .HasName("pk_company_ssi_process_data");
+
+ b.HasIndex("CredentialTypeKindId")
+ .HasDatabaseName("ix_company_ssi_process_data_credential_type_kind_id");
+
+ b.ToTable("company_ssi_process_data", "issuer");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.Document", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid")
+ .HasColumnName("id");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("date_created");
+
+ b.Property("DateLastChanged")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("date_last_changed");
+
+ b.Property("DocumentContent")
+ .IsRequired()
+ .HasColumnType("bytea")
+ .HasColumnName("document_content");
+
+ b.Property("DocumentHash")
+ .IsRequired()
+ .HasColumnType("bytea")
+ .HasColumnName("document_hash");
+
+ b.Property("DocumentName")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("document_name");
+
+ b.Property("DocumentStatusId")
+ .HasColumnType("integer")
+ .HasColumnName("document_status_id");
+
+ b.Property("DocumentTypeId")
+ .HasColumnType("integer")
+ .HasColumnName("document_type_id");
+
+ b.Property("IdentityId")
+ .HasColumnType("text")
+ .HasColumnName("identity_id");
+
+ b.Property("LastEditorId")
+ .HasColumnType("text")
+ .HasColumnName("last_editor_id");
+
+ b.Property("MediaTypeId")
+ .HasColumnType("integer")
+ .HasColumnName("media_type_id");
+
+ b.HasKey("Id")
+ .HasName("pk_documents");
+
+ b.HasIndex("DocumentStatusId")
+ .HasDatabaseName("ix_documents_document_status_id");
+
+ b.HasIndex("DocumentTypeId")
+ .HasDatabaseName("ix_documents_document_type_id");
+
+ b.HasIndex("MediaTypeId")
+ .HasDatabaseName("ix_documents_media_type_id");
+
+ b.ToTable("documents", "issuer", t =>
+ {
+ t.HasTrigger("LC_TRIGGER_AFTER_INSERT_DOCUMENT");
+
+ t.HasTrigger("LC_TRIGGER_AFTER_UPDATE_DOCUMENT");
+ });
+
+ b
+ .HasAnnotation("LC_TRIGGER_AFTER_INSERT_DOCUMENT", "CREATE FUNCTION \"issuer\".\"LC_TRIGGER_AFTER_INSERT_DOCUMENT\"() RETURNS trigger as $LC_TRIGGER_AFTER_INSERT_DOCUMENT$\r\nBEGIN\r\n INSERT INTO \"issuer\".\"audit_document20240419\" (\"id\", \"date_created\", \"document_hash\", \"document_content\", \"document_name\", \"media_type_id\", \"document_type_id\", \"document_status_id\", \"identity_id\", \"date_last_changed\", \"last_editor_id\", \"audit_v2id\", \"audit_v2operation_id\", \"audit_v2date_last_changed\", \"audit_v2last_editor_id\") SELECT NEW.\"id\", \r\n NEW.\"date_created\", \r\n NEW.\"document_hash\", \r\n NEW.\"document_content\", \r\n NEW.\"document_name\", \r\n NEW.\"media_type_id\", \r\n NEW.\"document_type_id\", \r\n NEW.\"document_status_id\", \r\n NEW.\"identity_id\", \r\n NEW.\"date_last_changed\", \r\n NEW.\"last_editor_id\", \r\n gen_random_uuid(), \r\n 1, \r\n CURRENT_DATE, \r\n NEW.\"last_editor_id\";\r\nRETURN NEW;\r\nEND;\r\n$LC_TRIGGER_AFTER_INSERT_DOCUMENT$ LANGUAGE plpgsql;\r\nCREATE TRIGGER LC_TRIGGER_AFTER_INSERT_DOCUMENT AFTER INSERT\r\nON \"issuer\".\"documents\"\r\nFOR EACH ROW EXECUTE PROCEDURE \"issuer\".\"LC_TRIGGER_AFTER_INSERT_DOCUMENT\"();")
+ .HasAnnotation("LC_TRIGGER_AFTER_UPDATE_DOCUMENT", "CREATE FUNCTION \"issuer\".\"LC_TRIGGER_AFTER_UPDATE_DOCUMENT\"() RETURNS trigger as $LC_TRIGGER_AFTER_UPDATE_DOCUMENT$\r\nBEGIN\r\n INSERT INTO \"issuer\".\"audit_document20240419\" (\"id\", \"date_created\", \"document_hash\", \"document_content\", \"document_name\", \"media_type_id\", \"document_type_id\", \"document_status_id\", \"identity_id\", \"date_last_changed\", \"last_editor_id\", \"audit_v2id\", \"audit_v2operation_id\", \"audit_v2date_last_changed\", \"audit_v2last_editor_id\") SELECT NEW.\"id\", \r\n NEW.\"date_created\", \r\n NEW.\"document_hash\", \r\n NEW.\"document_content\", \r\n NEW.\"document_name\", \r\n NEW.\"media_type_id\", \r\n NEW.\"document_type_id\", \r\n NEW.\"document_status_id\", \r\n NEW.\"identity_id\", \r\n NEW.\"date_last_changed\", \r\n NEW.\"last_editor_id\", \r\n gen_random_uuid(), \r\n 2, \r\n CURRENT_DATE, \r\n NEW.\"last_editor_id\";\r\nRETURN NEW;\r\nEND;\r\n$LC_TRIGGER_AFTER_UPDATE_DOCUMENT$ LANGUAGE plpgsql;\r\nCREATE TRIGGER LC_TRIGGER_AFTER_UPDATE_DOCUMENT AFTER UPDATE\r\nON \"issuer\".\"documents\"\r\nFOR EACH ROW EXECUTE PROCEDURE \"issuer\".\"LC_TRIGGER_AFTER_UPDATE_DOCUMENT\"();");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.DocumentStatus", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ b.Property("Label")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("label");
+
+ b.HasKey("Id")
+ .HasName("pk_document_status");
+
+ b.ToTable("document_status", "issuer");
+
+ b.HasData(
+ new
+ {
+ Id = 2,
+ Label = "ACTIVE"
+ },
+ new
+ {
+ Id = 3,
+ Label = "INACTIVE"
+ });
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.DocumentType", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ b.Property("Label")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("label");
+
+ b.HasKey("Id")
+ .HasName("pk_document_types");
+
+ b.ToTable("document_types", "issuer");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Label = "PRESENTATION"
+ },
+ new
+ {
+ Id = 2,
+ Label = "CREDENTIAL"
+ },
+ new
+ {
+ Id = 3,
+ Label = "VERIFIED_CREDENTIAL"
+ });
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.ExpiryCheckType", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ b.Property("Label")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("label");
+
+ b.HasKey("Id")
+ .HasName("pk_expiry_check_types");
+
+ b.ToTable("expiry_check_types", "issuer");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Label = "ONE_MONTH"
+ },
+ new
+ {
+ Id = 2,
+ Label = "TWO_WEEKS"
+ },
+ new
+ {
+ Id = 3,
+ Label = "ONE_DAY"
+ });
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.MediaType", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ b.Property("Label")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("label");
+
+ b.HasKey("Id")
+ .HasName("pk_media_types");
+
+ b.ToTable("media_types", "issuer");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Label = "JPEG"
+ },
+ new
+ {
+ Id = 2,
+ Label = "GIF"
+ },
+ new
+ {
+ Id = 3,
+ Label = "PNG"
+ },
+ new
+ {
+ Id = 4,
+ Label = "SVG"
+ },
+ new
+ {
+ Id = 5,
+ Label = "TIFF"
+ },
+ new
+ {
+ Id = 6,
+ Label = "PDF"
+ },
+ new
+ {
+ Id = 7,
+ Label = "JSON"
+ },
+ new
+ {
+ Id = 8,
+ Label = "PEM"
+ },
+ new
+ {
+ Id = 9,
+ Label = "CA_CERT"
+ },
+ new
+ {
+ Id = 10,
+ Label = "PKX_CER"
+ },
+ new
+ {
+ Id = 11,
+ Label = "OCTET"
+ });
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.Process", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid")
+ .HasColumnName("id");
+
+ b.Property("LockExpiryDate")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("lock_expiry_date");
+
+ b.Property("ProcessTypeId")
+ .HasColumnType("integer")
+ .HasColumnName("process_type_id");
+
+ b.Property("Version")
+ .IsConcurrencyToken()
+ .HasColumnType("uuid")
+ .HasColumnName("version");
+
+ b.HasKey("Id")
+ .HasName("pk_processes");
+
+ b.HasIndex("ProcessTypeId")
+ .HasDatabaseName("ix_processes_process_type_id");
+
+ b.ToTable("processes", "issuer");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.ProcessStep", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid")
+ .HasColumnName("id");
+
+ b.Property("DateCreated")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("date_created");
+
+ b.Property("DateLastChanged")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("date_last_changed");
+
+ b.Property("Message")
+ .HasColumnType("text")
+ .HasColumnName("message");
+
+ b.Property("ProcessId")
+ .HasColumnType("uuid")
+ .HasColumnName("process_id");
+
+ b.Property("ProcessStepStatusId")
+ .HasColumnType("integer")
+ .HasColumnName("process_step_status_id");
+
+ b.Property("ProcessStepTypeId")
+ .HasColumnType("integer")
+ .HasColumnName("process_step_type_id");
+
+ b.HasKey("Id")
+ .HasName("pk_process_steps");
+
+ b.HasIndex("ProcessId")
+ .HasDatabaseName("ix_process_steps_process_id");
+
+ b.HasIndex("ProcessStepStatusId")
+ .HasDatabaseName("ix_process_steps_process_step_status_id");
+
+ b.HasIndex("ProcessStepTypeId")
+ .HasDatabaseName("ix_process_steps_process_step_type_id");
+
+ b.ToTable("process_steps", "issuer");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.ProcessStepStatus", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ b.Property("Label")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("label");
+
+ b.HasKey("Id")
+ .HasName("pk_process_step_statuses");
+
+ b.ToTable("process_step_statuses", "issuer");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Label = "TODO"
+ },
+ new
+ {
+ Id = 2,
+ Label = "DONE"
+ },
+ new
+ {
+ Id = 3,
+ Label = "SKIPPED"
+ },
+ new
+ {
+ Id = 4,
+ Label = "FAILED"
+ },
+ new
+ {
+ Id = 5,
+ Label = "DUPLICATE"
+ });
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.ProcessStepType", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ b.Property("Label")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("label");
+
+ b.HasKey("Id")
+ .HasName("pk_process_step_types");
+
+ b.ToTable("process_step_types", "issuer");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Label = "CREATE_CREDENTIAL"
+ },
+ new
+ {
+ Id = 2,
+ Label = "SIGN_CREDENTIAL"
+ },
+ new
+ {
+ Id = 3,
+ Label = "SAVE_CREDENTIAL_DOCUMENT"
+ },
+ new
+ {
+ Id = 4,
+ Label = "CREATE_CREDENTIAL_FOR_HOLDER"
+ },
+ new
+ {
+ Id = 5,
+ Label = "TRIGGER_CALLBACK"
+ },
+ new
+ {
+ Id = 100,
+ Label = "REVOKE_CREDENTIAL"
+ },
+ new
+ {
+ Id = 101,
+ Label = "TRIGGER_NOTIFICATION"
+ },
+ new
+ {
+ Id = 102,
+ Label = "TRIGGER_MAIL"
+ });
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.ProcessType", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ b.Property("Label")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("label");
+
+ b.HasKey("Id")
+ .HasName("pk_process_types");
+
+ b.ToTable("process_types", "issuer");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Label = "CREATE_CREDENTIAL"
+ },
+ new
+ {
+ Id = 2,
+ Label = "DECLINE_CREDENTIAL"
+ });
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.UseCase", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid")
+ .HasColumnName("id");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("name");
+
+ b.Property("Shortname")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("shortname");
+
+ b.HasKey("Id")
+ .HasName("pk_use_cases");
+
+ b.ToTable("use_cases", "issuer");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialExternalType", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ b.Property("Label")
+ .IsRequired()
+ .HasColumnType("text")
+ .HasColumnName("label");
+
+ b.HasKey("Id")
+ .HasName("pk_verified_credential_external_types");
+
+ b.ToTable("verified_credential_external_types", "issuer");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Label = "TRACEABILITY_CREDENTIAL"
+ },
+ new
+ {
+ Id = 2,
+ Label = "PCF_CREDENTIAL"
+ },
+ new
+ {
+ Id = 3,
+ Label = "BEHAVIOR_TWIN_CREDENTIAL"
+ },
+ new
+ {
+ Id = 4,
+ Label = "VEHICLE_DISMANTLE"
+ },
+ new
+ {
+ Id = 5,
+ Label = "CIRCULAR_ECONOMY"
+ },
+ new
+ {
+ Id = 6,
+ Label = "QUALITY_CREDENTIAL"
+ },
+ new
+ {
+ Id = 7,
+ Label = "BUSINESS_PARTNER_NUMBER"
+ },
+ new
+ {
+ Id = 8,
+ Label = "DEMAND_AND_CAPACITY_MANAGEMENT"
+ },
+ new
+ {
+ Id = 9,
+ Label = "DEMAND_AND_CAPACITY_MANAGEMENT_PURIS"
+ },
+ new
+ {
+ Id = 10,
+ Label = "BUSINESS_PARTNER_DATA_MANAGEMENT"
+ });
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialExternalTypeDetailVersion", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid")
+ .HasColumnName("id");
+
+ b.Property("Expiry")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("expiry");
+
+ b.Property("Template")
+ .HasColumnType("text")
+ .HasColumnName("template");
+
+ b.Property("ValidFrom")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("valid_from");
+
+ b.Property("VerifiedCredentialExternalTypeId")
+ .HasColumnType("integer")
+ .HasColumnName("verified_credential_external_type_id");
+
+ b.Property("Version")
+ .HasColumnType("text")
+ .HasColumnName("version");
+
+ b.HasKey("Id")
+ .HasName("pk_verified_credential_external_type_detail_versions");
+
+ b.HasIndex("VerifiedCredentialExternalTypeId", "Version")
+ .IsUnique()
+ .HasDatabaseName("ix_verified_credential_external_type_detail_versions_verified_");
+
+ b.ToTable("verified_credential_external_type_detail_versions", "issuer");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialType", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ b.Property("Label")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("label");
+
+ b.HasKey("Id")
+ .HasName("pk_verified_credential_types");
+
+ b.ToTable("verified_credential_types", "issuer");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Label = "TRACEABILITY_FRAMEWORK"
+ },
+ new
+ {
+ Id = 2,
+ Label = "PCF_FRAMEWORK"
+ },
+ new
+ {
+ Id = 3,
+ Label = "BEHAVIOR_TWIN_FRAMEWORK"
+ },
+ new
+ {
+ Id = 4,
+ Label = "DISMANTLER_CERTIFICATE"
+ },
+ new
+ {
+ Id = 5,
+ Label = "CIRCULAR_ECONOMY"
+ },
+ new
+ {
+ Id = 6,
+ Label = "FRAMEWORK_AGREEMENT_QUALITY"
+ },
+ new
+ {
+ Id = 7,
+ Label = "BUSINESS_PARTNER_NUMBER"
+ },
+ new
+ {
+ Id = 8,
+ Label = "DEMAND_AND_CAPACITY_MANAGEMENT"
+ },
+ new
+ {
+ Id = 9,
+ Label = "DEMAND_AND_CAPACITY_MANAGEMENT_PURIS"
+ },
+ new
+ {
+ Id = 10,
+ Label = "BUSINESS_PARTNER_DATA_MANAGEMENT"
+ });
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialTypeAssignedExternalType", b =>
+ {
+ b.Property("VerifiedCredentialTypeId")
+ .HasColumnType("integer")
+ .HasColumnName("verified_credential_type_id");
+
+ b.Property("VerifiedCredentialExternalTypeId")
+ .HasColumnType("integer")
+ .HasColumnName("verified_credential_external_type_id");
+
+ b.HasKey("VerifiedCredentialTypeId", "VerifiedCredentialExternalTypeId")
+ .HasName("pk_verified_credential_type_assigned_external_types");
+
+ b.HasIndex("VerifiedCredentialExternalTypeId")
+ .HasDatabaseName("ix_verified_credential_type_assigned_external_types_verified_c");
+
+ b.HasIndex("VerifiedCredentialTypeId")
+ .IsUnique()
+ .HasDatabaseName("ix_verified_credential_type_assigned_external_types_verified_c1");
+
+ b.ToTable("verified_credential_type_assigned_external_types", "issuer");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialTypeAssignedKind", b =>
+ {
+ b.Property("VerifiedCredentialTypeId")
+ .HasColumnType("integer")
+ .HasColumnName("verified_credential_type_id");
+
+ b.Property("VerifiedCredentialTypeKindId")
+ .HasColumnType("integer")
+ .HasColumnName("verified_credential_type_kind_id");
+
+ b.HasKey("VerifiedCredentialTypeId", "VerifiedCredentialTypeKindId")
+ .HasName("pk_verified_credential_type_assigned_kinds");
+
+ b.HasIndex("VerifiedCredentialTypeId")
+ .HasDatabaseName("ix_verified_credential_type_assigned_kinds_verified_credential");
+
+ b.HasIndex("VerifiedCredentialTypeKindId")
+ .HasDatabaseName("ix_verified_credential_type_assigned_kinds_verified_credential1");
+
+ b.ToTable("verified_credential_type_assigned_kinds", "issuer");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialTypeAssignedUseCase", b =>
+ {
+ b.Property("VerifiedCredentialTypeId")
+ .HasColumnType("integer")
+ .HasColumnName("verified_credential_type_id");
+
+ b.Property("UseCaseId")
+ .HasColumnType("uuid")
+ .HasColumnName("use_case_id");
+
+ b.HasKey("VerifiedCredentialTypeId", "UseCaseId")
+ .HasName("pk_verified_credential_type_assigned_use_cases");
+
+ b.HasIndex("UseCaseId")
+ .IsUnique()
+ .HasDatabaseName("ix_verified_credential_type_assigned_use_cases_use_case_id");
+
+ b.HasIndex("VerifiedCredentialTypeId")
+ .IsUnique()
+ .HasDatabaseName("ix_verified_credential_type_assigned_use_cases_verified_creden");
+
+ b.ToTable("verified_credential_type_assigned_use_cases", "issuer");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialTypeKind", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ b.Property("Label")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("label");
+
+ b.HasKey("Id")
+ .HasName("pk_verified_credential_type_kinds");
+
+ b.ToTable("verified_credential_type_kinds", "issuer");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Label = "FRAMEWORK"
+ },
+ new
+ {
+ Id = 2,
+ Label = "MEMBERSHIP"
+ },
+ new
+ {
+ Id = 3,
+ Label = "BPN"
+ });
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.CompanySsiDetail", b =>
+ {
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.CompanySsiDetailStatus", "CompanySsiDetailStatus")
+ .WithMany("CompanySsiDetails")
+ .HasForeignKey("CompanySsiDetailStatusId")
+ .IsRequired()
+ .HasConstraintName("fk_company_ssi_details_company_ssi_detail_statuses_company_ssi");
+
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.ExpiryCheckType", "ExpiryCheckType")
+ .WithMany("CompanySsiDetails")
+ .HasForeignKey("ExpiryCheckTypeId")
+ .HasConstraintName("fk_company_ssi_details_expiry_check_types_expiry_check_type_id");
+
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.Process", "Process")
+ .WithMany("CompanySsiDetails")
+ .HasForeignKey("ProcessId")
+ .HasConstraintName("fk_company_ssi_details_processes_process_id");
+
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialExternalTypeDetailVersion", "VerifiedCredentialExternalTypeDetailVersion")
+ .WithMany("CompanySsiDetails")
+ .HasForeignKey("VerifiedCredentialExternalTypeDetailVersionId")
+ .HasConstraintName("fk_company_ssi_details_verified_credential_external_type_detai");
+
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialType", "VerifiedCredentialType")
+ .WithMany("CompanySsiDetails")
+ .HasForeignKey("VerifiedCredentialTypeId")
+ .IsRequired()
+ .HasConstraintName("fk_company_ssi_details_verified_credential_types_verified_cred");
+
+ b.Navigation("CompanySsiDetailStatus");
+
+ b.Navigation("ExpiryCheckType");
+
+ b.Navigation("Process");
+
+ b.Navigation("VerifiedCredentialExternalTypeDetailVersion");
+
+ b.Navigation("VerifiedCredentialType");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.CompanySsiDetailAssignedDocument", b =>
+ {
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.CompanySsiDetail", "CompanySsiDetail")
+ .WithMany()
+ .HasForeignKey("CompanySsiDetailId")
+ .IsRequired()
+ .HasConstraintName("fk_company_ssi_detail_assigned_documents_company_ssi_details_c");
+
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.Document", "Document")
+ .WithMany()
+ .HasForeignKey("DocumentId")
+ .IsRequired()
+ .HasConstraintName("fk_company_ssi_detail_assigned_documents_documents_document_id");
+
+ b.Navigation("CompanySsiDetail");
+
+ b.Navigation("Document");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.CompanySsiProcessData", b =>
+ {
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.CompanySsiDetail", "CompanySsiDetail")
+ .WithOne("CompanySsiProcessData")
+ .HasForeignKey("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.CompanySsiProcessData", "CompanySsiDetailId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired()
+ .HasConstraintName("fk_company_ssi_process_data_company_ssi_details_company_ssi_de");
+
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialTypeKind", "CredentialTypeKind")
+ .WithMany("CompanySsiProcessData")
+ .HasForeignKey("CredentialTypeKindId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired()
+ .HasConstraintName("fk_company_ssi_process_data_verified_credential_type_kinds_cre");
+
+ b.Navigation("CompanySsiDetail");
+
+ b.Navigation("CredentialTypeKind");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.Document", b =>
+ {
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.DocumentStatus", "DocumentStatus")
+ .WithMany("Documents")
+ .HasForeignKey("DocumentStatusId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired()
+ .HasConstraintName("fk_documents_document_status_document_status_id");
+
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.DocumentType", "DocumentType")
+ .WithMany("Documents")
+ .HasForeignKey("DocumentTypeId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired()
+ .HasConstraintName("fk_documents_document_types_document_type_id");
+
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.MediaType", "MediaType")
+ .WithMany("Documents")
+ .HasForeignKey("MediaTypeId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired()
+ .HasConstraintName("fk_documents_media_types_media_type_id");
+
+ b.Navigation("DocumentStatus");
+
+ b.Navigation("DocumentType");
+
+ b.Navigation("MediaType");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.Process", b =>
+ {
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.ProcessType", "ProcessType")
+ .WithMany("Processes")
+ .HasForeignKey("ProcessTypeId")
+ .IsRequired()
+ .HasConstraintName("fk_processes_process_types_process_type_id");
+
+ b.Navigation("ProcessType");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.ProcessStep", b =>
+ {
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.Process", "Process")
+ .WithMany("ProcessSteps")
+ .HasForeignKey("ProcessId")
+ .IsRequired()
+ .HasConstraintName("fk_process_steps_processes_process_id");
+
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.ProcessStepStatus", "ProcessStepStatus")
+ .WithMany("ProcessSteps")
+ .HasForeignKey("ProcessStepStatusId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired()
+ .HasConstraintName("fk_process_steps_process_step_statuses_process_step_status_id");
+
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.ProcessStepType", "ProcessStepType")
+ .WithMany("ProcessSteps")
+ .HasForeignKey("ProcessStepTypeId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired()
+ .HasConstraintName("fk_process_steps_process_step_types_process_step_type_id");
+
+ b.Navigation("Process");
+
+ b.Navigation("ProcessStepStatus");
+
+ b.Navigation("ProcessStepType");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialExternalTypeDetailVersion", b =>
+ {
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialExternalType", "VerifiedCredentialExternalType")
+ .WithMany("VerifiedCredentialExternalTypeDetailVersions")
+ .HasForeignKey("VerifiedCredentialExternalTypeId")
+ .IsRequired()
+ .HasConstraintName("fk_verified_credential_external_type_detail_versions_verified_");
+
+ b.Navigation("VerifiedCredentialExternalType");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialTypeAssignedExternalType", b =>
+ {
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialExternalType", "VerifiedCredentialExternalType")
+ .WithMany("VerifiedCredentialTypeAssignedExternalTypes")
+ .HasForeignKey("VerifiedCredentialExternalTypeId")
+ .IsRequired()
+ .HasConstraintName("fk_verified_credential_type_assigned_external_types_verified_c");
+
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialType", "VerifiedCredentialType")
+ .WithOne("VerifiedCredentialTypeAssignedExternalType")
+ .HasForeignKey("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialTypeAssignedExternalType", "VerifiedCredentialTypeId")
+ .IsRequired()
+ .HasConstraintName("fk_verified_credential_type_assigned_external_types_verified_c1");
+
+ b.Navigation("VerifiedCredentialExternalType");
+
+ b.Navigation("VerifiedCredentialType");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialTypeAssignedKind", b =>
+ {
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialType", "VerifiedCredentialType")
+ .WithOne("VerifiedCredentialTypeAssignedKind")
+ .HasForeignKey("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialTypeAssignedKind", "VerifiedCredentialTypeId")
+ .IsRequired()
+ .HasConstraintName("fk_verified_credential_type_assigned_kinds_verified_credential");
+
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialTypeKind", "VerifiedCredentialTypeKind")
+ .WithMany("VerifiedCredentialTypeAssignedKinds")
+ .HasForeignKey("VerifiedCredentialTypeKindId")
+ .IsRequired()
+ .HasConstraintName("fk_verified_credential_type_assigned_kinds_verified_credential1");
+
+ b.Navigation("VerifiedCredentialType");
+
+ b.Navigation("VerifiedCredentialTypeKind");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialTypeAssignedUseCase", b =>
+ {
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.UseCase", "UseCase")
+ .WithOne("VerifiedCredentialAssignedUseCase")
+ .HasForeignKey("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialTypeAssignedUseCase", "UseCaseId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired()
+ .HasConstraintName("fk_verified_credential_type_assigned_use_cases_use_cases_use_c");
+
+ b.HasOne("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialType", "VerifiedCredentialType")
+ .WithOne("VerifiedCredentialTypeAssignedUseCase")
+ .HasForeignKey("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialTypeAssignedUseCase", "VerifiedCredentialTypeId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired()
+ .HasConstraintName("fk_verified_credential_type_assigned_use_cases_verified_creden");
+
+ b.Navigation("UseCase");
+
+ b.Navigation("VerifiedCredentialType");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.CompanySsiDetail", b =>
+ {
+ b.Navigation("CompanySsiProcessData");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.CompanySsiDetailStatus", b =>
+ {
+ b.Navigation("CompanySsiDetails");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.DocumentStatus", b =>
+ {
+ b.Navigation("Documents");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.DocumentType", b =>
+ {
+ b.Navigation("Documents");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.ExpiryCheckType", b =>
+ {
+ b.Navigation("CompanySsiDetails");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.MediaType", b =>
+ {
+ b.Navigation("Documents");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.Process", b =>
+ {
+ b.Navigation("CompanySsiDetails");
+
+ b.Navigation("ProcessSteps");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.ProcessStepStatus", b =>
+ {
+ b.Navigation("ProcessSteps");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.ProcessStepType", b =>
+ {
+ b.Navigation("ProcessSteps");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.ProcessType", b =>
+ {
+ b.Navigation("Processes");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.UseCase", b =>
+ {
+ b.Navigation("VerifiedCredentialAssignedUseCase");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialExternalType", b =>
+ {
+ b.Navigation("VerifiedCredentialExternalTypeDetailVersions");
+
+ b.Navigation("VerifiedCredentialTypeAssignedExternalTypes");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialExternalTypeDetailVersion", b =>
+ {
+ b.Navigation("CompanySsiDetails");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialType", b =>
+ {
+ b.Navigation("CompanySsiDetails");
+
+ b.Navigation("VerifiedCredentialTypeAssignedExternalType");
+
+ b.Navigation("VerifiedCredentialTypeAssignedKind");
+
+ b.Navigation("VerifiedCredentialTypeAssignedUseCase");
+ });
+
+ modelBuilder.Entity("Org.Eclipse.TractusX.SsiCredentialIssuer.Entities.Entities.VerifiedCredentialTypeKind", b =>
+ {
+ b.Navigation("CompanySsiProcessData");
+
+ b.Navigation("VerifiedCredentialTypeAssignedKinds");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/src/database/SsiCredentialIssuer.Migrations/Migrations/20240424121211_1.0.0-rc.3.cs b/src/database/SsiCredentialIssuer.Migrations/Migrations/20240424121211_1.0.0-rc.3.cs
new file mode 100644
index 00000000..ab59b64a
--- /dev/null
+++ b/src/database/SsiCredentialIssuer.Migrations/Migrations/20240424121211_1.0.0-rc.3.cs
@@ -0,0 +1,170 @@
+/********************************************************************************
+ * Copyright (c) 2024 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Apache License, Version 2.0 which is available at
+ * https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ ********************************************************************************/
+
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional
+
+namespace Org.Eclipse.TractusX.SsiCredentialIssuer.Migrations.Migrations
+{
+ ///
+ public partial class _100rc3 : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.InsertData(
+ schema: "issuer",
+ table: "process_step_types",
+ columns: new[] { "id", "label" },
+ values: new object[,]
+ {
+ { 100, "REVOKE_CREDENTIAL" },
+ { 101, "TRIGGER_NOTIFICATION" },
+ { 102, "TRIGGER_MAIL" }
+ });
+
+ migrationBuilder.InsertData(
+ schema: "issuer",
+ table: "process_types",
+ columns: new[] { "id", "label" },
+ values: new object[] { 2, "DECLINE_CREDENTIAL" });
+
+ migrationBuilder.UpdateData(
+ schema: "issuer",
+ table: "verified_credential_external_types",
+ keyColumn: "id",
+ keyValue: 5,
+ column: "label",
+ value: "CIRCULAR_ECONOMY");
+
+ migrationBuilder.InsertData(
+ schema: "issuer",
+ table: "verified_credential_external_types",
+ columns: new[] { "id", "label" },
+ values: new object[,]
+ {
+ { 8, "DEMAND_AND_CAPACITY_MANAGEMENT" },
+ { 9, "DEMAND_AND_CAPACITY_MANAGEMENT_PURIS" },
+ { 10, "BUSINESS_PARTNER_DATA_MANAGEMENT" }
+ });
+
+ migrationBuilder.UpdateData(
+ schema: "issuer",
+ table: "verified_credential_types",
+ keyColumn: "id",
+ keyValue: 5,
+ column: "label",
+ value: "CIRCULAR_ECONOMY");
+
+ migrationBuilder.InsertData(
+ schema: "issuer",
+ table: "verified_credential_types",
+ columns: new[] { "id", "label" },
+ values: new object[,]
+ {
+ { 8, "DEMAND_AND_CAPACITY_MANAGEMENT" },
+ { 9, "DEMAND_AND_CAPACITY_MANAGEMENT_PURIS" },
+ { 10, "BUSINESS_PARTNER_DATA_MANAGEMENT" }
+ });
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DeleteData(
+ schema: "issuer",
+ table: "process_step_types",
+ keyColumn: "id",
+ keyValue: 100);
+
+ migrationBuilder.DeleteData(
+ schema: "issuer",
+ table: "process_step_types",
+ keyColumn: "id",
+ keyValue: 101);
+
+ migrationBuilder.DeleteData(
+ schema: "issuer",
+ table: "process_step_types",
+ keyColumn: "id",
+ keyValue: 102);
+
+ migrationBuilder.DeleteData(
+ schema: "issuer",
+ table: "process_types",
+ keyColumn: "id",
+ keyValue: 2);
+
+ migrationBuilder.DeleteData(
+ schema: "issuer",
+ table: "verified_credential_external_types",
+ keyColumn: "id",
+ keyValue: 8);
+
+ migrationBuilder.DeleteData(
+ schema: "issuer",
+ table: "verified_credential_external_types",
+ keyColumn: "id",
+ keyValue: 9);
+
+ migrationBuilder.DeleteData(
+ schema: "issuer",
+ table: "verified_credential_external_types",
+ keyColumn: "id",
+ keyValue: 10);
+
+ migrationBuilder.DeleteData(
+ schema: "issuer",
+ table: "verified_credential_types",
+ keyColumn: "id",
+ keyValue: 8);
+
+ migrationBuilder.DeleteData(
+ schema: "issuer",
+ table: "verified_credential_types",
+ keyColumn: "id",
+ keyValue: 9);
+
+ migrationBuilder.DeleteData(
+ schema: "issuer",
+ table: "verified_credential_types",
+ keyColumn: "id",
+ keyValue: 10);
+
+ migrationBuilder.UpdateData(
+ schema: "issuer",
+ table: "verified_credential_external_types",
+ keyColumn: "id",
+ keyValue: 5,
+ column: "label",
+ value: "SUSTAINABILITY_CREDENTIAL");
+
+ migrationBuilder.UpdateData(
+ schema: "issuer",
+ table: "verified_credential_types",
+ keyColumn: "id",
+ keyValue: 5,
+ column: "label",
+ value: "SUSTAINABILITY_FRAMEWORK");
+ }
+ }
+}
diff --git a/src/database/SsiCredentialIssuer.Migrations/Migrations/IssuerDbContextModelSnapshot.cs b/src/database/SsiCredentialIssuer.Migrations/Migrations/IssuerDbContextModelSnapshot.cs
index d55dec90..04a75321 100644
--- a/src/database/SsiCredentialIssuer.Migrations/Migrations/IssuerDbContextModelSnapshot.cs
+++ b/src/database/SsiCredentialIssuer.Migrations/Migrations/IssuerDbContextModelSnapshot.cs
@@ -18,13 +18,12 @@
********************************************************************************/
//
+
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Org.Eclipse.TractusX.SsiCredentialIssuer.Entities;
using System.Text.Json;
-#nullable disable
-
namespace Org.Eclipse.TractusX.SsiCredentialIssuer.Migrations.Migrations
{
[DbContext(typeof(IssuerDbContext))]
@@ -969,6 +968,21 @@ protected override void BuildModel(ModelBuilder modelBuilder)
{
Id = 5,
Label = "TRIGGER_CALLBACK"
+ },
+ new
+ {
+ Id = 100,
+ Label = "REVOKE_CREDENTIAL"
+ },
+ new
+ {
+ Id = 101,
+ Label = "TRIGGER_NOTIFICATION"
+ },
+ new
+ {
+ Id = 102,
+ Label = "TRIGGER_MAIL"
});
});
@@ -994,6 +1008,11 @@ protected override void BuildModel(ModelBuilder modelBuilder)
{
Id = 1,
Label = "CREATE_CREDENTIAL"
+ },
+ new
+ {
+ Id = 2,
+ Label = "DECLINE_CREDENTIAL"
});
});
@@ -1062,7 +1081,7 @@ protected override void BuildModel(ModelBuilder modelBuilder)
new
{
Id = 5,
- Label = "SUSTAINABILITY_CREDENTIAL"
+ Label = "CIRCULAR_ECONOMY"
},
new
{
@@ -1073,6 +1092,21 @@ protected override void BuildModel(ModelBuilder modelBuilder)
{
Id = 7,
Label = "BUSINESS_PARTNER_NUMBER"
+ },
+ new
+ {
+ Id = 8,
+ Label = "DEMAND_AND_CAPACITY_MANAGEMENT"
+ },
+ new
+ {
+ Id = 9,
+ Label = "DEMAND_AND_CAPACITY_MANAGEMENT_PURIS"
+ },
+ new
+ {
+ Id = 10,
+ Label = "BUSINESS_PARTNER_DATA_MANAGEMENT"
});
});
@@ -1154,7 +1188,7 @@ protected override void BuildModel(ModelBuilder modelBuilder)
new
{
Id = 5,
- Label = "SUSTAINABILITY_FRAMEWORK"
+ Label = "CIRCULAR_ECONOMY"
},
new
{
@@ -1165,6 +1199,21 @@ protected override void BuildModel(ModelBuilder modelBuilder)
{
Id = 7,
Label = "BUSINESS_PARTNER_NUMBER"
+ },
+ new
+ {
+ Id = 8,
+ Label = "DEMAND_AND_CAPACITY_MANAGEMENT"
+ },
+ new
+ {
+ Id = 9,
+ Label = "DEMAND_AND_CAPACITY_MANAGEMENT_PURIS"
+ },
+ new
+ {
+ Id = 10,
+ Label = "BUSINESS_PARTNER_DATA_MANAGEMENT"
});
});
diff --git a/src/database/SsiCredentialIssuer.Migrations/Seeder/BatchInsertSeeder.cs b/src/database/SsiCredentialIssuer.Migrations/Seeder/BatchInsertSeeder.cs
index 0c59abf8..dc841bbb 100644
--- a/src/database/SsiCredentialIssuer.Migrations/Seeder/BatchInsertSeeder.cs
+++ b/src/database/SsiCredentialIssuer.Migrations/Seeder/BatchInsertSeeder.cs
@@ -62,35 +62,35 @@ public async Task ExecuteAsync(CancellationToken cancellationToken)
_logger.LogInformation("Start BaseEntityBatch Seeder");
await SeedBaseEntity(cancellationToken);
- await SeedTable("company_ssi_process_datas", x => x.CompanySsiDetailId, cancellationToken).ConfigureAwait(false);
- await SeedTable("verified_credential_type_assigned_kinds", x => new { x.VerifiedCredentialTypeId, x.VerifiedCredentialTypeKindId }, cancellationToken).ConfigureAwait(false);
- await SeedTable("verified_credential_type_assigned_use_cases", x => new { x.VerifiedCredentialTypeId, x.UseCaseId }, cancellationToken).ConfigureAwait(false);
- await SeedTable("verified_credential_type_assigned_external_types", x => new { x.VerifiedCredentialTypeId, x.VerifiedCredentialExternalTypeId }, cancellationToken).ConfigureAwait(false);
+ await SeedTable("company_ssi_process_datas", x => x.CompanySsiDetailId, cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
+ await SeedTable("verified_credential_type_assigned_kinds", x => new { x.VerifiedCredentialTypeId, x.VerifiedCredentialTypeKindId }, cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
+ await SeedTable("verified_credential_type_assigned_use_cases", x => new { x.VerifiedCredentialTypeId, x.UseCaseId }, cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
+ await SeedTable("verified_credential_type_assigned_external_types", x => new { x.VerifiedCredentialTypeId, x.VerifiedCredentialExternalTypeId }, cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
- await _context.SaveChangesAsync(cancellationToken).ConfigureAwait(false);
+ await _context.SaveChangesAsync(cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
_logger.LogInformation("Finished BaseEntityBatch Seeder");
}
private async Task SeedBaseEntity(CancellationToken cancellationToken)
{
- await SeedTableForBaseEntity("documents", cancellationToken).ConfigureAwait(false);
- await SeedTableForBaseEntity("use_cases", cancellationToken).ConfigureAwait(false);
- await SeedTableForBaseEntity("process_steps", cancellationToken).ConfigureAwait(false);
- await SeedTableForBaseEntity("processes", cancellationToken).ConfigureAwait(false);
- await SeedTableForBaseEntity("verified_credential_external_type_detail_versions", cancellationToken).ConfigureAwait(false);
- await SeedTableForBaseEntity("company_ssi_details", cancellationToken).ConfigureAwait(false);
+ await SeedTableForBaseEntity("documents", cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
+ await SeedTableForBaseEntity("use_cases", cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
+ await SeedTableForBaseEntity("process_steps", cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
+ await SeedTableForBaseEntity("processes", cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
+ await SeedTableForBaseEntity("verified_credential_external_type_detail_versions", cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
+ await SeedTableForBaseEntity("company_ssi_details", cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
}
private async Task SeedTableForBaseEntity(string fileName, CancellationToken cancellationToken) where T : class, IBaseEntity
{
- await SeedTable(fileName, x => x.Id, cancellationToken).ConfigureAwait(false);
+ await SeedTable(fileName, x => x.Id, cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
}
private async Task SeedTable(string fileName, Func keySelector, CancellationToken cancellationToken) where T : class
{
_logger.LogInformation("Start seeding {Filename}", fileName);
var additionalEnvironments = _settings.TestDataEnvironments ?? Enumerable.Empty();
- var data = await SeederHelper.GetSeedData(_logger, fileName, _settings.DataPaths, cancellationToken, additionalEnvironments.ToArray()).ConfigureAwait(false);
+ var data = await SeederHelper.GetSeedData(_logger, fileName, _settings.DataPaths, cancellationToken, additionalEnvironments.ToArray()).ConfigureAwait(ConfigureAwaitOptions.None);
_logger.LogInformation("Found {ElementCount} data", data.Count);
if (data.Any())
{
@@ -101,7 +101,7 @@ private async Task SeedTable(string fileName, Func keySelector, Ca
.Where(t => t.x == null)
.Select(t => t.t.d).ToList();
_logger.LogInformation("Seeding {DataCount} {TableName}", data.Count, typeName);
- await _context.Set().AddRangeAsync(data, cancellationToken).ConfigureAwait(false);
+ await _context.Set().AddRangeAsync(data, cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
_logger.LogInformation("Seeded {TableName}", typeName);
}
}
diff --git a/src/database/SsiCredentialIssuer.Migrations/Seeder/BatchUpdateSeeder.cs b/src/database/SsiCredentialIssuer.Migrations/Seeder/BatchUpdateSeeder.cs
index 3fcc80a4..e42a5a43 100644
--- a/src/database/SsiCredentialIssuer.Migrations/Seeder/BatchUpdateSeeder.cs
+++ b/src/database/SsiCredentialIssuer.Migrations/Seeder/BatchUpdateSeeder.cs
@@ -69,9 +69,9 @@ await SeedTable("verified_credentia
dbEntry.Template = entry.Template;
dbEntry.Expiry = entry.Expiry;
dbEntry.ValidFrom = entry.ValidFrom;
- }, cancellationToken).ConfigureAwait(false);
+ }, cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
- await _context.SaveChangesAsync(cancellationToken).ConfigureAwait(false);
+ await _context.SaveChangesAsync(cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
_logger.LogInformation("Finished BaseEntityBatch Seeder");
}
@@ -79,7 +79,7 @@ private async Task SeedTable(string fileName, Func keySelector, Fu
{
_logger.LogInformation("Start seeding {Filename}", fileName);
var additionalEnvironments = _settings.TestDataEnvironments ?? Enumerable.Empty();
- var data = await SeederHelper.GetSeedData(_logger, fileName, _settings.DataPaths, cancellationToken, additionalEnvironments.ToArray()).ConfigureAwait(false);
+ var data = await SeederHelper.GetSeedData(_logger, fileName, _settings.DataPaths, cancellationToken, additionalEnvironments.ToArray()).ConfigureAwait(ConfigureAwaitOptions.None);
_logger.LogInformation("Found {ElementCount} data", data.Count);
if (data.Any())
{
diff --git a/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/use_cases.json b/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/use_cases.json
index 6c33df1d..e780a810 100644
--- a/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/use_cases.json
+++ b/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/use_cases.json
@@ -4,16 +4,6 @@
"name": "Traceability",
"shortname": "T"
},
- {
- "id": "06b243a4-ba51-4bf3-bc40-5d79a2231b87",
- "name": "Sustainability & CO2-Footprint",
- "shortname": "CO2"
- },
- {
- "id": "06b243a4-ba51-4bf3-bc40-5d79a2231b88",
- "name": "Manufacturing as a Service",
- "shortname": "MaaS"
- },
{
"id": "06b243a4-ba51-4bf3-bc40-5d79a2231b89",
"name": "Real-Time Control",
@@ -29,11 +19,6 @@
"name": "Circular Economy",
"shortname": "CE"
},
- {
- "id": "1aacde78-35ec-4df3-ba1e-f988cddcbbd9",
- "name": "None",
- "shortname": "None"
- },
{
"id": "41e4a4c0-aae4-41c0-97c9-ebafde410de4",
"name": "Demand and Capacity Management",
@@ -41,7 +26,7 @@
},
{
"id": "6909ccc7-37c8-4088-99ab-790f20702460",
- "name": "Business Partner Management",
+ "name": "Business Partner Data Management",
"shortname": "BPDM"
},
{
@@ -53,5 +38,10 @@
"id": "b3948771-3372-4568-9e0e-acca4e674098",
"name": "Behavior Twin",
"shortname": "BT"
+ },
+ {
+ "id": "3793a2d9-6bc5-44f0-b952-7d3f6b747dd7",
+ "name": "Demand and Capacity Management",
+ "shortname": "Puris"
}
]
\ No newline at end of file
diff --git a/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/verified_credential_external_type_detail_versions.consortia.json b/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/verified_credential_external_type_detail_versions.consortia.json
index 58bb092c..c622324c 100644
--- a/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/verified_credential_external_type_detail_versions.consortia.json
+++ b/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/verified_credential_external_type_detail_versions.consortia.json
@@ -1,42 +1,34 @@
[
- {
- "id": "1268a76a-ca19-4dd8-b932-01f24071d562",
- "verified_credential_external_type_id": 3,
- "version": "1.0.0",
- "template": null,
- "valid_from": "2023-06-01 00:00:00.000000 +00:00",
- "expiry": "2023-09-30 00:00:00.000000 +00:00"
- },
{
"id": "1268a76a-ca19-4dd8-b932-01f24071d563",
"verified_credential_external_type_id": 1,
- "version": "2.0.0",
- "template": null,
+ "version": "2.0",
+ "template": "https://catena-x.net/fileadmin/user_upload/04_Einfuehren_und_umsetzen/Governance_Framework/231016_Catena-X_Use_Case_Framework_Traceability.pdf",
"valid_from": "2023-06-01 00:00:00.000000 +00:00",
"expiry": "2023-12-23 00:00:00.000000 +00:00"
},
{
"id": "1268a76a-ca19-4dd8-b932-01f24071d564",
"verified_credential_external_type_id": 1,
- "version": "3.0.0",
- "template": null,
+ "version": "3.0",
+ "template": "https://catena-x.net/fileadmin/user_upload/04_Einfuehren_und_umsetzen/Governance_Framework/231016_Catena-X_Use_Case_Framework_Traceability.pdf",
"valid_from": "2024-01-01 00:00:00.000000 +00:00",
"expiry": "2024-12-31 00:00:00.000000 +00:00"
},
{
- "id": "1268a76a-ca19-4dd8-b932-01f24071d565",
- "verified_credential_external_type_id": 5,
- "version": "1.0.0",
+ "id": "1268a76a-ca19-4dd8-b932-01f24071d562",
+ "verified_credential_external_type_id": 3,
+ "version": "1.0",
"template": null,
- "valid_from": "2024-01-01 00:00:00.000000 +00:00",
- "expiry": "2024-12-31 00:00:00.000000 +00:00"
+ "valid_from": "2023-06-01 00:00:00.000000 +00:00",
+ "expiry": "2023-09-30 00:00:00.000000 +00:00"
},
{
- "id": "df3bd7d2-3349-410b-9b30-9a5238eb605e",
- "verified_credential_external_type_id": 4,
- "version": null,
- "template": null,
+ "id": "1268a76a-ca19-4dd8-b932-01f24071d565",
+ "verified_credential_external_type_id": 5,
+ "version": "1.0",
+ "template": " https://catena-x.net/fileadmin/user_upload/04_Einfuehren_und_umsetzen/Governance_Framework/231016_Catena-X_Use_Case_Framework_CircularEconomy.pdf",
"valid_from": "2024-01-01 00:00:00.000000 +00:00",
- "expiry": "2999-12-31 23:59:59.000000 +00:00"
+ "expiry": "2024-12-31 00:00:00.000000 +00:00"
}
]
diff --git a/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/verified_credential_external_type_detail_versions.json b/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/verified_credential_external_type_detail_versions.json
index ee5ccd40..7aa80f1b 100644
--- a/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/verified_credential_external_type_detail_versions.json
+++ b/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/verified_credential_external_type_detail_versions.json
@@ -2,7 +2,7 @@
{
"id": "1268a76a-ca19-4dd8-b932-01f24071d560",
"verified_credential_external_type_id": 1,
- "version": "1.0.0",
+ "version": "1.0",
"template": "https://catena-x.net/fileadmin/user_upload/04_Einfuehren_und_umsetzen/Governance_Framework/231016_Catena-X_Use_Case_Framework_Traceability.pdf",
"valid_from": "2023-06-01 00:00:00.000000 +00:00",
"expiry": "2023-09-30 00:00:00.000000 +00:00"
@@ -10,7 +10,7 @@
{
"id": "1268a76a-ca19-4dd8-b932-01f24071d561",
"verified_credential_external_type_id": 2,
- "version": "1.0.0",
+ "version": "1.0",
"template": "https://catena-x.net/fileadmin/user_upload/04_Einfuehren_und_umsetzen/Governance_Framework/231016_Catena-X_Use_Case_Framework_PCF.pdf",
"valid_from": "2023-06-01 00:00:00.000000 +00:00",
"expiry": "2023-09-30 00:00:00.000000 +00:00"
@@ -18,9 +18,33 @@
{
"id": "37aa6259-b452-4d50-b09e-827929dcfa15",
"verified_credential_external_type_id": 6,
- "version": "1.0.0",
+ "version": "1.0",
"template": "https://catena-x.net/fileadmin/user_upload/04_Einfuehren_und_umsetzen/Governance_Framework/231016_Catena-X_Use_Case_Framework_PCF.pdf",
- "valid_from": "2023-10-16 00:00:00.000000 +00:00",
- "expiry": "2023-10-16 00:00:00.000000 +00:00"
+ "valid_from": "2024-03-27 00:00:00.000000 +00:00",
+ "expiry": "2024-12-31 00:00:00.000000 +00:00"
+ },
+ {
+ "id": "27d12475-c970-4979-892b-8f88e819018f",
+ "verified_credential_external_type_id": 8,
+ "version": "1.0",
+ "template": "https://catena-x.net/fileadmin/user_upload/04_Einfuehren_und_umsetzen/Governance_Framework/231016_Catena-X_Use_Case_Framework_DemanAndCapacity.pdf",
+ "valid_from": "2024-03-27 00:00:00.000000 +00:00",
+ "expiry": "2024-12-31 00:00:00.000000 +00:00"
+ },
+ {
+ "id": "a7585e82-4789-47ce-9184-5788086b1943",
+ "verified_credential_external_type_id": 9,
+ "version": "1.0",
+ "template": "https://catena-x.net/fileadmin/user_upload/04_Einfuehren_und_umsetzen/Governance_Framework/231016_Catena-X_Use_Case_Framework_Puris.pdf",
+ "valid_from": "2024-03-27 00:00:00.000000 +00:00",
+ "expiry": "2024-12-31 00:00:00.000000 +00:00"
+ },
+ {
+ "id": "0077addf-f50d-4f5e-bc41-26c45d407104",
+ "verified_credential_external_type_id": 10,
+ "version": "1.0",
+ "template": "https://catena-x.net/fileadmin/user_upload/04_Einfuehren_und_umsetzen/Governance_Framework/231016_Catena-X_Use_Case_Framework_BPDM.pdf",
+ "valid_from": "2024-03-27 00:00:00.000000 +00:00",
+ "expiry": "2024-12-31 00:00:00.000000 +00:00"
}
]
diff --git a/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/verified_credential_type_assigned_external_types.json b/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/verified_credential_type_assigned_external_types.json
index c07dc64e..5451b105 100644
--- a/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/verified_credential_type_assigned_external_types.json
+++ b/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/verified_credential_type_assigned_external_types.json
@@ -22,5 +22,17 @@
{
"verified_credential_external_type_id": 6,
"verified_credential_type_id": 6
+ },
+ {
+ "verified_credential_external_type_id": 8,
+ "verified_credential_type_id": 8
+ },
+ {
+ "verified_credential_external_type_id": 9,
+ "verified_credential_type_id": 9
+ },
+ {
+ "verified_credential_external_type_id": 10,
+ "verified_credential_type_id": 10
}
]
diff --git a/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/verified_credential_type_assigned_kinds.json b/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/verified_credential_type_assigned_kinds.json
index 365789bd..4880da7a 100644
--- a/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/verified_credential_type_assigned_kinds.json
+++ b/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/verified_credential_type_assigned_kinds.json
@@ -26,5 +26,17 @@
{
"verified_credential_type_id": 7,
"verified_credential_type_kind_id": 3
+ },
+ {
+ "verified_credential_type_id": 8,
+ "verified_credential_type_kind_id": 1
+ },
+ {
+ "verified_credential_type_id": 9,
+ "verified_credential_type_kind_id": 1
+ },
+ {
+ "verified_credential_type_id": 10,
+ "verified_credential_type_kind_id": 1
}
]
diff --git a/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/verified_credential_type_assigned_use_cases.json b/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/verified_credential_type_assigned_use_cases.json
index 92d3a49f..5d034bca 100644
--- a/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/verified_credential_type_assigned_use_cases.json
+++ b/src/database/SsiCredentialIssuer.Migrations/Seeder/Data/verified_credential_type_assigned_use_cases.json
@@ -3,10 +3,6 @@
"verified_credential_type_id": 1,
"use_case_id": "06b243a4-ba51-4bf3-bc40-5d79a2231b86"
},
- {
- "verified_credential_type_id": 2,
- "use_case_id": "06b243a4-ba51-4bf3-bc40-5d79a2231b87"
- },
{
"verified_credential_type_id": 3,
"use_case_id": "b3948771-3372-4568-9e0e-acca4e674098"
@@ -18,5 +14,17 @@
{
"verified_credential_type_id": 6,
"use_case_id": "c065a349-f649-47f8-94d5-1a504a855419"
+ },
+ {
+ "verified_credential_type_id": 8,
+ "use_case_id": "41e4a4c0-aae4-41c0-97c9-ebafde410de4"
+ },
+ {
+ "verified_credential_type_id": 9,
+ "use_case_id": "3793a2d9-6bc5-44f0-b952-7d3f6b747dd7"
+ },
+ {
+ "verified_credential_type_id": 10,
+ "use_case_id": "6909ccc7-37c8-4088-99ab-790f20702460"
}
]
diff --git a/src/database/SsiCredentialIssuer.Migrations/SsiCredentialIssuer.Migrations.csproj b/src/database/SsiCredentialIssuer.Migrations/SsiCredentialIssuer.Migrations.csproj
index 7741e998..9129390e 100644
--- a/src/database/SsiCredentialIssuer.Migrations/SsiCredentialIssuer.Migrations.csproj
+++ b/src/database/SsiCredentialIssuer.Migrations/SsiCredentialIssuer.Migrations.csproj
@@ -21,7 +21,7 @@
Org.Eclipse.TractusX.SsiCredentialIssuer.Migrations
Org.Eclipse.TractusX.SsiCredentialIssuer.Migrations
- net7.0
+ net8.0
enable
enable
31645f70-6335-4833-b3b4-4826ca778084
@@ -33,23 +33,24 @@
true
-
-
-
+
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/externalservices/Callback.Service/Callback.Service.csproj b/src/externalservices/Callback.Service/Callback.Service.csproj
index 6f0c33d9..e748e4c2 100644
--- a/src/externalservices/Callback.Service/Callback.Service.csproj
+++ b/src/externalservices/Callback.Service/Callback.Service.csproj
@@ -22,15 +22,15 @@
Org.Eclipse.TractusX.SsiCredentialIssuer.Callback.Service
Org.Eclipse.TractusX.SsiCredentialIssuer.Callback.Service
- net7.0
+ net8.0
enable
enable
-
-
-
+
+
+
diff --git a/src/externalservices/Callback.Service/DependencyInjection/CallbackSettings.cs b/src/externalservices/Callback.Service/DependencyInjection/CallbackSettings.cs
index 6857e041..13e99808 100644
--- a/src/externalservices/Callback.Service/DependencyInjection/CallbackSettings.cs
+++ b/src/externalservices/Callback.Service/DependencyInjection/CallbackSettings.cs
@@ -18,9 +18,12 @@
********************************************************************************/
using Org.Eclipse.TractusX.Portal.Backend.Framework.Token;
+using System.ComponentModel.DataAnnotations;
namespace Org.Eclipse.TractusX.SsiCredentialIssuer.Callback.Service.DependencyInjection;
public class CallbackSettings : KeyVaultAuthSettings
{
+ [Required(AllowEmptyStrings = false)]
+ public string BaseAddress { get; set; } = null!;
}
diff --git a/src/externalservices/Callback.Service/DependencyInjection/ServiceCollectionExtensions.cs b/src/externalservices/Callback.Service/DependencyInjection/ServiceCollectionExtensions.cs
index c49024bc..0035ba1e 100644
--- a/src/externalservices/Callback.Service/DependencyInjection/ServiceCollectionExtensions.cs
+++ b/src/externalservices/Callback.Service/DependencyInjection/ServiceCollectionExtensions.cs
@@ -19,6 +19,7 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Options;
using Org.Eclipse.TractusX.Portal.Backend.Framework.HttpClientExtensions;
using Org.Eclipse.TractusX.SsiCredentialIssuer.Callback.Service.Services;
@@ -35,8 +36,10 @@ public static IServiceCollection AddCallbackService(this IServiceCollection serv
services.AddTransient>();
+ var sp = services.BuildServiceProvider();
+ var settings = sp.GetRequiredService>();
return services
.AddScoped()
- .AddCustomHttpClientWithAuthentication(null);
+ .AddCustomHttpClientWithAuthentication(settings.Value.BaseAddress);
}
}
diff --git a/src/externalservices/Callback.Service/Services/CallbackService.cs b/src/externalservices/Callback.Service/Services/CallbackService.cs
index 719f3609..8a10610c 100644
--- a/src/externalservices/Callback.Service/Services/CallbackService.cs
+++ b/src/externalservices/Callback.Service/Services/CallbackService.cs
@@ -47,7 +47,7 @@ public CallbackService(ITokenService tokenService, IOptions op
public async Task TriggerCallback(string callbackUrl, IssuerResponseData responseData, CancellationToken cancellationToken)
{
- var client = await _tokenService.GetAuthorizedClient(_settings, cancellationToken).ConfigureAwait(false);
+ var client = await _tokenService.GetAuthorizedClient(_settings, cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
await client.PostAsJsonAsync($"{callbackUrl}", responseData, Options, cancellationToken)
.CatchingIntoServiceExceptionFor("callback", HttpAsyncResponseMessageExtension.RecoverOptions.REQUEST_EXCEPTION)
.ConfigureAwait(false);
diff --git a/src/externalservices/Portal.Service/Models/MailData.cs b/src/externalservices/Portal.Service/Models/MailData.cs
index b3834531..c82c13cd 100644
--- a/src/externalservices/Portal.Service/Models/MailData.cs
+++ b/src/externalservices/Portal.Service/Models/MailData.cs
@@ -24,5 +24,10 @@ namespace Org.Eclipse.TractusX.SsiCredentialIssuer.Portal.Service.Models;
public record MailData(
[property: JsonPropertyName("requester")] Guid Requester,
[property: JsonPropertyName("template")] string Template,
- [property: JsonPropertyName("mailParameters")] IDictionary MailParameters
+ [property: JsonPropertyName("mailParameters")] IEnumerable MailParameters
+);
+
+public record MailParameter(
+ [property: JsonPropertyName("key")] string Key,
+ [property: JsonPropertyName("value")] string Value
);
diff --git a/src/externalservices/Portal.Service/Portal.Service.csproj b/src/externalservices/Portal.Service/Portal.Service.csproj
index 76ede424..4091ad85 100644
--- a/src/externalservices/Portal.Service/Portal.Service.csproj
+++ b/src/externalservices/Portal.Service/Portal.Service.csproj
@@ -22,15 +22,15 @@
Org.Eclipse.TractusX.SsiCredentialIssuer.Portal.Service
Org.Eclipse.TractusX.SsiCredentialIssuer.Portal.Service
- net7.0
+ net8.0
enable
enable
-
-
-
+
+
+
diff --git a/src/externalservices/Portal.Service/Services/IPortalService.cs b/src/externalservices/Portal.Service/Services/IPortalService.cs
index c09725cd..bacc5e0d 100644
--- a/src/externalservices/Portal.Service/Services/IPortalService.cs
+++ b/src/externalservices/Portal.Service/Services/IPortalService.cs
@@ -24,5 +24,5 @@ namespace Org.Eclipse.TractusX.SsiCredentialIssuer.Portal.Service.Services;
public interface IPortalService
{
Task AddNotification(string content, Guid requester, NotificationTypeId notificationTypeId, CancellationToken cancellationToken);
- Task TriggerMail(string template, Guid requester, IDictionary mailParameters, CancellationToken cancellationToken);
+ Task TriggerMail(string template, Guid requester, IEnumerable mailParameters, CancellationToken cancellationToken);
}
diff --git a/src/externalservices/Portal.Service/Services/PortalService.cs b/src/externalservices/Portal.Service/Services/PortalService.cs
index fb63a2a7..3f0dc27c 100644
--- a/src/externalservices/Portal.Service/Services/PortalService.cs
+++ b/src/externalservices/Portal.Service/Services/PortalService.cs
@@ -42,18 +42,18 @@ public PortalService(ITokenService tokenService, IOptions option
public async Task AddNotification(string content, Guid requester, NotificationTypeId notificationTypeId, CancellationToken cancellationToken)
{
- var client = await _tokenService.GetAuthorizedClient(_settings, cancellationToken).ConfigureAwait(false);
+ using var client = await _tokenService.GetAuthorizedClient(_settings, cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
var data = new NotificationRequest(requester, content, notificationTypeId);
- await client.PostAsJsonAsync("api/notifications/management", data, Options, cancellationToken)
+ await client.PostAsJsonAsync("api/notifications/ssi-credentials", data, Options, cancellationToken)
.CatchingIntoServiceExceptionFor("notification", HttpAsyncResponseMessageExtension.RecoverOptions.REQUEST_EXCEPTION)
.ConfigureAwait(false);
}
- public async Task TriggerMail(string template, Guid requester, IDictionary mailParameters, CancellationToken cancellationToken)
+ public async Task TriggerMail(string template, Guid requester, IEnumerable mailParameters, CancellationToken cancellationToken)
{
- var client = await _tokenService.GetAuthorizedClient