diff --git a/CHANGELOG.md b/CHANGELOG.md
index beab4203c..7a36c2a1f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -24,6 +24,20 @@
The changelog format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [released]
+## [1.1.0] - 19-10-2023
+
+## Added
+- Added loading screen functionality in the frontend
+- Create IRS component configuration for the integration with the backend application in next versions
+- Created IRS postman collection for testing the APIs.
+- Added the QR code scanning button in the main search view (welcome screen)
+- Added support for the new dDTR lookup shells version which is (AAS 3.0) compliant.
+
+## Updated
+- Updated the digital twin test payloads to match AAS 3.0 payloads which should be used for version `>v1.0.0` of the DPP
+- Updated the main readme fixing notable mistakes.
+
## [released]
## [1.0.1] - 31-08-2023
diff --git a/DEPENDENCIES_FRONTEND b/DEPENDENCIES_FRONTEND
index cb8f19050..374507842 100644
--- a/DEPENDENCIES_FRONTEND
+++ b/DEPENDENCIES_FRONTEND
@@ -134,7 +134,7 @@ npm/npmjs/-/fs-extra/11.1.0, MIT, approved, #5742
npm/npmjs/-/fs-extra/9.1.0, MIT, approved, clearlydefined
npm/npmjs/-/fs.realpath/1.0.0, ISC, approved, clearlydefined
npm/npmjs/-/fsevents/2.3.2, MIT, approved, #2967
-npm/npmjs/-/function-bind/1.1.1, MIT, approved, clearlydefined
+npm/npmjs/-/function-bind/1.1.1, MIT, approved, #11063
npm/npmjs/-/functional-red-black-tree/1.0.1, MIT, approved, clearlydefined
npm/npmjs/-/gensync/1.0.0-beta.2, MIT, approved, clearlydefined
npm/npmjs/-/get-caller-file/2.0.5, ISC, approved, clearlydefined
@@ -151,7 +151,7 @@ npm/npmjs/-/graceful-fs/4.2.10, ISC, approved, #7413
npm/npmjs/-/has-flag/3.0.0, MIT, approved, clearlydefined
npm/npmjs/-/has-flag/4.0.0, MIT, approved, clearlydefined
npm/npmjs/-/has-symbols/1.0.3, MIT, approved, clearlydefined
-npm/npmjs/-/has/1.0.3, MIT, approved, clearlydefined
+npm/npmjs/-/has/1.0.3, MIT, approved, #10930
npm/npmjs/-/he/1.2.0, MIT, approved, clearlydefined
npm/npmjs/-/http-signature/1.3.6, MIT, approved, clearlydefined
npm/npmjs/-/human-signals/1.1.1, Apache-2.0, approved, clearlydefined
@@ -426,7 +426,7 @@ npm/npmjs/@nodelib/fs.stat/2.0.5, MIT, approved, clearlydefined
npm/npmjs/@nodelib/fs.walk/1.2.8, MIT, approved, clearlydefined
npm/npmjs/@popperjs/core/2.11.2, MIT, approved, clearlydefined
npm/npmjs/@types/node/14.18.36, MIT, approved, #4611
-npm/npmjs/@types/sinonjs__fake-timers/8.1.1, MIT, approved, clearlydefined
+npm/npmjs/@types/sinonjs__fake-timers/8.1.1, MIT, approved, #11000
npm/npmjs/@types/sizzle/2.3.3, MIT, approved, clearlydefined
npm/npmjs/@types/yauzl/2.10.0, MIT, approved, clearlydefined
npm/npmjs/@vitejs/plugin-vue/4.0.0, MIT, approved, clearlydefined
diff --git a/README.md b/README.md
index 6337638db..ce867581e 100644
--- a/README.md
+++ b/README.md
@@ -35,9 +35,9 @@ In particular, the appliction is used to access the battery passport data provid
### Software Version
#### Helm Chart Version
-
1.0.1
+1.1.0
#### Application Version
-v1.0.1
+v1.1.0
## Application Preview
@@ -46,29 +46,29 @@ Here is a preview from the DPP App UI, where we visualize a test battery passpor
![General Info View](./docs/arc42/GraphicBatteryPassportViewGeneralInfo.png)
-> **Note**: For more information check the [documentation section](./docs/)
+> **Note**: For more information check the [documentation section](./docs/README.md)
## Getting Started
To get started you can have a look into our documentation:
-| Name | Description |
-| ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| [Arc42](./docs/arc42/Arc42.md) | Arc42 of Digital Product Pass |
-| [Administration Guide](./docs/admin%20guide/Admin_Guide.md) | Administration Guide explaining the infrastructure and how to configure the application |
-| [Backend Documentation](./consumer-backend/productpass/readme.md) | Backend documentation Product Passport App |
-| [Deployment in Hotel Budapest](./deployment/README.md) | Technical Guide - Deployment in ArgoCD Hotel Budapest (integration environment) |
-| [Docker Overview](./docker/README.md) | Overview on general docker commands |
-| [Keycloak Overview](./docker/local/Keycloak/README.md) | This guide describes how to setup a keycloak instance in local docker container and import existing realm.json file. |
-| [Short Introduction into the project](./docs/GETTING-STARTED.md) | Battery Pass Allpication infrastructure, installation guide, technical usage guide |
-| [Code Scaning with Kics and Trivy](./docs/IaC.md) | Infrastructure As Code (IaC) with KICS intends to find security vulnerabilities by scanning the code and upload results to the security dashboard in github |
-| [Release Guidelines](./docs/RELEASE.md) | Product Battery Pass Consumer App Release Guide |
-| [Secret Management](./docs/SECRETS_MANAGEMENT.md) | Secrets management with CX HashiCorp Vault and ArgoCD Vault Plugin (AVP) - client credentials, database passwords, access tokens |
-| [Cypress Overview](./docs/cypress/CYPRESS.md) | Documentation for Battery Passport App E2E Cypress test |
-| [End User Manual](./docs/user%20manual/User%20Manual%20Product%20Viewer%20App.md) | End User Manual Product Viewer App |
-| [Postman Overview](./postman/README.md) | Technical guide depicts the battery pass end-to-end API calls through the postman REST client |
-| [Changelog](./CHANGELOG.md) | Changelog |
-| [Helm Charts](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/charts/digital-product-pass) | Project's Helm Charts |
+| Name | Description |
+| ---------------------------------------------------------------- |-------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| [Arc42](./docs/arc42/Arc42.md) | Main Architecture Document (Arc42) of Digital Product Pass Application |
+| [Administration Guide](./docs/admin%20guide/Admin_Guide.md) | Administration Guide explaining the infrastructure and how to configure the application |
+| [Backend Documentation](./consumer-backend/productpass/readme.md) | Backend documentation Product Passport App |
+| [Deployment in Hotel Budapest](./deployment/README.md) | Technical Guide - Deployment in ArgoCD Hotel Budapest (integration environment) |
+| [Docker Overview](./docker/README.md) | Overview on general docker commands |
+| [Keycloak Overview](./docker/local/Keycloak/README.md) | This guide describes how to setup a keycloak instance in local docker container and import existing realm.json file. |
+| [Short Introduction into the project](./docs/GETTING-STARTED.md) | Digital Product Pass App infrastructure, helm installation guide, technical usage guide |
+| [Code Scaning with Kics and Trivy](./docs/IaC.md) | Infrastructure As Code (IaC) with KICS intends to find security vulnerabilities by scanning the code and upload results to the security dashboard in github |
+| [Release Guidelines](./docs/RELEASE.md) | Digital Product Pass App Release Guide |
+| [Secret Management](./docs/SECRETS_MANAGEMENT.md) | Secrets management with CX HashiCorp Vault and ArgoCD Vault Plugin (AVP) - client credentials, database passwords, access tokens |
+| [Cypress Overview](./docs/cypress/CYPRESS.md) | Documentation for Battery Passport App E2E Cypress test |
+| [End User Manual](./docs/user%20manual/User%20Manual%20Product%20Viewer%20App.md) | End User Manual Product Viewer App |
+| [Postman Overview](./postman/README.md) | Technical guide depicts the battery pass end-to-end API calls through the postman REST client |
+| [Changelog](./CHANGELOG.md) | Changelog |
+| [Helm Charts](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/charts/digital-product-pass) | Project's Helm Charts |
@@ -80,7 +80,7 @@ To get started you can have a look into our documentation:
## Installation
-[INSTALL](./INSTALL.md)
+For installing the Digital Product Pass application please consult our [Intallation Guide](./INSTALL.md).
## License
diff --git a/charts/digital-product-pass/Chart.yaml b/charts/digital-product-pass/Chart.yaml
index 461fc888c..69fb313aa 100644
--- a/charts/digital-product-pass/Chart.yaml
+++ b/charts/digital-product-pass/Chart.yaml
@@ -40,11 +40,11 @@ type: application
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
-version: 1.0.1
+version: 1.1.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
-appVersion: "1.0.1"
+appVersion: "1.1.0"
diff --git a/charts/digital-product-pass/README.md b/charts/digital-product-pass/README.md
index b33a7183e..c3dab99d6 100644
--- a/charts/digital-product-pass/README.md
+++ b/charts/digital-product-pass/README.md
@@ -1,6 +1,6 @@
# digital-product-pass
-![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square)
+![Version: 1.1.0](https://img.shields.io/badge/Version-1.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.1.0](https://img.shields.io/badge/AppVersion-1.1.0-informational?style=flat-square)
A Helm chart for Tractus-X Digital Product Pass Kubernetes
@@ -15,8 +15,8 @@ A Helm chart for Tractus-X Digital Product Pass Kubernetes
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| affinity | object | `{}` | |
-| backend | object | `{"application":{"yml":"# -- spring boot configuration\nspring:\n name: \"Catena-X Product Passport Consumer Backend\"\n main:\n allow-bean-definition-overriding: true\n devtools:\n add-properties: false\n jackson:\n serialization:\n indent_output: true\nlogging:\n level:\n # -- general logging level\n root: INFO\n # -- logging for the util components\n utils: INFO\nconfiguration:\n # -- max retries for the backend services\n maxRetries: 5\n # -- keycloak configuration\n keycloak:\n realm: CX-Central\n resource: Cl13-CX-Battery\n tokenUri: 'https:///auth/realms//protocol/openid-connect/token'\n userInfoUri: 'https:///auth/realms//protocol/openid-connect/userinfo'\n # -- edc consumer connection configuration\n edc:\n endpoint: 'https://'\n management: '/management/v2'\n catalog: '/catalog/request'\n negotiation: '/contractnegotiations'\n transfer: '/transferprocesses'\n receiverEndpoint: 'https:///endpoint'\n delay: 100 # -- Negotiation status Delay in milliseconds in between async requests [<= 500]\n # -- security configuration\n security:\n check:\n enabled: false\n bpn: false\n edc: false\n # -- digital twin registry configuration\n dtr:\n central: false\n # -- central digital twin registry url\n centralUrl: 'https://'\n # -- asset id to search for the registry in the edc\n assetId: 'digital-twin-registry'\n # -- submodel endpoint interface to search\n endpointInterface: 'SUBMODEL-3.0'\n # -- dsp endpoint key inside submodel body\n dspEndpointKey: 'dspEndpoint'\n internalDtr: \"\" # -- ff there is an internal DTR available it can be referenced here and will be injected in the list of DTRs\n # -- decentral digital twin apis\n decentralApis:\n search: \"/lookup/shells/query\"\n digitalTwin: \"/shell-descriptors\"\n subModel: \"/submodel-descriptors\"\n # -- timeouts for the digital twin registry async negotiation\n timeouts:\n search: 10\n negotiation: 40\n transfer: 10\n digitalTwin: 20\n # -- temporary storage of dDTRs for optimization\n temporaryStorage: true\n # -- discovery configuration\n discovery:\n # -- discovery finder configuration\n endpoint: \"https:///discoveryfinder/api/administration/connectors/discovery/search\"\n # -- bpn discovery configuration\n bpn:\n key: \"manufacturerPartId\"\n searchPath: \"/api/administration/connectors/bpnDiscovery/search\"\n # -- edc discovery configuration\n edc:\n key: \"bpn\"\n # -- process configuration\n process:\n # -- directory for storing the contract negotiation files\n dir: \"process\"\n # -- indent the process negotiation files\n indent: true\n # -- unique sha512 hash key used for the passport encryption\n signKey: \"\"\n # -- passport data transfer configuration\n passport:\n # -- configure the data transfer\n dataTransfer:\n # -- encrypt the passport when he arrives from the edc data plane\n encrypt: true\n # -- the indent from the passport\n indent: true\n # -- directory to store the passport when is not linked to a process\n dir: \"data/transfer\"\n # -- passport versions allowed\n versions:\n - 'v3.0.1'\n# -- configuration of the spring boot server\nserver:\n # -- configuration of backend errors\n error:\n include-message: ALWAYS\n include-binding-errors: ALWAYS\n include-stacktrace: ON_PARAM\n include-exception: false\n # -- listening port for the backend\n port: 8888\n # -- maximum allowed connections\n tomcat:\n max-connections: 10000"},"avp":{"helm":{"clientId":"","clientSecret":"","participantId":"","xApiKey":""}},"image":{"pullPolicy":"Always","repository":"docker.io/tractusx/digital-product-pass-backend"},"imagePullSecrets":[],"ingress":{"enabled":false},"name":"dpp-backend","service":{"port":8888,"type":"ClusterIP"}}` | Backend configuration |
-| backend.application | object | `{"yml":"# -- spring boot configuration\nspring:\n name: \"Catena-X Product Passport Consumer Backend\"\n main:\n allow-bean-definition-overriding: true\n devtools:\n add-properties: false\n jackson:\n serialization:\n indent_output: true\nlogging:\n level:\n # -- general logging level\n root: INFO\n # -- logging for the util components\n utils: INFO\nconfiguration:\n # -- max retries for the backend services\n maxRetries: 5\n # -- keycloak configuration\n keycloak:\n realm: CX-Central\n resource: Cl13-CX-Battery\n tokenUri: 'https:///auth/realms//protocol/openid-connect/token'\n userInfoUri: 'https:///auth/realms//protocol/openid-connect/userinfo'\n # -- edc consumer connection configuration\n edc:\n endpoint: 'https://'\n management: '/management/v2'\n catalog: '/catalog/request'\n negotiation: '/contractnegotiations'\n transfer: '/transferprocesses'\n receiverEndpoint: 'https:///endpoint'\n delay: 100 # -- Negotiation status Delay in milliseconds in between async requests [<= 500]\n # -- security configuration\n security:\n check:\n enabled: false\n bpn: false\n edc: false\n # -- digital twin registry configuration\n dtr:\n central: false\n # -- central digital twin registry url\n centralUrl: 'https://'\n # -- asset id to search for the registry in the edc\n assetId: 'digital-twin-registry'\n # -- submodel endpoint interface to search\n endpointInterface: 'SUBMODEL-3.0'\n # -- dsp endpoint key inside submodel body\n dspEndpointKey: 'dspEndpoint'\n internalDtr: \"\" # -- ff there is an internal DTR available it can be referenced here and will be injected in the list of DTRs\n # -- decentral digital twin apis\n decentralApis:\n search: \"/lookup/shells/query\"\n digitalTwin: \"/shell-descriptors\"\n subModel: \"/submodel-descriptors\"\n # -- timeouts for the digital twin registry async negotiation\n timeouts:\n search: 10\n negotiation: 40\n transfer: 10\n digitalTwin: 20\n # -- temporary storage of dDTRs for optimization\n temporaryStorage: true\n # -- discovery configuration\n discovery:\n # -- discovery finder configuration\n endpoint: \"https:///discoveryfinder/api/administration/connectors/discovery/search\"\n # -- bpn discovery configuration\n bpn:\n key: \"manufacturerPartId\"\n searchPath: \"/api/administration/connectors/bpnDiscovery/search\"\n # -- edc discovery configuration\n edc:\n key: \"bpn\"\n # -- process configuration\n process:\n # -- directory for storing the contract negotiation files\n dir: \"process\"\n # -- indent the process negotiation files\n indent: true\n # -- unique sha512 hash key used for the passport encryption\n signKey: \"\"\n # -- passport data transfer configuration\n passport:\n # -- configure the data transfer\n dataTransfer:\n # -- encrypt the passport when he arrives from the edc data plane\n encrypt: true\n # -- the indent from the passport\n indent: true\n # -- directory to store the passport when is not linked to a process\n dir: \"data/transfer\"\n # -- passport versions allowed\n versions:\n - 'v3.0.1'\n# -- configuration of the spring boot server\nserver:\n # -- configuration of backend errors\n error:\n include-message: ALWAYS\n include-binding-errors: ALWAYS\n include-stacktrace: ON_PARAM\n include-exception: false\n # -- listening port for the backend\n port: 8888\n # -- maximum allowed connections\n tomcat:\n max-connections: 10000"}` | specific backend and spring boot configurations |
+| backend | object | `{"application":{"yml":"# -- spring boot configuration\nspring:\n name: \"Catena-X Product Passport Consumer Backend\"\n main:\n allow-bean-definition-overriding: true\n devtools:\n add-properties: false\n jackson:\n serialization:\n indent_output: true\nlogging:\n level:\n # -- general logging level\n root: INFO\n # -- logging for the util components\n utils: INFO\nconfiguration:\n # -- max retries for the backend services\n maxRetries: 5\n # -- keycloak configuration\n keycloak:\n realm: CX-Central\n resource: Cl13-CX-Battery\n tokenUri: 'https:///auth/realms//protocol/openid-connect/token'\n userInfoUri: 'https:///auth/realms//protocol/openid-connect/userinfo'\n # -- edc consumer connection configuration\n edc:\n endpoint: 'https://'\n management: '/management/v2'\n catalog: '/catalog/request'\n negotiation: '/contractnegotiations'\n transfer: '/transferprocesses'\n receiverEndpoint: 'https:///endpoint'\n delay: 100 # -- Negotiation status Delay in milliseconds in between async requests [<= 500]\n # -- security configuration\n security:\n check:\n enabled: false\n bpn: false\n edc: false\n # -- digital twin registry configuration\n dtr:\n central: false\n # -- central digital twin registry url\n centralUrl: 'https://'\n # -- asset id to search for the registry in the edc\n assetId: 'digital-twin-registry'\n # -- submodel endpoint interface to search\n endpointInterface: 'SUBMODEL-3.0'\n # -- dsp endpoint key inside submodel body\n dspEndpointKey: 'dspEndpoint'\n internalDtr: \"\" # -- ff there is an internal DTR available it can be referenced here and will be injected in the list of DTRs\n # -- decentral digital twin apis\n decentralApis:\n search: \"/lookup/shells\"\n digitalTwin: \"/shell-descriptors\"\n subModel: \"/submodel-descriptors\"\n # -- timeouts for the digital twin registry async negotiation\n timeouts:\n search: 10\n negotiation: 40\n transfer: 10\n digitalTwin: 20\n # -- temporary storage of dDTRs for optimization\n temporaryStorage: true\n # -- discovery configuration\n discovery:\n # -- discovery finder configuration\n endpoint: \"https:///discoveryfinder/api/administration/connectors/discovery/search\"\n # -- bpn discovery configuration\n bpn:\n key: \"manufacturerPartId\"\n searchPath: \"/api/administration/connectors/bpnDiscovery/search\"\n # -- edc discovery configuration\n edc:\n key: \"bpn\"\n # -- process configuration\n process:\n # -- directory for storing the contract negotiation files\n dir: \"process\"\n # -- indent the process negotiation files\n indent: true\n # -- unique sha512 hash key used for the passport encryption\n signKey: \"\"\n # -- passport data transfer configuration\n passport:\n # -- configure the data transfer\n dataTransfer:\n # -- encrypt the passport when he arrives from the edc data plane\n encrypt: true\n # -- the indent from the passport\n indent: true\n # -- directory to store the passport when is not linked to a process\n dir: \"data/transfer\"\n # -- passport versions allowed\n versions:\n - 'v3.0.1'\n# -- configuration of the spring boot server\nserver:\n # -- configuration of backend errors\n error:\n include-message: ALWAYS\n include-binding-errors: ALWAYS\n include-stacktrace: ON_PARAM\n include-exception: false\n # -- listening port for the backend\n port: 8888\n # -- maximum allowed connections\n tomcat:\n max-connections: 10000"},"avp":{"helm":{"clientId":"","clientSecret":"","participantId":"","xApiKey":""}},"image":{"pullPolicy":"Always","repository":"docker.io/tractusx/digital-product-pass-backend"},"imagePullSecrets":[],"ingress":{"enabled":false},"name":"dpp-backend","service":{"port":8888,"type":"ClusterIP"}}` | Backend configuration |
+| backend.application | object | `{"yml":"# -- spring boot configuration\nspring:\n name: \"Catena-X Product Passport Consumer Backend\"\n main:\n allow-bean-definition-overriding: true\n devtools:\n add-properties: false\n jackson:\n serialization:\n indent_output: true\nlogging:\n level:\n # -- general logging level\n root: INFO\n # -- logging for the util components\n utils: INFO\nconfiguration:\n # -- max retries for the backend services\n maxRetries: 5\n # -- keycloak configuration\n keycloak:\n realm: CX-Central\n resource: Cl13-CX-Battery\n tokenUri: 'https:///auth/realms//protocol/openid-connect/token'\n userInfoUri: 'https:///auth/realms//protocol/openid-connect/userinfo'\n # -- edc consumer connection configuration\n edc:\n endpoint: 'https://'\n management: '/management/v2'\n catalog: '/catalog/request'\n negotiation: '/contractnegotiations'\n transfer: '/transferprocesses'\n receiverEndpoint: 'https:///endpoint'\n delay: 100 # -- Negotiation status Delay in milliseconds in between async requests [<= 500]\n # -- security configuration\n security:\n check:\n enabled: false\n bpn: false\n edc: false\n # -- digital twin registry configuration\n dtr:\n central: false\n # -- central digital twin registry url\n centralUrl: 'https://'\n # -- asset id to search for the registry in the edc\n assetId: 'digital-twin-registry'\n # -- submodel endpoint interface to search\n endpointInterface: 'SUBMODEL-3.0'\n # -- dsp endpoint key inside submodel body\n dspEndpointKey: 'dspEndpoint'\n internalDtr: \"\" # -- ff there is an internal DTR available it can be referenced here and will be injected in the list of DTRs\n # -- decentral digital twin apis\n decentralApis:\n search: \"/lookup/shells\"\n digitalTwin: \"/shell-descriptors\"\n subModel: \"/submodel-descriptors\"\n # -- timeouts for the digital twin registry async negotiation\n timeouts:\n search: 10\n negotiation: 40\n transfer: 10\n digitalTwin: 20\n # -- temporary storage of dDTRs for optimization\n temporaryStorage: true\n # -- discovery configuration\n discovery:\n # -- discovery finder configuration\n endpoint: \"https:///discoveryfinder/api/administration/connectors/discovery/search\"\n # -- bpn discovery configuration\n bpn:\n key: \"manufacturerPartId\"\n searchPath: \"/api/administration/connectors/bpnDiscovery/search\"\n # -- edc discovery configuration\n edc:\n key: \"bpn\"\n # -- process configuration\n process:\n # -- directory for storing the contract negotiation files\n dir: \"process\"\n # -- indent the process negotiation files\n indent: true\n # -- unique sha512 hash key used for the passport encryption\n signKey: \"\"\n # -- passport data transfer configuration\n passport:\n # -- configure the data transfer\n dataTransfer:\n # -- encrypt the passport when he arrives from the edc data plane\n encrypt: true\n # -- the indent from the passport\n indent: true\n # -- directory to store the passport when is not linked to a process\n dir: \"data/transfer\"\n # -- passport versions allowed\n versions:\n - 'v3.0.1'\n# -- configuration of the spring boot server\nserver:\n # -- configuration of backend errors\n error:\n include-message: ALWAYS\n include-binding-errors: ALWAYS\n include-stacktrace: ON_PARAM\n include-exception: false\n # -- listening port for the backend\n port: 8888\n # -- maximum allowed connections\n tomcat:\n max-connections: 10000"}` | specific backend and spring boot configurations |
| backend.avp | object | `{"helm":{"clientId":"","clientSecret":"","participantId":"","xApiKey":""}}` | in this section we configure the values that are inserted as secrets in the backend |
| backend.avp.helm.clientId | string | `""` | note: this credentials need to have access to the Discovery Finder, BPN Discovery and EDC Discovery |
| backend.avp.helm.participantId | string | `""` | BPN Number |
diff --git a/charts/digital-product-pass/values-dev.yaml b/charts/digital-product-pass/values-dev.yaml
index 87f8c71ee..ecd2d910d 100644
--- a/charts/digital-product-pass/values-dev.yaml
+++ b/charts/digital-product-pass/values-dev.yaml
@@ -122,7 +122,7 @@ backend:
security:
check:
enabled: true
- bpn: true
+ bpn: false
edc: true
dtr:
@@ -133,11 +133,14 @@ backend:
endpointInterface: 'SUBMODEL-3.0'
internalDtr: "https://materialpass.dev.demo.catena-x.net/BPNL000000000000" # -- If there is an internal DTR available it can be referenced here and will be injected in the list of DTRs
decentralApis:
- prefix: "/api/v3.0"
- search: "/lookup/shells/query"
+ search: "/lookup/shells"
digitalTwin: "/shell-descriptors"
subModel: "/submodel-descriptors"
- transferTimeout: 10000
+ timeouts:
+ search: 10
+ negotiation: 40
+ transfer: 10
+ digitalTwin: 20
temporaryStorage: true
discovery:
diff --git a/consumer-backend/productpass/pom.xml b/consumer-backend/productpass/pom.xml
index d1b67a64e..87e550318 100644
--- a/consumer-backend/productpass/pom.xml
+++ b/consumer-backend/productpass/pom.xml
@@ -33,7 +33,7 @@
org.eclipse.tractusx
productpass
- 1.0.0
+ 1.1.0
jar
Catena-X Digital Product Passport Backend
Product Passport Consumer Backend System for Product Passport Consumer Frontend Application
diff --git a/deployment/helm/edc-consumer/Chart.yaml b/deployment/helm/edc-consumer/Chart.yaml
index 86a6fbac1..d4df94224 100644
--- a/deployment/helm/edc-consumer/Chart.yaml
+++ b/deployment/helm/edc-consumer/Chart.yaml
@@ -42,3 +42,7 @@ dependencies:
version: 12.1.6
repository: https://charts.bitnami.com/bitnami
condition: postgresql.enabled
+ - name: irs-helm
+ repository: https://eclipse-tractusx.github.io/item-relationship-service
+ version: 6.7.0
+ condition: irs-helm.enabled
diff --git a/deployment/helm/edc-consumer/values-int.yaml b/deployment/helm/edc-consumer/values-int.yaml
index c48c37cb5..9c920f2bf 100644
--- a/deployment/helm/edc-consumer/values-int.yaml
+++ b/deployment/helm/edc-consumer/values-int.yaml
@@ -169,7 +169,7 @@ tractusx-connector:
postgresql:
username:
- password:
+ password:
vault:
hashicorp:
@@ -190,3 +190,64 @@ postgresql:
auth:
username:
password:
+
+irs-helm:
+ enabled: true
+ bpn:
+
+
+ irsUrl: "https://materialpass-irs.int.demo.catena-x.net"
+
+ ingress:
+ enabled: true
+ annotations:
+ ingressClassName: nginx
+ nginx.ingress.kubernetes.io/backend-protocol: HTTP
+ nginx.ingress.kubernetes.io/force-ssl-redirect: 'true'
+ nginx.ingress.kubernetes.io/ssl-passthrough: 'false'
+ hosts:
+ - host: "materialpass-irs.int.demo.catena-x.net"
+ paths:
+ - path: /
+ pathType: Prefix
+ tls:
+ - hosts:
+ - "materialpass-irs.int.demo.catena-x.net"
+ secretName: tls-secret
+
+ digitalTwinRegistry:
+ type: decentral
+ url: https://materialpass.int.demo.catena-x.net/semantics/registry/api/v3.0
+ discoveryFinderUrl: https://semantics.int.demo.catena-x.net/discoveryfinder/api/administration/connectors/discovery/search
+ semanticshub:
+ url: https://semantics.int.demo.catena-x.net/hub/api/v1/models
+ bpdm:
+ url: https://partners-pool.int.demo.catena-x.net
+ bpnEndpoint: >-
+ {{- if .Values.bpdm.url }}
+ {{- tpl (.Values.bpdm.url | default "") . }}/api/catena/legal-entities/{partnerId}?idType={idType}
+ {{- end }}
+
+ minioUser:
+ minioPassword:
+ minioUrl: "http://{{ .Release.Name }}-minio:9000"
+
+ keycloak:
+ oauth2:
+ clientId:
+ clientSecret:
+ clientTokenUri: https://centralidp.int.demo.catena-x.net/auth/realms/CX-Central/protocol/openid-connect/token
+ jwkSetUri: https://centralidp.int.demo.catena-x.net/auth/realms/CX-Central/protocol/openid-connect/certs
+
+ edc:
+ controlplane:
+ endpoint:
+ data: https://materialpass.int.demo.catena-x.net/consumer/management
+ apikey:
+ secret:
+
+ minio:
+ serviceAccount:
+ create: false
+ rootUser:
+ rootPassword:
diff --git a/deployment/helm/edc-consumer/values.yaml b/deployment/helm/edc-consumer/values.yaml
index 2d32a7a76..17c1e57a3 100644
--- a/deployment/helm/edc-consumer/values.yaml
+++ b/deployment/helm/edc-consumer/values.yaml
@@ -143,7 +143,7 @@ tractusx-connector:
url: ""
authorityId: ""
oauth:
- tokenurl: "https://centralidp.int.demo.catena-x.net/auth/realms/CX-Central/protocol/openid-connect/token"
+ tokenurl: "https://centralidp.dev.demo.catena-x.net/auth/realms/CX-Central/protocol/openid-connect/token"
client:
id: ""
secretAlias: "dev-client-secret"
@@ -519,11 +519,11 @@ tractusx-connector:
jdbcUrl: "jdbc:postgresql://postgresql:5432/edc"
fullnameOverride: "postgresql"
username:
- password:
+ password:
auth:
database: "edc"
username:
- password:
+ password:
vault:
fullnameOverride: "vault"
@@ -595,4 +595,7 @@ postgresql:
auth:
database: "edc"
username:
- password:
\ No newline at end of file
+ password:
+
+irs-helm:
+ enabled: true
diff --git a/deployment/helm/edc-provider/values.yaml b/deployment/helm/edc-provider/values.yaml
index 8a39e3a1f..4a1675cf8 100644
--- a/deployment/helm/edc-provider/values.yaml
+++ b/deployment/helm/edc-provider/values.yaml
@@ -139,7 +139,7 @@ tractusx-connector:
url: ""
authorityId: ""
oauth:
- tokenurl: "https://centralidp.int.demo.catena-x.net/auth/realms/CX-Central/protocol/openid-connect/token"
+ tokenurl: "https://centralidp.dev.demo.catena-x.net/auth/realms/CX-Central/protocol/openid-connect/token"
client:
id: ""
secretAlias: "dev-client-secret"
diff --git a/deployment/helm/irs/.helmignore b/deployment/helm/irs/.helmignore
new file mode 100644
index 000000000..0e8a0eb36
--- /dev/null
+++ b/deployment/helm/irs/.helmignore
@@ -0,0 +1,23 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/deployment/helm/irs/Chart.yaml b/deployment/helm/irs/Chart.yaml
new file mode 100644
index 000000000..5bb43c3b6
--- /dev/null
+++ b/deployment/helm/irs/Chart.yaml
@@ -0,0 +1,41 @@
+#################################################################################
+# Catena-X - Product Passport Consumer Application
+#
+# Copyright (c) 2022, 2023 BASF SE, BMW AG, Henkel AG & Co. KGaA
+#
+# 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 govern in permissions and limitations
+# under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+#################################################################################
+
+apiVersion: v2
+name: irs
+description: A Helm chart for Kubernetes
+type: application
+version: 0.1.0
+appVersion: "3.5.0"
+dependencies:
+ - name: irs-helm
+ repository: https://eclipse-tractusx.github.io/item-relationship-service
+ version: 6.7.0
+ condition: irs-helm.enabled
+ - name: tractusx-connector
+ repository: https://eclipse-tractusx.github.io/charts/dev
+ version: 0.5.0
+ - condition: postgresql.enabled
+ alias: edc-postgresql
+ name: postgresql
+ repository: https://charts.bitnami.com/bitnami
+ version: 12.1.6
diff --git a/deployment/helm/irs/values-int.yaml b/deployment/helm/irs/values-int.yaml
new file mode 100644
index 000000000..51ef35121
--- /dev/null
+++ b/deployment/helm/irs/values-int.yaml
@@ -0,0 +1,257 @@
+#################################################################################
+# Catena-X - Product Passport Consumer Application
+#
+# Copyright (c) 2022, 2023 BASF SE, BMW AG, Henkel AG & Co. KGaA
+#
+# 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 govern in permissions and limitations
+# under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+#################################################################################
+
+### The fully configuration is available in https://github.com/eclipse-tractusx/item-relationship-service/tree/main/charts/irs-helm
+
+---
+
+irs-helm:
+ enabled: true
+ bpn:
+
+ nameOverride: "dpp-irs"
+ fullnameOverride: "dpp-irs"
+
+ # namespace: product-material-pass
+
+ irsUrl: "https://materialpass-irs.int.demo.catena-x.net"
+
+ ingress:
+ enabled: true
+ annotations:
+ ingressClassName: nginx
+ nginx.ingress.kubernetes.io/backend-protocol: HTTP
+ nginx.ingress.kubernetes.io/force-ssl-redirect: 'true'
+ nginx.ingress.kubernetes.io/ssl-passthrough: 'false'
+ hosts:
+ - host: "materialpass-irs.int.demo.catena-x.net"
+ paths:
+ - path: /
+ pathType: Prefix
+ tls:
+ - hosts:
+ - "materialpass-irs.int.demo.catena-x.net"
+ secretName: tls-secret
+
+ digitalTwinRegistry:
+ type: decentral
+ url: https://materialpass.int.demo.catena-x.net/semantics/registry/api/v3.0
+ discoveryFinderUrl: https://semantics.int.demo.catena-x.net/discoveryfinder/api/administration/connectors/discovery/search
+ semanticshub:
+ url: https://semantics.int.demo.catena-x.net/hub/api/v1/models
+ bpdm:
+ url: https://partners-pool.int.demo.catena-x.net
+ bpnEndpoint: >-
+ {{- if .Values.bpdm.url }}
+ {{- tpl (.Values.bpdm.url | default "") . }}/api/catena/legal-entities/{partnerId}?idType={idType}
+ {{- end }}
+
+ minioUser:
+ minioPassword:
+ minioUrl: "http://{{ .Release.Name }}-minio:9000"
+
+ keycloak:
+ oauth2:
+ clientId:
+ clientSecret:
+ clientTokenUri: https://centralidp.int.demo.catena-x.net/auth/realms/CX-Central/protocol/openid-connect/token
+ jwkSetUri: https://centralidp.int.demo.catena-x.net/auth/realms/CX-Central/protocol/openid-connect/certs
+ # portal:
+ # oauth2:
+ # clientId: #
+ # clientSecret: #
+
+ edc:
+ controlplane:
+ endpoint:
+ data: https://materialpass-irs.int.demo.catena-x.net/consumer/management
+ apikey:
+ secret:
+
+ minio:
+ nameOverride: "dpp-irs-minio"
+ fullnameOverride: "dpp-irs-minio"
+ serviceAccount:
+ create: false
+ rootUser:
+ rootPassword:
+
+tractusx-connector:
+ enabled: true
+ participant:
+ id: ""
+
+ controlplane:
+ enabled: true
+ endpoints:
+ # -- default api for health checks, should not be added to any ingress
+ default:
+ # -- port for incoming api calls
+ port: 8080
+ # -- path for incoming api calls
+ path: /consumer/api
+ # -- data management api, used by internal users, can be added to an ingress and must not be internet facing
+ management:
+ # -- port for incoming api calls
+ port: 8081
+ # -- path for incoming api calls
+ path: /consumer/management
+ # -- authentication key, must be attached to each 'X-Api-Key' request header
+ authKey:
+ # -- control api, used for internal control calls. can be added to the internal ingress, but should probably not
+ control:
+ # -- port for incoming api calls
+ port: 8083
+ # -- path for incoming api calls
+ path: /consumer/control
+ # -- ids api, used for inter connector communication and must be internet facing
+ protocol:
+ # -- port for incoming api calls
+ port: 8084
+ # -- path for incoming api calls
+ path: /consumer/api/v1/dsp
+ # -- metrics api, used for application metrics, must not be internet facing
+ metrics:
+ # -- port for incoming api calls
+ port: 9090
+ # -- path for incoming api calls
+ path: /consumer/metrics
+ # -- observability api with unsecured access, must not be internet facing
+ observability:
+ # -- port for incoming API calls
+ port: 8085
+ # -- observability api, provides /health /readiness and /liveness endpoints
+ path: /consumer/observability
+ # -- allow or disallow insecure access, i.e. access without authentication
+ insecure: true
+
+ ssi:
+ miw:
+ url: ""
+ authorityId: ""
+ oauth:
+ tokenurl: "https://centralidp.int.demo.catena-x.net/auth/realms/CX-Central/protocol/openid-connect/token"
+ client:
+ id: ""
+ secretAlias: "int-client-secret"
+ endpoint:
+ audience: https://materialpass-irs.int.demo.catena-x.net/consumer
+
+ ## Ingress declaration to expose the network service.
+ ingresses:
+ ## Public / Internet facing Ingress
+ - enabled: true
+ # -- The hostname to be used to precisely map incoming traffic onto the underlying network service
+ hostname: "materialpass-irs.int.demo.catena-x.net"
+ # -- Additional ingress annotations to add
+ annotations: {}
+ # -- EDC endpoints exposed by this ingress resource
+ endpoints:
+ - default
+ - management
+ - control
+ - protocol
+ - metrics
+ - observability
+ # -- Defines the [ingress class](https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class) to use
+ className: "nginx"
+ # -- TLS [tls class](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls) applied to the ingress resource
+ tls:
+ # -- Enables TLS on the ingress resource
+ enabled: true
+ # -- If present overwrites the default secret name
+ secretName: "tls-secret"
+ dataplane:
+ enabled: true
+ endpoints:
+ default:
+ port: 8080
+ path: /consumer/api
+ public:
+ port: 8081
+ path: /consumer/api/public
+ control:
+ port: 8083
+ path: /consumer/api/dataplane/control
+ proxy:
+ port: 8186
+ path: /consumer/proxy
+ observability:
+ # -- port for incoming API calls
+ port: 8085
+ # -- observability api, provides /health /readiness and /liveness endpoints
+ path: /consumer/observability
+ # -- allow or disallow insecure access, i.e. access without authentication
+ insecure: true
+ metrics:
+ port: 9090
+ path: /consumer/metrics
+
+ ## Ingress declaration to expose the network service.
+ ingresses:
+ ## Public / Internet facing Ingress
+ - enabled: true
+ # -- The hostname to be used to precisely map incoming traffic onto the underlying network service
+ hostname: "materialpass-irs.int.demo.catena-x.net"
+ # -- Additional ingress annotations to add
+ annotations: {}
+ # -- EDC endpoints exposed by this ingress resource
+ endpoints:
+ - public
+ # -- Defines the [ingress class](https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class) to use
+ className: "nginx"
+ # -- TLS [tls class](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls) applied to the ingress resource
+ tls:
+ # -- Enables TLS on the ingress resource
+ enabled: true
+ # -- If present overwrites the default secret name
+ secretName: "tls-secret"
+ ## Adds [cert-manager](https://cert-manager.io/docs/) annotations to the ingress resource
+ certManager:
+ # -- If preset enables certificate generation via cert-manager namespace scoped issuer
+ issuer: ""
+ # -- If preset enables certificate generation via cert-manager cluster-wide issuer
+ clusterIssuer: ""
+
+ postgresql:
+ username:
+ password:
+
+ vault:
+ hashicorp:
+ url:
+ token:
+ paths:
+ secret:
+ health: /v1/sys/health
+ secretNames:
+ transferProxyTokenSignerPrivateKey: ids-daps_key
+ transferProxyTokenSignerPublicKey: ids-daps_crt
+ transferProxyTokenEncryptionAesKey: edc-encryption-key
+
+ # backendService:
+ # httpProxyTokenReceiverUrl: "https://materialpass-irs.int.demo.catena-x.net/endpoint"
+
+postgresql:
+ auth:
+ username:
+ password:
diff --git a/deployment/helm/irs/values.yaml b/deployment/helm/irs/values.yaml
new file mode 100644
index 000000000..71ab07d07
--- /dev/null
+++ b/deployment/helm/irs/values.yaml
@@ -0,0 +1,596 @@
+#################################################################################
+# Catena-X - Product Passport Consumer Application
+#
+# Copyright (c) 2022, 2023 BASF SE, BMW AG, Henkel AG & Co. KGaA
+#
+# 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 govern in permissions and limitations
+# under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+#################################################################################
+
+### The fully configuration is available in https://github.com/eclipse-tractusx/item-relationship-service/tree/main/charts/irs-helm
+
+---
+
+irs-helm:
+ enabled: true
+
+tractusx-connector:
+ enabled: true
+ install:
+ daps: false
+ postgresql: false
+ vault: false
+ fullnameOverride: "irs-edc-consumer"
+ nameOverride: ""
+ # -- Existing image pull secret to use to [obtain the container image from private registries](https://kubernetes.io/docs/concepts/containers/images/#using-a-private-registry)
+ imagePullSecrets: []
+ customLabels: {}
+
+
+ participant:
+ id: ""
+
+ controlplane:
+ enabled: true
+ image:
+ # -- Which derivate of the control plane to use. when left empty the deployment will select the correct image automatically
+ repository: "tractusx/edc-controlplane-postgresql-hashicorp-vault"
+ # -- [Kubernetes image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy) to use
+ pullPolicy: IfNotPresent
+ # -- Overrides the image tag whose default is the chart appVersion
+ tag: "0.5.0"
+ initContainers: []
+ debug:
+ enabled: false
+ port: 1044
+ suspendOnStart: false
+ internationalDataSpaces:
+ id: TXDC
+ description: Tractus-X Eclipse IDS Data Space Connector
+ title: ""
+ maintainer: ""
+ curator: ""
+ catalogId: TXDC-Catalog
+ livenessProbe:
+ # -- Whether to enable kubernetes [liveness-probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)
+ enabled: true
+ # -- seconds to wait before performing the first liveness check
+ initialDelaySeconds: 30
+ # -- this fields specifies that kubernetes should perform a liveness check every 10 seconds
+ periodSeconds: 10
+ # -- number of seconds after which the probe times out
+ timeoutSeconds: 5
+ # -- when a probe fails kubernetes will try 6 times before giving up
+ failureThreshold: 6
+ # -- number of consecutive successes for the probe to be considered successful after having failed
+ successThreshold: 1
+ readinessProbe:
+ # -- Whether to enable kubernetes [readiness-probes](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)
+ enabled: true
+ # -- seconds to wait before performing the first readiness check
+ initialDelaySeconds: 30
+ # -- this fields specifies that kubernetes should perform a readiness check every 10 seconds
+ periodSeconds: 10
+ # -- number of seconds after which the probe times out
+ timeoutSeconds: 5
+ # -- when a probe fails kubernetes will try 6 times before giving up
+ failureThreshold: 6
+ # -- number of consecutive successes for the probe to be considered successful after having failed
+ successThreshold: 1
+ # -- endpoints of the control plane
+ endpoints:
+ # -- default api for health checks, should not be added to any ingress
+ default:
+ # -- port for incoming api calls
+ port: 8080
+ # -- path for incoming api calls
+ path: /consumer/api
+ # -- data management api, used by internal users, can be added to an ingress and must not be internet facing
+ management:
+ # -- port for incoming api calls
+ port: 8081
+ # -- path for incoming api calls
+ path: /consumer/management
+ # -- authentication key, must be attached to each 'X-Api-Key' request header
+ authKey:
+ # -- control api, used for internal control calls. can be added to the internal ingress, but should probably not
+ control:
+ # -- port for incoming api calls
+ port: 8083
+ # -- path for incoming api calls
+ path: /consumer/control
+ # -- ids api, used for inter connector communication and must be internet facing
+ protocol:
+ # -- port for incoming api calls
+ port: 8084
+ # -- path for incoming api calls
+ path: /consumer/api/v1/dsp
+ # -- metrics api, used for application metrics, must not be internet facing
+ metrics:
+ # -- port for incoming api calls
+ port: 9090
+ # -- path for incoming api calls
+ path: /consumer/metrics
+ # -- observability api with unsecured access, must not be internet facing
+ observability:
+ # -- port for incoming API calls
+ port: 8085
+ # -- observability api, provides /health /readiness and /liveness endpoints
+ path: /consumer/observability
+ # -- allow or disallow insecure access, i.e. access without authentication
+ insecure: true
+ businessPartnerValidation:
+ log:
+ agreementValidation: true
+ # SSI configuration
+ ssi:
+ miw:
+ url: ""
+ authorityId: ""
+ oauth:
+ tokenurl: "https://centralidp.int.demo.catena-x.net/auth/realms/CX-Central/protocol/openid-connect/token"
+ client:
+ id: ""
+ secretAlias: "dev-client-secret"
+ endpoint:
+ audience: https://materialpass.dev.demo.catena-x.net/consumer
+
+ service:
+ # -- [Service type](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) to expose the running application on a set of Pods as a network service.
+ type: ClusterIP
+ annotations: {}
+ # -- additional labels for the pod
+ podLabels: {}
+ # -- additional annotations for the pod
+ podAnnotations: {}
+ # -- The [pod security context](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod) defines privilege and access control settings for a Pod within the deployment
+ podSecurityContext:
+ seccompProfile:
+ # -- Restrict a Container's Syscalls with seccomp
+ type: RuntimeDefault
+ # -- Runs all processes within a pod with a special uid
+ runAsUser: 10001
+ # -- Processes within a pod will belong to this guid
+ runAsGroup: 10001
+ # -- The owner for volumes and any files created within volumes will belong to this guid
+ fsGroup: 10001
+ # The [container security context](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container) defines privilege and access control settings for a Container within a pod
+ securityContext:
+ capabilities:
+ # -- Specifies which capabilities to drop to reduce syscall attack surface
+ drop:
+ - ALL
+ # -- Specifies which capabilities to add to issue specialized syscalls
+ add: []
+ # -- Whether the root filesystem is mounted in read-only mode
+ readOnlyRootFilesystem: true
+ # -- Controls [Privilege Escalation](https://kubernetes.io/docs/concepts/security/pod-security-policy/#privilege-escalation) enabling setuid binaries changing the effective user ID
+ allowPrivilegeEscalation: false
+ # -- Requires the container to run without root privileges
+ runAsNonRoot: true
+ # -- The container's process will run with the specified uid
+ runAsUser: 10001
+ # Extra environment variables that will be pass onto deployment pods
+ env: {}
+ # ENV_NAME: value
+
+ # "valueFrom" environment variable references that will be added to deployment pods. Name is templated.
+ # ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#envvarsource-v1-core
+ envValueFrom: {}
+ # ENV_NAME:
+ # configMapKeyRef:
+ # name: configmap-name
+ # key: value_key
+ # secretKeyRef:
+ # name: secret-name
+ # key: value_key
+
+ # [Kubernetes Secret Resource](https://kubernetes.io/docs/concepts/configuration/secret/) names to load environment variables from
+ envSecretNames: []
+ # - first-secret
+ # - second-secret
+
+ # [Kubernetes ConfigMap Resource](https://kubernetes.io/docs/concepts/configuration/configmap/) names to load environment variables from
+ envConfigMapNames: []
+ # - first-config-map
+ # - second-config-map
+
+ ## Ingress declaration to expose the network service.
+ ingresses:
+ ## Public / Internet facing Ingress
+ - enabled: true
+ # -- The hostname to be used to precisely map incoming traffic onto the underlying network service
+ hostname: "materialpass-irs.dev.demo.catena-x.net"
+ # -- Additional ingress annotations to add
+ annotations: {}
+ # -- EDC endpoints exposed by this ingress resource
+ endpoints:
+ - default
+ - management
+ - control
+ - protocol
+ - metrics
+ - observability
+ # -- Defines the [ingress class](https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class) to use
+ className: "nginx"
+ # -- TLS [tls class](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls) applied to the ingress resource
+ tls:
+ # -- Enables TLS on the ingress resource
+ enabled: true
+ # -- If present overwrites the default secret name
+ secretName: "tls-secret"
+ ## Adds [cert-manager](https://cert-manager.io/docs/) annotations to the ingress resource
+ certManager:
+ # -- If preset enables certificate generation via cert-manager namespace scoped issuer
+ issuer: ""
+ # -- If preset enables certificate generation via cert-manager cluster-wide issuer
+ clusterIssuer: ""
+ ## Private / Intranet facing Ingress
+ - enabled: false
+ # -- The hostname to be used to precisely map incoming traffic onto the underlying network service
+ hostname: "edc-control.intranet"
+ # -- Additional ingress annotations to add
+ annotations: {}
+ # -- EDC endpoints exposed by this ingress resource
+ endpoints:
+ - management
+ - control
+ # -- Defines the [ingress class](https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class) to use
+ className: "nginx"
+ # -- TLS [tls class](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls) applied to the ingress resource
+ tls:
+ # -- Enables TLS on the ingress resource
+ enabled: true
+ # -- If present overwrites the default secret name
+ secretName: "tls-secret"
+ ## Adds [cert-manager](https://cert-manager.io/docs/) annotations to the ingress resource
+ certManager:
+ # -- If preset enables certificate generation via cert-manager namespace scoped issuer
+ issuer: ""
+ # -- If preset enables certificate generation via cert-manager cluster-wide issuer
+ clusterIssuer: ""
+ # -- declare where to mount [volumes](https://kubernetes.io/docs/concepts/storage/volumes/) into the container
+ volumeMounts: []
+ # -- [volume](https://kubernetes.io/docs/concepts/storage/volumes/) directories
+ volumes: []
+ # -- [resource management](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for the container
+ resources: {}
+ # We usually recommend not to specify default resources and to leave this as a conscious
+ # choice for the user. This also increases chances charts run on environments with little
+ # resources, such as Minikube. If you do want to specify resources, uncomment the following
+ # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+ # limits:
+ # cpu: 100m
+ # memory: 128Mi
+ # requests:
+ # cpu: 100m
+ # memory: 128Mi
+ replicaCount: 1
+ autoscaling:
+ # -- Enables [horizontal pod autoscaling](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/)
+ enabled: false
+ # -- Minimal replicas if resource consumption falls below resource threshholds
+ minReplicas: 1
+ # -- Maximum replicas if resource consumption exceeds resource threshholds
+ maxReplicas: 100
+ # -- targetAverageUtilization of cpu provided to a pod
+ targetCPUUtilizationPercentage: 80
+ # -- targetAverageUtilization of memory provided to a pod
+ targetMemoryUtilizationPercentage: 80
+ # -- configuration of the [Open Telemetry Agent](https://opentelemetry.io/docs/instrumentation/java/automatic/agent-config/) to collect and expose metrics
+ opentelemetry: |-
+ otel.javaagent.enabled=false
+ otel.javaagent.debug=false
+ # -- configuration of the [Java Util Logging Facade](https://docs.oracle.com/javase/7/docs/technotes/guides/logging/overview.html)
+ logging: |-
+ .level=INFO
+ org.eclipse.edc.level=ALL
+ handlers=java.util.logging.ConsoleHandler
+ java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
+ java.util.logging.ConsoleHandler.level=ALL
+ java.util.logging.SimpleFormatter.format=[%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS] [%4$-7s] %5$s%6$s%n
+ # [node selector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) to constrain pods to nodes
+ nodeSelector: {}
+ # [tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) to configure preferred nodes
+ tolerations: []
+ # [affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) to configure which nodes the pods can be scheduled on
+ affinity: {}
+ url:
+ # -- Explicitly declared url for reaching the ids api (e.g. if ingresses not used)
+ ids: ""
+ dataplane:
+ enabled: true
+ image:
+ # -- Which derivate of the data plane to use. when left empty the deployment will select the correct image automatically
+ repository: "tractusx/edc-dataplane-hashicorp-vault"
+ # -- [Kubernetes image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy) to use
+ pullPolicy: IfNotPresent
+ # -- Overrides the image tag whose default is the chart appVersion
+ tag: "0.5.0"
+ initContainers: []
+ debug:
+ enabled: false
+ port: 1044
+ suspendOnStart: false
+ livenessProbe:
+ # -- Whether to enable kubernetes [liveness-probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)
+ enabled: true
+ # -- seconds to wait before performing the first liveness check
+ initialDelaySeconds: 30
+ # -- this fields specifies that kubernetes should perform a liveness check every 10 seconds
+ periodSeconds: 10
+ # -- number of seconds after which the probe times out
+ timeoutSeconds: 5
+ # -- when a probe fails kubernetes will try 6 times before giving up
+ failureThreshold: 6
+ # -- number of consecutive successes for the probe to be considered successful after having failed
+ successThreshold: 1
+ readinessProbe:
+ # -- Whether to enable kubernetes [readiness-probes](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)
+ enabled: true
+ # -- seconds to wait before performing the first readiness check
+ initialDelaySeconds: 30
+ # -- this fields specifies that kubernetes should perform a liveness check every 10 seconds
+ periodSeconds: 10
+ # -- number of seconds after which the probe times out
+ timeoutSeconds: 5
+ # -- when a probe fails kubernetes will try 6 times before giving up
+ failureThreshold: 6
+ # -- number of consecutive successes for the probe to be considered successful after having failed
+ successThreshold: 1
+ service:
+ # -- [Service type](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) to expose the running application on a set of Pods as a network service.
+ type: ClusterIP
+ port: 80
+ endpoints:
+ default:
+ port: 8080
+ path: /consumer/api
+ public:
+ port: 8081
+ path: /consumer/api/public
+ control:
+ port: 8083
+ path: /consumer/api/dataplane/control
+ proxy:
+ port: 8186
+ path: /consumer/proxy
+ observability:
+ # -- port for incoming API calls
+ port: 8085
+ # -- observability api, provides /health /readiness and /liveness endpoints
+ path: /consumer/observability
+ # -- allow or disallow insecure access, i.e. access without authentication
+ insecure: true
+ metrics:
+ port: 9090
+ path: /consumer/metrics
+ aws:
+ endpointOverride: ""
+ accessKeyId: ""
+ secretAccessKey: ""
+ # -- additional labels for the pod
+ podLabels: {}
+ # -- additional annotations for the pod
+ podAnnotations: {}
+ # -- The [pod security context](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod) defines privilege and access control settings for a Pod within the deployment
+ podSecurityContext:
+ seccompProfile:
+ # -- Restrict a Container's Syscalls with seccomp
+ type: RuntimeDefault
+ # -- Runs all processes within a pod with a special uid
+ runAsUser: 10001
+ # -- Processes within a pod will belong to this guid
+ runAsGroup: 10001
+ # -- The owner for volumes and any files created within volumes will belong to this guid
+ fsGroup: 10001
+ # The [container security context](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container) defines privilege and access control settings for a Container within a pod
+ securityContext:
+ capabilities:
+ # -- Specifies which capabilities to drop to reduce syscall attack surface
+ drop:
+ - ALL
+ # -- Specifies which capabilities to add to issue specialized syscalls
+ add: []
+ # -- Whether the root filesystem is mounted in read-only mode
+ readOnlyRootFilesystem: true
+ # -- Controls [Privilege Escalation](https://kubernetes.io/docs/concepts/security/pod-security-policy/#privilege-escalation) enabling setuid binaries changing the effective user ID
+ allowPrivilegeEscalation: false
+ # -- Requires the container to run without root privileges
+ runAsNonRoot: true
+ # -- The container's process will run with the specified uid
+ runAsUser: 10001
+ # Extra environment variables that will be pass onto deployment pods
+ env: {}
+ # ENV_NAME: value
+
+ # "valueFrom" environment variable references that will be added to deployment pods. Name is templated.
+ # ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#envvarsource-v1-core
+ envValueFrom: {}
+ # ENV_NAME:
+ # configMapKeyRef:
+ # name: configmap-name
+ # key: value_key
+ # secretKeyRef:
+ # name: secret-name
+ # key: value_key
+
+ # [Kubernetes Secret Resource](https://kubernetes.io/docs/concepts/configuration/secret/) names to load environment variables from
+ envSecretNames: []
+ # - first-secret
+ # - second-secret
+
+ # [Kubernetes ConfigMap Resource](https://kubernetes.io/docs/concepts/configuration/configmap/) names to load environment variables from
+ envConfigMapNames: []
+ # - first-config-map
+ # - second-config-map
+
+ ## Ingress declaration to expose the network service.
+ ingresses:
+ ## Public / Internet facing Ingress
+ - enabled: true
+ # -- The hostname to be used to precisely map incoming traffic onto the underlying network service
+ hostname: "materialpass-irs.dev.demo.catena-x.net"
+ # -- Additional ingress annotations to add
+ annotations: {}
+ # -- EDC endpoints exposed by this ingress resource
+ endpoints:
+ - public
+ # -- Defines the [ingress class](https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class) to use
+ className: "nginx"
+ # -- TLS [tls class](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls) applied to the ingress resource
+ tls:
+ # -- Enables TLS on the ingress resource
+ enabled: true
+ # -- If present overwrites the default secret name
+ secretName: "tls-secret"
+ ## Adds [cert-manager](https://cert-manager.io/docs/) annotations to the ingress resource
+ certManager:
+ # -- If preset enables certificate generation via cert-manager namespace scoped issuer
+ issuer: ""
+ # -- If preset enables certificate generation via cert-manager cluster-wide issuer
+ clusterIssuer: ""
+ # -- declare where to mount [volumes](https://kubernetes.io/docs/concepts/storage/volumes/) into the container
+ volumeMounts: []
+ # -- [volume](https://kubernetes.io/docs/concepts/storage/volumes/) directories
+ volumes: []
+ # -- [resource management](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for the container
+ resources: {}
+ # We usually recommend not to specify default resources and to leave this as a conscious
+ # choice for the user. This also increases chances charts run on environments with little
+ # resources, such as Minikube. If you do want to specify resources, uncomment the following
+ # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+ # limits:
+ # cpu: 100m
+ # memory: 128Mi
+ # requests:
+ # cpu: 100m
+ # memory: 128Mi
+ replicaCount: 1
+ autoscaling:
+ # -- Enables [horizontal pod autoscaling](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/)
+ enabled: false
+ # -- Minimal replicas if resource consumption falls below resource threshholds
+ minReplicas: 1
+ # -- Maximum replicas if resource consumption exceeds resource threshholds
+ maxReplicas: 100
+ # -- targetAverageUtilization of cpu provided to a pod
+ targetCPUUtilizationPercentage: 80
+ # -- targetAverageUtilization of memory provided to a pod
+ targetMemoryUtilizationPercentage: 80
+ # -- configuration of the [Open Telemetry Agent](https://opentelemetry.io/docs/instrumentation/java/automatic/agent-config/) to collect and expose metrics
+ opentelemetry: |-
+ otel.javaagent.enabled=false
+ otel.javaagent.debug=false
+ # -- configuration of the [Java Util Logging Facade](https://docs.oracle.com/javase/7/docs/technotes/guides/logging/overview.html)
+ logging: |-
+ .level=INFO
+ org.eclipse.edc.level=ALL
+ handlers=java.util.logging.ConsoleHandler
+ java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
+ java.util.logging.ConsoleHandler.level=ALL
+ java.util.logging.SimpleFormatter.format=[%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS] [%4$-7s] %5$s%6$s%n
+ # [node selector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) to constrain pods to nodes
+ nodeSelector: {}
+ # [tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) to configure preferred nodes
+ tolerations: []
+ # [affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) to configure which nodes the pods can be scheduled on
+ affinity: {}
+ url:
+ # -- Explicitly declared url for reaching the public api (e.g. if ingresses not used)
+ public: ""
+
+ postgresql:
+ jdbcUrl: "jdbc:postgresql://postgresql:5432/edc"
+ fullnameOverride: "postgresql"
+ username:
+ password:
+ auth:
+ database: "edc"
+ username:
+ password:
+
+ vault:
+ fullnameOverride: "vault"
+ injector:
+ enabled: false
+ server:
+ dev:
+ enabled: true
+ devRootToken: "root"
+ # Must be the same certificate that is configured in section 'daps'
+ postStart: # must be set externally!
+ hashicorp:
+ url:
+ token:
+ timeout: 30
+ healthCheck:
+ enabled: true
+ standbyOk: true
+ paths:
+ secret:
+ health: /v1/sys/health
+ secretNames:
+ transferProxyTokenSignerPrivateKey: daps-key-dev
+ transferProxyTokenSignerPublicKey: daps-crt-dev
+ transferProxyTokenEncryptionAesKey: edc-encryption-key
+
+ backendService:
+ httpProxyTokenReceiverUrl: "https://materialpass.dev.demo.catena-x.net/endpoint"
+
+ networkPolicy:
+ # -- If `true` network policy will be created to restrict access to control- and dataplane
+ enabled: false
+ # -- Configuration of the controlplane component
+ controlplane:
+ # -- Specify from rule network policy for cp (defaults to all namespaces)
+ from:
+ - namespaceSelector: {}
+ # -- Configuration of the dataplane component
+ dataplane:
+ # -- Specify from rule network policy for dp (defaults to all namespaces)
+ from:
+ - namespaceSelector: {}
+
+ serviceAccount:
+ # Specifies whether a service account should be created
+ create: true
+ # Annotations to add to the service account
+ annotations: {}
+ # The name of the service account to use.
+ # If not set and create is true, a name is generated using the fullname template
+ name: ""
+ # -- Existing image pull secret bound to the service account to use to [obtain the container image from private registries](https://kubernetes.io/docs/concepts/containers/images/#using-a-private-registry)
+ imagePullSecrets: []
+
+ # -- Configurations for Helm tests
+ tests:
+ # -- Configure the hook-delete-policy for Helm tests
+ hookDeletePolicy: before-hook-creation,hook-succeeded
+
+postgresql:
+ jdbcUrl: "jdbc:postgresql://postgresql:5432/edc"
+ fullnameOverride: "postgresql"
+ primary:
+ persistence:
+ enabled: true
+ readReplicas:
+ persistence:
+ enabled: true
+ auth:
+ database: "edc"
+ username:
+ password:
diff --git a/deployment/infrastructure/delete-provider-dtr.sh b/deployment/infrastructure/delete-provider-dtr.sh
index 970ce5c6c..995b906d3 100644
--- a/deployment/infrastructure/delete-provider-dtr.sh
+++ b/deployment/infrastructure/delete-provider-dtr.sh
@@ -40,7 +40,8 @@ DIGITAL_TWIN_4='1f0ef836-40b7-4f31-a9bd-cb6a8960779e'
DIGITAL_TWIN_SUBMODEL_ID_4='26bf39c5-68a5-43a1-8db7-d33e116a6f61'
SERVER_URL=''
-REGISTRY_URL=''
+REGISTRY_URL='/api/v3.0/shell-descriptors'
+
# put access token without 'Bearer ' prefix
BEARER_TOKEN=''
@@ -58,17 +59,17 @@ echo
# Delete a contract definition
echo "Delete contract definition for asset 1 - DTR..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/contractdefinitions/digital-twin-registry.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions/10
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/contractdefinitions/digital-twin-registry.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions/10
echo
# Delete a asset
echo "Delete asset 1 - DTR..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/assets/digital-twin-registry.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets/${ASSET_DTR}
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/assets/digital-twin-registry.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets/${ASSET_DTR}
echo
# Delete a general policy
echo "Delete policy for asset 1 - DTR..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/contractpolicies/digital-twin-registry.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions/4b480f48-79a0-4851-a56c-6ef71e19ebc4
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/contractpolicies/digital-twin-registry.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions/4b480f48-79a0-4851-a56c-6ef71e19ebc4
echo
@@ -76,29 +77,29 @@ echo '**************************Asset 2 **********************'
echo
# Delete Submodel data
echo "Delete sample data for asset 2..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/payloads/X123456789012X12345678901234566.json" $SERVER_URL/provider_backend/data/${ASSET_ID_1}
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/payloads/X123456789012X12345678901234566.json" $SERVER_URL/provider_backend/data/${ASSET_ID_1}
echo
# Delete a contract definition
echo "Delete contract definition for asset 2..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/contractdefinitions/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions/1
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/contractdefinitions/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions/1
echo
# Delete a asset
echo "Delete asset 2..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/assets/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets/${ASSET_ID_1}
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/assets/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets/${ASSET_ID_1}
echo
# Delete a general policy
echo "Delete policy for asset 2..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/contractpolicies/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions/ad8d2c57-cf32-409c-96a8-be59675b6ae5
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/contractpolicies/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions/ad8d2c57-cf32-409c-96a8-be59675b6ae5
echo
# Delete a digital twin and register from the registry
# To authenticate against CX registry, one needs a valid bearer token which can be issued through postman given the clientId and clientSecret
echo "Delete a DT for asset 2 and register it devo CX registry..."
-curl -X DELETE -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/digitaltwins/X123456789012X12345678901234566.json" $REGISTRY_URL/${DIGITAL_TWIN_1}
+curl -X DELETE -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/dpp/digitaltwins/X123456789012X12345678901234566.json" $REGISTRY_URL/${DIGITAL_TWIN_1}
echo
echo
@@ -110,30 +111,30 @@ echo
# Delete a contract definition
echo "Delete contract definition for asset 3..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/contractdefinitions/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions/2
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/contractdefinitions/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions/2
echo
# Delete Submodel data
echo "Delete sample data for asset 3..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/payloads/NCR186850B.json" $SERVER_URL/provider_backend/data/${ASSET_ID_2}
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/payloads/NCR186850B.json" $SERVER_URL/provider_backend/data/${ASSET_ID_2}
echo
# Delete a asset
echo "Delete asset 3..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/assets/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets/${ASSET_ID_2}
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/assets/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets/${ASSET_ID_2}
echo
# Delete a general policy
echo "Delete policy for asset 3..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/contractpolicies/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions/f873e234-112c-4598-893b-eda0671b7402
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/contractpolicies/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions/f873e234-112c-4598-893b-eda0671b7402
echo
# Delete a digital twin and register from the registry
# To authenticate against CX registry, one needs a valid bearer token which can be issued through postman given the clientId and clientSecret
echo "Delete a DT for asset 3 and register it devo CX registry..."
-curl -X DELETE -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/digitaltwins/NCR186850B.json" $REGISTRY_URL/${DIGITAL_TWIN_2}
+curl -X DELETE -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/dpp/digitaltwins/NCR186850B.json" $REGISTRY_URL/${DIGITAL_TWIN_2}
echo
echo
@@ -142,23 +143,23 @@ echo
echo '**************************Asset 4 **********************'
# Delete Submodel data
echo "Delete sample data for asset 4..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/payloads/IMR18650V1.json" $SERVER_URL/provider_backend/data/${ASSET_ID_3}
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/payloads/IMR18650V1.json" $SERVER_URL/provider_backend/data/${ASSET_ID_3}
echo
# Delete a contract definition
echo "Delete contract definition for asset 4..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/contractdefinitions/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions/3
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/contractdefinitions/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions/3
echo
# Delete a asset
echo "Delete asset 4..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/assets/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets/${ASSET_ID_3}
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/assets/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets/${ASSET_ID_3}
echo
# Delete a general policy
echo "Delete policy for asset 4..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/contractpolicies/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions/4b480f48-79a0-4851-a56c-6ef71e19ebb3
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/contractpolicies/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions/4b480f48-79a0-4851-a56c-6ef71e19ebb3
echo
@@ -166,30 +167,30 @@ echo
# To authenticate against CX registry, one needs a valid bearer token which can be issued through postman given the clientId and clientSecret
echo "Delete a DT for asset 4 and register it devo CX registry..."
-curl -X DELETE -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/digitaltwins/IMR18650V1.json" $REGISTRY_URL/${DIGITAL_TWIN_3}
+curl -X DELETE -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/dpp/digitaltwins/IMR18650V1.json" $REGISTRY_URL/${DIGITAL_TWIN_3}
echo
echo '**************************Asset 5 **********************'
# Delete Submodel data
echo "Delete sample data for asset 5..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/payloads/Y792927456954B81677903848654570.json" $SERVER_URL/provider_backend/data/${ASSET_ID_4}
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/payloads/Y792927456954B81677903848654570.json" $SERVER_URL/provider_backend/data/${ASSET_ID_4}
echo
# Delete a contract definition
echo "Delete contract definition for asset 5..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/contractdefinitions/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions/131
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/contractdefinitions/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions/131
echo
# Delete a asset
echo "Delete asset 5..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/assets/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets/${ASSET_ID_4}
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/assets/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets/${ASSET_ID_4}
echo
# Delete a general policy
echo "Delete policy for asset 5..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/contractpolicies/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions/0a216bb0-934d-4c93-8e92-ca3b4f862e33
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/contractpolicies/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions/0a216bb0-934d-4c93-8e92-ca3b4f862e33
echo
@@ -198,7 +199,7 @@ echo
# To authenticate against CX registry, one needs a valid bearer token which can be issued through postman given the clientId and clientSecret
echo "Delete a DT for asset 5 and register it devo CX registry..."
-curl -X POST -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/digitaltwins/Y792927456954B81677903848654570.json" $REGISTRY_URL/${DIGITAL_TWIN_4}
+curl -X POST -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/dpp/digitaltwins/Y792927456954B81677903848654570.json" $REGISTRY_URL/${DIGITAL_TWIN_4}
echo
echo 'Provider setup completed...'
diff --git a/deployment/infrastructure/delete-provider.sh b/deployment/infrastructure/delete-provider.sh
index 4436b18f6..3c704e408 100644
--- a/deployment/infrastructure/delete-provider.sh
+++ b/deployment/infrastructure/delete-provider.sh
@@ -39,8 +39,8 @@ DIGITAL_TWIN_SUBMODEL_ID_3='61125dc3-5e6f-4f4b-838d-447432b97918'
DIGITAL_TWIN_4='1f0ef836-40b7-4f31-a9bd-cb6a8960779e'
DIGITAL_TWIN_SUBMODEL_ID_4='26bf39c5-68a5-43a1-8db7-d33e116a6f61'
-SERVER_URL=''
-REGISTRY_URL=''
+SERVER_URL=''
+REGISTRY_URL='/api/v3.0/shell-descriptors'
# put access token without 'Bearer ' prefix
@@ -57,29 +57,29 @@ echo '**************************Asset 1 **********************'
echo
# Delete Submodel data
echo "Delete sample data for asset 1..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/payloads/X123456789012X12345678901234566.json" $SERVER_URL/provider_backend/data/${ASSET_ID_1}
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/payloads/X123456789012X12345678901234566.json" $SERVER_URL/provider_backend/data/${ASSET_ID_1}
echo
# Delete a contract definition
echo "Delete contract definition for asset 1..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/contractdefinitions/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions/1
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/contractdefinitions/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions/1
echo
# Delete a asset
echo "Delete asset 1..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/assets/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets/${ASSET_ID_1}
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/assets/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets/${ASSET_ID_1}
echo
# Delete a general policy
echo "Delete policy for asset 1..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/contractpolicies/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions/ad8d2c57-cf32-409c-96a8-be59675b6ae5
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/contractpolicies/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions/ad8d2c57-cf32-409c-96a8-be59675b6ae5
echo
# Delete a digital twin and register from CX registry
# To authenticate against CX registry, one needs a valid bearer token which can be issued through postman given the clientId and clientSecret
echo "Delete a DT for asset 1 and register it devo CX registry..."
-curl -X DELETE -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/digitaltwins/X123456789012X12345678901234566.json" $REGISTRY_URL/${DIGITAL_TWIN_1}
+curl -X DELETE -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/dpp/digitaltwins/X123456789012X12345678901234566.json" $REGISTRY_URL/${DIGITAL_TWIN_1}
echo
echo
@@ -91,30 +91,30 @@ echo
# Delete a contract definition
echo "Delete contract definition for asset 2..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/contractdefinitions/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions/2
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/contractdefinitions/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions/2
echo
# Delete Submodel data
echo "Delete sample data for asset 2..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/payloads/NCR186850B.json" $SERVER_URL/provider_backend/data/${ASSET_ID_2}
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/payloads/NCR186850B.json" $SERVER_URL/provider_backend/data/${ASSET_ID_2}
echo
# Delete a asset
echo "Delete asset 2..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/assets/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets/${ASSET_ID_2}
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/assets/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets/${ASSET_ID_2}
echo
# Delete a general policy
echo "Delete policy for asset 2..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/contractpolicies/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions/f873e234-112c-4598-893b-eda0671b7402
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/contractpolicies/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions/f873e234-112c-4598-893b-eda0671b7402
echo
# Delete a digital twin and register from CX registry
# To authenticate against CX registry, one needs a valid bearer token which can be issued through postman given the clientId and clientSecret
echo "Delete a DT for asset 2 and register it devo CX registry..."
-curl -X DELETE -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/digitaltwins/NCR186850B.json" $REGISTRY_URL/${DIGITAL_TWIN_2}
+curl -X DELETE -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/dpp/digitaltwins/NCR186850B.json" $REGISTRY_URL/${DIGITAL_TWIN_2}
echo
echo
@@ -123,23 +123,23 @@ echo
echo '**************************Asset 3 **********************'
# Delete Submodel data
echo "Delete sample data for asset 3..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/payloads/IMR18650V1.json" $SERVER_URL/provider_backend/data/${ASSET_ID_3}
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/payloads/IMR18650V1.json" $SERVER_URL/provider_backend/data/${ASSET_ID_3}
echo
# Delete a contract definition
echo "Delete contract definition for asset 3..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/contractdefinitions/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions/3
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/contractdefinitions/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions/3
echo
# Delete a asset
echo "Delete asset 3..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/assets/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets/${ASSET_ID_3}
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/assets/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets/${ASSET_ID_3}
echo
# Delete a general policy
echo "Delete policy for asset 3..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/contractpolicies/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions/4b480f48-79a0-4851-a56c-6ef71e19ebb3
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/contractpolicies/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions/4b480f48-79a0-4851-a56c-6ef71e19ebb3
echo
@@ -147,30 +147,30 @@ echo
# To authenticate against CX registry, one needs a valid bearer token which can be issued through postman given the clientId and clientSecret
echo "Delete a DT for asset 3 and register it devo CX registry..."
-curl -X DELETE -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/digitaltwins/IMR18650V1.json" $REGISTRY_URL/${DIGITAL_TWIN_3}
+curl -X DELETE -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/dpp/digitaltwins/IMR18650V1.json" $REGISTRY_URL/${DIGITAL_TWIN_3}
echo
echo '**************************Asset 4 **********************'
# Delete Submodel data
echo "Delete sample data for asset 4..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/payloads/Y792927456954B81677903848654570.json" $SERVER_URL/provider_backend/data/${ASSET_ID_4}
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/payloads/Y792927456954B81677903848654570.json" $SERVER_URL/provider_backend/data/${ASSET_ID_4}
echo
# Delete a contract definition
echo "Delete contract definition for asset 4..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/contractdefinitions/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions/131
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/contractdefinitions/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions/131
echo
# Delete a asset
echo "Delete asset 4..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/assets/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets/${ASSET_ID_4}
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/assets/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets/${ASSET_ID_4}
echo
# Delete a general policy
echo "Delete policy for asset 4..."
-curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/contractpolicies/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions/0a216bb0-934d-4c93-8e92-ca3b4f862e33
+curl -X DELETE -H 'Content-Type: application/json' -s --data "@resources/dpp/contractpolicies/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions/0a216bb0-934d-4c93-8e92-ca3b4f862e33
echo
@@ -179,7 +179,7 @@ echo
# To authenticate against CX registry, one needs a valid bearer token which can be issued through postman given the clientId and clientSecret
echo "Delete a DT for asset 4 and register it devo CX registry..."
-curl -X POST -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/digitaltwins/Y792927456954B81677903848654570.json" $REGISTRY_URL/${DIGITAL_TWIN_4}
+curl -X POST -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/dpp/digitaltwins/Y792927456954B81677903848654570.json" $REGISTRY_URL/${DIGITAL_TWIN_4}
echo
echo 'Provider setup completed...'
diff --git a/deployment/infrastructure/init-provider-dtr-irs.sh b/deployment/infrastructure/init-provider-dtr-irs.sh
new file mode 100644
index 000000000..f3ffc70e6
--- /dev/null
+++ b/deployment/infrastructure/init-provider-dtr-irs.sh
@@ -0,0 +1,157 @@
+#!/bin/bash
+#################################################################################
+# Catena-X - Product Passport Consumer Application
+#
+# Copyright (c) 2022, 2023 BASF SE, BMW AG, Henkel AG & Co. KGaA
+#
+# 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 govern in permissions and limitations
+# under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+#################################################################################
+
+set -o errexit
+set -o errtrace
+set -o pipefail
+set -o nounset
+
+DIGITAL_TWIN_1='urn:uuid:3d050cd8-cdc7-4d65-9f37-70a65d5f53f5'
+DT1_SUBMODEL_ID_1='urn:uuid:777a3f0a-6d29-4fcd-81ea-1c27c1b870cc'
+DT1_SUBMODEL_ID_2='urn:uuid:09d5d8a9-9073-47b6-93c6-80caff176dca'
+
+DIGITAL_TWIN_2='urn:uuid:ace301f6-92c5-4623-a022-c2a30dfee0e2'
+DT2_SUBMODEL_ID_1='urn:uuid:754b6c6c-d74a-4dd0-a62c-f07959f15332'
+DT2_SUBMODEL_ID_2='urn:uuid:25ea2646-d57f-4b31-97a0-d0d7b3b35d37'
+DT2_SUBMODEL_ID_3='urn:uuid:c216bece-b17f-4679-8b62-ec25810ca1c4'
+
+DIGITAL_TWIN_3='urn:uuid:d3e7cc6c-0e9b-49db-8d0d-25c6a1e68690'
+DT3_SUBMODEL_ID_1='urn:uuid:0f8eb434-32af-48cb-8dc2-6391fb3d8aa8'
+DT3_SUBMODEL_ID_2='urn:uuid:7e3f0673-fa92-43c3-af0d-e86485a97bda'
+DT3_SUBMODEL_ID_3='urn:uuid:d7f23694-6d38-44ca-8ba5-3256e3b4b219'
+
+SERVER_URL=''
+REGISTRY_URL='/api/v3.0/shell-descriptors'
+SUBMODEL_SERVER=''
+
+API_KEY=''
+
+DPP_ASSET='urn:uuid:3e4a5957-f226-478a-ab18-79ced49d6195'
+REGISTRY_ASSET='registry-asset'
+
+echo '**************************Asset 1 - Digital Twin Registry **********************'
+echo
+
+# Create a asset
+echo "Create asset 1 - DTR..."
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/irs/assets/digital-twin-registry.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets
+echo
+
+# Create a general policy
+echo "Create policy for asset 1 - DTR..."
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/irs/contractpolicies/digital-twin-registry.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions
+echo
+
+# Create a contract definition
+echo "Create contract definition for asset 1 - DTR..."
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/irs/contractdefinitions/digital-twin-registry.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions
+echo
+echo
+
+
+echo '**************************Battery**********************'
+echo
+# Create Submodel data
+echo "Create battery sample data..."
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/irs/payloads/BAT-XYZ789.json" $SUBMODEL_SERVER/provider_backend/data/${DT1_SUBMODEL_ID_1}
+echo
+
+echo "Create Battery BomAsBuilt sample data..."
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/irs/payloads/singleLevelBomAsBuilt-BAT-XYZ789.json" $SUBMODEL_SERVER/provider_backend/data/${DT1_SUBMODEL_ID_2}
+echo
+
+# Create a asset
+echo "Create asset 2..."
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/irs/assets/DT-BAT-XYZ789.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets
+echo
+
+# Create a general policy
+echo "Create policy for asset 2..."
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/irs/contractpolicies/DT-BAT-XYZ789.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions
+echo
+
+# Create a contract definition
+echo "Create contract definition for asset 2..."
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/irs/contractdefinitions/DT-BAT-XYZ789.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions
+echo
+
+# Create a digital twin and register inside CX registry
+# To authenticate against CX registry, one needs a valid bearer token which can be issued through postman given the clientId and clientSecret
+echo "Create a DT for asset 2 and register it devo CX registry..."
+
+curl -X POST -s -H 'Content-Type: application/json' --data "@resources/irs/digitaltwins/DT-BAT-XYZ789+BOMAsBuilt.json" $REGISTRY_URL
+echo
+echo
+
+
+
+echo '**************************Battery Pack**********************'
+
+echo
+# Create Submodel data
+echo "Create Battery pack sample data..."
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/irs/payloads/EVPACK-TRJ712.json" $SUBMODEL_SERVER/provider_backend/data/${DT2_SUBMODEL_ID_1}
+echo
+
+echo "Create Battery pack BomAsBuilt sample data..."
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/irs/payloads/singleLevelUsageAsBuilt-EVPACK-TRJ712.json" $SUBMODEL_SERVER/provider_backend/data/${DT2_SUBMODEL_ID_2}
+echo
+
+echo "Create Battery pack BomAsUsage sample data..."
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/irs/payloads/singleLevelBomAsBuilt-EVPACK-TRJ712.json" $SUBMODEL_SERVER/provider_backend/data/${DT2_SUBMODEL_ID_3}
+echo
+
+
+# Create a digital twin and register inside CX registry
+# To authenticate against CX registry, one needs a valid bearer token which can be issued through postman given the clientId and clientSecret
+echo "Create a DT for asset 3 and register it devo CX registry..."
+
+curl -X POST -s -H 'Content-Type: application/json' --data "@resources/irs/digitaltwins/DT-EVPACK-TRJ712+BOMAsBuilt.json" $REGISTRY_URL
+echo
+echo
+
+
+
+echo '**************************Battery Cell**********************'
+# Create Submodel data
+echo "Create Battery Cell sample data..."
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/irs/payloads/singleLevelBOMAsBuilt-CTA-13123.json" $SUBMODEL_SERVER/provider_backend/data/${DT3_SUBMODEL_ID_1}
+echo
+
+echo "Create Battery Cell BomAsBuilt sample data..."
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/irs/payloads/CTA-13123.json" $SUBMODEL_SERVER/provider_backend/data/${DT3_SUBMODEL_ID_2}
+echo
+
+echo "Create Battery Cell BomAsUsage sample data..."
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/irs/payloads/singleLevelUsageAsBuilt-CTA-13123.json" $SUBMODEL_SERVER/provider_backend/data/${DT2_SUBMODEL_ID_3}
+echo
+
+# Create a digital twin and register inside CX registry
+# To authenticate against CX registry, one needs a valid bearer token which can be issued through postman given the clientId and clientSecret
+echo "Create a DT for asset 4 and register it devo CX registry..."
+
+curl -X POST -s -H 'Content-Type: application/json' --data "@resources/irs/digitaltwins/DT-CTA-13123+BOMAsBuilt.json" $REGISTRY_URL
+echo
+
+echo 'Provider setup completed...'
+echo 'Done'
diff --git a/deployment/infrastructure/init-provider-dtr.sh b/deployment/infrastructure/init-provider-dtr.sh
index fd06d9da4..1c0c479fe 100644
--- a/deployment/infrastructure/init-provider-dtr.sh
+++ b/deployment/infrastructure/init-provider-dtr.sh
@@ -39,7 +39,8 @@ DIGITAL_TWIN_4='1f0ef836-40b7-4f31-a9bd-cb6a8960779e'
DIGITAL_TWIN_SUBMODEL_ID_4='26bf39c5-68a5-43a1-8db7-d33e116a6f61'
SERVER_URL=''
-REGISTRY_URL=''
+REGISTRY_URL='/api/v3.0/shell-descriptors'
+
# put access token without 'Bearer ' prefix
BEARER_TOKEN=''
@@ -56,17 +57,17 @@ echo
# Create a asset
echo "Create asset 1 - DTR..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/assets/digital-twin-registry.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/assets/digital-twin-registry.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets
echo
# Create a general policy
echo "Create policy for asset 1 - DTR..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/contractpolicies/digital-twin-registry.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/contractpolicies/digital-twin-registry.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions
echo
# Create a contract definition
echo "Create contract definition for asset 1 - DTR..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/contractdefinitions/digital-twin-registry.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/contractdefinitions/digital-twin-registry.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions
echo
echo
@@ -75,29 +76,29 @@ echo '**************************Asset 2 **********************'
echo
# Create Submodel data
echo "Create sample data for asset 2..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/payloads/X123456789012X12345678901234566.json" $SERVER_URL/provider_backend/data/${ASSET_ID_1}
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/payloads/X123456789012X12345678901234566.json" $SERVER_URL/provider_backend/data/${ASSET_ID_1}
echo
# Create a asset
echo "Create asset 2..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/assets/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/assets/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets
echo
# Create a general policy
echo "Create policy for asset 2..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/contractpolicies/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/contractpolicies/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions
echo
# Create a contract definition
echo "Create contract definition for asset 2..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/contractdefinitions/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/contractdefinitions/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions
echo
# Create a digital twin and register inside CX registry
# To authenticate against CX registry, one needs a valid bearer token which can be issued through postman given the clientId and clientSecret
echo "Create a DT for asset 2 and register it devo CX registry..."
-curl -X POST -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/digitaltwins/X123456789012X12345678901234566.json" $REGISTRY_URL
+curl -X POST -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/dpp/digitaltwins/X123456789012X12345678901234566.json" $REGISTRY_URL
echo
echo
@@ -108,22 +109,22 @@ echo '**************************Asset 3 **********************'
echo
# Create Submodel data
echo "Create sample data for asset 3..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/payloads/NCR186850B.json" $SERVER_URL/provider_backend/data/${ASSET_ID_2}
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/payloads/NCR186850B.json" $SERVER_URL/provider_backend/data/${ASSET_ID_2}
echo
# Create a asset
echo "Create asset 3..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/assets/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/assets/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets
echo
# Create a general policy
echo "Create policy for asset 3..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/contractpolicies/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/contractpolicies/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions
echo
# Create a contract definition
echo "Create contract definition for asset 3..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/contractdefinitions/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/contractdefinitions/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions
echo
@@ -131,7 +132,7 @@ echo
# To authenticate against CX registry, one needs a valid bearer token which can be issued through postman given the clientId and clientSecret
echo "Create a DT for asset 3 and register it devo CX registry..."
-curl -X POST -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/digitaltwins/NCR186850B.json" $REGISTRY_URL
+curl -X POST -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/dpp/digitaltwins/NCR186850B.json" $REGISTRY_URL
echo
echo
@@ -140,51 +141,51 @@ echo
echo '**************************Asset 4 **********************'
# Create Submodel data
echo "Create sample data for asset 4..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/payloads/IMR18650V1.json" $SERVER_URL/provider_backend/data/${ASSET_ID_3}
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/payloads/IMR18650V1.json" $SERVER_URL/provider_backend/data/${ASSET_ID_3}
echo
# Create a asset
echo "Create asset 4..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/assets/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/assets/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets
echo
# Create a general policy
echo "Create policy for asset 4..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/contractpolicies/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/contractpolicies/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions
echo
# Create a contract definition
echo "Create contract definition for asset 4..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/contractdefinitions/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/contractdefinitions/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions
echo
# Create a digital twin and register inside CX registry
# To authenticate against CX registry, one needs a valid bearer token which can be issued through postman given the clientId and clientSecret
echo "Create a DT for asset 4 and register it devo CX registry..."
-curl -X POST -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/digitaltwins/IMR18650V1.json" $REGISTRY_URL
+curl -X POST -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/dpp/digitaltwins/IMR18650V1.json" $REGISTRY_URL
echo
echo '**************************Asset 5 **********************'
# Create Submodel data
echo "Create sample data for asset 5..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/payloads/Y792927456954B81677903848654570.json" $SERVER_URL/provider_backend/data/${ASSET_ID_4}
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/payloads/Y792927456954B81677903848654570.json" $SERVER_URL/provider_backend/data/${ASSET_ID_4}
echo
# Create a asset
echo "Create asset 5..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/assets/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/assets/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets
echo
# Create a general policy
echo "Create policy for asset 5..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/contractpolicies/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/contractpolicies/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions
echo
# Create a contract definition
echo "Create contract definition for asset 5..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/contractdefinitions/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/contractdefinitions/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions
echo
@@ -192,7 +193,7 @@ echo
# To authenticate against CX registry, one needs a valid bearer token which can be issued through postman given the clientId and clientSecret
echo "Create a DT for asset 5 and register it devo CX registry..."
-curl -X POST -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/digitaltwins/Y792927456954B81677903848654570.json" $REGISTRY_URL
+curl -X POST -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/dpp/digitaltwins/Y792927456954B81677903848654570.json" $REGISTRY_URL
echo
echo 'Provider setup completed...'
diff --git a/deployment/infrastructure/init-provider.sh b/deployment/infrastructure/init-provider.sh
index bfc8d4827..ce969090a 100644
--- a/deployment/infrastructure/init-provider.sh
+++ b/deployment/infrastructure/init-provider.sh
@@ -39,8 +39,8 @@ DIGITAL_TWIN_SUBMODEL_ID_3='61125dc3-5e6f-4f4b-838d-447432b97918'
DIGITAL_TWIN_4='1f0ef836-40b7-4f31-a9bd-cb6a8960779e'
DIGITAL_TWIN_SUBMODEL_ID_4='26bf39c5-68a5-43a1-8db7-d33e116a6f61'
-SERVER_URL=''
-REGISTRY_URL=''
+SERVER_URL=''
+REGISTRY_URL='/api/v3.0/shell-descriptors'
# put access token without 'Bearer ' prefix
@@ -58,29 +58,29 @@ echo '**************************Asset 1 **********************'
echo
# Create Submodel data
echo "Create sample data for asset 1..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/payloads/X123456789012X12345678901234566.json" $SERVER_URL/provider_backend/data/${ASSET_ID_1}
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/payloads/X123456789012X12345678901234566.json" $SERVER_URL/provider_backend/data/${ASSET_ID_1}
echo
# Create a asset
echo "Create asset 1..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/assets/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/assets/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets
echo
# Create a general policy
echo "Create policy for asset 1..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/contractpolicies/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/contractpolicies/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions
echo
# Create a contract definition
echo "Create contract definition for asset 1..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/contractdefinitions/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/contractdefinitions/X123456789012X12345678901234566.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions
echo
# Create a digital twin and register inside CX registry
# To authenticate against CX registry, one needs a valid bearer token which can be issued through postman given the clientId and clientSecret
echo "Create a DT for asset 1 and register it devo CX registry..."
-curl -X POST -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/digitaltwins/X123456789012X12345678901234566.json" $REGISTRY_URL
+curl -X POST -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/dpp/digitaltwins/X123456789012X12345678901234566.json" $REGISTRY_URL
echo
echo
@@ -91,22 +91,22 @@ echo '**************************Asset 2 **********************'
echo
# Create Submodel data
echo "Create sample data for asset 2..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/payloads/NCR186850B.json" $SERVER_URL/provider_backend/data/${ASSET_ID_2}
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/payloads/NCR186850B.json" $SERVER_URL/provider_backend/data/${ASSET_ID_2}
echo
# Create a asset
echo "Create asset 2..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/assets/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/assets/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets
echo
# Create a general policy
echo "Create policy for asset 2..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/contractpolicies/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/contractpolicies/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions
echo
# Create a contract definition
echo "Create contract definition for asset 2..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/contractdefinitions/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/contractdefinitions/NCR186850B.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions
echo
@@ -114,7 +114,7 @@ echo
# To authenticate against CX registry, one needs a valid bearer token which can be issued through postman given the clientId and clientSecret
echo "Create a DT for asset 2 and register it devo CX registry..."
-curl -X POST -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/digitaltwins/NCR186850B.json" $REGISTRY_URL
+curl -X POST -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/dpp/digitaltwins/NCR186850B.json" $REGISTRY_URL
echo
echo
@@ -123,51 +123,51 @@ echo
echo '**************************Asset 3 **********************'
# Create Submodel data
echo "Create sample data for asset 3..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/payloads/IMR18650V1.json" $SERVER_URL/provider_backend/data/${ASSET_ID_3}
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/payloads/IMR18650V1.json" $SERVER_URL/provider_backend/data/${ASSET_ID_3}
echo
# Create a asset
echo "Create asset 3..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/assets/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/assets/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets
echo
# Create a general policy
echo "Create policy for asset 3..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/contractpolicies/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/contractpolicies/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions
echo
# Create a contract definition
echo "Create contract definition for asset 3..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/contractdefinitions/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/contractdefinitions/IMR18650V1.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions
echo
# Create a digital twin and register inside CX registry
# To authenticate against CX registry, one needs a valid bearer token which can be issued through postman given the clientId and clientSecret
echo "Create a DT for asset 3 and register it devo CX registry..."
-curl -X POST -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/digitaltwins/IMR18650V1.json" $REGISTRY_URL
+curl -X POST -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/dpp/digitaltwins/IMR18650V1.json" $REGISTRY_URL
echo
echo '**************************Asset 4 **********************'
# Create Submodel data
echo "Create sample data for asset 4..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/payloads/Y792927456954B81677903848654570.json" $SERVER_URL/provider_backend/data/${ASSET_ID_4}
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/payloads/Y792927456954B81677903848654570.json" $SERVER_URL/provider_backend/data/${ASSET_ID_4}
echo
# Create a asset
echo "Create asset 4..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/assets/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/assets/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/assets
echo
# Create a general policy
echo "Create policy for asset 4..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/contractpolicies/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/contractpolicies/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/policydefinitions
echo
# Create a contract definition
echo "Create contract definition for asset 4..."
-curl -X POST -H 'Content-Type: application/json' -s --data "@resources/contractdefinitions/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions
+curl -X POST -H 'Content-Type: application/json' -s --data "@resources/dpp/contractdefinitions/Y792927456954B81677903848654570.json" --header 'X-Api-Key: '${API_KEY} $SERVER_URL/management/v2/contractdefinitions
echo
@@ -175,7 +175,7 @@ echo
# To authenticate against CX registry, one needs a valid bearer token which can be issued through postman given the clientId and clientSecret
echo "Create a DT for asset 4 and register it devo CX registry..."
-curl -X POST -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/digitaltwins/Y792927456954B81677903848654570.json" $REGISTRY_URL
+curl -X POST -s --header 'Content-Type: application/json' --header "Authorization: Bearer ${BEARER_TOKEN//[$'\t\r\n ']}" --data "@resources/dpp/digitaltwins/Y792927456954B81677903848654570.json" $REGISTRY_URL
echo
echo 'Provider setup completed...'
diff --git a/deployment/infrastructure/resources/assets/IMR18650V1.json b/deployment/infrastructure/resources/dpp/assets/IMR18650V1.json
similarity index 100%
rename from deployment/infrastructure/resources/assets/IMR18650V1.json
rename to deployment/infrastructure/resources/dpp/assets/IMR18650V1.json
diff --git a/deployment/infrastructure/resources/assets/NCR186850B.json b/deployment/infrastructure/resources/dpp/assets/NCR186850B.json
similarity index 100%
rename from deployment/infrastructure/resources/assets/NCR186850B.json
rename to deployment/infrastructure/resources/dpp/assets/NCR186850B.json
diff --git a/deployment/infrastructure/resources/assets/X123456789012X12345678901234566.json b/deployment/infrastructure/resources/dpp/assets/X123456789012X12345678901234566.json
similarity index 100%
rename from deployment/infrastructure/resources/assets/X123456789012X12345678901234566.json
rename to deployment/infrastructure/resources/dpp/assets/X123456789012X12345678901234566.json
diff --git a/deployment/infrastructure/resources/assets/Y792927456954B81677903848654570.json b/deployment/infrastructure/resources/dpp/assets/Y792927456954B81677903848654570.json
similarity index 100%
rename from deployment/infrastructure/resources/assets/Y792927456954B81677903848654570.json
rename to deployment/infrastructure/resources/dpp/assets/Y792927456954B81677903848654570.json
diff --git a/deployment/infrastructure/resources/assets/digital-twin-registry.json b/deployment/infrastructure/resources/dpp/assets/digital-twin-registry.json
similarity index 90%
rename from deployment/infrastructure/resources/assets/digital-twin-registry.json
rename to deployment/infrastructure/resources/dpp/assets/digital-twin-registry.json
index a6a5dc1cc..5b9db9c51 100644
--- a/deployment/infrastructure/resources/assets/digital-twin-registry.json
+++ b/deployment/infrastructure/resources/dpp/assets/digital-twin-registry.json
@@ -5,7 +5,7 @@
"@id": "digital-twin-registry",
"properties": {
"type": "data.core.digitalTwinRegistry",
- "description": "Battery Passport test data",
+ "description": "Digital Twin Registry for DPP",
"contenttype": "application/json"
}
},
diff --git a/deployment/infrastructure/resources/contractdefinitions/IMR18650V1.json b/deployment/infrastructure/resources/dpp/contractdefinitions/IMR18650V1.json
similarity index 100%
rename from deployment/infrastructure/resources/contractdefinitions/IMR18650V1.json
rename to deployment/infrastructure/resources/dpp/contractdefinitions/IMR18650V1.json
diff --git a/deployment/infrastructure/resources/contractdefinitions/NCR186850B.json b/deployment/infrastructure/resources/dpp/contractdefinitions/NCR186850B.json
similarity index 100%
rename from deployment/infrastructure/resources/contractdefinitions/NCR186850B.json
rename to deployment/infrastructure/resources/dpp/contractdefinitions/NCR186850B.json
diff --git a/deployment/infrastructure/resources/contractdefinitions/X123456789012X12345678901234566.json b/deployment/infrastructure/resources/dpp/contractdefinitions/X123456789012X12345678901234566.json
similarity index 100%
rename from deployment/infrastructure/resources/contractdefinitions/X123456789012X12345678901234566.json
rename to deployment/infrastructure/resources/dpp/contractdefinitions/X123456789012X12345678901234566.json
diff --git a/deployment/infrastructure/resources/contractdefinitions/Y792927456954B81677903848654570.json b/deployment/infrastructure/resources/dpp/contractdefinitions/Y792927456954B81677903848654570.json
similarity index 100%
rename from deployment/infrastructure/resources/contractdefinitions/Y792927456954B81677903848654570.json
rename to deployment/infrastructure/resources/dpp/contractdefinitions/Y792927456954B81677903848654570.json
diff --git a/deployment/infrastructure/resources/contractdefinitions/digital-twin-registry.json b/deployment/infrastructure/resources/dpp/contractdefinitions/digital-twin-registry.json
similarity index 100%
rename from deployment/infrastructure/resources/contractdefinitions/digital-twin-registry.json
rename to deployment/infrastructure/resources/dpp/contractdefinitions/digital-twin-registry.json
diff --git a/deployment/infrastructure/resources/contractpolicies/IMR18650V1.json b/deployment/infrastructure/resources/dpp/contractpolicies/IMR18650V1.json
similarity index 100%
rename from deployment/infrastructure/resources/contractpolicies/IMR18650V1.json
rename to deployment/infrastructure/resources/dpp/contractpolicies/IMR18650V1.json
diff --git a/deployment/infrastructure/resources/contractpolicies/NCR186850B.json b/deployment/infrastructure/resources/dpp/contractpolicies/NCR186850B.json
similarity index 100%
rename from deployment/infrastructure/resources/contractpolicies/NCR186850B.json
rename to deployment/infrastructure/resources/dpp/contractpolicies/NCR186850B.json
diff --git a/deployment/infrastructure/resources/contractpolicies/X123456789012X12345678901234566.json b/deployment/infrastructure/resources/dpp/contractpolicies/X123456789012X12345678901234566.json
similarity index 100%
rename from deployment/infrastructure/resources/contractpolicies/X123456789012X12345678901234566.json
rename to deployment/infrastructure/resources/dpp/contractpolicies/X123456789012X12345678901234566.json
diff --git a/deployment/infrastructure/resources/contractpolicies/Y792927456954B81677903848654570.json b/deployment/infrastructure/resources/dpp/contractpolicies/Y792927456954B81677903848654570.json
similarity index 100%
rename from deployment/infrastructure/resources/contractpolicies/Y792927456954B81677903848654570.json
rename to deployment/infrastructure/resources/dpp/contractpolicies/Y792927456954B81677903848654570.json
diff --git a/deployment/infrastructure/resources/contractpolicies/digital-twin-registry.json b/deployment/infrastructure/resources/dpp/contractpolicies/digital-twin-registry.json
similarity index 100%
rename from deployment/infrastructure/resources/contractpolicies/digital-twin-registry.json
rename to deployment/infrastructure/resources/dpp/contractpolicies/digital-twin-registry.json
diff --git a/deployment/infrastructure/resources/digitaltwins/IMR18650V1.json b/deployment/infrastructure/resources/dpp/digitaltwins/IMR18650V1.json
similarity index 100%
rename from deployment/infrastructure/resources/digitaltwins/IMR18650V1.json
rename to deployment/infrastructure/resources/dpp/digitaltwins/IMR18650V1.json
diff --git a/deployment/infrastructure/resources/digitaltwins/NCR186850B.json b/deployment/infrastructure/resources/dpp/digitaltwins/NCR186850B.json
similarity index 100%
rename from deployment/infrastructure/resources/digitaltwins/NCR186850B.json
rename to deployment/infrastructure/resources/dpp/digitaltwins/NCR186850B.json
diff --git a/deployment/infrastructure/resources/digitaltwins/X123456789012X12345678901234566.json b/deployment/infrastructure/resources/dpp/digitaltwins/X123456789012X12345678901234566.json
similarity index 100%
rename from deployment/infrastructure/resources/digitaltwins/X123456789012X12345678901234566.json
rename to deployment/infrastructure/resources/dpp/digitaltwins/X123456789012X12345678901234566.json
diff --git a/deployment/infrastructure/resources/digitaltwins/Y792927456954B81677903848654570.json b/deployment/infrastructure/resources/dpp/digitaltwins/Y792927456954B81677903848654570.json
similarity index 100%
rename from deployment/infrastructure/resources/digitaltwins/Y792927456954B81677903848654570.json
rename to deployment/infrastructure/resources/dpp/digitaltwins/Y792927456954B81677903848654570.json
diff --git a/deployment/infrastructure/resources/payloads/IMR18650V1.json b/deployment/infrastructure/resources/dpp/payloads/IMR18650V1.json
similarity index 100%
rename from deployment/infrastructure/resources/payloads/IMR18650V1.json
rename to deployment/infrastructure/resources/dpp/payloads/IMR18650V1.json
diff --git a/deployment/infrastructure/resources/payloads/NCR186850B.json b/deployment/infrastructure/resources/dpp/payloads/NCR186850B.json
similarity index 100%
rename from deployment/infrastructure/resources/payloads/NCR186850B.json
rename to deployment/infrastructure/resources/dpp/payloads/NCR186850B.json
diff --git a/deployment/infrastructure/resources/payloads/X123456789012X12345678901234566.json b/deployment/infrastructure/resources/dpp/payloads/X123456789012X12345678901234566.json
similarity index 100%
rename from deployment/infrastructure/resources/payloads/X123456789012X12345678901234566.json
rename to deployment/infrastructure/resources/dpp/payloads/X123456789012X12345678901234566.json
diff --git a/deployment/infrastructure/resources/payloads/Y792927456954B81677903848654570.json b/deployment/infrastructure/resources/dpp/payloads/Y792927456954B81677903848654570.json
similarity index 100%
rename from deployment/infrastructure/resources/payloads/Y792927456954B81677903848654570.json
rename to deployment/infrastructure/resources/dpp/payloads/Y792927456954B81677903848654570.json
diff --git a/deployment/infrastructure/resources/irs/assets/DT-BAT-XYZ789.json b/deployment/infrastructure/resources/irs/assets/DT-BAT-XYZ789.json
new file mode 100644
index 000000000..90baa3a17
--- /dev/null
+++ b/deployment/infrastructure/resources/irs/assets/DT-BAT-XYZ789.json
@@ -0,0 +1,22 @@
+{
+ "@context": {
+ "dct": "https://purl.org/dc/terms/",
+ "tx": "https://w3id.org/tractusx/v0.0.1/ns/",
+ "edc": "https://w3id.org/edc/v0.0.1/ns/",
+ "dcat": "https://www.w3.org/ns/dcat/",
+ "odrl": "http://www.w3.org/ns/odrl/2/",
+ "dspace": "https://w3id.org/dspace/v0.8/"
+ },
+ "asset": {
+ "@type": "Asset",
+ "@id": "urn:uuid:3e4a5957-f226-478a-ab18-79ced49d6195",
+ "properties": {
+ "description": "DPP EDC Test Asset"
+ }
+ },
+ "dataAddress": {
+ "@type": "DataAddress",
+ "type": "HttpData",
+ "baseUrl": "https://materialpass.int.demo.catena-x.net/provider_backend/data/urn:uuid:3e4a5957-f226-478a-ab18-79ced49d6195"
+ }
+}
diff --git a/deployment/infrastructure/resources/irs/assets/digital-twin-registry.json b/deployment/infrastructure/resources/irs/assets/digital-twin-registry.json
new file mode 100644
index 000000000..afb91e454
--- /dev/null
+++ b/deployment/infrastructure/resources/irs/assets/digital-twin-registry.json
@@ -0,0 +1,28 @@
+{
+ "@context": {
+ "dct": "https://purl.org/dc/terms/",
+ "tx": "https://w3id.org/tractusx/v0.0.1/ns/",
+ "edc": "https://w3id.org/edc/v0.0.1/ns/",
+ "dcat": "https://www.w3.org/ns/dcat/",
+ "odrl": "http://www.w3.org/ns/odrl/2/",
+ "dspace": "https://w3id.org/dspace/v0.8/"
+ },
+ "asset": {
+ "@type": "data.core.digitalTwinRegistry",
+ "@id": "registry-asset",
+ "properties": {
+ "type": "data.core.digitalTwinRegistry",
+ "description": "Digital Twin Registry for DPP-IRS",
+ "contenttype": "application/json"
+ }
+ },
+ "dataAddress": {
+ "@type": "DataAddress",
+ "type": "HttpData",
+ "proxyPath": "true",
+ "proxyBody": "true",
+ "proxyMethod": "true",
+ "proxyQueryParams": "true",
+ "baseUrl": "https://materialpass.int.demo.catena-x.net/semantics/registry/api/v3.0"
+ }
+}
diff --git a/deployment/infrastructure/resources/irs/contractdefinitions/DT-BAT-XYZ789.json b/deployment/infrastructure/resources/irs/contractdefinitions/DT-BAT-XYZ789.json
new file mode 100644
index 000000000..4be1f5fe8
--- /dev/null
+++ b/deployment/infrastructure/resources/irs/contractdefinitions/DT-BAT-XYZ789.json
@@ -0,0 +1,20 @@
+{
+ "@context": {
+ "dct": "https://purl.org/dc/terms/",
+ "tx": "https://w3id.org/tractusx/v0.0.1/ns/",
+ "edc": "https://w3id.org/edc/v0.0.1/ns/",
+ "dcat": "https://www.w3.org/ns/dcat/",
+ "odrl": "http://www.w3.org/ns/odrl/2/",
+ "dspace": "https://w3id.org/dspace/v0.8/"
+ },
+ "@id": "6289e746-0390-4a4a-8cd3-3c10fb701bd7",
+ "@type": "ContractDefinition",
+ "accessPolicyId": "e3ffbbcb-1e6c-406c-91e8-cf0bf191b807",
+ "contractPolicyId": "e3ffbbcb-1e6c-406c-91e8-cf0bf191b807",
+ "assetsSelector" : {
+ "@type" : "CriterionDto",
+ "operandLeft": "https://w3id.org/edc/v0.0.1/ns/id",
+ "operator": "=",
+ "operandRight": "urn:uuid:3e4a5957-f226-478a-ab18-79ced49d6195"
+ }
+}
diff --git a/deployment/infrastructure/resources/irs/contractdefinitions/digital-twin-registry.json b/deployment/infrastructure/resources/irs/contractdefinitions/digital-twin-registry.json
new file mode 100644
index 000000000..1a639aa5c
--- /dev/null
+++ b/deployment/infrastructure/resources/irs/contractdefinitions/digital-twin-registry.json
@@ -0,0 +1,20 @@
+{
+ "@context": {
+ "dct": "https://purl.org/dc/terms/",
+ "tx": "https://w3id.org/tractusx/v0.0.1/ns/",
+ "edc": "https://w3id.org/edc/v0.0.1/ns/",
+ "dcat": "https://www.w3.org/ns/dcat/",
+ "odrl": "http://www.w3.org/ns/odrl/2/",
+ "dspace": "https://w3id.org/dspace/v0.8/"
+ },
+ "@id": "aead5322-5c42-4954-bb78-4319638923cd",
+ "@type": "ContractDefinition",
+ "accessPolicyId": "4b480f48-79a0-4851-a56c-6ef71e19ebc4",
+ "contractPolicyId": "4b480f48-79a0-4851-a56c-6ef71e19ebc4",
+ "assetsSelector" : {
+ "@type" : "CriterionDto",
+ "operandLeft": "https://w3id.org/edc/v0.0.1/ns/id",
+ "operator": "=",
+ "operandRight": "registry-asset"
+ }
+}
diff --git a/deployment/infrastructure/resources/irs/contractpolicies/DT-BAT-XYZ789.json b/deployment/infrastructure/resources/irs/contractpolicies/DT-BAT-XYZ789.json
new file mode 100644
index 000000000..8b9e6525a
--- /dev/null
+++ b/deployment/infrastructure/resources/irs/contractpolicies/DT-BAT-XYZ789.json
@@ -0,0 +1,26 @@
+{
+ "@context": {
+ "odrl": "http://www.w3.org/ns/odrl/2/leftOperand"
+ },
+ "@type": "PolicyDefinitionRequestDto",
+ "@id": "e3ffbbcb-1e6c-406c-91e8-cf0bf191b807",
+ "policy": {
+ "@type": "Policy",
+ "odrl:permission" : [{
+ "odrl:action": "USE",
+ "odrl:constraint": {
+ "odrl:constraint": {
+ "@type": "LogicalConstraint",
+ "odrl:or": [
+ {
+ "@type": "Contraint",
+ "odrl:leftOperand": "BusinessPartnerNumber",
+ "odrl:operator": "EQ",
+ "odrl:rightOperand": "BPNL00000000CBA5"
+ }
+ ]
+ }
+ }
+ }]
+ }
+}
diff --git a/deployment/infrastructure/resources/irs/contractpolicies/digital-twin-registry.json b/deployment/infrastructure/resources/irs/contractpolicies/digital-twin-registry.json
new file mode 100644
index 000000000..2ca5c3403
--- /dev/null
+++ b/deployment/infrastructure/resources/irs/contractpolicies/digital-twin-registry.json
@@ -0,0 +1,26 @@
+{
+ "@context": {
+ "odrl": "http://www.w3.org/ns/odrl/2/leftOperand"
+ },
+ "@type": "PolicyDefinitionRequestDto",
+ "@id": "4b480f48-79a0-4851-a56c-6ef71e19ebc4",
+ "policy": {
+ "@type": "Policy",
+ "odrl:permission" : [{
+ "odrl:action": "USE",
+ "odrl:constraint": {
+ "odrl:constraint": {
+ "@type": "LogicalConstraint",
+ "odrl:or": [
+ {
+ "@type": "Contraint",
+ "odrl:leftOperand": "BusinessPartnerNumber",
+ "odrl:operator": "EQ",
+ "odrl:rightOperand": "BPNL00000000CBA5"
+ }
+ ]
+ }
+ }
+ }]
+ }
+}
diff --git a/deployment/infrastructure/resources/irs/digitaltwins/DT-BAT-XYZ789+BOMAsBuilt.json b/deployment/infrastructure/resources/irs/digitaltwins/DT-BAT-XYZ789+BOMAsBuilt.json
new file mode 100644
index 000000000..3cc0dcef7
--- /dev/null
+++ b/deployment/infrastructure/resources/irs/digitaltwins/DT-BAT-XYZ789+BOMAsBuilt.json
@@ -0,0 +1,108 @@
+{
+ "description": [
+ {
+ "language": "en",
+ "text": "Battery Digital Twin"
+ }
+ ],
+ "displayName": [],
+ "globalAssetId": "urn:uuid:efcb5f8d-f31c-4b1f-b090-9c878054554d",
+ "idShort": "Battery_BAT-XYZ789",
+ "id": "urn:uuid:3d050cd8-cdc7-4d65-9f37-70a65d5f53f5",
+ "specificAssetIds": [
+ {
+ "name": "partInstanceId",
+ "value": "BAT-XYZ789",
+ "externalSubjectId": {
+ "type": "ExternalReference",
+ "keys": [
+ {
+ "type": "GlobalReference",
+ "value": "BPNL00000000CBA5"
+ }
+ ]
+ }
+ }
+ ],
+ "submodelDescriptors": [
+ {
+ "endpoints": [
+ {
+ "interface": "SUBMODEL-3.0",
+ "protocolInformation": {
+ "href": "https://materialpass.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:777a3f0a-6d29-4fcd-81ea-1c27c1b870cc",
+ "endpointProtocol": "HTTP",
+ "endpointProtocolVersion": [
+ "1.1"
+ ],
+ "subprotocol": "DSP",
+ "subprotocolBody": "id=urn:uuid:3e4a5957-f226-478a-ab18-79ced49d6195;dspEndpoint=https://materialpass.int.demo.catena-x.net/BPNL000000000000/",
+ "subprotocolBodyEncoding": "plain",
+ "securityAttributes": [
+ {
+ "type": "NONE",
+ "key": "NONE",
+ "value": "NONE"
+ }
+ ]
+ }
+ }
+ ],
+ "idShort": "digitalProductPass",
+ "id": "urn:uuid:777a3f0a-6d29-4fcd-81ea-1c27c1b870cc",
+ "semanticId": {
+ "type": "ExternalReference",
+ "keys": [
+ {
+ "type": "GlobalReference",
+ "value": "urn:bamm:io.catenax.generic.digital_product_passport:1.0.0#DigitalProductPassport"
+ }
+ ]
+ },
+ "description": [
+ {
+ "language": "en",
+ "text": "Digital Product Passport Submodel"
+ }
+ ],
+ "displayName": []
+ },
+ {
+ "endpoints": [
+ {
+ "interface": "SUBMODEL-3.0",
+ "protocolInformation": {
+ "href": "https://materialpass.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:09d5d8a9-9073-47b6-93c6-80caff176dca",
+ "endpointProtocol": "HTTP",
+ "endpointProtocolVersion": [
+ "1.1"
+ ],
+ "subprotocol": "DSP",
+ "subprotocolBody": "id=urn:uuid:3e4a5957-f226-478a-ab18-79ced49d6195;dspEndpoint=https://materialpass.int.demo.catena-x.net/BPNL000000000000",
+ "subprotocolBodyEncoding": "plain",
+ "securityAttributes": [
+ {
+ "type": "NONE",
+ "key": "NONE",
+ "value": "NONE"
+ }
+ ]
+ }
+ }
+ ],
+ "idShort": "singleLevelBomAsBuilt",
+ "id": "urn:uuid:09d5d8a9-9073-47b6-93c6-80caff176dca",
+ "semanticId": {
+ "type": "ExternalReference",
+ "keys": [
+ {
+ "type": "GlobalReference",
+ "value": "urn:bamm:io.catenax.single_level_bom_as_built:1.0.0#SingleLevelBomAsBuilt"
+ }
+ ]
+ },
+ "description": [],
+ "displayName": []
+ }
+ ]
+}
diff --git a/deployment/infrastructure/resources/irs/digitaltwins/DT-CTA-13123+BOMAsBuilt.json b/deployment/infrastructure/resources/irs/digitaltwins/DT-CTA-13123+BOMAsBuilt.json
new file mode 100644
index 000000000..d1ef662e1
--- /dev/null
+++ b/deployment/infrastructure/resources/irs/digitaltwins/DT-CTA-13123+BOMAsBuilt.json
@@ -0,0 +1,155 @@
+{
+ "description": [
+ {
+ "language": "en",
+ "text": "Battery Cell Digital Twin"
+ }
+ ],
+ "displayName": [],
+ "globalAssetId": "urn:uuid:63b95496-86ed-4762-b248-491d5c1242e1",
+ "idShort": "BatteryCell_CTA-13123",
+ "id": "urn:uuid:d3e7cc6c-0e9b-49db-8d0d-25c6a1e68690",
+ "specificAssetIds": [
+ {
+ "name": "partInstanceId",
+ "value": "CTA-13123",
+ "externalSubjectId": {
+ "type": "ExternalReference",
+ "keys": [
+ {
+ "type": "GlobalReference",
+ "value": "BPNL00000000CBA5"
+ }
+ ]
+ }
+ }
+ ],
+ "submodelDescriptors": [
+ {
+ "endpoints": [
+ {
+ "interface": "SUBMODEL-3.0",
+ "protocolInformation": {
+ "href": "https://materialpass.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:0f8eb434-32af-48cb-8dc2-6391fb3d8aa8",
+ "endpointProtocol": "HTTP",
+ "endpointProtocolVersion": [
+ "1.1"
+ ],
+ "subprotocol": "DSP",
+ "subprotocolBody": "id=urn:uuid:3e4a5957-f226-478a-ab18-79ced49d6195;dspEndpoint=https://materialpass.int.demo.catena-x.net/BPNL000000000000/",
+ "subprotocolBodyEncoding": "plain",
+ "securityAttributes": [
+ {
+ "type": "NONE",
+ "key": "NONE",
+ "value": "NONE"
+ }
+ ]
+ }
+ }
+ ],
+ "idShort": "singleLevelBomAsBuilt",
+ "id": "urn:uuid:0f8eb434-32af-48cb-8dc2-6391fb3d8aa8",
+ "semanticId": {
+ "type": "ExternalReference",
+ "keys": [
+ {
+ "type": "GlobalReference",
+ "value": "urn:bamm:io.catenax.single_level_bom_as_built:1.0.0#SingleLevelBomAsBuilt"
+ }
+ ]
+ },
+ "description": [
+ {
+ "language": "en",
+ "text": "Digital Product Passport Submodel"
+ }
+ ],
+ "displayName": []
+ },
+ {
+ "endpoints": [
+ {
+ "interface": "SUBMODEL-3.0",
+ "protocolInformation": {
+ "href": "https://materialpass.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:7e3f0673-fa92-43c3-af0d-e86485a97bda",
+ "endpointProtocol": "HTTP",
+ "endpointProtocolVersion": [
+ "1.1"
+ ],
+ "subprotocol": "DSP",
+ "subprotocolBody": "id=urn:uuid:3e4a5957-f226-478a-ab18-79ced49d6195;dspEndpoint=https://materialpass.int.demo.catena-x.net/BPNL000000000000/",
+ "subprotocolBodyEncoding": "plain",
+ "securityAttributes": [
+ {
+ "type": "NONE",
+ "key": "NONE",
+ "value": "NONE"
+ }
+ ]
+ }
+ }
+ ],
+ "idShort": "digitalProductPass",
+ "id": "urn:uuid:7e3f0673-fa92-43c3-af0d-e86485a97bda",
+ "semanticId": {
+ "type": "ExternalReference",
+ "keys": [
+ {
+ "type": "GlobalReference",
+ "value": "urn:bamm:io.catenax.generic.digital_product_passport:1.0.0#DigitalProductPassport"
+ }
+ ]
+ },
+ "description": [
+ {
+ "language": "en",
+ "text": "Digital Product Passport Submodel"
+ }
+ ],
+ "displayName": []
+ },
+ {
+ "endpoints": [
+ {
+ "interface": "SUBMODEL-3.0",
+ "protocolInformation": {
+ "href": "https://materialpass.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:d7f23694-6d38-44ca-8ba5-3256e3b4b219",
+ "endpointProtocol": "HTTP",
+ "endpointProtocolVersion": [
+ "1.1"
+ ],
+ "subprotocol": "DSP",
+ "subprotocolBody": "id=urn:uuid:3e4a5957-f226-478a-ab18-79ced49d6195;dspEndpoint=https://materialpass.int.demo.catena-x.net/BPNL000000000000/",
+ "subprotocolBodyEncoding": "plain",
+ "securityAttributes": [
+ {
+ "type": "NONE",
+ "key": "NONE",
+ "value": "NONE"
+ }
+ ]
+ }
+ }
+ ],
+ "idShort": "singleLevelUsageAsBuilt",
+ "id": "urn:uuid:d7f23694-6d38-44ca-8ba5-3256e3b4b219",
+ "semanticId": {
+ "type": "ExternalReference",
+ "keys": [
+ {
+ "type": "GlobalReference",
+ "value": "urn:bamm:io.catenax.single_level_usage_as_built:1.0.1#SingleLevelUsageAsBuilt"
+ }
+ ]
+ },
+ "description": [
+ {
+ "language": "en",
+ "text": "Digital Product Passport Submodel"
+ }
+ ],
+ "displayName": []
+ }
+ ]
+}
diff --git a/deployment/infrastructure/resources/irs/digitaltwins/DT-EVPACK-TRJ712+BOMAsBuilt.json b/deployment/infrastructure/resources/irs/digitaltwins/DT-EVPACK-TRJ712+BOMAsBuilt.json
new file mode 100644
index 000000000..90a94a9cc
--- /dev/null
+++ b/deployment/infrastructure/resources/irs/digitaltwins/DT-EVPACK-TRJ712+BOMAsBuilt.json
@@ -0,0 +1,155 @@
+{
+ "description": [
+ {
+ "language": "en",
+ "text": "Battery Pack Digital Twin"
+ }
+ ],
+ "displayName": [],
+ "globalAssetId": "urn:uuid:d8ec6acc-1ad7-47b4-bc7e-612122d9d552",
+ "idShort": "BatteryPack_EVPACK-TRJ712",
+ "id": "urn:uuid:ace301f6-92c5-4623-a022-c2a30dfee0e2",
+ "specificAssetIds": [
+ {
+ "name": "partInstanceId",
+ "value": "EVPACK-TRJ712",
+ "externalSubjectId": {
+ "type": "ExternalReference",
+ "keys": [
+ {
+ "type": "GlobalReference",
+ "value": "BPNL00000000CBA5"
+ }
+ ]
+ }
+ }
+ ],
+ "submodelDescriptors": [
+ {
+ "endpoints": [
+ {
+ "interface": "SUBMODEL-3.0",
+ "protocolInformation": {
+ "href": "https://materialpass.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:754b6c6c-d74a-4dd0-a62c-f07959f15332",
+ "endpointProtocol": "HTTP",
+ "endpointProtocolVersion": [
+ "1.1"
+ ],
+ "subprotocol": "DSP",
+ "subprotocolBody": "id=urn:uuid:3e4a5957-f226-478a-ab18-79ced49d6195;dspEndpoint=https://materialpass.int.demo.catena-x.net/BPNL000000000000/",
+ "subprotocolBodyEncoding": "plain",
+ "securityAttributes": [
+ {
+ "type": "NONE",
+ "key": "NONE",
+ "value": "NONE"
+ }
+ ]
+ }
+ }
+ ],
+ "idShort": "digitalProductPass",
+ "id": "urn:uuid:754b6c6c-d74a-4dd0-a62c-f07959f15332",
+ "semanticId": {
+ "type": "ExternalReference",
+ "keys": [
+ {
+ "type": "GlobalReference",
+ "value": "urn:bamm:io.catenax.generic.digital_product_passport:1.0.0#DigitalProductPassport"
+ }
+ ]
+ },
+ "description": [
+ {
+ "language": "en",
+ "text": "Digital Product Passport Submodel"
+ }
+ ],
+ "displayName": []
+ },
+ {
+ "endpoints": [
+ {
+ "interface": "SUBMODEL-3.0",
+ "protocolInformation": {
+ "href": "https://materialpass.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:25ea2646-d57f-4b31-97a0-d0d7b3b35d37",
+ "endpointProtocol": "HTTP",
+ "endpointProtocolVersion": [
+ "1.1"
+ ],
+ "subprotocol": "DSP",
+ "subprotocolBody": "id=urn:uuid:3e4a5957-f226-478a-ab18-79ced49d6195;dspEndpoint=https://materialpass.int.demo.catena-x.net/BPNL000000000000/",
+ "subprotocolBodyEncoding": "plain",
+ "securityAttributes": [
+ {
+ "type": "NONE",
+ "key": "NONE",
+ "value": "NONE"
+ }
+ ]
+ }
+ }
+ ],
+ "idShort": "SingleLevelUsageAsBuilt",
+ "id": "urn:uuid:25ea2646-d57f-4b31-97a0-d0d7b3b35d37",
+ "semanticId": {
+ "type": "ExternalReference",
+ "keys": [
+ {
+ "type": "GlobalReference",
+ "value": "urn:bamm:io.catenax.single_level_usage_as_built:1.0.1#SingleLevelUsageAsBuilt"
+ }
+ ]
+ },
+ "description": [
+ {
+ "language": "en",
+ "text": "Digital Product Passport Submodel"
+ }
+ ],
+ "displayName": []
+ },
+ {
+ "endpoints": [
+ {
+ "interface": "SUBMODEL-3.0",
+ "protocolInformation": {
+ "href": "https://materialpass.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:c216bece-b17f-4679-8b62-ec25810ca1c4",
+ "endpointProtocol": "HTTP",
+ "endpointProtocolVersion": [
+ "1.1"
+ ],
+ "subprotocol": "DSP",
+ "subprotocolBody": "id=urn:uuid:3e4a5957-f226-478a-ab18-79ced49d6195;dspEndpoint=https://materialpass.int.demo.catena-x.net/BPNL000000000000/",
+ "subprotocolBodyEncoding": "plain",
+ "securityAttributes": [
+ {
+ "type": "NONE",
+ "key": "NONE",
+ "value": "NONE"
+ }
+ ]
+ }
+ }
+ ],
+ "idShort": "singleLevelBomAsBuilt",
+ "id": "urn:uuid:c216bece-b17f-4679-8b62-ec25810ca1c4",
+ "semanticId": {
+ "type": "ExternalReference",
+ "keys": [
+ {
+ "type": "GlobalReference",
+ "value": "urn:bamm:io.catenax.single_level_bom_as_built:1.0.0#SingleLevelBomAsBuilt"
+ }
+ ]
+ },
+ "description": [
+ {
+ "language": "en",
+ "text": "Digital Product Passport Submodel"
+ }
+ ],
+ "displayName": []
+ }
+ ]
+}
diff --git a/deployment/infrastructure/resources/irs/payloads/BAT-XYZ789.json b/deployment/infrastructure/resources/irs/payloads/BAT-XYZ789.json
new file mode 100644
index 000000000..2bf5d3518
--- /dev/null
+++ b/deployment/infrastructure/resources/irs/payloads/BAT-XYZ789.json
@@ -0,0 +1,130 @@
+{
+ "catenaXId": "urn:uuid:efcb5f8d-f31c-4b1f-b090-9c878054554d",
+ "serialization": {
+ "manufacturingInformation": {
+ "date": "2023-08-30T10:30:00",
+ "country": "USA"
+ },
+ "registration": {
+ "customerPartId": "PRT-67890",
+ "manufacturerPartId": "HV-SPORT-123"
+ },
+ "quantity": {
+ "value": 1.0,
+ "unit": "unit:piece"
+ }
+ },
+ "typology": {
+ "name": "High Voltage Battery for Sports Car",
+ "description": "High performance battery for electric sports cars",
+ "class": {
+ "definition": "High Voltage Battery",
+ "code": "33-06-01-01"
+ },
+ "nameAtManufacturer": "Performance Battery Pack",
+ "nameAtCustomer": "High-Performance Energy Source"
+ },
+ "metadata": {
+ "issueDate": "2023-08-30",
+ "version": "2.0.0",
+ "validityDate": "2023-08-30",
+ "economicOperator": {
+ "eori": "US987654321000",
+ "id": "BPNL000000000000"
+ },
+ "status": "Approved"
+ },
+ "characteristics": {
+ "physicalDimensionsProperty": {
+ "width": 800.0,
+ "length": 1200.0,
+ "weight": 300.5,
+ "height": 150.0
+ },
+ "energyCapacity": {
+ "value": 85.0,
+ "unit": "unit:kWh"
+ },
+ "voltage": {
+ "value": 400.0,
+ "unit": "unit:V"
+ }
+ },
+ "commercial": {
+ "placedOnMarket": "2023-09-01",
+ "warranty": 72
+ },
+ "identification": {
+ "localIdentifiers": [
+ {
+ "value": "BAT-XYZ789",
+ "key": "PartInstanceID"
+ }
+ ],
+ "gtin": "12345678901234",
+ "additionalCode": [
+ {
+ "name": "TARIC",
+ "value": "8507 80 00 00"
+ }
+ ]
+ },
+ "sources": {
+ "mandatory": {
+ "safetyInformation": {
+ "header": "Safety Datasheet for High Voltage Battery",
+ "category": "Safety",
+ "type": "link",
+ "content": "www.example.com/safety_datasheet.pdf"
+ },
+ "environmentalImpact": {
+ "header": "Environmental Impact Assessment",
+ "category": "Environment",
+ "type": "link",
+ "content": "www.example.com/environmental_impact.pdf"
+ }
+ },
+ "optional": [
+ {
+ "name": "userManual",
+ "document": {
+ "header": "User Manual for High Voltage Battery",
+ "category": "User Manual",
+ "type": "link",
+ "content": "www.example.com/user_manual.pdf"
+ }
+ }
+ ]
+ },
+ "sustainability": {
+ "state": "first life",
+ "material": [
+ {
+ "name": "Lithium-Ion",
+ "recycled": false,
+ "renewable": false,
+ "percentage": 80.0
+ }
+ ],
+ "critical": [
+ "Lithium",
+ "Cobalt"
+ ],
+ "carbonFootprint": {
+ "carbonContentTotal": 10.2,
+ "crossSectoralStandard": "ISO 14040",
+ "productOrSectorSpecificRules": [
+ {
+ "ruleName": "ISO 14067"
+ }
+ ]
+ }
+ },
+ "operation": {
+ "importer": "BPNL000000000000",
+ "manufacturer": {
+ "manufacturerId": "BPNL000000000000",
+ "facilityId": "BPNL000000000123"
+ }
+ }
+}
diff --git a/deployment/infrastructure/resources/irs/payloads/CTA-13123.json b/deployment/infrastructure/resources/irs/payloads/CTA-13123.json
new file mode 100644
index 000000000..f3afd6cd4
--- /dev/null
+++ b/deployment/infrastructure/resources/irs/payloads/CTA-13123.json
@@ -0,0 +1,117 @@
+{
+ "catenaXId": "urn:uuid:63b95496-86ed-4762-b248-491d5c1242e1",
+ "serialization": {
+ "manufacturingInformation": {
+ "date": "2023-08-30T11:45:00",
+ "country": "JPN"
+ },
+ "registration": {
+ "customerPartId": "CELL-45678",
+ "manufacturerPartId": "BC-JPN-12345"
+ },
+ "quantity": {
+ "value": 1000.0,
+ "unit": "unit:piece"
+ }
+ },
+ "typology": {
+ "name": "Lithium-Ion Battery Cell",
+ "description": "High-capacity lithium-ion battery cell",
+ "class": {
+ "definition": "Battery Cell",
+ "code": "33-06-01-02"
+ },
+ "nameAtManufacturer": "Li-Ion Cell 12345",
+ "nameAtCustomer": "High-Capacity Battery Cell"
+ },
+ "metadata": {
+ "issueDate": "2023-08-30",
+ "version": "1.1.0",
+ "validityDate": "2023-08-30",
+ "economicOperator": {
+ "eori": "JP123456789000",
+ "id": "BPN1234567890ZZ"
+ },
+ "status": "Approved"
+ },
+ "characteristics": {
+ "physicalDimensionsProperty": {
+ "width": 30.0,
+ "length": 60.0,
+ "weight": 50.2,
+ "height": 10.0
+ },
+ "energyCapacity": {
+ "value": 2.5,
+ "unit": "unit:Ah"
+ },
+ "voltage": {
+ "value": 3.7,
+ "unit": "unit:V"
+ }
+ },
+ "identification": {
+ "localIdentifiers": [
+ {
+ "value": "CTA-13123",
+ "key": "PartInstanceID"
+ }
+ ],
+ "gtin": "12345678901234",
+ "additionalCode": [
+ {
+ "name": "TARIC",
+ "value": "8507 60 00 00"
+ }
+ ]
+ },
+ "sources": {
+ "mandatory": {
+ "safetyInformation": {
+ "header": "Safety Datasheet for Lithium-Ion Battery Cell",
+ "category": "Safety",
+ "type": "link",
+ "content": "www.example.com/cell_safety_datasheet.pdf"
+ }
+ },
+ "optional": [
+ {
+ "name": "userManual",
+ "document": {
+ "header": "User Manual for Battery Cell",
+ "category": "User Manual",
+ "type": "link",
+ "content": "www.example.com/cell_user_manual.pdf"
+ }
+ }
+ ]
+ },
+ "sustainability": {
+ "state": "first life",
+ "material": [
+ {
+ "name": "Lithium-Cobalt Oxide",
+ "recycled": false,
+ "renewable": false,
+ "percentage": 40.0
+ }
+ ],
+ "critical": ["Lithium", "Cobalt"],
+ "carbonFootprint": {
+ "carbonContentTotal": 0.8,
+ "crossSectoralStandard": "ISO 14044",
+ "productOrSectorSpecificRules": [
+ {
+ "ruleName": "ISO 14067"
+ }
+ ]
+ }
+ },
+ "operation": {
+ "importer": "BPN1234567890ZZ",
+ "manufacturer": {
+ "manufacturerId": "BPN1234567890ZZ",
+ "facilityId": "BPN1234567890ZZ"
+ }
+ }
+}
diff --git a/deployment/infrastructure/resources/irs/payloads/EVPACK-TRJ712.json b/deployment/infrastructure/resources/irs/payloads/EVPACK-TRJ712.json
new file mode 100644
index 000000000..f029e702a
--- /dev/null
+++ b/deployment/infrastructure/resources/irs/payloads/EVPACK-TRJ712.json
@@ -0,0 +1,120 @@
+{
+ "catenaXId": "urn:uuid:d8ec6acc-1ad7-47b4-bc7e-612122d9d552",
+ "serialization": {
+ "manufacturingInformation": {
+ "date": "2023-08-30T14:30:00",
+ "country": "GER"
+ },
+ "registration": {
+ "customerPartId": "PACK-78901",
+ "manufacturerPartId": "BP-GER-45678"
+ },
+ "quantity": {
+ "value": 100.0,
+ "unit": "unit:piece"
+ }
+ },
+ "typology": {
+ "name": "High-Capacity Battery Pack",
+ "description": "Large battery pack for electric vehicles",
+ "class": {
+ "definition": "Battery Pack",
+ "code": "33-06-01-03"
+ },
+ "nameAtManufacturer": "EVPack 45678",
+ "nameAtCustomer": "High-Capacity Power Source"
+ },
+ "metadata": {
+ "issueDate": "2023-08-30",
+ "version": "1.0.0",
+ "validityDate": "2023-08-30",
+ "economicOperator": {
+ "eori": "DE987654321000",
+ "id": "BPNL000000000000"
+ },
+ "status": "Approved"
+ },
+ "characteristics": {
+ "physicalDimensionsProperty": {
+ "width": 800.0,
+ "length": 1000.0,
+ "weight": 700.5,
+ "height": 200.0
+ },
+ "energyCapacity": {
+ "value": 300.0,
+ "unit": "unit:kWh"
+ },
+ "voltage": {
+ "value": 800.0,
+ "unit": "unit:V"
+ }
+ },
+ "identification": {
+ "localIdentifiers": [
+ {
+ "value": "EVPACK-TRJ712",
+ "key": "PartInstanceID"
+ }
+ ],
+ "gtin": "12345678901234",
+ "additionalCode": [
+ {
+ "name": "TARIC",
+ "value": "8507 80 00 00"
+ }
+ ]
+ },
+ "sources": {
+ "mandatory": {
+ "safetyInformation": {
+ "header": "Safety Datasheet for Battery Pack",
+ "category": "Safety",
+ "type": "link",
+ "content": "www.example.com/pack_safety_datasheet.pdf"
+ }
+ },
+ "optional": [
+ {
+ "name": "userManual",
+ "document": {
+ "header": "User Manual for Battery Pack",
+ "category": "User Manual",
+ "type": "link",
+ "content": "www.example.com/pack_user_manual.pdf"
+ }
+ }
+ ]
+ },
+ "sustainability": {
+ "state": "first life",
+ "material": [
+ {
+ "name": "Lithium-Nickel-Cobalt-Manganese-Oxide",
+ "recycled": false,
+ "renewable": false,
+ "percentage": 35.0
+ }
+ ],
+ "critical": [
+ "Lithium",
+ "Cobalt"
+ ],
+ "carbonFootprint": {
+ "carbonContentTotal": 1.2,
+ "crossSectoralStandard": "ISO 14040",
+ "productOrSectorSpecificRules": [
+ {
+ "ruleName": "ISO 14067"
+ }
+ ]
+ }
+ },
+ "operation": {
+ "importer": "BPN1234567890ZZ",
+ "manufacturer": {
+ "manufacturerId": "BPN1234567890ZZ",
+ "facilityId": "BPN1234567890ZZ"
+ }
+ }
+}
diff --git a/deployment/infrastructure/resources/irs/payloads/singleLevelBOMAsBuilt-CTA-13123.json b/deployment/infrastructure/resources/irs/payloads/singleLevelBOMAsBuilt-CTA-13123.json
new file mode 100644
index 000000000..bac4e90db
--- /dev/null
+++ b/deployment/infrastructure/resources/irs/payloads/singleLevelBOMAsBuilt-CTA-13123.json
@@ -0,0 +1,4 @@
+{
+ "catenaXId": "urn:uuid:63b95496-86ed-4762-b248-491d5c1242e1",
+ "childItems": []
+}
diff --git a/deployment/infrastructure/resources/irs/payloads/singleLevelBomAsBuilt-BAT-XYZ789.json b/deployment/infrastructure/resources/irs/payloads/singleLevelBomAsBuilt-BAT-XYZ789.json
new file mode 100644
index 000000000..8dfead1de
--- /dev/null
+++ b/deployment/infrastructure/resources/irs/payloads/singleLevelBomAsBuilt-BAT-XYZ789.json
@@ -0,0 +1,15 @@
+{
+ "catenaXId": "urn:uuid:efcb5f8d-f31c-4b1f-b090-9c878054554d",
+ "childItems": [
+ {
+ "catenaXId": "urn:uuid:d8ec6acc-1ad7-47b4-bc7e-612122d9d552",
+ "quantity": {
+ "quantityNumber": 5.0,
+ "measurementUnit": "piece"
+ },
+ "businessPartner": "BPNL00000000CBA5",
+ "createdOn": "2023-01-09T17:26:54.709Z",
+ "lastModifiedOn": "2023-01-09T17:26:54.709Z"
+ }
+ ]
+}
diff --git a/deployment/infrastructure/resources/irs/payloads/singleLevelBomAsBuilt-EVPACK-TRJ712.json b/deployment/infrastructure/resources/irs/payloads/singleLevelBomAsBuilt-EVPACK-TRJ712.json
new file mode 100644
index 000000000..61c283619
--- /dev/null
+++ b/deployment/infrastructure/resources/irs/payloads/singleLevelBomAsBuilt-EVPACK-TRJ712.json
@@ -0,0 +1,15 @@
+{
+ "catenaXId": "urn:uuid:d8ec6acc-1ad7-47b4-bc7e-612122d9d552",
+ "childItems": [
+ {
+ "catenaXId": "urn:uuid:63b95496-86ed-4762-b248-491d5c1242e1",
+ "quantity": {
+ "quantityNumber": 100.0,
+ "measurementUnit": "piece"
+ },
+ "businessPartner": "BPNL00000000CBA5",
+ "createdOn": "2023-01-09T17:26:54.709Z",
+ "lastModifiedOn": "2023-01-09T17:26:54.709Z"
+ }
+ ]
+}
diff --git a/deployment/infrastructure/resources/irs/payloads/singleLevelUsageAsBuilt-CTA-13123.json b/deployment/infrastructure/resources/irs/payloads/singleLevelUsageAsBuilt-CTA-13123.json
new file mode 100644
index 000000000..2ddb26e8d
--- /dev/null
+++ b/deployment/infrastructure/resources/irs/payloads/singleLevelUsageAsBuilt-CTA-13123.json
@@ -0,0 +1,14 @@
+{
+ "parentParts": [
+ {
+ "parentCatenaXId": "urn:uuid:d8ec6acc-1ad7-47b4-bc7e-612122d9d552",
+ "quantity": {
+ "quantityNumber": 10.0,
+ "measurementUnit": "piece"
+ },
+ "createdOn": "2023-01-09T17:26:54.709Z",
+ "lastModifiedOn": "2023-01-09T17:26:54.709Z"
+ }
+ ],
+ "catenaXId": "urn:uuid:63b95496-86ed-4762-b248-491d5c1242e1"
+}
diff --git a/deployment/infrastructure/resources/irs/payloads/singleLevelUsageAsBuilt-EVPACK-TRJ712.json b/deployment/infrastructure/resources/irs/payloads/singleLevelUsageAsBuilt-EVPACK-TRJ712.json
new file mode 100644
index 000000000..9f1e9064c
--- /dev/null
+++ b/deployment/infrastructure/resources/irs/payloads/singleLevelUsageAsBuilt-EVPACK-TRJ712.json
@@ -0,0 +1,14 @@
+{
+ "parentParts": [
+ {
+ "parentCatenaXId": "urn:uuid:efcb5f8d-f31c-4b1f-b090-9c878054554d",
+ "quantity": {
+ "quantityNumber": 100.0,
+ "measurementUnit": "piece"
+ },
+ "createdOn": "2023-01-09T17:26:54.709Z",
+ "lastModifiedOn": "2023-01-09T17:26:54.709Z"
+ }
+ ],
+ "catenaXId": "urn:uuid:d8ec6acc-1ad7-47b4-bc7e-612122d9d552"
+}
diff --git a/docs/readme.md b/docs/README.md
similarity index 100%
rename from docs/readme.md
rename to docs/README.md
diff --git a/docs/RELEASE_USER.md b/docs/RELEASE_USER.md
index 332afd466..9fbc370fc 100644
--- a/docs/RELEASE_USER.md
+++ b/docs/RELEASE_USER.md
@@ -23,6 +23,23 @@
# Release Notes Digital Product Pass Application
User friendly relase notes without especific technical details.
+
+**October 19 2023 (Version 1.1.0)**
+*19.10.2023*
+
+### Added
+#### Added user friendly loading screen
+Now the frontend will be able to visualize the loading process done in the backend.
+Making more transparent what is going on in the passport search.
+
+#### QR Code scanner button moved to Welcome Screen search
+The quick search for passports using the QR Code was facilitated by including a new QR button
+where the search bar in the welcome screen is displayed.
+
+#### Support new dDTR version `v0.3.15-M1` with AAS 3.0
+Now we are able to query the Decentral Digital Twin Registry component by using the
+`/lookup/shells` API which was once deprecated and now is again in place because of the AAS 3.0 standard.
+
**August 31 2023 (Version 1.0.1)**
*31.08.2023*
diff --git a/package-lock.json b/package-lock.json
index fab229df3..3b47b842a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "productpass-consumer-ui",
- "version": "1.0.1",
+ "version": "1.1.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "productpass-consumer-ui",
- "version": "1.0.1",
+ "version": "1.1.0",
"dependencies": {
"@mdi/font": "5.9.55",
"@popperjs/core": "^2.11.2",
diff --git a/package.json b/package.json
index dbf616a16..51e7872a3 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "productpass-consumer-ui",
- "version": "1.0.1",
+ "version": "1.1.0",
"private": true,
"scripts": {
"serve": "vite --host localhost",
diff --git a/postman/IRS/DPP-IRS.postman_collection.json b/postman/IRS/DPP-IRS.postman_collection.json
new file mode 100644
index 000000000..508dae987
--- /dev/null
+++ b/postman/IRS/DPP-IRS.postman_collection.json
@@ -0,0 +1,372 @@
+{
+ "info": {
+ "_postman_id": "8fbfb90f-ff83-4343-a917-e65bb2ee468c",
+ "name": "DPP-IRS",
+ "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
+ },
+ "item": [
+ {
+ "name": "Policy Store",
+ "item": [
+ {
+ "name": "Get all Policies",
+ "request": {
+ "method": "GET",
+ "header": [],
+ "url": {
+ "raw": "{{IrsServer}}/irs/policies",
+ "host": [
+ "{{IrsServer}}"
+ ],
+ "path": [
+ "irs",
+ "policies"
+ ]
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "Register Policy",
+ "request": {
+ "method": "POST",
+ "header": [],
+ "body": {
+ "mode": "raw",
+ "raw": "{\r\n\t\"policyId\": \"R2_Traceability\",\r\n\t\"validUntil\": \"2026-08-01T00:00:00Z\"\r\n}",
+ "options": {
+ "raw": {
+ "language": "json"
+ }
+ }
+ },
+ "url": {
+ "raw": "{{IrsServer}}/irs/policies",
+ "host": [
+ "{{IrsServer}}"
+ ],
+ "path": [
+ "irs",
+ "policies"
+ ]
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "Delete Policy",
+ "request": {
+ "method": "DELETE",
+ "header": [],
+ "url": {
+ "raw": "{{IrsServer}}/irs/policies/{{policyId}}",
+ "host": [
+ "{{IrsServer}}"
+ ],
+ "path": [
+ "irs",
+ "policies",
+ "{{policyId}}"
+ ]
+ }
+ },
+ "response": []
+ }
+ ]
+ },
+ {
+ "name": "Digital Twin Registry",
+ "item": [
+ {
+ "name": "Get shell descriptors",
+ "request": {
+ "method": "GET",
+ "header": [],
+ "url": {
+ "raw": "{{registryUrl}}/shell-descriptors",
+ "host": [
+ "{{registryUrl}}"
+ ],
+ "path": [
+ "shell-descriptors"
+ ]
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "Get shell by Id Copy",
+ "request": {
+ "method": "GET",
+ "header": [],
+ "url": {
+ "raw": "{{registryUrl}}/shell-descriptors/{{digitalTwinId}}",
+ "host": [
+ "{{registryUrl}}"
+ ],
+ "path": [
+ "shell-descriptors",
+ "{{digitalTwinId}}"
+ ]
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "Delete Shell",
+ "request": {
+ "method": "DELETE",
+ "header": [],
+ "url": {
+ "raw": "{{registryUrl}}/shell-descriptors/{{digitalTwinId}}",
+ "host": [
+ "{{registryUrl}}"
+ ],
+ "path": [
+ "shell-descriptors",
+ "{{digitalTwinId}}"
+ ]
+ }
+ },
+ "response": []
+ }
+ ]
+ },
+ {
+ "name": "IRS",
+ "item": [
+ {
+ "name": "1. Register Job",
+ "event": [
+ {
+ "listen": "test",
+ "script": {
+ "exec": [
+ "const jsonResponse = pm.response.json();\r",
+ "pm.collectionVariables.set(\"jobId\", jsonResponse.id);"
+ ],
+ "type": "text/javascript"
+ }
+ }
+ ],
+ "request": {
+ "method": "POST",
+ "header": [],
+ "body": {
+ "mode": "raw",
+ "raw": "{\r\n \"aspects\": [\r\n \"BatteryPass\"\r\n ],\r\n \"bomLifecycle\": \"asBuilt\",\r\n \"callbackUrl\": \"https://hostname.com/callback?id={id}&state={state}\",\r\n \"collectAspects\": true,\r\n \"depth\": 100,\r\n \"direction\": \"downward\",\r\n \"key\": {\r\n \"bpn\": \"\",\r\n \"globalAssetId\": \"urn:uuid:1b17682e-5e2a-4913-aa1b-7d59a072a3cb\"\r\n },\r\n \"lookupBPNs\": true\r\n}",
+ "options": {
+ "raw": {
+ "language": "json"
+ }
+ }
+ },
+ "url": {
+ "raw": "{{irsServer}}/irs/jobs",
+ "host": [
+ "{{irsServer}}"
+ ],
+ "path": [
+ "irs",
+ "jobs"
+ ]
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "2. Get specific Job",
+ "request": {
+ "method": "GET",
+ "header": [],
+ "url": {
+ "raw": "{{irsServer}}/irs/jobs/{{jobId}}",
+ "host": [
+ "{{irsServer}}"
+ ],
+ "path": [
+ "irs",
+ "jobs",
+ "{{jobId}}"
+ ]
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "3. Get Jobs",
+ "request": {
+ "method": "GET",
+ "header": [],
+ "url": {
+ "raw": "{{irsServer}}/irs/jobs?page=0&size=20",
+ "host": [
+ "{{irsServer}}"
+ ],
+ "path": [
+ "irs",
+ "jobs"
+ ],
+ "query": [
+ {
+ "key": "page",
+ "value": "0"
+ },
+ {
+ "key": "size",
+ "value": "20"
+ }
+ ]
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "Get all available Aspect models",
+ "request": {
+ "method": "GET",
+ "header": [],
+ "url": {
+ "raw": "{{irsServer}}/irs/aspectmodels",
+ "host": [
+ "{{irsServer}}"
+ ],
+ "path": [
+ "irs",
+ "aspectmodels"
+ ]
+ }
+ },
+ "response": []
+ }
+ ]
+ }
+ ],
+ "auth": {
+ "type": "oauth2",
+ "oauth2": [
+ {
+ "key": "accessTokenUrl",
+ "value": "https://centralidp.int.demo.catena-x.net/auth/realms/CX-Central/protocol/openid-connect/token",
+ "type": "string"
+ },
+ {
+ "key": "scope",
+ "value": "openid profile email",
+ "type": "string"
+ },
+ {
+ "key": "clientSecret",
+ "value": "{{clientSecret}}",
+ "type": "string"
+ },
+ {
+ "key": "clientId",
+ "value": "{{clientId}}",
+ "type": "string"
+ },
+ {
+ "key": "challengeAlgorithm",
+ "value": "S256",
+ "type": "string"
+ },
+ {
+ "key": "username",
+ "value": "company 2 user",
+ "type": "string"
+ },
+ {
+ "key": "redirect_uri",
+ "value": "https://materialpass.int.demo.catena-x.net",
+ "type": "string"
+ },
+ {
+ "key": "password",
+ "value": "changeme",
+ "type": "string"
+ },
+ {
+ "key": "grant_type",
+ "value": "client_credentials",
+ "type": "string"
+ },
+ {
+ "key": "authUrl",
+ "value": "https://centralidp.int.demo.catena-x.net/auth/realms/CX-Central/protocol/openid-connect/auth",
+ "type": "string"
+ },
+ {
+ "key": "addTokenTo",
+ "value": "header",
+ "type": "string"
+ },
+ {
+ "key": "client_authentication",
+ "value": "header",
+ "type": "string"
+ }
+ ]
+ },
+ "event": [
+ {
+ "listen": "prerequest",
+ "script": {
+ "type": "text/javascript",
+ "exec": [
+ ""
+ ]
+ }
+ },
+ {
+ "listen": "test",
+ "script": {
+ "type": "text/javascript",
+ "exec": [
+ ""
+ ]
+ }
+ }
+ ],
+ "variable": [
+ {
+ "key": "digitalTwinId",
+ "value": "",
+ "type": "default"
+ },
+ {
+ "key": "clientId",
+ "value": "",
+ "type": "default"
+ },
+ {
+ "key": "clientSecret",
+ "value": "",
+ "type": "default"
+ },
+ {
+ "key": "irsServer",
+ "value": "",
+ "type": "default"
+ },
+ {
+ "key": "jobId",
+ "value": "",
+ "type": "default"
+ },
+ {
+ "key": "registryUrl",
+ "value": "",
+ "type": "default"
+ },
+ {
+ "key": "IrsServer",
+ "value": "",
+ "type": "default"
+ },
+ {
+ "key": "policyId",
+ "value": "",
+ "type": "default"
+ }
+ ]
+}
\ No newline at end of file