|----Consumer-Frontend----| |---Consumer-Backend---| |--------EDC-Consumer--------|
Consumer | DPP frontend | <---> | DPP Backend | <---> | Controlplane <-> Dataplane |
|-------------------------| |----------------------| |----------------------------|
--------- --------------------- -------------------- ------------------- -------------------
CatenaX Services | IAM | | HashiCorp Vault | | Discovery Finder | | BPN Discovery | | EDC Discovery |
--------- --------------------- -------------------- ------------------- -------------------
|-------Registry-------| |--------EDC-Provider--------|
Provider | DTR | <---> | Controlplane <-> Dataplane |<---> Backend Service
|----------------------| |----------------------------|
The EDC-Provider
holds data that is managed via an Data Management API and owned by product owners. To use the
data offer, the EDC-Consumer
needs to negotiate a contract for the data transfer. The CatenaX-Services
gives the
platform for the services to basically find each other (provides the meta-data).
The consumer frontend DPP frontend
provides a User Interface to request battery/product passports through edc connectors and the
final representation of the data.
Prerequisite:
# start minikube cluster
minikube start --cpus 4 --memory 8096
# enable minikube ingress addon
minikube addons enable ingress
The secrets/credentials for all components are stored in a centralized vault service (HashiCorp Vault). The secrets in configurations must be populated with their values, and security must also be ensured during the substitution process. To achieve this, a shell script is available to set/unset init-values.sh in required components as needed.
Prerequisite: Prior to run the scripts, the values for the follwoing environment variables should be placed in the script.
Script Environment Variables:
- GH_TOKEN (Generate the token from GitHub)
- VAULT_ADDR (Request for vault address)
- LATEST_IMAGE_TAG_FROM_GIT_COMMIT_SHA (Get the latest image tag from GitHub registry)
# Navigate to working directory
cd ../deployment/local/testing
# set values for local run
# ./init-values.sh <0 or 1> <GH_TOKEN> <VAULT_ADDRESS>
# 0: unset values back to the placeholders
# 1: set actual values from the vault storage
# set values
./init-values.sh 1 <GH_TOKEN> <VAULT_ADDRESS>
# unset values
./init-values.sh 0 <GH_TOKEN> <VAULT_ADDRESS>
-
CatenaX-Services
- Description: The following components are centrally managed by CatenaX:
- Discovery Finder to search for the discovery type (e.g., manufacturerPartId, bpn)
- BPN Discovery to search for the BPN
- EDC Discovery to search for an appriopriate EDC connector endpoint
- Description: The following components are centrally managed by CatenaX:
-
EDC-Consumer
- Description: This component consists of different services which are described in the Connector Setup.
- Controlplane & Dataplane
- Helm Chart hosted locally
# Navigate to the working directory
cd ../deployment/infrastructure/data-consumer/edc-consumer
# Update chart dependencies
helm dependency update .
# install helm chart named edc-consumer
helm install edc-consumer . -f ./values.yaml
# optional: remove/uninstall helm chart
helm uninstall edc-consumer
The edc-consumer chart deploys all consumer components e.g., controlplane, dataplane, postgresql and other components.
# status check
$ kubectl get pods
# output
NAME READY STATUS RESTARTS AGE
consumer-postgresql-0 1/1 Running 0 49s
edc-consumer-controlplane-787bdd7b74-hznz2 1/1 Running 2 49s
edc-consumer-dataplane-5f9988589f-98kc6 1/1 Running 0 49s
In order to access the data managemnt APIs locally from these charts, kubectl port forwarding is required.
kubectl get services
kubectl port-forward services/edc-consumer-controlplane 31639:8181
kubectl port-forward services/edc-consumer-controlplane 31216:8282
Integration (INT) deployment available through postman: https://dpp.int.demo.catena-x.net/consumer
Hashicorp-Vault & DAPS are centralized components and managed by central CatenaX services.
- EDC-Provider
- Description: This component consists of different services which are described in the Connector Setup.
- Controlplane & Dataplane
- Helm Chart hosted locally
# Navigate to the working directory
cd ../deployment/infrastructure/data-provider/edc-provider
# Update chart dependencies
helm dependency update .
# install helm chart named edc-provider
helm install edc-provider . -f ./values.yaml
# optional: remove/uninstall helm chart
helm uninstall edc-provider
The edc-provider chart deploys all provider components e.g., provider backend, controlplane, dataplane and postgres pods.
# status check
$ kubectl get pods
# output
NAME READY STATUS RESTARTS AGE
edc-provider-backend-5f9fb86f8d-qmjqg 1/1 Running 0 46s
edc-provider-controlplane-6799fc4675-7b9tz 1/1 Running 2 46s
edc-provider-dataplane-6449bcd495-rnz8p 1/1 Running 0 46s
provider-postgresql-0 1/1 Running 0 46s
In order to access the data managemnt APIs locally from these charts, kubectl port forwarding is required.
kubectl get services
kubectl port-forward services/edc-provider-controlplane 31495:8181
kubectl port-forward services/edc-provider-controlplane 8282:8282
kubectl port-forward services/edc-provider-backend 8081:8081
Link to the Integration (INT) environment: https://dpp.int.demo.catena-x.net/provider
Hashicorp-Vault is centralized components and managed by CatenaX shared services.
-
Digital Product Passport (DPP) Components
- Consumer Frontend
- Consumer Backend
Helm Chart hosted locally
- Reference docs:
Link to the Integration (INT) environment: https://dpp.int.demo.catena-x.net
# Navigate to the working directory
cd ../charts/digital-product-pass
# install helm chart named digital-product-pass in namespace product-material-pass
helm install digital-product-pass . -f ./values.yaml --namespace product-material-pass --create-namespace
# optional: remove/uninstall helm chart
helm uninstall digital-product-pass
# status check
$ kubectl get pods -n product-material-pass
# output
NAME READY STATUS RESTARTS AGE
dpp-backend-74c6c6854c-lhw27 1/1 Running 0 36s
dpp-frontend-6fb95f466-t2m4h 1/1 Running 0 36s
kubectl get services -n product-material-pass
kubectl port-forward services/consumer-ui 8080:8080 -n product-material-pass
kubectl port-forward services/consumer-backend 8888:8888 -n product-material-pass
Notes:
- Port mappings are
kubectl port-forward services/<SERVICE_NAME> host-port:service-port
To use the application, data needs to be prepared in the EDC-Provider using the provider setup script init-provider-dev.sh
Optional: One can also use the postman collection in deployment/local/postman/Digital-Product-Pass to access APIs, used among DPP components. As a prerequisite, Postman agent is required.
Who | Action/Events |
---|---|
PROVIDER | Prepare the Provider with sample data , assets , policies and contract definition |
PROVIDER | Setup the Registry |
PROVIDER | Register the Provider as digital twin into the Registry |
CONSUMER | Lookup for the Registry to find the right digital twin |
CONSUMER | Lookup for the the digital twin from the Registry (searched in previous step) |
CONSUMER | Get the shell descriptor and the submodels from the Registry for the Consumer |
CONSUMER | Get the specific submodel from the Registry (more than one could be delivered in the previous step) |
CONSUMER | Get the contract offer catalog for the Consumer |
CONSUMER | Negotiate the contract between the Consumer and Provider with the submodel for the digital twin |
CONSUMER | Perform the data transfer between the Consumer and Provider |
The Digital Product Passport Uer Interface will make this process accessible to users.
Note: Adjust the URLs according to the local (http://localhost:port/
) or
integration (https://dpp.int.demo.catena-x.net/
) environments.
This work is licensed under the CC-BY-4.0.
- SPDX-License-Identifier: CC-BY-4.0
- SPDX-FileCopyrightText: 2022, 2024 BMW AG
- SPDX-FileCopyrightText: 2022, 2024 Henkel AG & Co. KGaA
- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG
- SPDX-FileCopyrightText: 2023, 2024 Contributors to the Eclipse Foundation
- Source URL: https://github.com/eclipse-tractusx/digital-product-pass