diff --git a/.github/workflows/trufflehog.yml b/.github/workflows/trufflehog.yml index b843033b3..e8187164b 100644 --- a/.github/workflows/trufflehog.yml +++ b/.github/workflows/trufflehog.yml @@ -70,7 +70,7 @@ jobs: with: path: ./ # Scan the entire repository base: "${{ github.event.repository.default_branch }}" # Set base branch for comparison (pull requests) - extra_args: --filter-entropy=4 --results=verified,unknown --debug + extra_args: --filter-entropy=4 --results=verified,unknown --debug --only-verified - name: Scan Results Status if: steps.trufflehog.outcome == 'failure' diff --git a/AUTHORS.md b/AUTHORS.md index 90d0bda4b..c69ef9adc 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -29,5 +29,6 @@ The following people have contributed to this repository: * Muhammad Saud Khan, CGI, https://github.com/saudkhan116 * Mathias Brunkow Moser, CGI, https://github.com/matbmoser * Diogo Parracho, CGI, https://github.com/dsrparracho +* Erik Lebedkin, CGI, https://github.com/ELebedkin Please add yourself to this list, if you contribute to the content. diff --git a/DEPENDENCIES_BACKEND b/DEPENDENCIES_BACKEND index 0613e6f15..42d1e7c9e 100644 --- a/DEPENDENCIES_BACKEND +++ b/DEPENDENCIES_BACKEND @@ -1,14 +1,14 @@ maven/mavencentral/ch.qos.logback/logback-classic/1.5.7, EPL-1.0 AND LGPL-2.1-only, approved, #15279 maven/mavencentral/ch.qos.logback/logback-core/1.5.7, EPL-1.0 AND LGPL-2.1-only, approved, #15210 maven/mavencentral/com.fasterxml.jackson.core/jackson-annotations/2.17.2, Apache-2.0, approved, #13672 -maven/mavencentral/com.fasterxml.jackson.core/jackson-core/2.17.2, , approved, #13665 +maven/mavencentral/com.fasterxml.jackson.core/jackson-core/2.17.2, Apache-2.0 AND MIT, approved, #13665 maven/mavencentral/com.fasterxml.jackson.core/jackson-databind/2.17.2, Apache-2.0, approved, #13671 maven/mavencentral/com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/2.17.2, Apache-2.0, approved, #13669 maven/mavencentral/com.fasterxml.jackson.datatype/jackson-datatype-jdk8/2.17.2, Apache-2.0, approved, #15117 maven/mavencentral/com.fasterxml.jackson.datatype/jackson-datatype-jsr310/2.17.2, Apache-2.0, approved, #14160 maven/mavencentral/com.fasterxml.jackson.module/jackson-module-parameter-names/2.17.2, Apache-2.0, approved, #15122 maven/mavencentral/com.github.stephenc.jcip/jcip-annotations/1.0-1, Apache-2.0, approved, CQ21949 -maven/mavencentral/com.google.code.findbugs/jsr305/3.0.2, CC-BY-2.5, approved, #15220 +maven/mavencentral/com.google.code.findbugs/jsr305/3.0.2, Apache-2.0 and CC-BY-2.5, approved, #15220 maven/mavencentral/com.google.code.gson/gson/2.11.0, Apache-2.0, approved, #14820 maven/mavencentral/com.google.errorprone/error_prone_annotations/2.26.1, Apache-2.0, approved, #13657 maven/mavencentral/com.google.guava/failureaccess/1.0.2, Apache-2.0, approved, CQ22654 @@ -88,15 +88,15 @@ maven/mavencentral/org.springdoc/springdoc-openapi-starter-webmvc-ui/2.5.0, Apac maven/mavencentral/org.springframework.boot/spring-boot-autoconfigure/3.3.3, Apache-2.0, approved, clearlydefined maven/mavencentral/org.springframework.boot/spring-boot-starter-data-rest/3.3.3, Apache-2.0, approved, clearlydefined maven/mavencentral/org.springframework.boot/spring-boot-starter-json/3.3.3, Apache-2.0, approved, clearlydefined -maven/mavencentral/org.springframework.boot/spring-boot-starter-logging/3.3.3, Apache-2.0, approved, clearlydefined +maven/mavencentral/org.springframework.boot/spring-boot-starter-logging/3.3.3, Apache-2.0, approved, #16886 maven/mavencentral/org.springframework.boot/spring-boot-starter-oauth2-client/3.3.3, Apache-2.0, approved, clearlydefined maven/mavencentral/org.springframework.boot/spring-boot-starter-reactor-netty/3.3.3, Apache-2.0, approved, clearlydefined maven/mavencentral/org.springframework.boot/spring-boot-starter-security/3.0.2, Apache-2.0, approved, #7329 maven/mavencentral/org.springframework.boot/spring-boot-starter-tomcat/3.3.3, Apache-2.0, approved, clearlydefined -maven/mavencentral/org.springframework.boot/spring-boot-starter-web/3.3.3, Apache-2.0, approved, clearlydefined +maven/mavencentral/org.springframework.boot/spring-boot-starter-web/3.3.3, Apache-2.0, approved, #16893 maven/mavencentral/org.springframework.boot/spring-boot-starter-webflux/3.3.3, Apache-2.0, approved, clearlydefined -maven/mavencentral/org.springframework.boot/spring-boot-starter/3.3.3, Apache-2.0, approved, clearlydefined -maven/mavencentral/org.springframework.boot/spring-boot/3.3.3, Apache-2.0, approved, clearlydefined +maven/mavencentral/org.springframework.boot/spring-boot-starter/3.3.3, Apache-2.0, approved, #16895 +maven/mavencentral/org.springframework.boot/spring-boot/3.3.3, Apache-2.0, approved, #16883 maven/mavencentral/org.springframework.cloud/spring-cloud-commons/3.1.5, Apache-2.0, approved, #4726 maven/mavencentral/org.springframework.cloud/spring-cloud-context/3.1.5, Apache-2.0, approved, #4722 maven/mavencentral/org.springframework.cloud/spring-cloud-starter-bootstrap/3.1.5, Apache-2.0, approved, clearlydefined @@ -109,9 +109,9 @@ maven/mavencentral/org.springframework.plugin/spring-plugin-core/3.0.0, Apache-2 maven/mavencentral/org.springframework.security/spring-security-config/6.3.3, Apache-2.0, approved, clearlydefined maven/mavencentral/org.springframework.security/spring-security-core/6.3.3, Apache-2.0, approved, clearlydefined maven/mavencentral/org.springframework.security/spring-security-crypto/6.3.3, Apache-2.0, approved, clearlydefined -maven/mavencentral/org.springframework.security/spring-security-oauth2-client/6.3.3, Apache-2.0, approved, clearlydefined -maven/mavencentral/org.springframework.security/spring-security-oauth2-core/6.3.3, Apache-2.0, approved, clearlydefined -maven/mavencentral/org.springframework.security/spring-security-oauth2-jose/6.3.3, Apache-2.0, approved, clearlydefined +maven/mavencentral/org.springframework.security/spring-security-oauth2-client/6.3.3, Apache-2.0, approved, #16891 +maven/mavencentral/org.springframework.security/spring-security-oauth2-core/6.3.3, Apache-2.0, approved, #16892 +maven/mavencentral/org.springframework.security/spring-security-oauth2-jose/6.3.3, Apache-2.0, approved, #16884 maven/mavencentral/org.springframework.security/spring-security-rsa/1.0.11.RELEASE, Apache-2.0, approved, CQ20647 maven/mavencentral/org.springframework.security/spring-security-web/6.3.3, Apache-2.0, approved, clearlydefined maven/mavencentral/org.springframework.session/spring-session-core/3.3.2, Apache-2.0, approved, #15119 diff --git a/dpp-tutorial/README.md b/dpp-tutorial/README.md index 1f1c14803..1663d2c87 100644 --- a/dpp-tutorial/README.md +++ b/dpp-tutorial/README.md @@ -20,7 +20,7 @@ SPDX-License-Identifier: CC-BY-4.0 ####################################################################### --> -
  

Tractus-X​ Digital Product Passport​ Workstream​

Second Tractus-X Community Days - 16, 17 May 2024 - Stuttgart

+
  

Tractus-X​ Digital Product Passport​ Workstream​

Third Tractus-X Community Days - 5,6 December 2024 - Stuttgart

