Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hotfix: Update dpp tutorial guide #427

Merged
merged 1 commit into from
Oct 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 9 additions & 11 deletions dpp-tutorial/aspect-model.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ This guide provides a simple explanation on how to create a digital product pass

You must fullfill the following pre-requisites:

- A Catena-X Standarized Aspect Model (in this case we use the [Digital Product Pass v2.0.0 Model](https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.generic.digital_product_passport/2.0.0))
- 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)

Expand Down Expand Up @@ -83,7 +83,7 @@ Example:

### 2º - Copy the digital product pass aspect model template into a new file or window

Paste this [Digital Product Passport v2.0.0 Payload](./resources/payloads/example.json) in the VS Code/Notepad++:
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)

Expand All @@ -94,7 +94,7 @@ It is a test data template that can be personalized to your part with the test d
For example for adding the PCF value follow the following path:

```text
sustainability.PEF.carbon.value
sustainability.productFootprint.carbon[0].value
```

Example:
Expand All @@ -107,19 +107,17 @@ Follow this paths to find where the information is located.

| Property | Path |
| -------- | ----- |
| Name (Really short) | typology.shortName |
| Complete Name (More fancy name) | typology.longName |
| Class/Type of Part | typology.class.definition |
| PCF | sustainability.PEF.carbon.value |
| 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.localIdentifier.value |
|Part Instance Id | identification.serial[0].value |
|Manufacturing Date |operation.manufacturer.manufacturingDate |
|List of Materials | sustainability.material.left.name.name (Add In Array)|
|Hazard Materials | critical.left (add elements to list) |
| Guarantee | lifespan (Add value and unit for garantee) |
| Guarantee | lifespan[0].value (Add value) |
| Guarantee | lifespan[0].unit (Add unit:months) |

Congratulations! You have successfully created your own digital product pass!

