From 8b86af0c5200b656a9c033d71da3ad999979d984 Mon Sep 17 00:00:00 2001 From: ELebedkin Date: Mon, 2 Dec 2024 14:32:37 +0100 Subject: [PATCH] chore: deleted unnecessary files --- dpp-tutorial/aspect-model.md | 137 ------------ dpp-tutorial/digital-twin-provision.md | 257 ---------------------- dpp-tutorial/explorer-path-httpie.md | 244 --------------------- dpp-tutorial/explorer-path-insomnia.md | 282 ------------------------- 4 files changed, 920 deletions(-) delete mode 100644 dpp-tutorial/aspect-model.md delete mode 100644 dpp-tutorial/digital-twin-provision.md delete mode 100644 dpp-tutorial/explorer-path-httpie.md delete mode 100644 dpp-tutorial/explorer-path-insomnia.md diff --git a/dpp-tutorial/aspect-model.md b/dpp-tutorial/aspect-model.md deleted file mode 100644 index b014c7ef9..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-models/tree/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 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, 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/digital-twin-provision.md b/dpp-tutorial/digital-twin-provision.md deleted file mode 100644 index 3fa9c931c..000000000 --- a/dpp-tutorial/digital-twin-provision.md +++ /dev/null @@ -1,257 +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 submodel 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"` -> 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. - - -## 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-httpie.md b/dpp-tutorial/explorer-path-httpie.md deleted file mode 100644 index 21d177b99..000000000 --- a/dpp-tutorial/explorer-path-httpie.md +++ /dev/null @@ -1,244 +0,0 @@ - - -# 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 [HTTPie](https://httpie.io/app), a user-friendly tool for sending and receiving HTTP requests. - -## 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 **HTTPie** as our web-based HTTP communication tool to send and receive data in a visual and user-friendly way. - -1. Visit the official [HTTPie website](https://httpie.io/app). -2. Download the required json of HTTP requests for this tutorial from the following link: [Download .JSON file](https://raw.githubusercontent.com/ELebedkin/digital-product-pass/refs/heads/main/dpp-tutorial/resources/httpie_payloads/01%20Tractus-X%20Community%20Days.postman_collection.json). -3. Save the file in your desired location (Right-click → Save As). -4. Open [HTTPie](https://httpie.io/app) and follow these steps: - - Click the **"+" button** at the top left of the HTTPie interface. - ![import](./resources/screenshots/import_step_1.png) - - Select **"Import File"**. - - Import the file you just downloaded. - -Congratulations! You have now imported all the necessary API calls for this tutorial. - ---- - -## 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. - - * For a more technical explanation, refer to: [How to create Aspect Model](./aspect-model.md) - -### Aspect Model Creation - -Follow this steps to create a new Digital Product Passport serialized model: - ---- - -### Step 1.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 (or `CMD + F` on Mac): - -![search id](./resources/screenshots/idsearch_gitrepo.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" - } -} - -``` ---- -### Step 1.2: Substitute data in the template - -In HTTPie, 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 -sustainability.productFootprint.carbon[0].value -``` - -Example: - -![PCF](./resources/screenshots/pcf_search.png) - ---- - -### Additional: Data Mapping Table - -Use the following table to identify where to place your part's information in the template: - -| 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! - -> [!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! - ---- - -## 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. The data generated in previous step can be stored into the submodel data service. - -> [!Caution] -> The UUID should be written in the format: 6fb9a71b-aee6-4063-a82e-957022aeaa7a - ---- - -### Step 2.1: Register the Aspect Model - - -1. In the HTTPie browser, locate the request labeled `Step 2.1.1 Create Aspect Model`. -2. Replace `` with the UUID provided on your datasheet, as shown in the example - -![HTTPie Post 1](./resources/screenshots/httpie_post_1.png) - -Example: - -```text -https://tx-dpp.int.catena-x.net/urn:uuid:f10c0181-ce80-4139-81f0-a59226c88bfe -``` - -3. Send the **POST** request - -- If successful, a 200 OK response will appear at the bottom of HTTPie, confirming the Aspect Model has been registered in the service - -4. To verify the registration: -- Use the HTTPie 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. - ---- - -### Step 2.2 - -Now we actually will create the digitil Twin. - -1. Open the HTTPie request labeled `Step 2.2.1 Create Digital Twin"`. -2. This request uses the template provided in [resources/digital-twins/example-dt.json](./resources/digital-twins/example-dt.json). -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 -``` - -4. Generate a new UUID: - -- Visit [this UUID Generator](https://www.uuidgenerator.net/version4) to generate an additional UIID -- Replace `` with this new UUID - -> [!Important] -> There are **two instances** of `UUID-2` in the example. Please replace **both** of them: -> - One is used as `"id"` -> - The other is used as `"href"` - -5. Send the POST request to add the Digital Twin to the Digital Twin Registry (DTR). -- A successful request will return a `200 OK` response. - -> [!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 HTTPie 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 [Base64 Encoder](https://www.base64encode.org/). - -Example: - -```bash -Digital Twin Id (UUID): 3f89d0d4-e11c-f83b-16fd-733c63d4e121 -Base64 Encoded: dXJuOnV1aWQ6M2Y4OWQwZDQtZTExYy1mODNiLTE2ZmQtNzMzYzYzZDRlMTIx -``` - -3. Replace in the following URL: - -```bash -https://dpp-registry.int.catena-x.net/semantics/registry/api/v3/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 HTTPie 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. - -If everything works fine, then you have reached the end 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](https://github.com/eclipse-tractusx/digital-product-pass/blob/main/dpp-tutorial/README.md#step-3---generate-the-qr-code) to aaccess 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/explorer-path-insomnia.md b/dpp-tutorial/explorer-path-insomnia.md deleted file mode 100644 index 7657f329d..000000000 --- a/dpp-tutorial/explorer-path-insomnia.md +++ /dev/null @@ -1,282 +0,0 @@ - - -# 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/ELebedkin/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 asepct model payload, by using the digital prodcut pass aspect model template. - -> [!Note] -> For a more technical explanation, refer to: How to create Aspect Model. - -### 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" - } -} - -``` - -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 -sustainability.productFootprint.carbon[0].value -``` - -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 -https://data-service.int.catena-x.net/urn:uuid:f10c0181-ce80-4139-81f0-a59226c88bfe -``` - -4. 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. - -5. 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. 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"` -> 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 -https://dpp-registry.int.catena-x.net/semantics/registry/api/v3/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 -https://dpp-registry.int.catena-x.net/semantics/registry/api/v3/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 aaccess 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 -