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

CRUD Digital Twins in DTR #18

Open
eckardg opened this issue Jan 23, 2025 · 4 comments
Open

CRUD Digital Twins in DTR #18

eckardg opened this issue Jan 23, 2025 · 4 comments
Assignees
Labels
industry-sdk refine-me! Issue that needs refinement

Comments

@eckardg
Copy link

eckardg commented Jan 23, 2025

  • Support Part Type ? - > Maybe think about it
  • Support Part Instance ? -> How to do it
@eckardg eckardg converted this from a draft issue Jan 23, 2025
@matbmoser matbmoser transferred this issue from eclipse-tractusx/industry-core-hub Feb 17, 2025
@matbmoser matbmoser added industry-sdk refine-me! Issue that needs refinement labels Feb 17, 2025
@matbmoser
Copy link
Contributor

{
    "description": [
        {
            "language": "en",
            "text": "Battery Digital Twin with CDC Verifiable Credential"
        }
    ],
    "displayName": [],
    "globalAssetId": "urn:uuid:880e3e40-fc3b-42f9-be6c-f7337ec7eda8",
    "idShort": "Battery_DPPV-0001",
    "id": "urn:uuid:880e3e40-fc3b-42f9-be6c-f7337ec7eda8",
    "specificAssetIds":
        [
            {
                "name": "digitalTwinType",
                "value": "PartInstance",
                "externalSubjectId": {
                    "type": "ExternalReference",
                    "keys": [
                        {
                            "type": "GlobalReference",
                            "value": "BPNL0073928UJ879"
                        }
                    ]
                }
            },
            {
                "name": "partInstanceId",
                "value": "DPPV-0001",
                "externalSubjectId": {
                    "type": "ExternalReference",
                    "keys": [
                        {
                            "type": "GlobalReference",
                            "value": "BPNL0073928UJ879"
                        }
                    ]
                }
            },
            {
                "name": "manufacturerPartId",
                "value": "MPI7654",
                "externalSubjectId": {
                    "type": "ExternalReference",
                    "keys": [
                        {
                            "type": "GlobalReference",
                            "value": "BPNL0073928UJ879"
                        },
                        {
                            "type": "GlobalReference",
                            "value": "PUBLIC_READABLE"
                        }
                    ]
                }
            },
            {
                "name": "manufacturerId",
                "value": "BPNL0073928UJ879",
                "externalSubjectId": {
                    "type": "ExternalReference",
                    "keys": [
                        {
                            "type": "GlobalReference",
                            "value": "BPNL0073928UJ879"
                        }
                    ]
                }
            }
        ],
    "submodelDescriptors": [
        {
            "endpoints": [
                {
                    "interface": "SUBMODEL-3.0",
                    "protocolInformation": {
                        "href": "https://dpp.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:d2e47115-c430-4145-bbde-1c743804a379",
                        "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": "digitalProductPass",
            "id": "urn:uuid:d2e47115-c430-4145-bbde-1c743804a379",
            "semanticId": {
                "type": "ExternalReference",
                "keys": [
                    {
                        "type": "Submodel",
                        "value": "urn:samm:io.catenax.generic.digital_product_passport:5.0.0#DigitalProductPassport"
                    }
                ]
            },
            "description": [
                {
                    "language": "en",
                    "text": "Verifiable Digital Product Passport Submodel"
                }
            ],
            "displayName": []
        }
    ]
}

@matbmoser
Copy link
Contributor

matbmoser commented Mar 4, 2025

template:

{
    "description": [
        {
            "language": "en",
            "text": "<<description>>"
        }
    ],
    "displayName": [],
    "globalAssetId": "urn:uuid:<<random-generated:default>>",
    "idShort": "<<productName>>",
    "id": "urn:uuid:<<random-generated:default>>,
    "specificAssetIds":
        [
            {
                "name": "digitalTwinType",
                "value": "<<default:PartInstance>>",
                "externalSubjectId": {
                    "type": "ExternalReference",
                    "keys": [
                        <<template for persmission>>: <<{
                            "type": "GlobalReference",
                            "value": "<<EXAMPLE:BPNL0073928UJ879>>"
                        }>>
                    ]
                }
            },
            {
                "name": "partInstanceId",
                "value": "DPPV-0001",
                "externalSubjectId": {
                    "type": "ExternalReference",
                    "keys": [
                        <<template for persmission>>: <<{
                            "type": "GlobalReference",
                            "value": "<<EXAMPLE:BPNL0073928UJ879>>"
                        }>>
                    ]
                }
            },
            {
                "name": "manufacturerPartId",
                "value": "<<manufacturerPartId>>",
                "externalSubjectId": {
                    "type": "ExternalReference",
                    "keys": [
                        <<template for persmission>>: <<{
                            "type": "GlobalReference",
                            "value": "<<EXAMPLE:BPNL0073928UJ879>>"
                        }>>
                        {
                            "type": "GlobalReference",
                            "value": "PUBLIC_READABLE"
                        }
                    ]
                }
            },
            {
                "name": "manufacturerId",
                "value": "BPNL0073928UJ879",
                "externalSubjectId": {
                    "type": "ExternalReference",
                    "keys": [
                        {
                            "type": "GlobalReference",
                            "value": "<<EXAMPLE:BPNL0073928UJ879>>"
                        }
                    ]
                }
            }
        ],
    "submodelDescriptors": []
}

@matbmoser
Copy link
Contributor

matbmoser commented Mar 4, 2025

template for submodel inside of submodelDescriptors:

 {
            "endpoints": [
                {
                    "interface": "SUBMODEL-3.0",
                    "protocolInformation": {
                        "href": "<<dataplaneUrl>>/<<pathToData>>",
                        "endpointProtocol": "HTTP",
                        "endpointProtocolVersion": [
                            "1.1"
                        ],
                        "subprotocol": "DSP",
                        "subprotocolBody": "id=<<assetIdEdc>>;dspEndpoint=<<edcControlplaneUrl>>",
                        "subprotocolBodyEncoding": "plain",
                        "securityAttributes": [
                            {
                                "type": "NONE",
                                "key": "NONE",
                                "value": "NONE"
                            }
                        ]
                    }
                }
            ],
            "idShort": "<<submodelid:Example:digitalProductPass>>",
            "id": "urn:uuid:<<randomGeneratedUuid4>>",
            "semanticId": {
                "type": "ExternalReference",
                "keys": [
                    {
                        "type": "Submodel",
                        "value": "<<submodelId: EXAMPLE:urn:samm:io.catenax.generic.digital_product_passport:5.0.0#DigitalProductPassport>>"
                    }
                ]
            },
            "description": [
                {
                    "language": "en",
                    "text": "<<DESCRIPTION FROM SUBMODEL>>"
                }
            ],
            "displayName": []
        }
    ]

@matbmoser
Copy link
Contributor

related to #13 -> implement here the "generic" registration of submodels, and then in the other one we can think about how to specify the templates

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
industry-sdk refine-me! Issue that needs refinement
Projects
Development

No branches or pull requests

3 participants