Expand Down
4 changes: 3 additions & 1 deletion dpp-tutorial/digital-twin-provision.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,9 +91,11 @@ Replace the following placeholders:
```bash
<PART_INSTANCE_ID> -> the value of part instance written on datasheet
<PART_NAME> -> the part number is written on the datasheet from a part
<UUID> -> the UUID written on datasheet
<UUID-1> -> 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).
Expand Down
2 changes: 1 addition & 1 deletion dpp-tutorial/qr-code.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Follow the steps below to generate and download a QR code in .svg format:
- Enter the desired text in the empty field/box. In this case we need the following information: **CX:\<manufacturerPartId>:\<partInstanceId>**
- This is the \<manufacturerPartId>:
```
MPI0012
MPI7654
```
- You can find the \<partInstanceId> value on the car part information sheet
- Click **"Download"** on the right side below the QR code
Expand Down
128 changes: 30 additions & 98 deletions dpp-tutorial/resources/digital-twins/car-dt-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,47 +8,47 @@
"displayName": [],
"globalAssetId": "urn:uuid:e5ab3398-bde1-4ef2-bb70-fd6dd1138e59",
"idShort": "Car",
"id": "UUID",
"id": "<UUID-1>",
"specificAssetIds": [
{
"name": "partInstanceId",
"value": "<YOUR PART INSTANCE ID>",
"name": "manufacturerId",
"value": "BPNL000000000FV1",
"externalSubjectId": {
"type": "ExternalReference",
"keys": [
{
"type": "GlobalReference",
"value": "BPNL0073928UJ879"
"value": "BPNL000000000FV1"
}
]
}
},
{
"name": "manufacturerPartId",
"value": "MPI0012",
"name": "partInstanceId",
"value": "<YOUR PART INSTANCE ID>",
"externalSubjectId": {
"type": "ExternalReference",
"keys": [
{
"type": "GlobalReference",
"value": "BPNL0073928UJ879"
},
{
"type": "GlobalReference",
"value": "PUBLIC_READABLE"
"value": "BPNL000000000FV1"
}
]
}
},
{
"name": "manufacturerId",
"value": "BPNL0073928UJ879",
"name": "manufacturerPartId",
"value": "MPI7654",
"externalSubjectId": {
"type": "ExternalReference",
"keys": [
{
"type": "GlobalReference",
"value": "BPNL0073928UJ879"
"value": "PUBLIC_READABLE"
},
{
"type": "GlobalReference",
"value": "BPNL000000000FV1"
}
]
}
Expand All @@ -61,7 +61,7 @@
"keys": [
{
"type": "GlobalReference",
"value": "BPNL0073928UJ879"
"value": "BPNL000000000FV1"
}
]
}
Expand All @@ -73,11 +73,11 @@
{
"interface": "SUBMODEL-3.0",
"protocolInformation": {
"href": "https://dpp.int.demo.catena-x.net/BPNL000000000000/api/public/data/<UUID>",
"href": "https://dpp.int.catena-x.net/provider/api/public/<UUID-2>",
"endpointProtocol": "HTTP",
"endpointProtocolVersion": ["1.1"],
"subprotocol": "DSP",
"subprotocolBody": "id=urn:uuid:0c3d2db0-e5c6-27f9-5875-15a9a00e7a27;dspEndpoint=https://dpp.int.demo.catena-x.net/BPNL000000000000",
"subprotocolBody": "id=urn:uuid:0c3d2db0-e5c6-27f9-5875-15a9a00e7a27;dspEndpoint=https://dpp.int.catena-x.net/provider",
"subprotocolBodyEncoding": "plain",
"securityAttributes": [
{
Expand All @@ -90,100 +90,32 @@
}
],
"idShort": "digitalProductPass",
"id": "<UUID>",
"id": "<UUID-2>",
"semanticId": {
"type": "ExternalReference",
"keys": [
{
"type": "Submodel",
"value": "urn:samm:io.catenax.generic.digital_product_passport:2.0.0#DigitalProductPassport"
}
]
},
"description": [
{
"language": "en",
"text": "Digital Product Pass Submodel"
}
],
"displayName": []
},
{
"endpoints": [
{
"interface": "SUBMODEL-3.0",
"protocolInformation": {
"href": "https://dpp.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:dea9dfe8-77a2-e7f9-ba78-e96ecc54528b",
"endpointProtocol": "HTTP",
"endpointProtocolVersion": ["1.1"],
"subprotocol": "DSP",
"subprotocolBody": "id=urn:uuid:0c3d2db0-e5c6-27f9-5875-15a9a00e7a27;dspEndpoint=https://dpp.int.demo.catena-x.net/BPNL000000000000",
"subprotocolBodyEncoding": "plain",
"securityAttributes": [
{
"type": "NONE",
"key": "NONE",
"value": "NONE"
}
]
}
}
],
"idShort": "singleLevelBomAsBuilt",
"id": "urn:uuid:dea9dfe8-77a2-e7f9-ba78-e96ecc54528b",
"semanticId": {
"type": "ExternalReference",
"keys": [
"type": "Operation",
"value": "https://w3c.github.io/vc-jws-2020/contexts/v1/"
},
{
"type": "Submodel",
"value": "urn:bamm:io.catenax.single_level_bom_as_built:3.0.0#SingleLevelBomAsBuilt"
}
]
},
"description": [
{
"language": "en",
"text": "Single level Bom As Built Submodel"
}
],
"displayName": []
},
{
"endpoints": [
{
"interface": "SUBMODEL-3.0",
"protocolInformation": {
"href": "https://dpp.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:58f2acd1-4c64-6fb1-7390-a340ef712334",
"endpointProtocol": "HTTP",
"endpointProtocolVersion": ["1.1"],
"subprotocol": "DSP",
"subprotocolBody": "id=urn:uuid:0c3d2db0-e5c6-27f9-5875-15a9a00e7a27;dspEndpoint=https://dpp.int.demo.catena-x.net/BPNL000000000000",
"subprotocolBodyEncoding": "plain",
"securityAttributes": [
{
"type": "NONE",
"key": "NONE",
"value": "NONE"
}
]
}
}
],
"idShort": "SerialPart",
"id": "urn:uuid:58f2acd1-4c64-6fb1-7390-a340ef712334",
"semanticId": {
"type": "ExternalReference",
"keys": [
"value": "urn:samm:io.catenax.generic.digital_product_passport:5.0.0#DigitalProductPassport"
},
{
"type": "Submodel",
"value": "urn:bamm:io.catenax.serial_part:1.0.1#SerialPart"
"type": "Entity",
"value": "https://www.w3.org/ns/credentials/v2"
},
{
"type": "DataElement",
"value": "urn:samm:io.catenax.dpp_verification.cdc:1.0.0#CertifiedDataCredential"
}
]
},
"description": [
{
"language": "en",
"text": "DPP SerialPart Submodel"
"text": "Digital Product Pass Submodel"
}
],
"displayName": []
Expand Down
52 changes: 32 additions & 20 deletions dpp-tutorial/resources/digital-twins/example-dt.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,49 +6,49 @@
}
],
"displayName": [],
"globalAssetId": "urn:uuid:e5ab3398-bde1-4ef2-bb70-fd6dd1138e59",
"globalAssetId": "urn:uuid:e5ab3398-bde1-4ef2-bb70-fd6dd1138e60",
"idShort": "<PART_NAME>",
"id": "<UUID>",
"id": "<UUID-1>",
"specificAssetIds": [
{
"name": "partInstanceId",
"value": "<PART_INSTANCE_ID>",
"name": "manufacturerId",
"value": "BPNL000000000FV1",
"externalSubjectId": {
"type": "ExternalReference",
"keys": [
{
"type": "GlobalReference",
"value": "BPNL0073928UJ879"
"value": "BPNL000000000FV1"
}
]
}
},
{
"name": "manufacturerPartId",
"value": "MPI0012",
"name": "partInstanceId",
"value": "<YOUR PART INSTANCE ID>",
"externalSubjectId": {
"type": "ExternalReference",
"keys": [
{
"type": "GlobalReference",
"value": "BPNL0073928UJ879"
},
{
"type": "GlobalReference",
"value": "PUBLIC_READABLE"
"value": "BPNL000000000FV1"
}
]
}
},
{
"name": "manufacturerId",
"value": "BPNL0073928UJ879",
"name": "manufacturerPartId",
"value": "MPI7654",
"externalSubjectId": {
"type": "ExternalReference",
"keys": [
{
"type": "GlobalReference",
"value": "BPNL0073928UJ879"
"value": "PUBLIC_READABLE"
},
{
"type": "GlobalReference",
"value": "BPNL000000000FV1"
}
]
}
Expand All @@ -61,7 +61,7 @@
"keys": [
{
"type": "GlobalReference",
"value": "BPNL0073928UJ879"
"value": "BPNL000000000FV1"
}
]
}
Expand All @@ -73,11 +73,11 @@
{
"interface": "SUBMODEL-3.0",
"protocolInformation": {
"href": "https://dpp.int.demo.catena-x.net/BPNL000000000000/api/public/data/<UUID>",
"href": "https://dpp.int.catena-x.net/provider/api/public/<UUID-2>",
"endpointProtocol": "HTTP",
"endpointProtocolVersion": ["1.1"],
"subprotocol": "DSP",
"subprotocolBody": "id=urn:uuid:0c3d2db0-e5c6-27f9-5875-15a9a00e7a27;dspEndpoint=https://dpp.int.demo.catena-x.net/BPNL000000000000",
"subprotocolBody": "id=urn:uuid:0c3d2db0-e5c6-27f9-5875-15a9a00e7a27;dspEndpoint=https://dpp.int.catena-x.net/provider",
"subprotocolBodyEncoding": "plain",
"securityAttributes": [
{
Expand All @@ -90,13 +90,25 @@
}
],
"idShort": "digitalProductPass",
"id": "<UUID>",
"id": "<UUID-2>",
"semanticId": {
"type": "ExternalReference",
"keys": [
{
"type": "Operation",
"value": "https://w3c.github.io/vc-jws-2020/contexts/v1/"
},
{
"type": "Submodel",
"value": "urn:samm:io.catenax.generic.digital_product_passport:2.0.0#DigitalProductPassport"
"value": "urn:samm:io.catenax.generic.digital_product_passport:5.0.0#DigitalProductPassport"
},
{
"type": "Entity",
"value": "https://www.w3.org/ns/credentials/v2"
},
{
"type": "DataElement",
"value": "urn:samm:io.catenax.dpp_verification.cdc:1.0.0#CertifiedDataCredential"
}
]
},
Expand Down
Loading
Loading