## Description @@ -55,30 +55,61 @@ You are one of the suppliers from Company-X. To maintain your client, you are re Split into groups of five individuals, ensuring each group receives a sheet of paper containing a distinct Part from the [test-data](./resources/test-data/carParts.json). - > [!Caution] > Please dont change the given templates for digital twin, only change the provided placeholders +For the tutorial, two distinct paths are available: the Explorer Path and the Builders Path, each tailored to different groups: + +
+ + explorers path + + + builders path + +
+ +### 1. Explorer Path: + +This path is ideal for individuals who aim to gain a high-level understanding of the overall logic and processes. It’s particularly suitable for business partners, decision-makers, or anyone interested in a functional overview. + +- In this path, you will download pre-prepared requests, modify them, and execute them using Insomnia. +- This approach focuses on simplicity and provides an accessible introduction to the workflow. + +→ The Explorer Path can be accessed [here](./explorer-path.md) + +### 2. Builders Path + +This path is designed for technically inclined participants who want to dive deeper into the details. + +- Clone the repository, follow the instructions in the ReadMe.md file, and navigate through various steps. +- Execute the HTTP requests directly via the terminal (Windows/Mac/Linux). +- This approach offers an in-depth exploration of the technical communication. + +→ The Builders Path can be accessed [here](./builder-path.md) + +## Overview + ## Phase 1: Data Provision -In this Phase, you as a provider will create a Digital Product Passport of a spectific Part of the Arena-X Car. For this phase, you can use your own computer through Visual Studio Code / Notepad ++ or a given Virtual Machine. +In this Phase, you as a provider will create a Digital Product Passport of a specific Part of the Arena-X Car. For this phase, you can use your own computer through Visual Studio Code / Notepad ++ or a given Virtual Machine. ##### Duration: 45 mins +The following steps provide a concise overview of the entire tutorial process, which you will primarily complete using the explorers or the developer path + #### Step 1 - Create a Digital Product Passport (DPP) In this step, you'll create the Digital Product Passport (DPP) by utilizing data from the Product Carbon Footprint and specifications of a specific car part from the Arena. - - * Follow the tutorial on [How to create Aspect Model](./aspect-model.md) #### Step 2 - Create a Digital Twin integrating the generated DPP as a submodel In this step, you will create a Digital Twin of your provided Car part. - * Follow the tutorial on [How to create a Digital Twin](./digital-twin-provision.md) - #### Step 3 - Generate the QR Code +From this point onward, follow the steps regardless of the path you chose earlier. + * Follow the tutorial on [How to generate a QR code](./qr-code.md) #### Step 4 - Print the QR-Code @@ -169,10 +200,10 @@ Congratulations! You have completed the E2E Journey for Digital Product Pass | How to Guides | Link | | -------- | ----- | | How to deploy DPP Application | [deployment.md](./deployment.md) | -| How to create Aspect Model | [aspect-model.md](./aspect-model.md) | -| How to create a Digital Twin | [digital-twin-provision](.digital-twin-provision.md) | | How to generate a QR code | [qr-code.md](./qr-code.md) | | DPP Data Consumption | [data-consumption.md](./data-consumption.md) | +| Explorer Path | [explorer-path](./explorer-path.md) | +| Builder Path | [builder-path](./builder-path.md) | ## NOTICE @@ -182,5 +213,4 @@ This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses - SPDX-FileCopyrightText: 2024 BMW AG - SPDX-FileCopyrightText: 2024 CGI Deutschland B.V. & Co. KG - SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation -- Source URL: https://github.com/eclipse-tractusx/digital-product-pass - +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass \ No newline at end of file diff --git a/dpp-tutorial/aspect-model.md b/dpp-tutorial/aspect-model.md deleted file mode 100644 index 5531291d9..000000000 --- a/dpp-tutorial/aspect-model.md +++ /dev/null @@ -1,137 +0,0 @@ - - -# DPP Instance Aspect Model Creation Guide - -This guide provides a simple explanation on how to create a digital product pass serialized aspect model payload. - -## Prerequisites - -You must fullfill the following pre-requisites: - -- A Catena-X Standarized Aspect Model (in this case we use the [Digital Product Pass v5.0.0 Model](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.generic.digital_product_passport/5.0.0)) -- JSON Editor like [VS Code](https://code.visualstudio.com/) or [Notepad++](https://notepad-plus-plus.org/downloads/) -- Car Parts JSON Test Data [found here](./resources/test-data/carParts.json) - ->[!WARNING] -> -> The model v2.0.0 of the Digital Product Pass is **DEPRECATED** and its used here only as demo purposes, please check the latests models in: [Digital Product Pass Models](https://github.com/eclipse-tractusx/sldt-semantic-modelstree/main/io.catenax.generic.digital_product_passport) - - -## Aspect Model Creation - -Follow this steps to create a new Digital Product Passport serialized model: - -### 1º - Find test data before generating the model - -In the worksession you will receive a paper with the test data, you can find the same information [here](./resources/test-data/carParts.json) in a tes JSON file. - -To find your part and be able to copy and paste the information: - -1 - Search by uuid with CTRL + F: - -![search id](./resources/screenshots/idsearch.png) - -You will get your information in a paper: - -Example: - -```json -{ - "f10c0181-ce80-4139-81f0-a59226c88bfe": { - "Name":"TRUNK LID HINGE (LEFT)", - "PCF (Product Carbon Footprint)": "189 kgCO2e", - "Height": "24 cm", - "Width": "2 cm", - "Length": "38 cm", - "Weight": "1.4 kg", - "id": "f10c0181-ce80-4139-81f0-a59226c88bfe", - "Part Instance ID": "DLH-5159", - "Manufacturing Date": "01.12.2023", - "Placed on Market Date": "15.01.2024", - "List of Materials": "Aluminum", - "Hazard Materials": "Lead, Butyl, Cyanoacrylates, Polyurethane", - "Guarantee": "24 months" - } -} - -``` - -> [!TIP] -> Copy and paste the data for creating your digital product pass faster! - - - -### 2º - Copy the digital product pass aspect model template into a new file or window - -Paste this [Digital Product Passport v5.0.0 Payload](./resources/payloads/example.json) in the VS Code/Notepad++: - -![DPP Example](./resources/screenshots/dpp-example.png) - -It is a test data template that can be personalized to your part with the test data provider to you and your creativity! - -### 3º - Substitute data in the template - -For example for adding the PCF value follow the following path: - -```text -sustainability.productFootprint.carbon[0].value -``` - -Example: - -![PCF](./resources/screenshots/pcf-update.png) - -#### Where to substitute the data? - -Follow this paths to find where the information is located. - -| Property | Path | -| -------- | ----- | -| Name (Really short) | identification.type.nameAtManufacturer | -| Class/Type of Part | identification.classification.classificationDescription | -| PCF | sustainability.productFootprint.carbon[0].value | -|Height| characteristics.physicalDimension.height.value | -|Width| characteristics.physicalDimension.width.value| -|Length| characteristics.physicalDimension.length.value| -|Weight| characteristics.physicalDimension.grossWeight.value| -|Part Instance Id | identification.serial[0].value | -|Manufacturing Date |operation.manufacturer.manufacturingDate | -| Guarantee | lifespan[0].value (Add value) | -| Guarantee | lifespan[0].unit (Add unit:months) | - -Congratulations! You have successfully created your own digital product pass! - -The next step will be to register your data in a Data Service, for that follow the [digital-twin-provision](./digital-twin-provision.md) guide. - -> [!TIP] -> You can add more relavant data and personalized information at the digital product pass, follow the template and modify the data as you wish! - -## NOTICE - -This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). - -- SPDX-License-Identifier: CC-BY-4.0 -- SPDX-FileCopyrightText: 2024 BMW AG -- SPDX-FileCopyrightText: 2024 CGI Deutschland B.V. & Co. KG -- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation -- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/builder-path.md b/dpp-tutorial/builder-path.md new file mode 100644 index 000000000..f7679e4b6 --- /dev/null +++ b/dpp-tutorial/builder-path.md @@ -0,0 +1,359 @@ + + +# Builder Path + +In this Path, you, as a provider, will create a Digital Product Passport (DPP) for a specific Part of the Arena-X Car. To accomplish this, you will use terminal commands to send HTTP request, creating an Aspect Model and a Digital Twin. + +## Prerequisites + +You must fullfill the following pre-requisites: + +- A Catena-X Standarized Aspect Model (in this case we use the [Digital Product Pass v5.0.0 Model](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.generic.digital_product_passport/5.0.0)) +- JSON Editor like [VS Code](https://code.visualstudio.com/) or [Notepad++](https://notepad-plus-plus.org/downloads/) +- Car Parts JSON Test Data [found here](./resources/test-data/carParts.json) + +>[!WARNING] +> +> The model v2.0.0 of the Digital Product Pass is **DEPRECATED** and its used here only as demo purposes, please check the latests models in: [Digital Product Pass Models](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.generic.digital_product_passport) + + +You must have the following components up and running: + +- A Data Service (DS) to store passport payloads in a plain JSON format +- Digital Twin Registry (DTR) to store Digital Twins as Asset Administration Shells (AAS) +- A preconfigured EDC Conenctor (Data provider) +- Familiarity with the JSON structure +- Accessibility of components over the network + +## Clone a Git repository + +Use the following command in your terminal to clone the digital product pass git repository + +```bash +git clone https://github.com/eclipse-tractusx/digital-product-pass.git +``` + +> [!NOTE] +> If you already cloned this repository, you can ignore this step + +## Aspect Model Creation + +This part provides a simple explanation on how to create a digital product pass serialized aspect model payload. + +Follow this steps to create a new Digital Product Passport serialized model: + +### 1º - Find test data before generating the model + +In the worksession you will receive a paper with the test data, you can find the same information [here](./resources/test-data/carParts.json) in a test JSON file. + +To find your part and be able to copy and paste the information: + +1 - Search by uuid with CTRL + F: + +![search id](./resources/screenshots/idsearch.png) + +You will get your information in a paper: + +Example: + +```json +{ + "f10c0181-ce80-4139-81f0-a59226c88bfe": { + "Name":"TRUNK LID HINGE (LEFT)", + "PCF (Product Carbon Footprint)": "189 kgCO2e", + "Height": "24 cm", + "Width": "2 cm", + "Length": "38 cm", + "Weight": "1.4 kg", + "id": "f10c0181-ce80-4139-81f0-a59226c88bfe", + "Part Instance ID": "DLH-5159", + "Manufacturing Date": "01.12.2023", + "Placed on Market Date": "15.01.2024", + "List of Materials": "Aluminum", + "Hazard Materials": "Lead, Butyl, Cyanoacrylates, Polyurethane", + "Guarantee": "24 months" + } +} + +``` + +> [!TIP] +> Copy and paste the data for creating your digital product pass faster! + + + +### 2º - Copy the digital product pass aspect model template into a new file or window + +Paste this [Digital Product Passport v5.0.0 Payload](./resources/payloads/example.json) in the VS Code/Notepad++: + +![DPP Example](./resources/screenshots/dpp-example.png) + +It is a test data template that can be personalized to your part with the test data provider to you and your creativity! + +### 3º - Substitute data in the template + +For example for adding the PCF value follow the following path: + +```text +sustainability.productFootprint.carbon[0].value +``` + +Example: + +![PCF](./resources/screenshots/pcf-update.png) + +### Where to substitute the data? + +Follow this paths to find where the information is located. + +| Property | Path | +|-----------------------|-----------------------------------------------| +| Width | characteristics.physicalDimension.width.value | +| Length | characteristics.physicalDimension.length.value | +| Weight | characteristics.physicalDimension.grossWeight.value | +| Height | characteristics.physicalDimension.height.value | +| Guarantee (Value) | characteristics.lifespan[0].value | +| Guarantee (Unit) | characteristics.lifespan[0].unit | +| Name (Really short) | identification.type.nameAtManufacturer | +| Part Instance Id | identification.serial[0].value | +| Manufacturing Date | operation.manufacturer.manufacturingDate | +| PCF | sustainability.productFootprint.carbon[0].value | + +Congratulations! You have successfully created your own digital product pass! + +The next step will be to register your data in a Data Service. + +> [!TIP] +> You can add more relavant data and personalized information at the digital product pass, follow the template and modify the data as you wish! + +## Data Provision + + ________EDC-Connector________ ________Registry________ ________Data Service________ + | | | | | | + | Controlplane <-> Dataplane | <---> | AAS DTR | <---> | A plain JSON Server | + |_____________________________| |________________________| |____________________________| + +This part provides the information needed to setup digital twin provisioning services as a data provider. Additionally, it enables you to create and register aspect models into the data service. + +## 1º Prepare Digital Product Pass Model + +In order to prepare aspect models, please follow the [aspect model guide](./aspect-model.md) + +## Add Aspect Model to the Submodel Server + +The data generated in previous step can be stored into the submode data service. + +> [!CAUTION] +> The UUID should be written in the format: 6fb9a71b-aee6-4063-a82e-957022aeaa7a + +> [!NOTE] +> Generate an additional UUID [here](https://www.uuidgenerator.net/version4). It will be used as the `digitalTwinSubmodelId` which will be the linking between the Aspect Model and the DPP. + +Open a new terminal and run the following command to add your data into the data service: + +Substitute the `digitalTwinSubmodelId` for the generated UUID. + +*Windows* +
+ Click to see the Windows command + +```bash +curl.exe -X POST "/urn:uuid:" ` + -H "Content-Type: application/json" ` + --data-binary "@.json" +``` + +
+ +*MAC & Linux* +
+ Click here to see the MAC command + +```bash +curl --location '/urn:uuid:' \ +--header 'Content-Type: application/json' \ +--data "@.json" +``` + +
+ +Verify your data is registerd in the service + +*Windows* +
+ Click to see the Windows command + +```bash +curl.exe -X POST "/urn:uuid:" ` + -H "Content-Type: application/json" +``` + +
+ +*Mac & Linux* +
+ Click here to see the Mac & Linux command + +```bash +curl --location '/urn:uuid:' \ +--header 'Content-Type: application/json' +``` + +
+ +## 2º Create Digital Twin + +After preparing and registering aspect models, create a digital twin of a part assigned. +Create a new json and use the template in [resources/digital-twins/example-dt.json](./resources/digital-twins/example-dt.json) + +Replace the following placeholders: + +```bash + -> the value of part instance written on datasheet + -> the part number is written on the datasheet from a part + -> the UUID written on datasheet + -> the UUID generated the step ago +``` + + +> [!Important] +> There are **two instances** of `digitalTwinSubmodelId` in the example. Please replace **both** of them: +> - One is used as `"id"` +> - The other is used as `"href"` + +> [!Important] +> There are **two instances** of `digitalTwinId` in the example. Please replace **both** of them: +> - One is used as `"id"` +> - The other is used as `"globalAssetId"` + +## 3º Add Digital Twin into Digital Twin Registry (DTR) + +After creation of the digital twin in previous step, add the twin into Digital Twin Registry (DTR). + +*Windows* +
+ Click to see the Windows command + +```bash +curl.exe -X POST "/shell-descriptors" ` + -H "Content-Type: application/json" ` + --data-binary "@resources/.json" +``` + +
+ + +*Mac & Linux* +
+ Click here to see the Mac & Linux command + +```bash +curl --location --request POST '/shell-descriptors' \ +--header 'Content-Type: application/json' \ +--data '@resources/.json' +``` + +
+ +> [!Note] +> Instead of using the relative path for `"@resources/.json"`, you can use the full path if preferred. + +> [!Note] +> Every physical part of vehicle is represented by a Digital Twin object. A car is manufactured with plenty of digital twins. + +The registered digital twin can be checked/verified from the following command: + +> [!Important] +> The should be encoded into base64. Use the following url for conversion: https://www.base64encode.org/ + +```bash +Example: +Digital Twin Id : 3f89d0d4-e11c-f83b-16fd-733c63d4e121 +Base64 Encoded: dXJuOnV1aWQ6M2Y4OWQwZDQtZTExYy1mODNiLTE2ZmQtNzMzYzYzZDRlMTIx +``` + +> GET /shell-descriptors/ + +*Windows* +
+ Click to see the Windows command + +```bash +curl.exe -X GET "/shell-descriptors/" ` +-H "Content-Type: application/json" +``` +
+ +*Mac & Linux* +
+ Click here to see the Mac & Linux command + +```bash +curl --location --request GET '/shell-descriptors/' \ +--header 'Content-Type: application/json' +``` + +
+ +In case of error, you can always modify your digital twin using the following commands: + +> PUT /shell-descriptors/ + +*Windows* +
+ Click to see the Windows command + +```bash +curl.exe -Method Put -Uri "/shell-descriptors/" ` + -ContentType "application/json" ` + -InFile "resources\.json" +``` +
+ +*Mac & Linux* +
+ Click here to see the Mac & Linux command + +```bash +curl --location --request PUT '/shell-descriptors/' \ +--header 'Content-Type: application/json' \ +--data '@resources/.json' +``` + +
+ +If everything works fine, then you have reached the end of data provisioning guide. + +Congratulations, you have successfully setup the data provider. It is now available and ready to exchange data in the dataspace. + +You can now process further with the original DPP-Tutorial at Step 3 - Generate the QR-Code. Click here to access the next steps. + +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2024 BMW AG +- SPDX-FileCopyrightText: 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass \ No newline at end of file diff --git a/dpp-tutorial/digital-twin-provision.md b/dpp-tutorial/digital-twin-provision.md deleted file mode 100644 index 233a324b2..000000000 --- a/dpp-tutorial/digital-twin-provision.md +++ /dev/null @@ -1,154 +0,0 @@ - - -# Data Provision - ________EDC-Connector________ ________Registry________ ________Data Service________ - | | | | | | - | Controlplane <-> Dataplane | <---> | AAS DTR | <---> | A plain JSON Server | - |_____________________________| |________________________| |____________________________| - - -This guide provides the information needed to setup digital twin provisioning services as a data provider. Additionally, it enables you to create and register aspect models into the data service. - - -## Prerequisites - -You must have the following components up and running: - -- A Data Service (DS) to store passport payloads in a plain JSON format -- Digital Twin Registry (DTR) to store Digital Twins as Asset Administration Shells (AAS) -- A preconfigured EDC Conenctor (Data provider) -- Familiarity with the JSON structure -- Accessibility of components over the network - - -## Clone a Git repository - -Use the following command in your terminal to clone the digital product pass git repository - -```bash -git clone https://github.com/eclipse-tractusx/digital-product-pass.git -``` - -> [!Note] -> If you already cloned this repository, you can ignore this step - - -## 1º Prepare Digital Product Pass Model - -In order to prepare aspect models, please follow the [aspect model guide](./aspect-model.md) - -## Add Aspect Model to the Submodel Server - -The data generated in previous step can be stored into the submode data service. - -> [!Caution] -> The UUID should be written in the format: 6fb9a71b-aee6-4063-a82e-957022aeaa7a - -Open a new terminal and run the following command to add your data into the data service: - -Substitute the UUID for the actual one in the paper - -```bash -curl --location '/data/' \ ---header 'Content-Type: application/json' \ ---data "@.json" -``` - -Verify your data is registerd in the service - -```bash -curl --location '/data/' \ ---header 'Content-Type: application/json' \ -``` - -## 2º Create Digital Twin - -After preparing and registering aspect models, create a digital twin of a part assigned. -Create a new json and use the template in [resources/digital-twins/example-dt.json](./resources/digital-twins/example-dt.json) - -Replace the following placeholders: - -```bash - -> the value of part instance written on datasheet - -> the part number is written on the datasheet from a part - -> the UUID written on datasheet -``` - -> Note: Generate UUID and substitute it into <<{UUID-2}>> - -## 3º Add Digital Twin into Digital Twin Registry (DTR) - -After creation of the digital twin in previous step, add the twin into Digital Twin Registry (DTR). - - -```bash -curl --location --request POST '/shell-descriptors' \ ---header 'Content-Type: application/json' \ ---data '@resources/.json' -``` - -> [!Note] -> Every physical part of vehicle is represented by a Digital Twin object. A car is manufactured with plenty of digital twins. - -The digital twin registered can be checked/verified from the following command: - -> [!Important] -> The should be encoded into base64. Use the following url for conversion: https://www.base64encode.org/ - -```bash -Example: -Digital Twin Id: 3f89d0d4-e11c-f83b-16fd-733c63d4e121 -Base64 Encoded: dXJuOnV1aWQ6M2Y4OWQwZDQtZTExYy1mODNiLTE2ZmQtNzMzYzYzZDRlMTIx -``` - -> GET /shell-descriptors/ - -```bash -curl --location --request GET '/shell-descriptors/' \ ---header 'Content-Type: application/json' -``` - -In case of error, you can always modify your digital twin using the following commands: - -> PUT /shell-descriptors/ - -```bash -curl --location --request PUT '/shell-descriptors/' \ ---header 'Content-Type: application/json' --data '@resources/.json' -``` - -If everything works fine, then you have reached the end of data provisioning guide. - -Congratulations, you have successfully setup the data provider. It is now available and ready to exchange data in the dataspace. - - -## NOTICE - -This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). - -- SPDX-License-Identifier: CC-BY-4.0 -- SPDX-FileCopyrightText: 2024 BMW AG -- SPDX-FileCopyrightText: 2024 CGI Deutschland B.V. & Co. KG -- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation -- Source URL: https://github.com/eclipse-tractusx/digital-product-pass - diff --git a/dpp-tutorial/explorer-path.md b/dpp-tutorial/explorer-path.md new file mode 100644 index 000000000..7b1fba139 --- /dev/null +++ b/dpp-tutorial/explorer-path.md @@ -0,0 +1,292 @@ + + +# Explorer Path + +In this Path, you, as a provider, will create a Digital Product Passport (DPP) for a specific Part of the Arena-X Car. For this purpose, you will use Insomnia, a user-friendly tool for sending and receiving HTTP requests. + +> [!TIP] +> If the installation still has to be done, follow this Get Started Guide from Insomnia. + +## Pre-Step - Setting Up the Environment + +To begin the work in the Explorer Path, you first need to set up the environment. For this tutorial, we will use **Insomnia** as our HTTP communication tool to send and receive data in a visual and user-friendly way. + +To set up the environment follow this steps: + +- Open Insomnia +- If necessary: create a new project, click on the **"plus"-button** as shown in the example: +![New Project](./resources/screenshots/Insomnia_add_new_project.png) +- click on **"Import"** +- choose **"URL"** +- copy the following url +```bash +https://raw.githubusercontent.com/eclipse-tractusx/digital-product-pass/refs/heads/main/dpp-tutorial/resources/explorer_payload/01%20Tractus-X%20Community%20Days.postman_collection.json +``` +- paste it into the URL-placeholder box +- click on **"Scan"** +- if done correctly there has to be "Postman Resources to be imported: 5 Requests" +- click on import + + +Congratulations! You have now imported all the necessary API calls for this tutorial. + +--- + +## Step 1 - Create a Digital Product Passport (DPP) Instance Aspect Model + +In this step, you'll create the Digital Product Passport (DPP) by utilizing data from the Product Carbon Footprint and specifications of a specific car part from the Arena. This guide provides a simple explanation on how to create a digital product pass serialized aspect model payload, by using the digital product pass aspect model template. + +### Aspect Model Creation + +You will get your information in a paper: + +Example: + +```json +{ + "f10c0181-ce80-4139-81f0-a59226c88bfe": { + "Name":"TRUNK LID HINGE (LEFT)", + "PCF (Product Carbon Footprint)": "189 kgCO2e", + "Height": "24 cm", + "Width": "2 cm", + "Length": "38 cm", + "Weight": "1.4 kg", + "id": "f10c0181-ce80-4139-81f0-a59226c88bfe", + "Part Instance ID": "DLH-5159", + "Manufacturing Date": "01.12.2023", + "Placed on Market Date": "15.01.2024", + "List of Materials": "Aluminum", + "Hazard Materials": "Lead, Butyl, Cyanoacrylates, Polyurethane", + "Guarantee": "24 months" + } +} + +``` + +> [!NOTE] +> To easily find your data digitally, refer to this JSON file, which contains all elements. +> You can search for your car part (identified by `ID (uuid)` on the sheet) using +> - with `CTRL + F` on Windows or `CMD + F` on MacOS/Linux + +Now, you replace the data from your sheet into the Aspect Model template. This step is crucial because it ensures that your specific car part is properly registered and exists as an Aspect Model in the system. + +In a real production environment, this process would typically be automated by your systems. However, for this tutorial, you are manually mapping the data to understand how the correct information about your part will later be linked to the Digital Product Passport (DPP). + +By completing this step, you ensure that the part data is accurate and ready to be associated with the DPP, which is vital for traceability and the integrity of the overall process.. + + +In Insomnia, locate the request labeled `Step 2.1.1 Create Aspect Model` and switch to the **Body** tab. + +Replace the placeholders in the provided template with the data from your part. For example, to add the Product Carbon Footprint (PCF) value, use the following path: + +```text +characteristics.physicalDimension.width.value +``` + +or you can search (`CTRL + F` or `CMD + F`) for the placeholder `` + +Example: + +![PCF](./resources/screenshots/pcf_search_insomnia.png) + +--- + +### Data Mapping Table + +Replace now every placehlders given in the data mapping template with the data from your part. +Use the following table to identify where to place your part's information in the template: + +> [!TIP] +> You can search for the placeholder `CTRL + F` on Windows or `CMD + F` on MacOS/Linux + +> [!NOTE] +> Delete `""` along with ``, ``, ``, ``, `` and `` + +| Property | Path | Placeholder | +|-----------------------|-----------------------------------------------------|-------------------------------| +| Width | characteristics.physicalDimension.width.value | "" | +| Length | characteristics.physicalDimension.length.value | "" | +| Weight | characteristics.physicalDimension.grossWeight.value | "" | +| Height | characteristics.physicalDimension.height.value | "" | +| Guarantee (Value) | characteristics.lifespan[0].value | "" | +| Guarantee (Unit) | characteristics.lifespan[0].unit | | +| Name (Really short) | identification.type.nameAtManufacturer | | +| Part Instance Id | identification.serial[0].value | | +| Manufacturing Date | operation.manufacturer.manufacturingDate | | +| PCF | sustainability.productFootprint.carbon[0].value | "" | + + +Congratulations! You have successfully created your own digital product pass aspect model! + +--- + +## Step 2 - Create a Digital Twin integrating the generated DPP model as a submodel + +In this step, you will create a Digital Twin of your provided Car part and setup Digital Twin provisioning services as a data provider. Additionally, it here you create and register aspect models into the data service. + +The following components are already operational and properly configured. + + ________EDC-Connector________ ________Registry________ ________Data Service________ + | | | | | | + | Controlplane <-> Dataplane | <---> | AAS DTR | <---> | A plain JSON Server | + |_____________________________| |________________________| |____________________________| + +Short Introduction of the components: + +- EDC Connector (Data Provider): + +A preconfigured EDC Connector, acting as Gateway/Transmitter, is necessary to facilitate secure data exchange within the ecosystem. The connector enables interoperability between different participants, ensuring that the data flow is compliant with industry standards. The EDC Connector is set up and ready to handle requests. + +- Digital Twin Registry (DTR): + +The Digital Twin Registry is required to manage and store Digital Twins (DT) in the form of Asset Administration Shells (AAS). This component ensures that the Digital Twins are properly registered and accessible for interaction within the ecosystem. The DTR is fully operational and preconfigured to handle incoming Digital Twin data. + +- Data Service (DS) (Data Provider): + +The Data Service is a crucial component for storing the payloads of Digital Product Passports in plain JSON format. This service should already be running and ready to accept data submissions. It acts as the backend repository where all passport-related information is securely stored and easily retrievable. + + +> [!CAUTION] +> The UUID should be written in the format: 6fb9a71b-aee6-4063-a82e-957022aeaa7a + +--- + +### Step 2.1: Register the Aspect Model + +1. First of all generate a new UUID: +- Visit this UUID Generator to generate an additional UIID +- This newly generated UUID will serve as the `digitalTwinSubmodelId`, which plays a crucial role in linking the Aspect Model to the Digital Product Passport (DPP) and will be important in later steps. +2. In the Insomnia App, locate the request labeled `Step 2.1.1 Create Aspect Model`. +3. Replace `` with the new generated UUID, as shown in the example + +Example: + +```text +/urn:uuid:f10c0181-ce80-4139-81f0-a59226c88bfe +``` + +4. Replace `` with he data service url provided + +5. Send the **POST** request + +- If successful, a 200 OK response will appear next to the `Send`-button, confirming the Aspect Model has been registered into the submodel data service with the correct reference to the DPP. + +6. To verify the registration: +- Use the Insomnia request labeled `Step 2.1.2 Verify the Creation`. +- Replace with your actual UUID from the datasheet. +- Send the request. A 200 OK response confirms that the data has been registered successfully. +- Optionally: Cross-check that the modified data in the response body matches the data you manipulated earlier. + +--- + +### Step 2.2 + +Now we actually will create the digitil Twin. + +1. Open the Insomnia request labeled `Step 2.2.1 Create Digital Twin"`. + +> [!NOTE] +> This request uses the template provided in resources/digital-twins/example-dt.json. + +2. Replace `` with he data service url provided + +3. Switch to the Body tab and replace the following placeholders: + +```bash + -> the value of part instance written on datasheet + -> the part number is written on the datasheet from a part + -> the UUID written on datasheet + -> the UUID generated the step ago +``` + + +> [!IMPORTANT] +> There are **two instances** of `digitalTwinSubmodelId` in the example. Please replace **both** of them: +> - One is used as `"id"` +> - The other is used as `"href"` + +> [!IMPORTANT] +> There are **two instances** of `digitalTwinId` in the example. Please replace **both** of them: +> - One is used as `"id"` +> - The other is used as `"globalAssetId"` + +4. Send the POST request to add the Digital Twin to the Digital Twin Registry (DTR). +- A successful request will return a `201 Created` response, which confirms that the Digitil Twin has been created successfully. + +> [!NOTE] +> Every physical part of vehicle is represented by a Digital Twin object. A car is manufactured with plenty of digital twins. + +--- + +### Step 2.2.2: Verify the Digital Twin Registration + +1. Use the Insomnia request labeled `"Step 2.2.2 Verify the Creation"`. +2. Replace `` `with` the Base64-encoded version of the Digital Twin ID. +- You can encode your Digital Twin ID using this Encoder + +Example: + +```bash +Digital Twin Id (UUID): 3f89d0d4-e11c-f83b-16fd-733c63d4e121 +Base64 Encoded: dXJuOnV1aWQ6M2Y4OWQwZDQtZTExYy1mODNiLTE2ZmQtNzMzYzYzZDRlMTIx +``` + +3. Replace in the following URL: + +```bash +/shell-descriptors/ +``` + +4. Send the request. A `200 OK` response confirms that the Digital Twin has been successfully registered. + +--- + +### Step 2.3 + +If you encounter an error or need to update the Digital Twin, you can use the Insomnia request labeled `Step 2.3 Modify Digital Twin` to make changes. + +> [!NOTE] +> Copy the **Body** from `Step 2.2.1 Create Digitale Twin` into the new **Body** in `Step 2.3 Modify Digital Twin` and afterwards modify data/attributes. +> Copy also the `` and paste it into the URL: + +```bash +/shell-descriptors/ +``` + +If everything works fine, then you have reached the end of the Explorer Path. + +Congratulations, you have successfully setup the data provider. It is now available and ready to exchange data in the dataspace. + +You can now process further with the original DPP-Tutorial at Step 3 - Generate the QR-Code. Click here to access the next steps. + + +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2024 BMW AG +- SPDX-FileCopyrightText: 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass + diff --git a/dpp-tutorial/resources/digital-twins/car-dt-template.json b/dpp-tutorial/resources/digital-twins/car-dt-template.json index cc1580ac4..4b1ac55bf 100644 --- a/dpp-tutorial/resources/digital-twins/car-dt-template.json +++ b/dpp-tutorial/resources/digital-twins/car-dt-template.json @@ -6,9 +6,9 @@ } ], "displayName": [], - "globalAssetId": "urn:uuid:e5ab3398-bde1-4ef2-bb70-fd6dd1138e59", + "globalAssetId": "urn:uuid:", "idShort": "Car", - "id": "", + "id": "", "specificAssetIds": [ { "name": "manufacturerId", @@ -73,7 +73,7 @@ { "interface": "SUBMODEL-3.0", "protocolInformation": { - "href": "https://dpp.int.catena-x.net/provider/api/public/", + "href": "https://dpp.int.catena-x.net/provider/api/public/", "endpointProtocol": "HTTP", "endpointProtocolVersion": ["1.1"], "subprotocol": "DSP", @@ -90,7 +90,7 @@ } ], "idShort": "digitalProductPass", - "id": "", + "id": "", "semanticId": { "type": "ExternalReference", "keys": [ diff --git a/dpp-tutorial/resources/digital-twins/example-dt.json b/dpp-tutorial/resources/digital-twins/example-dt.json index c54faf698..124732143 100644 --- a/dpp-tutorial/resources/digital-twins/example-dt.json +++ b/dpp-tutorial/resources/digital-twins/example-dt.json @@ -6,9 +6,9 @@ } ], "displayName": [], - "globalAssetId": "urn:uuid:e5ab3398-bde1-4ef2-bb70-fd6dd1138e60", - "idShort": "", - "id": "", + "globalAssetId": "urn:uuid:", + "idShort": "Car", + "id": "", "specificAssetIds": [ { "name": "manufacturerId", @@ -24,7 +24,7 @@ } }, { - "name": "partInstanceId", + "name": "", "value": "", "externalSubjectId": { "type": "ExternalReference", @@ -73,7 +73,7 @@ { "interface": "SUBMODEL-3.0", "protocolInformation": { - "href": "https://dpp.int.catena-x.net/provider/api/public/", + "href": "https://dpp.int.catena-x.net/provider/api/public/", "endpointProtocol": "HTTP", "endpointProtocolVersion": ["1.1"], "subprotocol": "DSP", @@ -90,7 +90,7 @@ } ], "idShort": "digitalProductPass", - "id": "", + "id": "", "semanticId": { "type": "ExternalReference", "keys": [ diff --git a/dpp-tutorial/resources/explorer_payload/01 Tractus-X Community Days.postman_collection.json b/dpp-tutorial/resources/explorer_payload/01 Tractus-X Community Days.postman_collection.json new file mode 100644 index 000000000..8fc462c8a --- /dev/null +++ b/dpp-tutorial/resources/explorer_payload/01 Tractus-X Community Days.postman_collection.json @@ -0,0 +1,217 @@ +{ + "info": { + "_postman_id": "36c640ca-315f-4fc7-948c-f02731ebf253", + "name": "01 Tractus-X Community Days", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "39599174", + "_collection_link": "https://catena-x-product-material-pass.postman.co/workspace/Team-Workspace~b66fa959-bfa7-4129-8a45-8e9e03ef0cbb/collection/39599174-36c640ca-315f-4fc7-948c-f02731ebf253?action=share&source=collection_link&creator=39599174" + }, + "item": [ + { + "name": "Step 2.1.1 Create Aspect Model", + "request": { + "auth": { + "type": "noauth" + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"metadata\" : {\r\n \"backupReference\" : \"https://dummy.link\",\r\n \"registrationIdentifier\" : \"https://dummy.link/ID8283746239078\",\r\n \"economicOperatorId\" : \"BPNL0123456789ZZ\",\r\n \"lastModification\" : \"2000-01-01\",\r\n \"predecessor\" : \"urn:uuid:00000000-0000-0000-0000-000000000000\",\r\n \"issueDate\" : \"2000-01-01\",\r\n \"version\" : \"1.0.0\",\r\n \"passportIdentifier\" : \"urn:uuid:550e8400-e29b-41d4-a716-446655440000\",\r\n \"status\" : \"draft\",\r\n \"expirationDate\" : \"2030-01-01\"\r\n },\r\n \"characteristics\" : {\r\n \"generalPerformanceClass\" : \"A\",\r\n \"physicalState\" : \"solid\",\r\n \"physicalDimension\" : {\r\n \"width\" : {\r\n \"value\" : \"\",\r\n \"unit\" : \"unit:millimetre\"\r\n },\r\n \"length\" : {\r\n \"value\" : \"\",\r\n \"unit\" : \"unit:millimetre\"\r\n },\r\n \"weight\" : {\r\n \"value\" : \"\",\r\n \"unit\" : \"unit:gram\"\r\n },\r\n \"height\" : {\r\n \"value\" : \"\",\r\n \"unit\" : \"unit:millimetre\"\r\n }\r\n },\r\n \"lifespan\" : [ {\r\n \"value\" : \"\",\r\n \"unit\" : \"\",\r\n \"key\" : \"guaranteed lifetime\"\r\n } ]\r\n },\r\n \"commercial\" : {\r\n \"placedOnMarket\" : \"2000-01-01\",\r\n \"purpose\" : [ \"automotive\" ]\r\n },\r\n \"identification\" : {\r\n \"batch\" : [ {\r\n \"value\" : \"BID12345678\",\r\n \"key\" : \"batchId\"\r\n } ],\r\n \"codes\" : [ {\r\n \"value\" : \"8703 24 10 00\",\r\n \"key\" : \"TARIC\"\r\n } ],\r\n \"type\" : {\r\n \"manufacturerPartId\" : \"123-0.740-3434-A\",\r\n \"nameAtManufacturer\" : \" \"\r\n },\r\n \"classification\" : [ {\r\n \"classificationStandard\" : \"GIN 20510-21513\",\r\n \"classificationID\" : \"1004712\",\r\n \"classificationDescription\" : \"Generic standard for classification of parts in the automotive industry.\"\r\n } ],\r\n \"serial\" : [ {\r\n \"value\" : \"\",\r\n \"key\" : \"partInstanceId\"\r\n } ],\r\n \"dataCarrier\" : {\r\n \"carrierType\" : \"QR\",\r\n \"carrierLayout\" : \"upper-left side\"\r\n }\r\n },\r\n \"sources\" : [ {\r\n \"header\" : \"Example Document XYZ\",\r\n \"category\" : \"Product Specifications\",\r\n \"type\" : \"URL\",\r\n \"content\" : \"https://dummy.link\"\r\n } ],\r\n \"materials\" : {\r\n \"substancesOfConcern\" : {\r\n \"applicable\" : true,\r\n \"content\" : [ {\r\n \"unit\" : \"unit:partPerMillion\",\r\n \"hazardClassification\" : {\r\n \"category\" : \"category 1A\",\r\n \"statement\" : \"Causes severe skin burns and eye damage.\",\r\n \"class\" : \"Skin corrosion\"\r\n },\r\n \"documentation\" : [ {\r\n \"contentType\" : \"URL\",\r\n \"header\" : \"Example Document XYZ\",\r\n \"content\" : \"https://dummy.link\"\r\n } ],\r\n \"concentrationRange\" : [ {\r\n \"max\" : 2.6,\r\n \"min\" : 2.1\r\n } ],\r\n \"location\" : \"Housing\",\r\n \"concentration\" : 5.3,\r\n \"exemption\" : \"shall not apply to product x containing not more than 1,5 ml of liquid\",\r\n \"id\" : [ {\r\n \"type\" : \"CAS\",\r\n \"name\" : \"phenolphthalein\",\r\n \"id\" : \"201-004-7\"\r\n } ]\r\n } ]\r\n },\r\n \"materialComposition\" : {\r\n \"applicable\" : true,\r\n \"content\" : [ {\r\n \"unit\" : \"unit:partPerMillion\",\r\n \"recycled\" : 12.5,\r\n \"critical\" : true,\r\n \"renewable\" : 23.5,\r\n \"documentation\" : [ {\r\n \"contentType\" : \"URL\",\r\n \"header\" : \"Example Document XYZ\",\r\n \"content\" : \"https://dummy.link\"\r\n } ],\r\n \"concentration\" : 5.3,\r\n \"id\" : [ {\r\n \"type\" : \"CAS\",\r\n \"name\" : \"phenolphthalein\",\r\n \"id\" : \"201-004-7\"\r\n } ]\r\n } ]\r\n }\r\n },\r\n \"handling\" : {\r\n \"applicable\" : true,\r\n \"content\" : {\r\n \"producer\" : [ {\r\n \"id\" : \"BPNL0123456789ZZ\"\r\n } ],\r\n \"sparePart\" : [ {\r\n \"manufacturerPartId\" : \"123-0.740-3434-A\",\r\n \"nameAtManufacturer\" : \"Mirror left\"\r\n } ]\r\n }\r\n },\r\n \"additionalData\" : [ {\r\n \"description\" : \"Description of an attribute\",\r\n \"label\" : \"Maximum permitted battery power\",\r\n \"type\" : {\r\n \"typeUnit\" : \"unit:volume\",\r\n \"dataType\" : \"array\"\r\n },\r\n \"data\" : \"23\",\r\n \"children\" : [ {\r\n \"description\" : \"Description of an attribute\",\r\n \"label\" : \"Maximum permitted battery power\",\r\n \"type\" : {\r\n \"typeUnit\" : \"unit:volume\",\r\n \"dataType\" : \"array\"\r\n },\r\n \"data\" : \"23\"\r\n } ]\r\n } ],\r\n \"operation\" : {\r\n \"import\" : {\r\n \"applicable\" : true,\r\n \"content\" : {\r\n \"eori\" : \"GB123456789000\",\r\n \"id\" : \"BPNL0123456789ZZ\"\r\n }\r\n },\r\n \"other\" : {\r\n \"id\" : \"BPNL0123456789XX\",\r\n \"role\" : \"distributor\"\r\n },\r\n \"manufacturer\" : {\r\n \"facility\" : [ {\r\n \"facility\" : \"BPNA1234567890AA\"\r\n } ],\r\n \"manufacturingDate\" : \"\",\r\n \"manufacturer\" : \"BPNLbi7tAJ8UiMsF\"\r\n }\r\n },\r\n \"sustainability\" : {\r\n \"reparabilityScore\" : \"B\",\r\n \"productFootprint\" : {\r\n \"material\" : [ {\r\n \"lifecycle\" : \"main product production\",\r\n \"rulebook\" : [ {\r\n \"contentType\" : \"URL\",\r\n \"header\" : \"Example Document XYZ\",\r\n \"content\" : \"https://dummy.link\"\r\n } ],\r\n \"unit\" : \"kg CO2 / kWh\",\r\n \"performanceClass\" : \"A\",\r\n \"manufacturingPlant\" : [ {\r\n \"facility\" : \"BPNA1234567890AA\"\r\n } ],\r\n \"type\" : \"Climate Change Total\",\r\n \"value\" : 12.678,\r\n \"declaration\" : [ {\r\n \"contentType\" : \"URL\",\r\n \"header\" : \"Example Document XYZ\",\r\n \"content\" : \"https://dummy.link\"\r\n } ]\r\n } ],\r\n \"carbon\" : [ {\r\n \"lifecycle\" : \"main product production\",\r\n \"rulebook\" : [ {\r\n \"contentType\" : \"URL\",\r\n \"header\" : \"Example Document XYZ\",\r\n \"content\" : \"https://dummy.link\"\r\n } ],\r\n \"unit\" : \"kg CO2 / kWh\",\r\n \"performanceClass\" : \"A\",\r\n \"manufacturingPlant\" : [ {\r\n \"facility\" : \"BPNA1234567890AA\"\r\n } ],\r\n \"type\" : \"Climate Change Total\",\r\n \"value\" : \"\",\r\n \"declaration\" : [ {\r\n \"contentType\" : \"URL\",\r\n \"header\" : \"Example Document XYZ\",\r\n \"content\" : \"https://dummy.link\"\r\n } ]\r\n } ],\r\n \"environmental\" : [ {\r\n \"lifecycle\" : \"main product production\",\r\n \"rulebook\" : [ {\r\n \"contentType\" : \"URL\",\r\n \"header\" : \"Example Document XYZ\",\r\n \"content\" : \"https://dummy.link\"\r\n } ],\r\n \"unit\" : \"kg CO2 / kWh\",\r\n \"performanceClass\" : \"A\",\r\n \"manufacturingPlant\" : [ {\r\n \"facility\" : \"BPNA1234567890AA\"\r\n } ],\r\n \"type\" : \"Climate Change Total\",\r\n \"value\" : 12.678,\r\n \"declaration\" : [ {\r\n \"contentType\" : \"URL\",\r\n \"header\" : \"Example Document XYZ\",\r\n \"content\" : \"https://dummy.link\"\r\n } ]\r\n } ]\r\n },\r\n \"status\" : \"original\",\r\n \"durabilityScore\" : \"A\"\r\n }\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "/urn:uuid:", + "host": [ + "" + ], + "path": [ + "urn:uuid:" + ] + } + }, + "response": [] + }, + { + "name": "Step 2.1.2 Verify the Creation", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json", + "type": "text" + } + ], + "url": { + "raw": "/urn:uuid:", + "host": [ + "" + ], + "path": [ + "urn:uuid:" + ] + } + }, + "response": [] + }, + { + "name": "Step 2.2.1 Create Digital Twin", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "// encode digital twin Id into base 64\r", + "const jsonResponse = pm.response.json();\r", + "if (jsonResponse && jsonResponse.id) {\r", + " const dtId = jsonResponse.id;\r", + " pm.collectionVariables.set(\"digitalTwinId\", dtId);\r", + " pm.collectionVariables.set(\"base64ShellId\", btoa(dtId));\r", + "}\r", + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "auth": { + "type": "noauth" + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json", + "type": "text" + }, + { + "key": "Edc-Bpn", + "value": "BPNL000000000FV1", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"description\": [\r\n {\r\n \"language\": \"en\",\r\n \"text\": \"Car/part Digital Twin\"\r\n }\r\n ],\r\n \"displayName\": [],\r\n \"globalAssetId\": \"urn:uuid:\",\r\n \"idShort\": \"Car\",\r\n \"id\": \"\",\r\n \"specificAssetIds\": [\r\n {\r\n \"name\": \"manufacturerId\",\r\n \"value\": \"BPNL000000000FV1\",\r\n \"externalSubjectId\": {\r\n \"type\": \"ExternalReference\",\r\n \"keys\": [\r\n {\r\n \"type\": \"GlobalReference\",\r\n \"value\": \"BPNL000000000FV1\"\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n \"name\": \"partInstanceId\",\r\n \"value\": \"\",\r\n \"externalSubjectId\": {\r\n \"type\": \"ExternalReference\",\r\n \"keys\": [\r\n {\r\n \"type\": \"GlobalReference\",\r\n \"value\": \"BPNL000000000FV1\"\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n \"name\": \"manufacturerPartId\",\r\n \"value\": \"MPI7654\",\r\n \"externalSubjectId\": {\r\n \"type\": \"ExternalReference\",\r\n \"keys\": [\r\n {\r\n \"type\": \"GlobalReference\",\r\n \"value\": \"PUBLIC_READABLE\"\r\n },\r\n {\r\n \"type\": \"GlobalReference\",\r\n \"value\": \"BPNL000000000FV1\"\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n \"name\": \"digitalTwinType\",\r\n \"value\": \"PartInstance\",\r\n \"externalSubjectId\": {\r\n \"type\": \"ExternalReference\",\r\n \"keys\": [\r\n {\r\n \"type\": \"GlobalReference\",\r\n \"value\": \"BPNL000000000FV1\"\r\n }\r\n ]\r\n }\r\n }\r\n ],\r\n \"submodelDescriptors\": [\r\n {\r\n \"endpoints\": [\r\n {\r\n \"interface\": \"SUBMODEL-3.0\",\r\n \"protocolInformation\": {\r\n \"href\": \"https://dpp.int.catena-x.net/provider/api/public/\",\r\n \"endpointProtocol\": \"HTTP\",\r\n \"endpointProtocolVersion\": [\"1.1\"],\r\n \"subprotocol\": \"DSP\",\r\n \"subprotocolBody\": \"id=urn:uuid:0c3d2db0-e5c6-27f9-5875-15a9a00e7a27;dspEndpoint=https://dpp.int.catena-x.net/provider\",\r\n \"subprotocolBodyEncoding\": \"plain\",\r\n \"securityAttributes\": [\r\n {\r\n \"type\": \"NONE\",\r\n \"key\": \"NONE\",\r\n \"value\": \"NONE\"\r\n }\r\n ]\r\n }\r\n }\r\n ],\r\n \"idShort\": \"digitalProductPass\",\r\n \"id\": \"\",\r\n \"semanticId\": {\r\n \"type\": \"ExternalReference\",\r\n \"keys\": [\r\n {\r\n \"type\": \"Operation\",\r\n \"value\": \"https://w3c.github.io/vc-jws-2020/contexts/v1/\"\r\n },\r\n {\r\n \"type\": \"Submodel\",\r\n \"value\": \"urn:samm:io.catenax.generic.digital_product_passport:5.0.0#DigitalProductPassport\"\r\n },\r\n {\r\n \"type\": \"Entity\",\r\n \"value\": \"https://www.w3.org/ns/credentials/v2\"\r\n },\r\n {\r\n \"type\": \"DataElement\",\r\n \"value\": \"urn:samm:io.catenax.dpp_verification.cdc:1.0.0#CertifiedDataCredential\"\r\n }\r\n ]\r\n },\r\n \"description\": [\r\n {\r\n \"language\": \"en\",\r\n \"text\": \"Digital Product Pass Submodel\"\r\n }\r\n ],\r\n \"displayName\": []\r\n }\r\n ]\r\n}\r\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "/shell-descriptors", + "host": [ + "" + ], + "path": [ + "shell-descriptors" + ] + } + }, + "response": [] + }, + { + "name": "Step 2.2.2 Verify the Creation", + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json", + "type": "text" + } + ], + "url": { + "raw": "/shell-descriptors/", + "host": [ + "" + ], + "path": [ + "shell-descriptors", + "" + ] + } + }, + "response": [] + }, + { + "name": "Step 2.3 Modify Digital Twin", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "// encode digital twin Id into base 64\r", + "pm.collectionVariables.set(\"base64ShellId\", btoa(pm.collectionVariables.get(\"digitalTwinId\")));" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "request": { + "auth": { + "type": "noauth" + }, + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "value": "application/json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"description\": [\r\n {\r\n \"language\": \"en\",\r\n \"text\": \"Car/part Digital Twin\"\r\n }\r\n ],\r\n \"displayName\": [],\r\n \"globalAssetId\": \"urn:uuid:e5ab3398-bde1-4ef2-bb70-fd6dd1138e60\",\r\n \"idShort\": \"\",\r\n \"id\": \"\",\r\n \"specificAssetIds\": [\r\n {\r\n \"name\": \"manufacturerId\",\r\n \"value\": \"BPNL000000000FV1\",\r\n \"externalSubjectId\": {\r\n \"type\": \"ExternalReference\",\r\n \"keys\": [\r\n {\r\n \"type\": \"GlobalReference\",\r\n \"value\": \"BPNL000000000FV1\"\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n \"name\": \"partInstanceId\",\r\n \"value\": \"\",\r\n \"externalSubjectId\": {\r\n \"type\": \"ExternalReference\",\r\n \"keys\": [\r\n {\r\n \"type\": \"GlobalReference\",\r\n \"value\": \"BPNL000000000FV1\"\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n \"name\": \"manufacturerPartId\",\r\n \"value\": \"MPI7654\",\r\n \"externalSubjectId\": {\r\n \"type\": \"ExternalReference\",\r\n \"keys\": [\r\n {\r\n \"type\": \"GlobalReference\",\r\n \"value\": \"PUBLIC_READABLE\"\r\n },\r\n {\r\n \"type\": \"GlobalReference\",\r\n \"value\": \"BPNL000000000FV1\"\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n \"name\": \"digitalTwinType\",\r\n \"value\": \"PartInstance\",\r\n \"externalSubjectId\": {\r\n \"type\": \"ExternalReference\",\r\n \"keys\": [\r\n {\r\n \"type\": \"GlobalReference\",\r\n \"value\": \"BPNL000000000FV1\"\r\n }\r\n ]\r\n }\r\n }\r\n ],\r\n \"submodelDescriptors\": [\r\n {\r\n \"endpoints\": [\r\n {\r\n \"interface\": \"SUBMODEL-3.0\",\r\n \"protocolInformation\": {\r\n \"href\": \"https://dpp.int.catena-x.net/provider/api/public/\",\r\n \"endpointProtocol\": \"HTTP\",\r\n \"endpointProtocolVersion\": [\"1.1\"],\r\n \"subprotocol\": \"DSP\",\r\n \"subprotocolBody\": \"id=urn:uuid:0c3d2db0-e5c6-27f9-5875-15a9a00e7a27;dspEndpoint=https://dpp.int.catena-x.net/provider\",\r\n \"subprotocolBodyEncoding\": \"plain\",\r\n \"securityAttributes\": [\r\n {\r\n \"type\": \"NONE\",\r\n \"key\": \"NONE\",\r\n \"value\": \"NONE\"\r\n }\r\n ]\r\n }\r\n }\r\n ],\r\n \"idShort\": \"digitalProductPass\",\r\n \"id\": \"\",\r\n \"semanticId\": {\r\n \"type\": \"ExternalReference\",\r\n \"keys\": [\r\n {\r\n \"type\": \"Operation\",\r\n \"value\": \"https://w3c.github.io/vc-jws-2020/contexts/v1/\"\r\n },\r\n {\r\n \"type\": \"Submodel\",\r\n \"value\": \"urn:samm:io.catenax.generic.digital_product_passport:5.0.0#DigitalProductPassport\"\r\n },\r\n {\r\n \"type\": \"Entity\",\r\n \"value\": \"https://www.w3.org/ns/credentials/v2\"\r\n },\r\n {\r\n \"type\": \"DataElement\",\r\n \"value\": \"urn:samm:io.catenax.dpp_verification.cdc:1.0.0#CertifiedDataCredential\"\r\n }\r\n ]\r\n },\r\n \"description\": [\r\n {\r\n \"language\": \"en\",\r\n \"text\": \"Digital Product Pass Submodel\"\r\n }\r\n ],\r\n \"displayName\": []\r\n }\r\n ]\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "/shell-descriptors/", + "host": [ + "" + ], + "path": [ + "shell-descriptors", + "" + ] + } + }, + "response": [] + } + ], + "variable": [ + { + "key": "digitalTwinId", + "value": "" + }, + { + "key": "base64ShellId", + "value": "" + } + ] +} \ No newline at end of file diff --git a/dpp-tutorial/resources/payloads/example.json b/dpp-tutorial/resources/payloads/example.json index 2e40af4d0..cc2590c9a 100644 --- a/dpp-tutorial/resources/payloads/example.json +++ b/dpp-tutorial/resources/payloads/example.json @@ -1,371 +1,261 @@ { - "metadata": { - "backupReference": "https://dummy.link", - "registrationIdentifier": "https://dummy.link/ID8283746239078", - "economicOperatorId": "BPNL0123456789ZZ", - "lastModification": "2000-01-01", - "predecessor": "urn:uuid:00000000-0000-0000-0000-000000000000", - "issueDate": "2000-01-01", - "version": "1.0.0", - "passportIdentifier": "urn:uuid:550e8400-e29b-41d4-a716-446655440000", - "status": "draft", - "expirationDate": "2030-01-01" + "metadata" : { + "backupReference" : "https://dummy.link", + "registrationIdentifier" : "https://dummy.link/ID8283746239078", + "economicOperatorId" : "BPNL0123456789ZZ", + "lastModification" : "2000-01-01", + "predecessor" : "urn:uuid:00000000-0000-0000-0000-000000000000", + "issueDate" : "2000-01-01", + "version" : "1.0.0", + "passportIdentifier" : "urn:uuid:550e8400-e29b-41d4-a716-446655440000", + "status" : "draft", + "expirationDate" : "2030-01-01" }, - "characteristics": { - "generalPerformanceClass": "A", - "physicalState": "solid", - "physicalDimension": { - "volume": { - "value": 20.0, - "unit": "unit:cubicMetre" + "characteristics" : { + "generalPerformanceClass" : "A", + "physicalState" : "solid", + "physicalDimension" : { + "volume" : { + "value" : 20.0, + "unit" : "unit:cubicMetre" }, - "grossWeight": { - "value": 20.0, - "unit": "unit:gram" + "grossWeight" : { + "value" : 20.0, + "unit" : "unit:gram" }, - "diameter": { - "value": 20, - "unit": "unit:millimetre" + "diameter" : { + "value" : 20.0, + "unit" : "unit:millimetre" }, - "grossVolume": { - "value": 20, - "unit": "unit:cubicMetre" + "grossVolume" : { + "value" : 20.0, + "unit" : "unit:cubicMetre" }, - "width": { - "value": 20, - "unit": "unit:millimetre" + "width" : { + "value" : 20.0, + "unit" : "unit:millimetre" }, - "length": { - "value": 20, - "unit": "unit:millimetre" + "length" : { + "value" : 20.0, + "unit" : "unit:millimetre" }, - "weight": { - "value": 20, - "unit": "unit:gram" + "weight" : { + "value" : 20.0, + "unit" : "unit:gram" }, - "height": { - "value": 20, - "unit": "unit:millimetre" + "height" : { + "value" : 20.0, + "unit" : "unit:millimetre" } }, - "lifespan": [ - { - "value": 36, - "unit": "unit:day", - "key": "guaranteed lifetime" - } - ] + "lifespan" : [ { + "value" : 36, + "unit" : "unit:day", + "key" : "guaranteed lifetime" + } ] }, - "commercial": { - "placedOnMarket": "2000-01-01", - "purpose": ["automotive"] + "commercial" : { + "placedOnMarket" : "2000-01-01", + "purpose" : [ "automotive" ] }, - "identification": { - "batch": [ - { - "value": "BID12345678", - "key": "batchId" - } - ], - "codes": [ - { - "value": "8703 24 10 00", - "key": "TARIC" - } - ], - "type": { - "manufacturerPartId": "123-0.740-3434-A", - "nameAtManufacturer": "Mirror left" + "identification" : { + "batch" : [ { + "value" : "BID12345678", + "key" : "batchId" + } ], + "codes" : [ { + "value" : "8703 24 10 00", + "key" : "TARIC" + } ], + "type" : { + "manufacturerPartId" : "123-0.740-3434-A", + "nameAtManufacturer" : "Mirror left" }, - "classification": [ - { - "classificationStandard": "GIN 20510-21513", - "classificationID": "1004712", - "classificationDescription": "Generic standard for classification of parts in the automotive industry." - } - ], - "serial": [ - { - "value": "SN12345679", - "key": "partInstanceId" - } - ], - "dataCarrier": { - "carrierType": "QR", - "carrierLayout": "upper-left side" + "classification" : [ { + "classificationStandard" : "GIN 20510-21513", + "classificationID" : "1004712", + "classificationDescription" : "Generic standard for classification of parts in the automotive industry." + } ], + "serial" : [ { + "value" : "SN12345678", + "key" : "partInstanceId" + } ], + "dataCarrier" : { + "carrierType" : "QR", + "carrierLayout" : "upper-left side" } }, - "sources": [ - { - "header": "Example Document XYZ", - "category": "Product Specifications", - "type": "URL", - "content": "https://dummy.link" - } - ], - "materials": { - "substancesOfConcern": { - "applicable": true, - "content": [ - { - "unit": "unit:partPerMillion", - "hazardClassification": { - "category": "category 1A", - "statement": "Causes severe skin burns and eye damage.", - "class": "Skin corrosion" - }, - "documentation": [ - { - "contentType": "URL", - "header": "Example Document XYZ", - "content": "https://dummy.link" - } - ], - "concentrationRange": [ - { - "max": 2.6, - "min": 2.1 - } - ], - "location": "Housing", - "concentration": 5.3, - "exemption": "shall not apply to product x containing not more than 1,5 ml of liquid", - "id": [ - { - "type": "CAS", - "name": "phenolphthalein", - "id": "201-004-7" - } - ] - } - ] + "sources" : [ { + "header" : "Example Document XYZ", + "category" : "Product Specifications", + "type" : "URL", + "content" : "https://dummy.link" + } ], + "materials" : { + "substancesOfConcern" : { + "applicable" : true, + "content" : [ { + "unit" : "unit:partPerMillion", + "hazardClassification" : { + "category" : "category 1A", + "statement" : "Causes severe skin burns and eye damage.", + "class" : "Skin corrosion" + }, + "documentation" : [ { + "contentType" : "URL", + "header" : "Example Document XYZ", + "content" : "https://dummy.link" + } ], + "concentrationRange" : [ { + "max" : 2.6, + "min" : 2.1 + } ], + "location" : "Housing", + "concentration" : 5.3, + "exemption" : "shall not apply to product x containing not more than 1,5 ml of liquid", + "id" : [ { + "type" : "CAS", + "name" : "phenolphthalein", + "id" : "201-004-7" + } ] + } ] }, - "materialComposition": { - "applicable": true, - "content": [ - { - "unit": "unit:partPerMillion", - "recycled": 12.5, - "critical": true, - "renewable": 23.5, - "documentation": [ - { - "contentType": "URL", - "header": "Example Document XYZ", - "content": "https://dummy.link" - } - ], - "concentration": 5.3, - "id": [ - { - "type": "CAS", - "name": "phenolphthalein", - "id": "201-004-7" - } - ] - } - ] + "materialComposition" : { + "applicable" : true, + "content" : [ { + "unit" : "unit:partPerMillion", + "recycled" : 12.5, + "critical" : true, + "renewable" : 23.5, + "documentation" : [ { + "contentType" : "URL", + "header" : "Example Document XYZ", + "content" : "https://dummy.link" + } ], + "concentration" : 5.3, + "id" : [ { + "type" : "CAS", + "name" : "phenolphthalein", + "id" : "201-004-7" + } ] + } ] } }, - "handling": { - "applicable": true, - "content": { - "producer": [ - { - "id": "BPNL0123456789ZZ" - } - ], - "sparePart": [ - { - "manufacturerPartId": "123-0.740-3434-A", - "nameAtManufacturer": "Mirror left" - } - ] + "handling" : { + "applicable" : true, + "content" : { + "producer" : [ { + "id" : "BPNL0123456789ZZ" + } ], + "sparePart" : [ { + "manufacturerPartId" : "123-0.740-3434-A", + "nameAtManufacturer" : "Mirror left" + } ] } }, - "additionalData": [ - { - "description": "Description of an attribute", - "label": "Maximum permitted battery power", - "type": { - "typeUnit": "unit:volume", - "dataType": "array" + "additionalData" : [ { + "description" : "Description of an attribute", + "label" : "Maximum permitted battery power", + "type" : { + "typeUnit" : "unit:volume", + "dataType" : "array" + }, + "data" : "23", + "children" : [ { + "description" : "Description of an attribute", + "label" : "Maximum permitted battery power", + "type" : { + "typeUnit" : "unit:volume", + "dataType" : "array" }, - "data": "23", - "children": [ - { - "description": "Description of an attribute", - "label": "Maximum permitted battery power", - "type": { - "typeUnit": "unit:volume", - "dataType": "array" - }, - "data": "23" - }, - { - "description": "Description of an attribute", - "label": "Maximum permitted battery power", - "type": { - "typeUnit": "unit:volume", - "dataType": "array" - }, - "data": "null", - "children": [ - { - "description": "Description of an attribute", - "label": "Maximum permitted battery power", - "type": { - "typeUnit": "unit:volume", - "dataType": "object" - }, - "children": [ - { - "description": "Description of an attribute", - "label": "Maximum permitted battery power", - "type": { - "typeUnit": "unit:volume", - "dataType": "string" - }, - "data": "asdasdasd", - "children": [ - { - "description": "Description of an attribute", - "label": "Maximum permitted battery power", - "type": { - "typeUnit": "unit:volume", - "dataType": "string" - }, - "data": "asdasdasd" - } - ] - } - ] - }, - { - "description": "Description of an attribute", - "label": "Maximum permitted battery power", - "type": { - "typeUnit": "unit:volume", - "dataType": "string" - }, - "data": "4323" - } - ] - } - ] - } - ], - "operation": { - "import": { - "applicable": true, - "content": { - "eori": "GB123456789000", - "id": "BPNL0123456789ZZ" + "data" : "23" + } ] + } ], + "operation" : { + "import" : { + "applicable" : true, + "content" : { + "eori" : "GB123456789000", + "id" : "BPNL0123456789ZZ" } }, - "other": { - "id": "BPNL0123456789XX", - "role": "distributor" + "other" : { + "id" : "BPNL0123456789XX", + "role" : "distributor" }, - "manufacturer": { - "facility": [ - { - "facility": "BPNA1234567890AA" - } - ], - "manufacturingDate": "2000-01-31", - "manufacturer": "BPNLbi7tAJ8UiMsF" + "manufacturer" : { + "facility" : [ { + "facility" : "BPNA1234567890AA" + } ], + "manufacturingDate" : "2000-01-31", + "manufacturer" : "BPNLbi7tAJ8UiMsF" } }, - "sustainability": { - "reparabilityScore": "B", - "productFootprint": { - "material": [ - { - "lifecycle": "main product production", - "rulebook": [ - { - "contentType": "URL", - "header": "Example Document XYZ", - "content": "https://dummy.link" - } - ], - "unit": "kg CO2 / kWh", - "performanceClass": "A", - "manufacturingPlant": [ - { - "facility": "BPNA1234567890AA" - } - ], - "type": "Climate Change Total", - "value": 12.678, - "declaration": [ - { - "contentType": "URL", - "header": "Example Document XYZ", - "content": "https://dummy.link" - } - ] - } - ], - "carbon": [ - { - "lifecycle": "main product production", - "rulebook": [ - { - "contentType": "URL", - "header": "Example Document XYZ", - "content": "https://dummy.link" - } - ], - "unit": "kg CO2 / kWh", - "performanceClass": "A", - "manufacturingPlant": [ - { - "facility": "BPNA1234567890AA" - } - ], - "type": "Climate Change Total", - "value": 12.678, - "declaration": [ - { - "contentType": "URL", - "header": "Example Document XYZ", - "content": "https://dummy.link" - } - ] - } - ], - "environmental": [ - { - "lifecycle": "main product production", - "rulebook": [ - { - "contentType": "URL", - "header": "Example Document XYZ", - "content": "https://dummy.link" - } - ], - "unit": "kg CO2 / kWh", - "performanceClass": "A", - "manufacturingPlant": [ - { - "facility": "BPNA1234567890AA" - } - ], - "type": "Climate Change Total", - "value": 12.678, - "declaration": [ - { - "contentType": "URL", - "header": "Example Document XYZ", - "content": "https://dummy.link" - } - ] - } - ] + "sustainability" : { + "reparabilityScore" : "B", + "productFootprint" : { + "material" : [ { + "lifecycle" : "main product production", + "rulebook" : [ { + "contentType" : "URL", + "header" : "Example Document XYZ", + "content" : "https://dummy.link" + } ], + "unit" : "kg CO2 / kWh", + "performanceClass" : "A", + "manufacturingPlant" : [ { + "facility" : "BPNA1234567890AA" + } ], + "type" : "Climate Change Total", + "value" : 12.678, + "declaration" : [ { + "contentType" : "URL", + "header" : "Example Document XYZ", + "content" : "https://dummy.link" + } ] + } ], + "carbon" : [ { + "lifecycle" : "main product production", + "rulebook" : [ { + "contentType" : "URL", + "header" : "Example Document XYZ", + "content" : "https://dummy.link" + } ], + "unit" : "kg CO2 / kWh", + "performanceClass" : "A", + "manufacturingPlant" : [ { + "facility" : "BPNA1234567890AA" + } ], + "type" : "Climate Change Total", + "value" : 12.678, + "declaration" : [ { + "contentType" : "URL", + "header" : "Example Document XYZ", + "content" : "https://dummy.link" + } ] + } ], + "environmental" : [ { + "lifecycle" : "main product production", + "rulebook" : [ { + "contentType" : "URL", + "header" : "Example Document XYZ", + "content" : "https://dummy.link" + } ], + "unit" : "kg CO2 / kWh", + "performanceClass" : "A", + "manufacturingPlant" : [ { + "facility" : "BPNA1234567890AA" + } ], + "type" : "Climate Change Total", + "value" : 12.678, + "declaration" : [ { + "contentType" : "URL", + "header" : "Example Document XYZ", + "content" : "https://dummy.link" + } ] + } ] }, - "status": "original", - "durabilityScore": "A" + "status" : "original", + "durabilityScore" : "A" } -} +} \ No newline at end of file diff --git a/dpp-tutorial/resources/payloads/example_explorer.json b/dpp-tutorial/resources/payloads/example_explorer.json new file mode 100644 index 000000000..c7ce064c6 --- /dev/null +++ b/dpp-tutorial/resources/payloads/example_explorer.json @@ -0,0 +1,261 @@ +{ + "metadata" : { + "backupReference" : "https://dummy.link", + "registrationIdentifier" : "https://dummy.link/ID8283746239078", + "economicOperatorId" : "BPNL0123456789ZZ", + "lastModification" : "2000-01-01", + "predecessor" : "urn:uuid:00000000-0000-0000-0000-000000000000", + "issueDate" : "2000-01-01", + "version" : "1.0.0", + "passportIdentifier" : "urn:uuid:550e8400-e29b-41d4-a716-446655440000", + "status" : "draft", + "expirationDate" : "2030-01-01" + }, + "characteristics" : { + "generalPerformanceClass" : "A", + "physicalState" : "solid", + "physicalDimension" : { + "volume" : { + "value" : 20.0, + "unit" : "unit:cubicMetre" + }, + "grossWeight" : { + "value" : 20.0, + "unit" : "unit:gram" + }, + "diameter" : { + "value" : 20.0, + "unit" : "unit:millimetre" + }, + "grossVolume" : { + "value" : 20.0, + "unit" : "unit:cubicMetre" + }, + "width" : { + "value" : "", + "unit" : "unit:millimetre" + }, + "length" : { + "value" : "", + "unit" : "unit:millimetre" + }, + "weight" : { + "value" : "", + "unit" : "unit:gram" + }, + "height" : { + "value" : "", + "unit" : "unit:millimetre" + } + }, + "lifespan" : [ { + "value" : "", + "unit" : "", + "key" : "guaranteed lifetime" + } ] + }, + "commercial" : { + "placedOnMarket" : "2000-01-01", + "purpose" : [ "automotive" ] + }, + "identification" : { + "batch" : [ { + "value" : "BID12345678", + "key" : "batchId" + } ], + "codes" : [ { + "value" : "8703 24 10 00", + "key" : "TARIC" + } ], + "type" : { + "manufacturerPartId" : "123-0.740-3434-A", + "nameAtManufacturer" : " " + }, + "classification" : [ { + "classificationStandard" : "GIN 20510-21513", + "classificationID" : "1004712", + "classificationDescription" : "Generic standard for classification of parts in the automotive industry." + } ], + "serial" : [ { + "value" : "", + "key" : "partInstanceId" + } ], + "dataCarrier" : { + "carrierType" : "QR", + "carrierLayout" : "upper-left side" + } + }, + "sources" : [ { + "header" : "Example Document XYZ", + "category" : "Product Specifications", + "type" : "URL", + "content" : "https://dummy.link" + } ], + "materials" : { + "substancesOfConcern" : { + "applicable" : true, + "content" : [ { + "unit" : "unit:partPerMillion", + "hazardClassification" : { + "category" : "category 1A", + "statement" : "Causes severe skin burns and eye damage.", + "class" : "Skin corrosion" + }, + "documentation" : [ { + "contentType" : "URL", + "header" : "Example Document XYZ", + "content" : "https://dummy.link" + } ], + "concentrationRange" : [ { + "max" : 2.6, + "min" : 2.1 + } ], + "location" : "Housing", + "concentration" : 5.3, + "exemption" : "shall not apply to product x containing not more than 1,5 ml of liquid", + "id" : [ { + "type" : "CAS", + "name" : "phenolphthalein", + "id" : "201-004-7" + } ] + } ] + }, + "materialComposition" : { + "applicable" : true, + "content" : [ { + "unit" : "unit:partPerMillion", + "recycled" : 12.5, + "critical" : true, + "renewable" : 23.5, + "documentation" : [ { + "contentType" : "URL", + "header" : "Example Document XYZ", + "content" : "https://dummy.link" + } ], + "concentration" : 5.3, + "id" : [ { + "type" : "CAS", + "name" : "phenolphthalein", + "id" : "201-004-7" + } ] + } ] + } + }, + "handling" : { + "applicable" : true, + "content" : { + "producer" : [ { + "id" : "BPNL0123456789ZZ" + } ], + "sparePart" : [ { + "manufacturerPartId" : "123-0.740-3434-A", + "nameAtManufacturer" : "Mirror left" + } ] + } + }, + "additionalData" : [ { + "description" : "Description of an attribute", + "label" : "Maximum permitted battery power", + "type" : { + "typeUnit" : "unit:volume", + "dataType" : "array" + }, + "data" : "23", + "children" : [ { + "description" : "Description of an attribute", + "label" : "Maximum permitted battery power", + "type" : { + "typeUnit" : "unit:volume", + "dataType" : "array" + }, + "data" : "23" + } ] + } ], + "operation" : { + "import" : { + "applicable" : true, + "content" : { + "eori" : "GB123456789000", + "id" : "BPNL0123456789ZZ" + } + }, + "other" : { + "id" : "BPNL0123456789XX", + "role" : "distributor" + }, + "manufacturer" : { + "facility" : [ { + "facility" : "BPNA1234567890AA" + } ], + "manufacturingDate" : "", + "manufacturer" : "BPNLbi7tAJ8UiMsF" + } + }, + "sustainability" : { + "reparabilityScore" : "B", + "productFootprint" : { + "material" : [ { + "lifecycle" : "main product production", + "rulebook" : [ { + "contentType" : "URL", + "header" : "Example Document XYZ", + "content" : "https://dummy.link" + } ], + "unit" : "kg CO2 / kWh", + "performanceClass" : "A", + "manufacturingPlant" : [ { + "facility" : "BPNA1234567890AA" + } ], + "type" : "Climate Change Total", + "value" : 12.678, + "declaration" : [ { + "contentType" : "URL", + "header" : "Example Document XYZ", + "content" : "https://dummy.link" + } ] + } ], + "carbon" : [ { + "lifecycle" : "main product production", + "rulebook" : [ { + "contentType" : "URL", + "header" : "Example Document XYZ", + "content" : "https://dummy.link" + } ], + "unit" : "kg CO2 / kWh", + "performanceClass" : "A", + "manufacturingPlant" : [ { + "facility" : "BPNA1234567890AA" + } ], + "type" : "Climate Change Total", + "value" : "", + "declaration" : [ { + "contentType" : "URL", + "header" : "Example Document XYZ", + "content" : "https://dummy.link" + } ] + } ], + "environmental" : [ { + "lifecycle" : "main product production", + "rulebook" : [ { + "contentType" : "URL", + "header" : "Example Document XYZ", + "content" : "https://dummy.link" + } ], + "unit" : "kg CO2 / kWh", + "performanceClass" : "A", + "manufacturingPlant" : [ { + "facility" : "BPNA1234567890AA" + } ], + "type" : "Climate Change Total", + "value" : 12.678, + "declaration" : [ { + "contentType" : "URL", + "header" : "Example Document XYZ", + "content" : "https://dummy.link" + } ] + } ] + }, + "status" : "original", + "durabilityScore" : "A" + } +} \ No newline at end of file diff --git a/dpp-tutorial/resources/screenshots/Insomnia_add_new_project.png b/dpp-tutorial/resources/screenshots/Insomnia_add_new_project.png new file mode 100644 index 000000000..7b5d7b5c7 Binary files /dev/null and b/dpp-tutorial/resources/screenshots/Insomnia_add_new_project.png differ diff --git a/dpp-tutorial/resources/screenshots/Insomnia_add_new_project.png.license b/dpp-tutorial/resources/screenshots/Insomnia_add_new_project.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/Insomnia_add_new_project.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/resources/screenshots/agreebutton.png.license b/dpp-tutorial/resources/screenshots/agreebutton.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/agreebutton.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/resources/screenshots/builders.png b/dpp-tutorial/resources/screenshots/builders.png new file mode 100644 index 000000000..aa74e84c6 Binary files /dev/null and b/dpp-tutorial/resources/screenshots/builders.png differ diff --git a/dpp-tutorial/resources/screenshots/builders.png.license b/dpp-tutorial/resources/screenshots/builders.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/builders.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/resources/screenshots/characteristics.png.license b/dpp-tutorial/resources/screenshots/characteristics.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/characteristics.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/resources/screenshots/company-selection.png.license b/dpp-tutorial/resources/screenshots/company-selection.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/company-selection.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/resources/screenshots/dpp-example.png.license b/dpp-tutorial/resources/screenshots/dpp-example.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/dpp-example.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/resources/screenshots/explorers.png b/dpp-tutorial/resources/screenshots/explorers.png new file mode 100644 index 000000000..216e8309b Binary files /dev/null and b/dpp-tutorial/resources/screenshots/explorers.png differ diff --git a/dpp-tutorial/resources/screenshots/explorers.png.license b/dpp-tutorial/resources/screenshots/explorers.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/explorers.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/resources/screenshots/httpie_post_1.png b/dpp-tutorial/resources/screenshots/httpie_post_1.png new file mode 100644 index 000000000..83d2dcd16 Binary files /dev/null and b/dpp-tutorial/resources/screenshots/httpie_post_1.png differ diff --git a/dpp-tutorial/resources/screenshots/httpie_post_1.png.license b/dpp-tutorial/resources/screenshots/httpie_post_1.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/httpie_post_1.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/resources/screenshots/id-search.png.license b/dpp-tutorial/resources/screenshots/id-search.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/id-search.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/resources/screenshots/idsearch.png.license b/dpp-tutorial/resources/screenshots/idsearch.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/idsearch.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/resources/screenshots/idsearch_gitrepo.png b/dpp-tutorial/resources/screenshots/idsearch_gitrepo.png new file mode 100644 index 000000000..3f315b079 Binary files /dev/null and b/dpp-tutorial/resources/screenshots/idsearch_gitrepo.png differ diff --git a/dpp-tutorial/resources/screenshots/idsearch_gitrepo.png.license b/dpp-tutorial/resources/screenshots/idsearch_gitrepo.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/idsearch_gitrepo.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/resources/screenshots/import_step_1.png b/dpp-tutorial/resources/screenshots/import_step_1.png new file mode 100644 index 000000000..19a274ab2 Binary files /dev/null and b/dpp-tutorial/resources/screenshots/import_step_1.png differ diff --git a/dpp-tutorial/resources/screenshots/import_step_1.png.license b/dpp-tutorial/resources/screenshots/import_step_1.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/import_step_1.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/resources/screenshots/loading-notcompletedyet.png.license b/dpp-tutorial/resources/screenshots/loading-notcompletedyet.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/loading-notcompletedyet.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/resources/screenshots/loading.png.license b/dpp-tutorial/resources/screenshots/loading.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/loading.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/resources/screenshots/pcf-info.png.license b/dpp-tutorial/resources/screenshots/pcf-info.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/pcf-info.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/resources/screenshots/pcf-update.png.license b/dpp-tutorial/resources/screenshots/pcf-update.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/pcf-update.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/resources/screenshots/pcf_search.png b/dpp-tutorial/resources/screenshots/pcf_search.png new file mode 100644 index 000000000..0e534b09b Binary files /dev/null and b/dpp-tutorial/resources/screenshots/pcf_search.png differ diff --git a/dpp-tutorial/resources/screenshots/pcf_search.png.license b/dpp-tutorial/resources/screenshots/pcf_search.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/pcf_search.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/resources/screenshots/pcf_search_insomnia.png b/dpp-tutorial/resources/screenshots/pcf_search_insomnia.png new file mode 100644 index 000000000..c8cf402c3 Binary files /dev/null and b/dpp-tutorial/resources/screenshots/pcf_search_insomnia.png differ diff --git a/dpp-tutorial/resources/screenshots/pcf_search_insomnia.png.license b/dpp-tutorial/resources/screenshots/pcf_search_insomnia.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/pcf_search_insomnia.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/resources/screenshots/policy-selectionpopup.png.license b/dpp-tutorial/resources/screenshots/policy-selectionpopup.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/policy-selectionpopup.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/resources/screenshots/qrcode-button.png.license b/dpp-tutorial/resources/screenshots/qrcode-button.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/qrcode-button.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/resources/screenshots/qrcode-scanning.png.license b/dpp-tutorial/resources/screenshots/qrcode-scanning.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/qrcode-scanning.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/resources/screenshots/test-login.png.license b/dpp-tutorial/resources/screenshots/test-login.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/test-login.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/resources/screenshots/visualization.png.license b/dpp-tutorial/resources/screenshots/visualization.png.license new file mode 100644 index 000000000..bf8871bd4 --- /dev/null +++ b/dpp-tutorial/resources/screenshots/visualization.png.license @@ -0,0 +1,9 @@ +## NOTICE + +This work is licensed under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). + +- SPDX-License-Identifier: CC-BY-4.0 +- SPDX-FileCopyrightText: 2023, 2024 BMW AG +- SPDX-FileCopyrightText: 2023, 2024 CGI Deutschland B.V. & Co. KG +- SPDX-FileCopyrightText: 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/dpp-tutorial/verification.md b/dpp-tutorial/verification.md new file mode 100644 index 000000000..4f601e1b0 --- /dev/null +++ b/dpp-tutorial/verification.md @@ -0,0 +1,30 @@ + + +# Verification Process??? + +## Right / Wrong? + +### Explenation + +#### Steps to process + diff --git a/dpp-verification/README.md b/dpp-verification/README.md index 9cc2dd5c8..07b6c22d8 100644 --- a/dpp-verification/README.md +++ b/dpp-verification/README.md @@ -794,7 +794,7 @@ success; The CDC schema contains the complete passport and some additional information, as well as the signature of the data provider. -Here we have an example with the [Digital Product Passport v5.0.0](https://raw.githubusercontent.com/eclipse-tractusx/sldt-semantic-models/main/io.catenax.generic.digital_product_passport/5.0.0) Aspect Model. +Here we have an example with the [Digital Product Passport v5.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.generic.digital_product_passport/5.0.0) Aspect Model. ### CDC Semantic @@ -1323,7 +1323,7 @@ Here is an example of how the Certified Data Credential looks like for a Digital The CSC schema contains the partial passport with different attributes, all them with the methods used for the certification, as well as the signature of the data provider. -Here we have an example of the generated CSC from the [previous CDC Aspect](#certified-data-credential-schema) the [Digital Product Passport v5.0.0](https://raw.githubusercontent.com/eclipse-tractusx/sldt-semantic-models/main/io.catenax.generic.digital_product_passport/5.0.0) Aspect Model. +Here we have an example of the generated CSC from the [previous CDC Aspect](#certified-data-credential-schema) the [Digital Product Passport v5.0.0](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.generic.digital_product_passport/5.0.0) Aspect Model. ### CSC Semantic