eclipse-tractusx / sig-release

https://eclipse-tractusx.github.io/sig-release
Apache License 2.0
8 stars 8 forks source link

[DPP] Implementation of Digital Product Pass Verification Concept released in v24.05 #655

Closed matbmoser closed 2 months ago

matbmoser commented 5 months ago

Description

The Digital Product Pass Verification is a work in progress add-on that is being done at the end of consortia phase. The documentation was published in the release R24.05 https://github.com/eclipse-tractusx/digital-product-pass/blob/main/dpp-verification and it explains how the concept is.

This implementation is limited to the "consumer" part and enables the Minimal Viable Solution for "certifying" data and testing its verification in the Digital Product Pass application. Since the DPP application is only a consumer application.

Objectives

Context Diagram

Context Diagram

User Changelog

Digital Product Pass Verification Add-on Backend Implementation

Digital Product Pass Verification Add-on Implementation is finally available at the digital product pass backend. The backend was refactored to be constructure in a modular way. All the core components of the backend were moved into the 'core' module. The 'verification' module includes all the functionality required to verify credentials using the simple wallet component.

Digital Product Pass Simple Wallet from DPP Verification Add-on Available

A functional wallet developed in Python is now available. It is a minimal viable wallet component that can be used to:

Digital Product Pass Verification Add-on Schemas and Semantics Available

Now the semantic models for the Certified Data Credential and some examples are available under dpp-verification semantics. Also its available the json-ld schemas for the digital product pass aspect model and the certified data credential under schemas.

Digital Product Pass Verification Add-on Frontend Implementation

Visualize if the credential you are retriving is verifiable or not. Be able to refresh the verification of the credential signature on the fly and be able to visualize the issuer, owner and wallet that handled the verification.

Impact

Dependencies

Additional information

Link to documentation: https://github.com/eclipse-tractusx/digital-product-pass/tree/main/dpp-verification

Tasks

Committers

Pull Requests

Related Issues

Artifacts

stephanbcbauer commented 5 months ago

Was presented in the open planning ⇾ responsible committers are already defined

matbmoser commented 3 months ago

Ok I am starting to work on this ticket since yesterday. First challenge, make a "valid" CDC and CSC json-ld credentials based on info from semantic hub. I will be linking the tasks to this feature.

matbmoser commented 3 months ago

Using the schema file we are able to generate this view:

Image where the schema context can reference to

matbmoser commented 3 months ago

Image

matbmoser commented 3 months ago

I have just created an amazing thing:

Image

This python function uses "recursion" to generate a JSON-LD context from a json schema from ANY! Catena-X Aspect model: Example with bom as build:

Collapse this to see the REQUEST ```json { "semanticId": "urn:samm:io.catenax.single_level_bom_as_built:3.0.0#", "schema": { "$schema" : "http://json-schema.org/draft-04/schema", "description" : "The single-level bill of material represents one sub-level of an assembly and does not include any lower-level subassemblies. The as-built lifecycle references all child items as manufactured by the manufacturer referencing only child items in an as-built lifecycle themselves (e.g. serial parts or batches), unless parts can only be tracked by an part ID (on a type level).\n\nIf it is unclear which item has been built-in into the parent item, all potential parts must be listed. This is the case when, e.g. the same item is supplied by two suppliers and the item is only tracked by a customer part ID during assembly, these items can not be differentiated from each other.\n", "type" : "object", "components" : { "schemas" : { "urn_samm_io.catenax.shared.uuid_2.0.0_UuidV4Trait" : { "type" : "string", "description" : "The provided regular expression ensures that the UUID is composed of five groups of characters separated by hyphens, in the form 8-4-4-4-12 for a total of 36 characters (32 hexadecimal characters and 4 hyphens), optionally prefixed by \"urn:uuid:\" to make it an IRI.", "pattern" : "(^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$)|(^urn:uuid:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$)" }, "urn_samm_io.catenax.single_level_bom_as_built_3.0.0_DateTimeTrait" : { "type" : "string", "description" : "Regular Expression to enable UTC and Timezone formats and the possibility to exclude time information.", "pattern" : "^-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?)?$" }, "urn_samm_io.catenax.shared.quantity_2.0.0_QuantityValueCharacteristic" : { "type" : "number", "description" : "The quantity value associated with the unit expressed as float." }, "urn_samm_io.catenax.shared.quantity_2.0.0_ItemUnitEnumeration" : { "type" : "string", "pattern" : "[a-zA-Z]*:[a-zA-Z]+", "description" : "Enumeration for common item units.", "enum" : [ "unit:piece", "unit:set", "unit:pair", "unit:page", "unit:cycle", "unit:kilowattHour", "unit:gram", "unit:kilogram", "unit:tonneMetricTon", "unit:tonUsOrShortTonUkorus", "unit:ounceAvoirdupois", "unit:pound", "unit:metre", "unit:centimetre", "unit:kilometre", "unit:inch", "unit:foot", "unit:yard", "unit:squareCentimetre", "unit:squareMetre", "unit:squareInch", "unit:squareFoot", "unit:squareYard", "unit:cubicCentimetre", "unit:cubicMetre", "unit:cubicInch", "unit:cubicFoot", "unit:cubicYard", "unit:litre", "unit:millilitre", "unit:hectolitre", "unit:secondUnitOfTime", "unit:minuteUnitOfTime", "unit:hourUnitOfTime", "unit:day" ] }, "urn_samm_io.catenax.shared.quantity_2.0.0_ItemQuantityCharacteristic" : { "description" : "Characteristic for measurements of an item (mass, count, linear, area, volume, misc).", "type" : "object", "properties" : { "value" : { "description" : "The quantity value associated with the unit.", "$ref" : "#/components/schemas/urn_samm_io.catenax.shared.quantity_2.0.0_QuantityValueCharacteristic" }, "unit" : { "description" : "The unit of an item. Common units may be related to mass, count, linear, area, volume or misc.", "$ref" : "#/components/schemas/urn_samm_io.catenax.shared.quantity_2.0.0_ItemUnitEnumeration" } }, "required" : [ "value", "unit" ] }, "urn_samm_io.catenax.shared.business_partner_number_2.0.0_BpnlTrait" : { "type" : "string", "description" : "The provided regular expression ensures that the BPNL is composed of prefix 'BPNL', 10 digits and two alphanumeric letters.", "pattern" : "^BPNL[a-zA-Z0-9]{12}$" }, "urn_samm_org.eclipse.esmf.samm_characteristic_2.1.0_Boolean" : { "type" : "boolean", "description" : "Represents a boolean value (i.e. a \"flag\")." }, "urn_samm_io.catenax.single_level_bom_as_built_3.0.0_ChildData" : { "description" : "Catena-X ID and meta data of the assembled child item.", "type" : "object", "properties" : { "createdOn" : { "description" : "Timestamp when the relation between the parent item and the child item was created, e.g. when the serialized child part was assembled into the given part.", "$ref" : "#/components/schemas/urn_samm_io.catenax.single_level_bom_as_built_3.0.0_DateTimeTrait" }, "quantity" : { "description" : "Quantity of which the child item is assembled into the parent item. In general it is '1' for serialized parts.", "$ref" : "#/components/schemas/urn_samm_io.catenax.shared.quantity_2.0.0_ItemQuantityCharacteristic" }, "lastModifiedOn" : { "description" : "Timestamp when the assembly relationship between parent item and child item was last modified.", "$ref" : "#/components/schemas/urn_samm_io.catenax.single_level_bom_as_built_3.0.0_DateTimeTrait" }, "businessPartner" : { "description" : "The supplier of the given child item.", "$ref" : "#/components/schemas/urn_samm_io.catenax.shared.business_partner_number_2.0.0_BpnlTrait" }, "hasAlternatives" : { "description" : "Expresses whether the part is built-in or wether it is one of several options. If the value is false, it can be assumed this exact item is built-in. If the value is true, it is unknown wether this or an alternative item is built-in.\nThis is the case when, e.g. the same item is supplied by two suppliers, the item is only tracked by a customer part ID during assembly. Thus, these items can not be differentiated from each other.\n\n", "$ref" : "#/components/schemas/urn_samm_org.eclipse.esmf.samm_characteristic_2.1.0_Boolean" }, "catenaXId" : { "description" : "The Catena-X ID of the given part (e.g. the component), valid for the Catena-X dataspace.", "$ref" : "#/components/schemas/urn_samm_io.catenax.shared.uuid_2.0.0_UuidV4Trait" } }, "required" : [ "createdOn", "quantity", "businessPartner", "hasAlternatives", "catenaXId" ] }, "urn_samm_io.catenax.single_level_bom_as_built_3.0.0_SetOfChildItemsCharacteristic" : { "description" : "Set of child items the parent item was assembled by (one structural level down).", "type" : "array", "items" : { "$ref" : "#/components/schemas/urn_samm_io.catenax.single_level_bom_as_built_3.0.0_ChildData" }, "uniqueItems" : true } } }, "properties" : { "catenaXId" : { "description" : "The Catena-X ID of the given part (e.g. the component), valid for the Catena-X dataspace.", "$ref" : "#/components/schemas/urn_samm_io.catenax.shared.uuid_2.0.0_UuidV4Trait" }, "childItems" : { "description" : "Set of child items, of which the given parent item was assembled by (one structural level down).", "$ref" : "#/components/schemas/urn_samm_io.catenax.single_level_bom_as_built_3.0.0_SetOfChildItemsCharacteristic" } }, "required" : [ "catenaXId", "childItems" ] } } ```
matbmoser commented 3 months ago

And this is produced:

Collapse this to see the RESPONSE ```json { "@context": { "@version": 1.1, "catenaXId": { "@definition": "The Catena-X ID of the given part (e.g. the component), valid for the Catena-X dataspace.", "@type": "schema:string" }, "childItems": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "businessPartner": { "@definition": "The supplier of the given child item.", "@type": "schema:string" }, "catenaXId": { "@definition": "The Catena-X ID of the given part (e.g. the component), valid for the Catena-X dataspace.", "@type": "schema:string" }, "createdOn": { "@definition": "Timestamp when the relation between the parent item and the child item was created, e.g. when the serialized child part was assembled into the given part.", "@type": "schema:string" }, "hasAlternatives": { "@definition": "Expresses whether the part is built-in or wether it is one of several options. If the value is false, it can be assumed this exact item is built-in. If the value is true, it is unknown wether this or an alternative item is built-in.\nThis is the case when, e.g. the same item is supplied by two suppliers, the item is only tracked by a customer part ID during assembly. Thus, these items can not be differentiated from each other.\n\n", "@type": "schema:boolean" }, "id": "@id", "lastModifiedOn": { "@definition": "Timestamp when the assembly relationship between parent item and child item was last modified.", "@type": "schema:string" }, "quantity": { "@context": { "@version": 1.1, "id": "@id", "type": "@type", "unit": { "@definition": "The unit of an item. Common units may be related to mass, count, linear, area, volume or misc.", "@type": "schema:string" }, "value": { "@definition": "The quantity value associated with the unit.", "@type": "schema:number" } }, "@definition": "Quantity of which the child item is assembled into the parent item. In general it is '1' for serialized parts." }, "type": "@type" }, "@definition": "Catena-X ID and meta data of the assembled child item." }, "@definition": "Set of child items, of which the given parent item was assembled by (one structural level down)." }, "id": "@id", "type": "@type" }, "@definition": "The single-level bill of material represents one sub-level of an assembly and does not include any lower-level subassemblies. The as-built lifecycle references all child items as manufactured by the manufacturer referencing only child items in an as-built lifecycle themselves (e.g. serial parts or batches), unless parts can only be tracked by an part ID (on a type level).\n\nIf it is unclear which item has been built-in into the parent item, all potential parts must be listed. This is the case when, e.g. the same item is supplied by two suppliers and the item is only tracked by a customer part ID during assembly, these items can not be differentiated from each other.\n", "aspect": "urn:samm:io.catenax.single_level_bom_as_built:3.0.0#", "schema": "https://schema.org/" } ```
matbmoser commented 3 months ago

I present the first valid JSON-LD credential for Catena-X built in a generic way for any data model:

{
    "id": "https://tx-dpp.int.demo.catena-x.net/provider_backend/data/cx:mfg024:prt-30001",
    "@context": [
        "https://www.w3.org/2018/credentials/v1",
        "https://w3c.github.io/vc-jws-2020/contexts/v1",
        {
            "aspect": "urn:samm:io.catenax.single_level_bom_as_built:3.0.0#",
            "schema": "https://schema.org/"
        },
        {
            "@context": {
                "@version": 1.1,
                "catenaXId": {
                    "@context": {
                        "@definition": "The Catena-X ID of the given part (e.g. the component), valid for the Catena-X dataspace."
                    },
                    "@id": "aspect:catenaXId",
                    "@type": "schema:string"
                },
                "childItems": {
                    "@container": "@list",
                    "@context": {
                        "@context": {
                            "@version": 1.1,
                            "businessPartner": {
                                "@context": {
                                    "@definition": "The supplier of the given child item."
                                },
                                "@id": "aspect:businessPartner",
                                "@type": "schema:string"
                            },
                            "catenaXId": {
                                "@context": {
                                    "@definition": "The Catena-X ID of the given part (e.g. the component), valid for the Catena-X dataspace."
                                },
                                "@id": "aspect:catenaXId",
                                "@type": "schema:string"
                            },
                            "createdOn": {
                                "@context": {
                                    "@definition": "Timestamp when the relation between the parent item and the child item was created, e.g. when the serialized child part was assembled into the given part."
                                },
                                "@id": "aspect:createdOn",
                                "@type": "schema:string"
                            },
                            "hasAlternatives": {
                                "@context": {
                                    "@definition": "Expresses whether the part is built-in or wether it is one of several options. If the value is false, it can be assumed this exact item is built-in. If the value is true, it is unknown wether this or an alternative item is built-in.\nThis is the case when, e.g. the same item is supplied by two suppliers, the item is only tracked by a customer part ID during assembly. Thus, these items can not be differentiated from each other.\n\n"
                                },
                                "@id": "aspect:hasAlternatives",
                                "@type": "schema:boolean"
                            },
                            "id": "@id",
                            "lastModifiedOn": {
                                "@context": {
                                    "@definition": "Timestamp when the assembly relationship between parent item and child item was last modified."
                                },
                                "@id": "aspect:lastModifiedOn",
                                "@type": "schema:string"
                            },
                            "quantity": {
                                "@context": {
                                    "@definition": "Quantity of which the child item is assembled into the parent item. In general it is '1' for serialized parts.",
                                    "@version": 1.1,
                                    "id": "@id",
                                    "type": "@type",
                                    "unit": {
                                        "@context": {
                                            "@definition": "The unit of an item. Common units may be related to mass, count, linear, area, volume or misc."
                                        },
                                        "@id": "aspect:unit",
                                        "@type": "schema:string"
                                    },
                                    "value": {
                                        "@context": {
                                            "@definition": "The quantity value associated with the unit."
                                        },
                                        "@id": "aspect:value",
                                        "@type": "schema:number"
                                    }
                                },
                                "@id": "aspect:quantity"
                            },
                            "type": "@type"
                        },
                        "@definition": "Set of child items, of which the given parent item was assembled by (one structural level down).",
                        "@version": 1.1,
                        "id": "@id",
                        "type": "@type"
                    },
                    "@id": "aspect:childItems"
                },
                "id": "@id",
                "type": "@type"
            },
            "@id": "SingleLevelBomAsBuilt"
        }
    ],
    "type": [
        "VerifiableCredential",
        "CDC",
        "DPP"
    ],
    "issuer": "did:web:wallet-url.test.com:BPNL00000007RVTB",
    "parent": {
        "@id": "did:web:dpp-test-system.com:BPNL000000000000:api:public:urn%3Auuid%3A1c5b6a7c-90d4-3481-0538-f134ff53076d",
        "checksum": "64b1a523da600e8fc0018cf57b8f7756b83bb6e9b11c81b1c7444272fab239902321b1b6ae6624d6846fd010616ae98c118f12491f922badd64e58b782c6a115"
    },
    "credentialSubject": {
        "catenaXId": "urn:uuid:055c1128-0375-47c8-98de-7cf802c3241d",
        "childItems": [
            {
                "catenaXId": "urn:uuid:055c1128-0375-47c8-98de-7cf802c3241d",
                "quantity": {
                    "value": 20.0,
                    "unit": "unit:piece"
                },
                "hasAlternatives": false,
                "createdOn": "2022-02-03T14:48:54.709Z",
                "businessPartner": "BPNL50096894aNXY",
                "lastModifiedOn": "2022-02-03T14:48:54.709Z"
            }
        ]
    },
    "issuanceDate": "2024-02-15T00:00:00.000Z",
    "proof": {
        "type": "JsonWebSignature2020",
        "created": "2024-02-15T12:35:39Z",
        "verificationMethod": "did:web:wallet-url.test.com:BPNL00000007RVTB#8f858500-7008-4b97-a8bb-605d4c8eca75",
        "proofPurpose": "assertionMethod",
        "jws": "eyJhbGciOiJFZERTQSJ9..4snTkqta4UwXIAtKJiIEDhiwmVtAC3kml0j7Wc25vmTbLbPlviXgL9he9X0A0xRTNlnsEwILf0NbPIyeztzJCw"
    }
}

Which can be expanded in this:

Click to see the expanded json-ld ```json [ { "https://www.w3.org/2018/credentials#credentialSubject": [ { "urn:samm:io.catenax.single_level_bom_as_built:3.0.0#catenaXId": [ { "@type": "https://schema.org/string", "@value": "urn:uuid:055c1128-0375-47c8-98de-7cf802c3241d" } ], "urn:samm:io.catenax.single_level_bom_as_built:3.0.0#childItems": [ { "@list": [ { "urn:samm:io.catenax.single_level_bom_as_built:3.0.0#businessPartner": [ { "@type": "https://schema.org/string", "@value": "BPNL50096894aNXY" } ], "urn:samm:io.catenax.single_level_bom_as_built:3.0.0#catenaXId": [ { "@type": "https://schema.org/string", "@value": "urn:uuid:055c1128-0375-47c8-98de-7cf802c3241d" } ], "urn:samm:io.catenax.single_level_bom_as_built:3.0.0#createdOn": [ { "@type": "https://schema.org/string", "@value": "2022-02-03T14:48:54.709Z" } ], "urn:samm:io.catenax.single_level_bom_as_built:3.0.0#hasAlternatives": [ { "@type": "https://schema.org/boolean", "@value": false } ], "urn:samm:io.catenax.single_level_bom_as_built:3.0.0#lastModifiedOn": [ { "@type": "https://schema.org/string", "@value": "2022-02-03T14:48:54.709Z" } ], "urn:samm:io.catenax.single_level_bom_as_built:3.0.0#quantity": [ { "urn:samm:io.catenax.single_level_bom_as_built:3.0.0#unit": [ { "@type": "https://schema.org/string", "@value": "unit:piece" } ], "urn:samm:io.catenax.single_level_bom_as_built:3.0.0#value": [ { "@type": "https://schema.org/number", "@value": 20 } ] } ] } ] } ] } ], "@id": "https://tx-dpp.int.demo.catena-x.net/provider_backend/data/cx:mfg024:prt-30001", "https://www.w3.org/2018/credentials#issuanceDate": [ { "@type": "http://www.w3.org/2001/XMLSchema#dateTime", "@value": "2024-02-15T00:00:00.000Z" } ], "https://www.w3.org/2018/credentials#issuer": [ { "@id": "did:web:wallet-url.test.com:BPNL00000007RVTB" } ], "https://w3id.org/security#proof": [ { "@graph": [ { "http://purl.org/dc/terms/created": [ { "@type": "http://www.w3.org/2001/XMLSchema#dateTime", "@value": "2024-02-15T12:35:39Z" } ], "https://w3id.org/security#jws": [ { "@value": "eyJhbGciOiJFZERTQSJ9..4snTkqta4UwXIAtKJiIEDhiwmVtAC3kml0j7Wc25vmTbLbPlviXgL9he9X0A0xRTNlnsEwILf0NbPIyeztzJCw" } ], "https://w3id.org/security#proofPurpose": [ { "@id": "https://w3id.org/security#assertionMethod" } ], "@type": [ "https://w3id.org/security#JsonWebSignature2020" ], "https://w3id.org/security#verificationMethod": [ { "@id": "did:web:wallet-url.test.com:BPNL00000007RVTB#8f858500-7008-4b97-a8bb-605d4c8eca75" } ] } ] } ], "@type": [ "https://www.w3.org/2018/credentials#VerifiableCredential", "CDC", "DPP" ] } ] ```
stephanbcbauer commented 3 months ago

Hello @saudkhan116, @matbmoser

Since the feature is a 24.08 feature and the development phase is coming to an end, we need a status on the feature.

If you need any clarification, please get in touch, thank you very much. Stephan

matbmoser commented 3 months ago

Status here:

matbmoser commented 3 months ago

Signed for the first time the verifiable credential using a real private key:

Image

I will try to verify it :)

Expand to see the full credential ```json { "id": "urn:uuid:fe2dac16-8b62-4400-94af-2bf45a476a4e", "@context": [ "https://www.w3.org/2018/credentials/v1", "https://w3c.github.io/vc-jws-2020/contexts/v1", { "@context": { "@version": 1.1, "CertifiedDataCredential": { "@context": { "@definition": "Credential that contains the complete passport and is signed by the issuer of the data. It allows to track changes during the updates from the passport in the supply chain.\nIt can be \"self-testified\" by the data provider when creating/issuing the passport data.", "@version": 1.1, "id": "@id", "parent": { "@context": { "@definition": "The parent object contains the link for the previous verifiable credential version of the data.", "@version": 1.1, "checksum": { "@context": { "@definition": "Constains the SHA512 Hash of the complete verifiable credential of the parent content" }, "@id": "cdc:checksum", "@type": "schema:string" }, "id": { "@context": { "@definition": "Contains the DID identification of the previous verifiable credential node" }, "@id": "cdc:id", "@type": "schema:string" }, "type": "@type" }, "@id": "cdc:parent" }, "type": "@type" }, "@id": "cdc:CertifiedDataCredential" }, "cdc": "urn:samm:io.catenax.dpp_verification.cdc:1.0.0#", "schema": "https://schema.org/" } }, { "@context": { "@version": 1.1, "id": "@id", "type": "@type", "aspect": "urn:samm:io.catenax.generic.digital_product_passport:5.0.0#", "schema": "https://schema.org/", "DigitalProductPassport": { "@id": "aspect:DigitalProductPassport", "@context": { "@definition": "The Digital Product Passport (DPP) allows to share process and product-related information amongst supply chain businesses, authorities and consumers. The DPP allows for efficient information flows following best practices; and the possibility of accompanying the measures under this Regulation with mitigating measures so that impacts are expected to remain proportionate for SMEs.This is expected to increase transparency, both for supply chain businesses and for the general public, and increase efficiencies in terms of information transfer to support the data exchange between economic actors in integrating circularity in product design and manufacturing.\nIn particular, it is likely to help facilitate and streamline the monitoring and enforcement of the regulation carried out by EU and Member State authorities. It is also likely to provide a market-intelligence tool that may be used for revising and refining obligations in the future.\nThe DPP includes data about components, materials and chemical substances, information on reparability, spare parts, environmental impact and professional disposal for a product.\nThe data model will be updated, as newer versions of the regulation will be published.\nThe main basis is provided by the document \"Proposal for a REGULATION OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL establishing a framework for setting ecodesign requirements for sustainable products and repealing Directive 2009/125/EC\" from March 30th, 2022. The latest version of the document was the provisional agreement between the EU Council and the Parliament from January 9th, 2024. The text is informal, but the content of the final regulation was agreed between these two institutions.\nThe Title of Ecodesign Regulation has been changed to: Proposal for a REGULATION OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL establishing a framework for setting ecodesign requirements for sustainable products, amending Regulation (EU) 2023/1542 and repealing Directive 2009/125/EC.", "@version": 1.1, "additionalData": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "children": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "data": { "@context": { "@definition": "The content from the attribute which is a depended of the data type and typeUnit." }, "@id": "aspect:data", "@type": "schema:string" }, "description": { "@context": { "@definition": "The description of the attribute context." }, "@id": "aspect:description", "@type": "schema:string" }, "id": "@id", "label": { "@context": { "@definition": "The human readable name of the attribute." }, "@id": "aspect:label", "@type": "schema:string" }, "type": { "@context": { "@definition": "The complex description of the type.", "@version": 1.1, "dataType": { "@context": { "@definition": "Data type that describe the content of the attributes children and data. In case \"object\" is selected in the enumeration, the children field will be used in the AdditionalDataEntity instead of the \"data\" property. If it is an other type, the content will be specified in \"data\" as a string." }, "@id": "aspect:dataType", "@type": "schema:string" }, "id": "@id", "type": "@type", "typeUnit": { "@context": { "@definition": "Choose a unit type from the unit catalog, or if the property \"children\" is filled, leave empty." }, "@id": "aspect:typeUnit", "@type": "schema:string" } }, "@id": "aspect:type" } }, "@definition": "Children of the hierarchy.", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:children" }, "data": { "@context": { "@definition": "The content from the attribute which is a depended of the data type and typeUnit." }, "@id": "aspect:data", "@type": "schema:string" }, "description": { "@context": { "@definition": "The description of the attribute context." }, "@id": "aspect:description", "@type": "schema:string" }, "id": "@id", "label": { "@context": { "@definition": "The human readable name of the attribute." }, "@id": "aspect:label", "@type": "schema:string" }, "type": { "@context": { "@definition": "The complex description of the type.", "@version": 1.1, "dataType": { "@context": { "@definition": "Data type that describe the content of the attributes children and data. In case \"object\" is selected in the enumeration, the children field will be used in the AdditionalDataEntity instead of the \"data\" property. If it is an other type, the content will be specified in \"data\" as a string." }, "@id": "aspect:dataType", "@type": "schema:string" }, "id": "@id", "type": "@type", "typeUnit": { "@context": { "@definition": "Choose a unit type from the unit catalog, or if the property \"children\" is filled, leave empty." }, "@id": "aspect:typeUnit", "@type": "schema:string" } }, "@id": "aspect:type" } }, "@definition": "Data in form of open fields which need to be transferred in addition. The regulation is still under development and may change in the future. To accommodate this, additional data allows the option to include additional data required by future changes to the regulation. In addition, the DPP can be easily updated and adapted to the new requirements. \nThe ESPR provisional agreement from January 9th, 2024 Article 9 mentions:\n2. Where other Union legislation requires or allows the inclusion of specific information in the product passport, that information may be included in the product passport pursuant to the applicable delegated act adopted pursuant to Article 4.", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:additionalData" }, "characteristics": { "@context": { "@definition": "Defines specific characteristics of a product.", "@version": 1.1, "generalPerformanceClass": { "@context": { "@definition": "The performance class of the product. This attribute is mentioned ESPR provisional agreement from January 9th, 2024 Article 7:\n4. When establishing the information requirements referred to in paragraph 2, point (b), point (i), the Commission shall, as appropriate in view of the specificity of the product group, determine classes of performance. Classes of performance may be based on single parameters, on aggregated scores, in absolute terms or in any other form that enables potential customers to choose the best performing products. Those classes of performance shall correspond to significant improvements in performance levels. Where classes of performance are based on parameters in relation to which performance requirements are established, they shall use as the minimum level the minimum performance required at the time when the classes of performance start to apply.\nDefinition:\n'class of performance': means a range of performance levels in relation to one or more product parameters referred to in Annex I, based on a common methodology for the product or product group, ordered into successive steps to allow for product differentiation." }, "@id": "aspect:generalPerformanceClass", "@type": "schema:string" }, "id": "@id", "lifespan": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "id": "@id", "key": { "@context": { "@definition": "The type of lifespan represented with the values guaranteed lifetime, technical lifetime and mean time between failures. This attribute is mentioned in the ESPR proposal from March 30th, 2022 ANNEX I:\n(a) durability and reliability of the product or its components as expressed through the product's guaranteed lifetime, technical lifetime [or] mean time between failures [...]." }, "@id": "aspect:key", "@type": "schema:string" }, "type": "@type", "unit": { "@context": { "@definition": "The unit of the respective lifespan expressed through the possible units day, month, cycle, year and runningOrOperatingHour." }, "@id": "aspect:unit", "@type": "schema:string" }, "value": { "@context": { "@definition": "The value as an integer for the respective lifespan." }, "@id": "aspect:value", "@type": "schema:number" } }, "@definition": "The type of lifespan represented with the values guaranteed lifetime, technical lifetime and mean time between failures. Both can be described through the attributes: type, which defines the type such as guaranteed lifetime or technical lifetime, the unit for the lifetime, and the value represented by an integer. These attributes are mentioned in the ESPR proposal from March 30th, 2022 ANNEX I:\n(a) durability and reliability of the product or its components as expressed through the products guaranteed lifetime, technical lifetime [or] mean time between failures [...].", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:lifespan" }, "physicalDimension": { "@context": { "@definition": "Physical dimensions are properties associated with physical quantities for purposes of classification or differentiation. These attributes are mentioned in the ESPR provisional agreement from January 9th, Article 7:\n(2) (b) (i) information on the performance of the product in relation to one or more of the product parameters referred to in Annex I;\nAnnex I (i) weight and volume of the product and its packaging, and the product-to-packaging ratio.", "@version": 1.1, "diameter": { "@context": { "@definition": "The diameter of the item, if applicable, measured in a specific linear unit which can be declared in the corresponding unit attribute.", "@version": 1.1, "id": "@id", "type": "@type", "unit": { "@context": { "@definition": "The unit of a linear attribute." }, "@id": "aspect:unit", "@type": "schema:string" }, "value": { "@context": { "@definition": "The quantity value associated with the unit." }, "@id": "aspect:value", "@type": "schema:number" } }, "@id": "aspect:diameter" }, "grossVolume": { "@context": { "@definition": "The gross volume of the item, if possible, measured in a specific capacity unit which can be declared in the corresponding unit attribute. If there is no separate packing, the volume of the product shall be given. Gross volume refers to the total volume of a product, including the volume of the packaging. This attribute is mentioned in the ESPR proposal from March 30th, 2022 Article 7:\n(2) (b) (i) information on the performance of the product in relation to the product parameters referred to in Annex I;\nAnnex I (i) weight and volume of the product and its packaging, and the product-to-packaging ratio.", "@version": 1.1, "id": "@id", "type": "@type", "unit": { "@context": { "@definition": "The unit of a volume related attribute." }, "@id": "aspect:unit", "@type": "schema:string" }, "value": { "@context": { "@definition": "The quantity value associated with the unit." }, "@id": "aspect:value", "@type": "schema:number" } }, "@id": "aspect:grossVolume" }, "grossWeight": { "@context": { "@definition": "The gross weight of the item measured in a specific mass unit which can be declared in the corresponding unit attribute. Gross weight refers to the total weight of a product, including the weight of the packaging. This attribute is mentioned in the ESPR proposal from March 30th, 2022 Article 7:\n(2) (b) (i) information on the performance of the product in relation to the product parameters referred to in Annex I;\nAnnex I (i) weight and volume of the product and its packaging, and the product-to-packaging ratio.", "@version": 1.1, "id": "@id", "type": "@type", "unit": { "@context": { "@definition": "The unit of a mass related attribute." }, "@id": "aspect:unit", "@type": "schema:string" }, "value": { "@context": { "@definition": "The quantity value associated with the unit." }, "@id": "aspect:value", "@type": "schema:number" } }, "@id": "aspect:grossWeight" }, "height": { "@context": { "@definition": "The height of the item measured in a specific linear unit which can be declared in the corresponding unit attribute.", "@version": 1.1, "id": "@id", "type": "@type", "unit": { "@context": { "@definition": "The unit of a linear attribute." }, "@id": "aspect:unit", "@type": "schema:string" }, "value": { "@context": { "@definition": "The quantity value associated with the unit." }, "@id": "aspect:value", "@type": "schema:number" } }, "@id": "aspect:height" }, "id": "@id", "length": { "@context": { "@definition": "The length of the item measured in a specific linear unit which can be declared in the corresponding unit attribute.", "@version": 1.1, "id": "@id", "type": "@type", "unit": { "@context": { "@definition": "The unit of a linear attribute." }, "@id": "aspect:unit", "@type": "schema:string" }, "value": { "@context": { "@definition": "The quantity value associated with the unit." }, "@id": "aspect:value", "@type": "schema:number" } }, "@id": "aspect:length" }, "type": "@type", "volume": { "@context": { "@definition": "Volume of the product, if possible, measured in a specific capacity unit which can be declared in the corresponding unit attribute. This attribute is mentioned in the ESPR proposal from March 30th, 2022 Article 7:\n(2) (b) (i) information on the performance of the product in relation to the product parameters referred to in Annex I;\nAnnex I (i) weight and volume of the product [...].", "@version": 1.1, "id": "@id", "type": "@type", "unit": { "@context": { "@definition": "The unit of a volume related attribute." }, "@id": "aspect:unit", "@type": "schema:string" }, "value": { "@context": { "@definition": "The quantity value associated with the unit." }, "@id": "aspect:value", "@type": "schema:number" } }, "@id": "aspect:volume" }, "weight": { "@context": { "@definition": "Weight of the product measured in a specific mass unit which can be declared in the corresponding unit attribute. This attribute is mentioned in the ESPR proposal from March 30th, 2022 Article 7:\n(2) (b) (i) information on the performance of the product in relation to the product parameters referred to in Annex I;\nAnnex I (i) weight and volume of the product [...].", "@version": 1.1, "id": "@id", "type": "@type", "unit": { "@context": { "@definition": "The unit of a mass related attribute." }, "@id": "aspect:unit", "@type": "schema:string" }, "value": { "@context": { "@definition": "The quantity value associated with the unit." }, "@id": "aspect:value", "@type": "schema:number" } }, "@id": "aspect:weight" }, "width": { "@context": { "@definition": "The width of the item measured in a specific linear unit which can be declared in the corresponding unit attribute.", "@version": 1.1, "id": "@id", "type": "@type", "unit": { "@context": { "@definition": "The unit of a linear attribute." }, "@id": "aspect:unit", "@type": "schema:string" }, "value": { "@context": { "@definition": "The quantity value associated with the unit." }, "@id": "aspect:value", "@type": "schema:number" } }, "@id": "aspect:width" } }, "@id": "aspect:physicalDimension" }, "physicalState": { "@context": { "@definition": "The physical state of the item. There are four states of matter solid, liquid, gas and plasma which can be chosen from an enumeration." }, "@id": "aspect:physicalState", "@type": "schema:string" }, "type": "@type" }, "@id": "aspect:characteristics" }, "commercial": { "@context": { "@definition": "Commercial information of the product.", "@version": 1.1, "id": "@id", "placedOnMarket": { "@context": { "@definition": "The timestamp in the format (yyyy-mm-dd) with or without time zone when the product was put in the market." }, "@id": "aspect:placedOnMarket", "@type": "schema:string" }, "purpose": { "@container": "@list", "@context": { "@definition": "One or more intended industry/industries of the product described by the digital product passport. If exchanged via Catena-X, 'automotive ' is a must choice included in the list." }, "@id": "aspect:purpose", "@type": "schema:string" }, "type": "@type" }, "@id": "aspect:commercial" }, "handling": { "@context": { "@definition": "Properties connected with the handling of the product.", "@version": 1.1, "applicable": { "@context": { "@definition": "Check whether the connected attributes are applicable to the product. If it is not applicable (false), dummy data can be delivered." }, "@id": "aspect:applicable", "@type": "schema:boolean" }, "content": { "@context": { "@definition": "The list of spare parts available for the product from various suppliers.", "@version": 1.1, "id": "@id", "producer": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "id": { "@context": { "@definition": "The identifier of a spare part producer of the product. In the Catena-X network, the BPNL is used for the identification of companies and the information stored for this like contact information and addresses." }, "@id": "aspect:id", "@type": "schema:string" }, "type": "@type" }, "@definition": "Sources of possible spare parts.", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:producer" }, "sparePart": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "id": "@id", "manufacturerPartId": { "@context": { "@definition": "Part ID as assigned by the manufacturer of the part. The part ID identifies the part in the manufacturer`s dataspace. The part ID references a specific version of a part. The version number must be included in the part ID if it is available. The part ID does not reference a specific instance of a part and must not be confused with the serial number." }, "@id": "aspect:manufacturerPartId", "@type": "schema:string" }, "nameAtManufacturer": { "@context": { "@definition": "Name of the part as assigned by the manufacturer." }, "@id": "aspect:nameAtManufacturer", "@type": "schema:string" }, "type": "@type" }, "@definition": "Possible spare parts of the product.", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:sparePart" }, "type": "@type" }, "@id": "aspect:content" }, "id": "@id", "type": "@type" }, "@id": "aspect:handling" }, "id": "@id", "identification": { "@context": { "@definition": "Identification information of the product, especially identifiers and codes. These are mentioned in the ESPR provisional agreement from January 9th, 2024 ANNEX III:\n(b) the unique product identifier at the level indicated in the applicable delegated act adopted pursuant to Article 4.\nAdditionally in Article 9 regarding general requirements for the product passport is stated that:\nA product passport shall meet the following conditions:\n(a) it shall be connected through a data carrier to a persistent unique product identifier;\n(e) the information included in the product passport shall refer to the product model, batch, or item as specified in the delegated act adopted pursuant to Article 4.\nArticle 2 Definitions: \n(31) 'unique product identifier' means a unique string of characters for the identification of products that also enables a web link to the product passport;\nRecital (27): A 'model' usually means a version of a product of which all units share the same technical characteristics relevant for the ecodesign requirements and the same model identifier, a 'batch' usually means a subset of a specific model composed of all products produced in a specific manufacturing plant at a specific moment in time and an 'item' usually means a single unit of a model.", "@version": 1.1, "batch": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "id": "@id", "key": { "@context": { "@definition": "The key of a local identifier." }, "@id": "aspect:key", "@type": "schema:string" }, "type": "@type", "value": { "@context": { "@definition": "The value of an identifier." }, "@id": "aspect:value", "@type": "schema:string" } }, "@definition": "Identifier for a batch part if available. Identifier for a serial part if available. This is mentioned in the ESPR provisional agreement from January 9th, 2024 Recital (27):\n[...] a 'batch' usually means a subset of a specific model composed of all products produced in a specific manufacturing plant at a specific moment in time [...].", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:batch" }, "classification": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "classificationDescription": { "@context": { "@definition": "Optional property describing the classification standard." }, "@id": "aspect:classificationDescription", "@type": "schema:string" }, "classificationID": { "@context": { "@definition": "The classification ID of the part type according to the corresponding standard definition mentioned in the key value pair." }, "@id": "aspect:classificationID", "@type": "schema:string" }, "classificationStandard": { "@context": { "@definition": "Identified classification standards that align to the Catena-X needs." }, "@id": "aspect:classificationStandard", "@type": "schema:string" }, "id": "@id", "type": "@type" }, "@definition": "Property describing the classification of a part.", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:classification" }, "codes": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "id": "@id", "key": { "@context": { "@definition": "The code key for the identification of the product. Examples are GTIN, hash, DID, ISBN, TARIC. This attribute is mentioned in the ESPR proposal from March 30th, 2022 ANNEX III:\n(b) the unique product identifier at the level indicated in the applicable delegated act adopted pursuant to Article 4;\n(c) the Global Trade Identification Number as provided for in standard ISO/IEC 15459-6 or equivalent of products or their parts;\n(d) relevant commodity codes, such as a TARIC code as defined in Council Regulation (EEC) No 2658/87." }, "@id": "aspect:key", "@type": "schema:string" }, "type": "@type", "value": { "@context": { "@definition": "The code value for the identification of the product in regard to the chosen code name." }, "@id": "aspect:value", "@type": "schema:string" } }, "@definition": "Codes for identification.", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:codes" }, "dataCarrier": { "@context": { "@definition": "The type and layout of the data carrier on the product. These are mentioned in the ESPR proposal from March 30th, 2022 Article 8:\n(b) the types of data carrier to be used;\n(c) the layout in which the data carrier shall be presented and its positioning;\nArticle 2 defines:\n(30) 'data carrier' means a linear bar code symbol, a two-dimensional symbol or other automatic identification data capture medium that can be read by a device.", "@version": 1.1, "carrierLayout": { "@context": { "@definition": "The positioning of data carrier on the product. This attribute is mentioned in the ESPR proposal from March 30th, 2022 Article 8:\n(2) (c) the layout in which the data carrier shall be presented and its positioning." }, "@id": "aspect:carrierLayout", "@type": "schema:string" }, "carrierType": { "@context": { "@definition": "The type of data carrier such as a QR code on the product. This attribute is mentioned in the ESPR proposal from March 30th, 2022 Article 8:\n(2) (b) the types of data carrier to be used." }, "@id": "aspect:carrierType", "@type": "schema:string" }, "id": "@id", "type": "@type" }, "@id": "aspect:dataCarrier" }, "id": "@id", "serial": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "id": "@id", "key": { "@context": { "@definition": "The key of a local identifier. " }, "@id": "aspect:key", "@type": "schema:string" }, "type": "@type", "value": { "@context": { "@definition": "The value of an identifier." }, "@id": "aspect:value", "@type": "schema:string" } }, "@definition": "Identifier for a serial part if available. This is mentioned in the ESPR provisional agreement from January 9th, 2024 Recital (27):\n[...] an 'item' usually means a single unit of a model.", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:serial" }, "type": { "@context": { "@definition": "Identifier on the level of a part model or type. Identifier for a serial part if available. This is mentioned in the ESPR provisional agreement from January 9th, 2024 Recital (27):\n[...] A 'model' usually means a version of a product of which all units share the same technical characteristics relevant for the ecodesign requirements and the same model identifier [...].", "@version": 1.1, "id": "@id", "manufacturerPartId": { "@context": { "@definition": "Part ID as assigned by the manufacturer of the part. The part ID identifies the part in the manufacturer`s dataspace. The part ID references a specific version of a part. The version number must be included in the part ID if it is available. The part ID does not reference a specific instance of a part and must not be confused with the serial number." }, "@id": "aspect:manufacturerPartId", "@type": "schema:string" }, "nameAtManufacturer": { "@context": { "@definition": "Name of the part as assigned by the manufacturer." }, "@id": "aspect:nameAtManufacturer", "@type": "schema:string" }, "type": "@type" }, "@id": "aspect:type" } }, "@id": "aspect:identification" }, "materials": { "@context": { "@definition": "Properties which are relevant for the materials of the product.", "@version": 1.1, "id": "@id", "materialComposition": { "@context": { "@definition": "Material composition of the product with information on recycled and renewable materials.", "@version": 1.1, "applicable": { "@context": { "@definition": "Check whether the connected attributes are applicable to the product. If it is not applicable (false), dummy data can be delivered." }, "@id": "aspect:applicable", "@type": "schema:boolean" }, "content": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "concentration": { "@context": { "@definition": "Concentration of the material at the level of the product. This attribute is specially mentioned for substances of concern mentioned in the ESPR proposal from March 30th, 2022 Article 7:\n(5) (c) the concentration, maximum concentration or concentration range of the substances of concern, at the level of the product [...].\nOther substances are mentioned for the purpose of recycling in the ESPR provisional agreement from January 9th, 2024 Annex I:\n(d) design for recycling, ease and quality of recycling as expressed through: use of easily recyclable materials, safe, easy and non-destructive access to recyclable components and materials or components and materials containing hazardous substances and material composition and homogeneity, possibility for high-purity sorting, number of materials and components used, use of standard components, use of component and material coding standards for the identification of components and materials, number and complexity of processes and tools needed, ease of nondestructive disassembly and re-assembly, conditions for access to product data, conditions for access to or use of hardware and software needed.\n" }, "@id": "aspect:concentration", "@type": "schema:number" }, "critical": { "@context": { "@definition": "A flag, if the material is a critical raw material. This attribute is mentioned in the ESPR provisional agreement from January 9th, 2024 Annex I:\n(h) use or content of recycled materials and recovery of materials, including critical raw materials;\nIn Annex II of the connected proposal Act of Critical Raw Materials, a list of critical raw materials can be found." }, "@id": "aspect:critical", "@type": "schema:boolean" }, "documentation": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "content": { "@context": { "@definition": "The content of the document e.g a link." }, "@id": "aspect:content", "@type": "schema:string" }, "contentType": { "@context": { "@definition": "The type of content which can be expected in the \"content\" property. Examples are a link, restricted link, pdf, excel, etc." }, "@id": "aspect:contentType", "@type": "schema:string" }, "header": { "@context": { "@definition": "The header as a short description of the document with a maximum of 100 characters." }, "@id": "aspect:header", "@type": "schema:string" }, "id": "@id", "type": "@type" }, "@definition": "Documentation accompanying the material.", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:documentation" }, "id": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "id": { "@context": { "@definition": "The substance identification, in accordance with the specification in the attribute for the list type." }, "@id": "aspect:id", "@type": "schema:string" }, "name": { "@context": { "@definition": "The name of the material which is present in the product." }, "@id": "aspect:name", "@type": "schema:string" }, "type": { "@context": { "@definition": "The type of standard used for the identification of the substances. Selected can be for example CAS, IUPAC or EC." }, "@id": "aspect:type", "@type": "schema:string" } }, "@definition": "The chemical material name and identification, in accordance with the specification in the attribute for the list type. Preference is given to the IUPAC name. This attribute is mentioned in the ESPR provisional agreement from January 9th, 2024 Article 7:\n(5) (a) the name of the substances of concern present in the product, as follows:\n - name(s) in the International Union of Pure and Applied Chemistry (IUPAC) nomenclature, or another international name when IUPAC name is not available; \n- other names (usual name, trade name, abbreviation);\n- European Community (EC) number, as indicated in the European Inventory of Existing Commercial Chemical Substances (EINECS), the European List of Notified Chemical Substances (ELINCS) or the No Longer Polymer (NLP) list or assigned by the European Chemicals Agency (ECHA), if available;\n- the Chemical Abstract Service (CAS) name(s) and number(s), if available; .", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:id" }, "recycled": { "@context": { "@definition": "The share of the material, which is recovered recycled content from the product. This attribute is mentioned in the ESPR provisional agreement from January 9th, 2024 Annex I:\n(h) use or content of recycled materials and recovery of materials, including critical raw materials;" }, "@id": "aspect:recycled", "@type": "schema:number" }, "renewable": { "@context": { "@definition": "The share of the material, which is from a renewable resource that can be replenished. Renewable resources are those that can be reproduced by physical, chemical, or mechanical processes. These are the kind of resources that can be regenerated throughout time. Forest wood, for example, can be grown through reforestation. This attribute is mentioned in the ESPR provisional agreement from January 9th, 2024 Annex I:\n(ha) use or content of sustainable renewable materials;\n" }, "@id": "aspect:renewable", "@type": "schema:number" }, "type": "@type", "unit": { "@context": { "@definition": "The unit of concentration chosen from an enumeration: mass percent, volume percent, parts per thousand, parts per million, parts per billion and parts per trillion." }, "@id": "aspect:unit", "@type": "schema:string" } }, "@definition": "Information on different materials in the product.", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:content" }, "id": "@id", "type": "@type" }, "@id": "aspect:materialComposition" }, "substancesOfConcern": { "@context": { "@definition": "Information regarding substances of concern in the product. The ESPR provisional agreement from January 9th, 2024 defines:\n(52) 'hazardous substance' means a substance classified as hazardous pursuant to Article 3 of Regulation (EC) No 1272/2008.", "@version": 1.1, "applicable": { "@context": { "@definition": "Check whether the connected attributes are applicable to the product. If it is not applicable (false), dummy data can be delivered." }, "@id": "aspect:applicable", "@type": "schema:boolean" }, "content": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "concentration": { "@context": { "@definition": "Concentration of the material at the level of the product. This attribute is specially mentioned for substances of concern mentioned in the ESPR proposal from March 30th, 2022 Article 7:\n(5) (c) the concentration, maximum concentration or concentration range of the substances of concern, at the level of the product [...].\nOther substances are mentioned for the purpose of recycling in the ESPR provisional agreement from January 9th, 2024 Annex I:\n(d) design for recycling, ease and quality of recycling as expressed through: use of easily recyclable materials, safe, easy and non-destructive access to recyclable components and materials or components and materials containing hazardous substances and material composition and homogeneity, possibility for high-purity sorting, number of materials and components used, use of standard components, use of component and material coding standards for the identification of components and materials, number and complexity of processes and tools needed, ease of nondestructive disassembly and re-assembly, conditions for access to product data, conditions for access to or use of hardware and software needed.\n" }, "@id": "aspect:concentration", "@type": "schema:number" }, "concentrationRange": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "id": "@id", "max": { "@context": { "@definition": "The maximum concentration of the substance of concern at the level of the product. This attribute is mentioned in the ESPR proposal from March 30th, 2022 Article 7:\n(5) (c) the concentration, maximum concentration or concentration range of the substances of concern, at the level of the product [...]." }, "@id": "aspect:max", "@type": "schema:number" }, "min": { "@context": { "@definition": "The minimum concentration of the substance of concern at the level of the product. This attribute is mentioned in the ESPR proposal from March 30th, 2022 Article 7:\n(5) (c) [...] concentration range of the substances of concern, at the level of the product [...]." }, "@id": "aspect:min", "@type": "schema:number" }, "type": "@type" }, "@definition": "The concentration range for the substance of concern. This attribute is mentioned in the ESPR proposal from March 30th, 2022 Article 7:\n(5) (c) [...] concentration range of the substances of concern, at the level of the product [...].", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:concentrationRange" }, "documentation": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "content": { "@context": { "@definition": "The content of the document e.g a link." }, "@id": "aspect:content", "@type": "schema:string" }, "contentType": { "@context": { "@definition": "The type of content which can be expected in the \"content\" property. Examples are a link, restricted link, pdf, excel, etc." }, "@id": "aspect:contentType", "@type": "schema:string" }, "header": { "@context": { "@definition": "The header as a short description of the document with a maximum of 100 characters." }, "@id": "aspect:header", "@type": "schema:string" }, "id": "@id", "type": "@type" }, "@definition": "Documentation accompanying the material.", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:documentation" }, "exemption": { "@context": { "@definition": "Exemptions to the substance of concern. This attribute is mentioned in the ESPR provisional agreement from January 9th, 2024 Article 7:\n(5) (c) provide duly justified exemptions for substances of concern or information elements from the information requirements referred to in the first subparagraph based on the technical feasibility or relevance of tracking substances of concern, the existence of analytical methods to detect and quantify them, the need to protect confidential business information or in other duly justified cases. Substances of concern within the meaning of Article 2(28), point a), shall not be exempted if they are present in products, their relevant components or spare parts in a concentration above 0,1 % weight by weight." }, "@id": "aspect:exemption", "@type": "schema:string" }, "hazardClassification": { "@context": { "@definition": "The specification of the hazard class. This attribute is mentioned in the ESPR provisional agreement from January 9th, 2024 Annex I:\n(f) use of substances, and in particular the use of substances of concern, on their own, as constituents of substances or in mixtures, during the production process of products, or leading to their presence in products, including once these products become waste, and their impacts on human health and the environment;\nFurther defined is this by Regulation (EC) No 1272/2008 of the European Parliament and of the Council of 16 December 2008 on classification, labelling and packaging of substances and mixtures, amending and repealing Directives 67/548/EEC and 1999/45/EC, and amending Regulation (EC) No 1907/2006.\nDefined in Article 2:\n1. 'hazard class' means the nature of the physical, health or environmental hazard;\n2. 'hazard category' means the division of criteria within each hazard class, specifying hazard severity;\n5. 'hazard statement' means a phrase assigned to a hazard class and category that describes the nature of the hazards of a hazardous substance or mixture, including, where appropriate, the degree of hazard;", "@version": 1.1, "category": { "@context": { "@definition": "The hazard category of the substance of concern. Defined in Article 2 of Regulation (EC) No 1272/2008 of the European Parliament and of the Council of 16 December 2008 on classification, labelling and packaging of substances and mixtures, amending and repealing Directives 67/548/EEC and 1999/45/EC, and amending Regulation (EC) No 1907/2006:\n2. 'hazard category' means the division of criteria within each hazard class, specifying hazard severity." }, "@id": "aspect:category", "@type": "schema:string" }, "class": { "@context": { "@definition": "The hazard class of the substance of concern. Defined in Article 2 of Regulation (EC) No 1272/2008 of the European Parliament and of the Council of 16 December 2008 on classification, labelling and packaging of substances and mixtures, amending and repealing Directives 67/548/EEC and 1999/45/EC, and amending Regulation (EC) No 1907/2006:\n1. 'hazard class' means the nature of the physical, health or environmental hazard." }, "@id": "aspect:class", "@type": "schema:string" }, "id": "@id", "statement": { "@context": { "@definition": "The hazard statement of the substance of concern. Defined in Article 2 of Regulation (EC) No 1272/2008 of the European Parliament and of the Council of 16 December 2008 on classification, labelling and packaging of substances and mixtures, amending and repealing Directives 67/548/EEC and 1999/45/EC, and amending Regulation (EC) No 1907/2006:\n5. 'hazard statement' means a phrase assigned to a hazard class and category that describes the nature of the hazards of a hazardous substance or mixture, including, where appropriate, the degree of hazard." }, "@id": "aspect:statement", "@type": "schema:string" }, "type": "@type" }, "@id": "aspect:hazardClassification" }, "id": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "id": { "@context": { "@definition": "The substance identification, in accordance with the specification in the attribute for the list type." }, "@id": "aspect:id", "@type": "schema:string" }, "name": { "@context": { "@definition": "The name of the material which is present in the product." }, "@id": "aspect:name", "@type": "schema:string" }, "type": { "@context": { "@definition": "The type of standard used for the identification of the substances. Selected can be for example CAS, IUPAC or EC." }, "@id": "aspect:type", "@type": "schema:string" } }, "@definition": "The chemical material name and identification, in accordance with the specification in the attribute for the list type. Preference is given to the IUPAC name. This attribute is mentioned in the ESPR provisional agreement from January 9th, 2024 Article 7:\n(5) (a) the name of the substances of concern present in the product, as follows:\n - name(s) in the International Union of Pure and Applied Chemistry (IUPAC) nomenclature, or another international name when IUPAC name is not available; \n- other names (usual name, trade name, abbreviation);\n- European Community (EC) number, as indicated in the European Inventory of Existing Commercial Chemical Substances (EINECS), the European List of Notified Chemical Substances (ELINCS) or the No Longer Polymer (NLP) list or assigned by the European Chemicals Agency (ECHA), if available;\n- the Chemical Abstract Service (CAS) name(s) and number(s), if available; .", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:id" }, "location": { "@context": { "@definition": "The location of the substances of concern within the product. This attribute is mentioned in the ESPR proposal from March 30th, 2022 Article 7:\n(5) (b) the location of the substances of concern within the product." }, "@id": "aspect:location", "@type": "schema:string" }, "type": "@type", "unit": { "@context": { "@definition": "The unit of concentration chosen from an enumeration: mass percent, volume percent, parts per thousand, parts per million, parts per billion and parts per trillion." }, "@id": "aspect:unit", "@type": "schema:string" } }, "@definition": "Information regarding substances of concern in the product. Attributes are among others substance names, ids, concentration, location and hazard class. This is mentioned in the ESPR provisional agreement from January 9th, 2024 Article 7:\n(5) (a) the name of the substances of concern present in the product, as follows:\n- name(s) in the International Union of Pure and Applied Chemistry (IUPAC) nomenclature, or another international name when IUPAC name is not available; \n- other names (usual name, trade name, abbreviation);\n- European Community (EC) number, as indicated in the European Inventory of Existing Commercial Chemical Substances (EINECS), the European List of Notified Chemical Substances (ELINCS) or the No Longer Polymer (NLP) list or assigned by the European Chemicals Agency (ECHA), if available;\n- the Chemical Abstract Service (CAS) name(s) and number(s), if available;\n(5) (b) the location of the substances of concern within the product.\n(5) (c) the concentration, maximum concentration or concentration range of the substances of concern, at the level of the product its relevant components, or spare parts;\n(d) relevant instructions for the safe use of the product;\n(e) information relevant for disassembly, preparation for reuse, reuse, recycling and the environmentally sound management of the product at the end of its life.\nAnd in the next paragraph:\n(c) provide duly justified exemptions for substances of concern or information elements from the information requirements referred to in the first subparagraph.", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:content" }, "id": "@id", "type": "@type" }, "@id": "aspect:substancesOfConcern" }, "type": "@type" }, "@id": "aspect:materials" }, "metadata": { "@context": { "@definition": "Metadata of the product passport. These are mentioned in the ESPR proposal from March 30th, 2022 and some changed by the provisional agreement from January 9th, 2024.", "@version": 1.1, "backupReference": { "@context": { "@definition": "A reference to the data backup of the passport. This mandatory attribute will be further defined in the future. This attribute is mentioned in the ESPR provisional agreement from January 9th, 2024 Annex III:\n(kb) the reference of the certified independent third-party product passport service provider hosting the back-up copy of the product passport.\nArticle 10 also mentions:\n(c) the data included in the product passport shall be stored by the economic operator responsible for its creation or by certified independent third-party product passport service providers authorised to act on their behalf." }, "@id": "aspect:backupReference", "@type": "schema:string" }, "economicOperatorId": { "@context": { "@definition": "The identification of the owner/economic operator of the passport. Proposed, according to ISO 15459, is the CIN (company identification code). Other identification numbers like the tax identification number, value added tax identification number, commercial register number and the like are also valid entries. In the Catena-X network, the BPNL is used for the identification of companies and the information stored like contact information and addresses. This attribute is mentioned in the ESPR proposal from March 30th, 2022 Annex III:\n(k) the [...] unique operator identifier code of the economic operator established in the Union responsible for carrying out the tasks set out in Article 4 of Regulation (EU) 2019/1020, or Article 15 of Regulation (EU) on general product safety, or similar tasks pursuant to other EU legislation applicable to the product." }, "@id": "aspect:economicOperatorId", "@type": "schema:string" }, "expirationDate": { "@context": { "@definition": "The timestamp in the format (yyyy-mm-dd) for the product passport until when it is available or a comment describing this period. This attribute is mentioned in the ESPR provisional agreement from January 9th, 2024 Article 8:\n(2) (h) the period during which the product passport is to remain available, which shall correspond to at least the expected lifetime of a specific product." }, "@id": "aspect:expirationDate", "@type": "schema:string" }, "id": "@id", "issueDate": { "@context": { "@definition": "The timestamp in the format (yyyy-mm-dd) since when the product passport is available." }, "@id": "aspect:issueDate", "@type": "schema:string" }, "lastModification": { "@context": { "@definition": "Date of the latest modification." }, "@id": "aspect:lastModification", "@type": "schema:string" }, "passportIdentifier": { "@context": { "@definition": "The identifier of the product passport, which is an uuidv4." }, "@id": "aspect:passportIdentifier", "@type": "schema:string" }, "predecessor": { "@context": { "@definition": "Identification of the preceding product passport. If there is no preceding passport, input a dummy value. This attribute is mentioned in the ESPR provisional agreement from January 9th, 2024 Article 8:\n(2)(g) [...] Any new product passport shall be linked to the product passport or passports of the original product whenever appropriate." }, "@id": "aspect:predecessor", "@type": "schema:string" }, "registrationIdentifier": { "@context": { "@definition": "Identifier in the respective registry. This will be further defined in the future. This attribute is mentioned in the ESPR provisional agreement from January 9th, 2024 in Article 12:\nBy [2 years from entering into force of this Regulation], the Commission shall set up and manage a digital registry (\"the registry\") storing in a secure manner at least the unique product identifier, the unique operator identifier, the unique facility identifiers. In case of products intended to be placed under the customs procedure 'release for free circulation', the registry shall also store the product commodity code. The registry shall also store the batteries' unique identifiers referred to in Article 77(3) of Regulation (EU) 2023/1542." }, "@id": "aspect:registrationIdentifier", "@type": "schema:string" }, "status": { "@context": { "@definition": "The current status of the product passport declared through either: draft, approved, invalid or expired." }, "@id": "aspect:status", "@type": "schema:string" }, "type": "@type", "version": { "@context": { "@definition": "The current version of the product passport. The possibility of modification/ updating the product passport needs to include versioning of the dataset. This attribute is an internal versioning from the passport issuer. This attribute is mentioned in the ESPR provisional agreement from January 9th, 2024 Article 8:\n(1) [...] The information in the product passport shall be accurate, complete, and up to date." }, "@id": "aspect:version", "@type": "schema:string" } }, "@id": "aspect:metadata" }, "operation": { "@context": { "@definition": "Operational information of the product.", "@version": 1.1, "id": "@id", "import": { "@context": { "@definition": "Importer details such as the identification.", "@version": 1.1, "applicable": { "@context": { "@definition": "Check whether the connected attributes are applicable to the product. If it is not applicable (false), dummy data can be delivered." }, "@id": "aspect:applicable", "@type": "schema:boolean" }, "content": { "@context": { "@definition": "Information regarding the importer of the product, if different from the owner of the passport. This attribute is mentioned in the ESPR provisional agreement from January 9th, 2024 Annex III:\n(j) information related to the importer, including the information referred to in Article 23(3) and its EORI number;\nArticle 23 states:\n(3) Importers shall, for products covered by a delegated act adopted pursuant to Article 4, indicate their name, registered trade name or registered trade mark and the postal address and electronic means of communication, where they can be contacted: (a) on the public part of the product passport, when applicable, and\n(b) on the product or, where this is not possible, on the packaging, or in a document accompanying the product.", "@version": 1.1, "eori": { "@context": { "@definition": "An economic operator established in the customs territory of the Union needs, for customs purposes, an EORI number. EORI stands for economic operators registration and identification number. In this case, the importer's EORI must be provided. This attribute is mentioned in the ESPR proposal from March 30th, 2022 Annex III:\n(j) information related to the importer, including the information referred to in Article 23(3) and its EORI number." }, "@id": "aspect:eori", "@type": "schema:string" }, "id": { "@context": { "@definition": "The importer of the product, if different from the owner of the passport. In the Catena-X network, the BPNL is used for the identification of companies and the information stored for this like contact information and addresses.\nThis attribute is mentioned in the ESPR provisional agreement from January 9th, 2024 Annex III:\n(j) information related to the importer, including the information referred to in Article 23(3) and its EORI number;\nArticle 23 states:\n(3) Importers shall, for products covered by a delegated act adopted pursuant to Article 4, indicate their name, registered trade name or registered trade mark and the postal address and electronic means of communication, where they can be contacted: (a) on the public part of the product passport, when applicable, and\n(b) on the product or, where this is not possible, on the packaging, or in a document accompanying the product." }, "@id": "aspect:id", "@type": "schema:string" }, "type": "@type" }, "@id": "aspect:content" }, "id": "@id", "type": "@type" }, "@id": "aspect:import" }, "manufacturer": { "@context": { "@definition": "Manufacturing information of the product. In the CATENA-X use case, the BPNL and BPNA can be stated. These attributes are mentioned in the ESPR provisional agreement from January 9th 2024 Annex III:\n(h) unique operator identifiers other than that of the manufacturer;\n(k) the name, contact details and unique operator identifier code of the economic operator established in the Union responsible for carrying out the tasks set out in Article 4 of Regulation (EU) 2019/1020, or Article 15 of Regulation (EU) [.../...] on general product safety, or similar tasks pursuant to other EU legislation applicable to the product.", "@version": 1.1, "facility": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "facility": { "@context": { "@definition": "The identifier used for a location. This attribute is mentioned in the ESPR provisional agreement from January 9th 2024 Annex III:\n(i) unique facility identifiers;\nArticle 2 Definitions: (33) 'unique facility identifier' means a unique string of characters for the identification of locations or buildings involved in the value chain of a product or used by actors involved in the value chain of a product." }, "@id": "aspect:facility", "@type": "schema:string" }, "id": "@id", "type": "@type" }, "@definition": "The identifier used for a location. In the CATENA-X use case, the BPNA can be stated. This attribute is mentioned in the ESPR provisional agreement from January 9th 2024 Annex III:\n(i) unique facility identifiers;\nArticle 2 Definitions: (33) 'unique facility identifier' means a unique string of characters for the identification of locations or buildings involved in the value chain of a product or used by actors involved in the value chain of a product.", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:facility" }, "id": "@id", "manufacturer": { "@context": { "@definition": "The main manufacturer, if different from the passport owner, represented by an identification number. In the Catena-X use case, the BPNL can be stated. This attribute is mentioned in the ESPR provisional agreement from January 9th 2024 Annex III:\n(h) unique operator identifiers other than that of the manufacturer;\n(k) the name, contact details and unique operator identifier code of the economic operator established in the Union responsible for carrying out the tasks set out in Article 4 of Regulation (EU) 2019/1020, or Article 15 of Regulation (EU) [.../...] on general product safety, or similar tasks pursuant to other EU legislation applicable to the product." }, "@id": "aspect:manufacturer", "@type": "schema:string" }, "manufacturingDate": { "@context": { "@definition": "The timestamp in the format (yyyy-mm-dd) of the manufacturing date as the final step in production process (e.g. final quality check, ready-for-shipment event)." }, "@id": "aspect:manufacturingDate", "@type": "schema:string" }, "type": "@type" }, "@id": "aspect:manufacturer" }, "other": { "@context": { "@definition": "Other operators relevant for the product.", "@version": 1.1, "id": { "@context": { "@definition": "Identifier of the other operator. This can be a BPN." }, "@id": "aspect:id", "@type": "schema:string" }, "role": { "@context": { "@definition": "Role of the other operator." }, "@id": "aspect:role", "@type": "schema:string" }, "type": "@type" }, "@id": "aspect:other" }, "type": "@type" }, "@id": "aspect:operation" }, "sources": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "category": { "@context": { "@definition": "The category in which the document can be sorted. These are mentioned in the ESPR proposal from March 30th, 2022 ANNEX III:\n(e) compliance documentation and information required under this Regulation or other Union law applicable to the product, such as the declaration of conformity, technical documentation or conformity certificates;\nANNEX IV states additional information regarding the content of the technical documentation\nFurther information on documents are mentioned in the proposal from March 30th, 2022 ANNEX III:\n(f) user manuals, instructions, warnings or safety information, as required by other Union legislation applicable to the product.\nAdditionally requirements are mentioned in Article 21:\n(7) Manufacturers shall ensure that that a product covered by a delegated act adopted pursuant to Article 4 is accompanied by instructions that enable consumers and other end-users to safely assemble, install, operate, store, maintain, repair and dispose of the product in a language that can be easily understood by consumers and other end-users, as determined by the Member State concerned. Such instructions shall be clear, understandable and legible and include at least the information specified in the delegated acts adopted pursuant to Article 4 and pursuant to Article 7(2)(b), point (ii).\nArticle 7 states additionally:\n(2) (b) (ii) information for consumers and other end-users on how to install, use, maintain and repair the product in order to minimize its impact on the environment and to ensure optimum durability, as well as on how to return or dispose of the product at end-of-life;\n(2) (b) (iii) information for treatment facilities on disassembly, recycling, or disposal at end-of-life;\n(2) (b) (iv) other information that may influence the way the product is handled by parties other than the manufacturer in order to improve performance in relation to product parameters referred to in Annex I.\n(5) (d) relevant instructions for the safe use of the product." }, "@id": "aspect:category", "@type": "schema:string" }, "content": { "@context": { "@definition": "The content of the document e.g a link." }, "@id": "aspect:content", "@type": "schema:string" }, "header": { "@context": { "@definition": "The header as a short description of the document with a maximum of 100 characters." }, "@id": "aspect:header", "@type": "schema:string" }, "id": "@id", "type": { "@context": { "@definition": "The type of content which can be expected in the \"content\" property. Examples are a link, restricted link, pdf, excel, etc." }, "@id": "aspect:type", "@type": "schema:string" } }, "@definition": "Documents that are mandatory if applicable for the product. These are mentioned in the ESPR provisional agreement from January 9th, 2024 ANNEX III:\n(e) compliance documentation and information required under this Regulation or other Union law applicable to the product, such as the declaration of conformity, technical documentation or conformity certificates;\n(f) user manuals, instructions, warnings or safety information, as required by other Union legislation applicable to the product.\nAdditionally requirements are mentioned in Article 21:\n7. Manufacturers shall ensure that a product covered by a delegated act adopted pursuant to Article 4 is accompanied by instructions in digital format that enable customers and other relevant actors to assemble, install, operate, store, maintain, repair and dispose of the product in a language that can be easily understood, as determined by the Member State concerned. Such instructions shall be clear, understandable and legible and include at least the information set out in Article 7(2), point (b), point (ii) specified in the delegated acts adopted pursuant to Article 4.\nArticle 7 states additionally:\n(ii) information for customers and other actors on how to install, use, maintain and repair the product, in order to minimise its impact on the environment and to ensure optimum durability, on how to install third-party operating systems where relevant, as well as on collection for refurbishment or remanufacture, and on how to return or handle the product at the end of its life;\n(2) (b) (iii) information for treatment facilities on disassembly, reuse, refurbishment, recycling, or disposal at end-of-life;\n(2) (b) (iv) other information that may influence sustainable product choices for customers and the way the product is handled by parties other than the manufacturer in order to facilitate appropriate use, value retaining operations and correct treatment at end-of-life.\n(5) (d) relevant instructions for the safe use of the product.\n(5) (e) information relevant for disassembly, preparation for reuse, reuse, recycling and the environmentally sound management of the product at the end of its life.\nAnnex I:\n(b) [...] availability of repair and maintenance instructions, number of materials and components used, use of standard components,[...] number and complexity of processes and whether specialised toolsare needed, ease of non-destructive disassembly and re-assembly, conditions for access to product data, conditions for access to or use of hardware and software needed;\n(c) ease of upgrading, re-use, remanufacturing and refurbishment as expressed through: [...] number and complexity of processes and tools needed, ease of non-destructive disassembly and re-assembly, conditions for access to product data, conditions for access to or use of hardware and software needed, conditions of access to test protocols or not commonly available testing equipment, availability of guarantees specific to remanufactured or refurbished products, conditions for access to or use of technologies protected by intellectual property rights, modularity;\n(d) design for recycling, ease and quality of recycling as expressed through: use of easily recyclable materials, safe, easy and non-destructive access to recyclable components and materials or components and materials containing hazardous substances and material composition and homogeneity, possibility for high-purity sorting, [...] number and complexity of processes and tools needed, ease of nondestructive disassembly and re-assembly, conditions for access to product data, conditions for access to or use of hardware and software needed;\n(q) functional performance and conditions for use including as expressed through ability in performing its intended use, precautions of use, skills required, compatibility with other products or systems.\nAdditionally to consider are guidelines and instructions regarding the proper management and disposal of packaging materials after use. This can include instructions for separation, reuse, and recycling.", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:sources" }, "sustainability": { "@context": { "@definition": "Sustainability related attributes.", "@version": 1.1, "durabilityScore": { "@context": { "@definition": "The durability score. This attribute is mentioned ESPR provisional agreement from January 9th, 2024 Article 7:\n(b) as appropriate, also require products to be accompanied by:\n(i) information on the performance of the product in relation to one or more of the product parameters referred to in Annex I, including a scoring of reparability or durability [...]." }, "@id": "aspect:durabilityScore", "@type": "schema:string" }, "id": "@id", "productFootprint": { "@context": { "@definition": "The carbon and environmental footprint or material footprint of the product. These attributes are mentioned in the ESPR provisional agreement from January 9th 2024 Annex I:\n(l) the environmental footprint of the product, expressed as a quantification, in accordance with the applicable delegated act, of a product's life cycle environmental impacts, whether in relation to one or more environmental impact categories or an aggregated set of impact categories;\n(m) the carbon footprint of the product;\n(ma) the material footprint of the product;\nAll are defined by Article 2:\n(23) 'environmental footprint' means a quantification of product environmental impacts throughout its life cycle, whether in relation to a single environmental impact category or an aggregated set of impact categories based on the Product Environmental Footprint method or other scientific methods developed by international organisations and widely tested in collaboration with different industry sectors and adopted or implemented by the Commission in other Union \nlegislation;\n(25) 'carbon footprint' means the sum of greenhouse gas (GHG) emissions and GHG removals in a product system, expressed as CO2 equivalents and based on a life cycle assessment using the single impact category of climate change.\n(25a) 'material footprint' refers to the total amount of raw materials extracted to meet final consumption demands;", "@version": 1.1, "carbon": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "declaration": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "content": { "@context": { "@definition": "The content of the document e.g a link." }, "@id": "aspect:content", "@type": "schema:string" }, "contentType": { "@context": { "@definition": "The type of content which can be expected in the \"content\" property. Examples are a link, restricted link, pdf, excel, etc." }, "@id": "aspect:contentType", "@type": "schema:string" }, "header": { "@context": { "@definition": "The header as a short description of the document with a maximum of 100 characters." }, "@id": "aspect:header", "@type": "schema:string" }, "id": "@id", "type": "@type" }, "@definition": "The footprint declaration in the format of a link ", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:declaration" }, "id": "@id", "lifecycle": { "@context": { "@definition": "The lifecycle stage, to which the environmental footprint corresponds. These could be for example \"raw material acquisition and pre-processing\", \"main product production\", \"distribution\" or \"end of life and recycling\"." }, "@id": "aspect:lifecycle", "@type": "schema:string" }, "manufacturingPlant": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "facility": { "@context": { "@definition": "The identifier used for a location. This attribute is mentioned in the ESPR provisional agreement from January 9th 2024 Annex III:\n(i) unique facility identifiers;\nArticle 2 Definitions: (33) 'unique facility identifier' means a unique string of characters for the identification of locations or buildings involved in the value chain of a product or used by actors involved in the value chain of a product." }, "@id": "aspect:facility", "@type": "schema:string" }, "id": "@id", "type": "@type" }, "@definition": "The manufacturing plant of the footprint in the specific lifecycle phase.", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:manufacturingPlant" }, "performanceClass": { "@context": { "@definition": "The performance classification of the footprint." }, "@id": "aspect:performanceClass", "@type": "schema:string" }, "rulebook": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "content": { "@context": { "@definition": "The content of the document e.g a link." }, "@id": "aspect:content", "@type": "schema:string" }, "contentType": { "@context": { "@definition": "The type of content which can be expected in the \"content\" property. Examples are a link, restricted link, pdf, excel, etc." }, "@id": "aspect:contentType", "@type": "schema:string" }, "header": { "@context": { "@definition": "The header as a short description of the document with a maximum of 100 characters." }, "@id": "aspect:header", "@type": "schema:string" }, "id": "@id", "type": "@type" }, "@definition": "The applied rulebook for the environmental footprint of the product.", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:rulebook" }, "type": { "@context": { "@definition": "The type of the environmental footprint of the product. This could be one of the environmental impact categories. This attribute is mentioned in the ESPR provisional agreement from January 9th 2024 Article 7:\n(2)(b)(i) information on the performance of the product in relation to one or more of the product parameters referred to in Annex I, including a scoring of reparability or durability, carbon footprint or environmental footprint;\nAnnex I:\n(l) the environmental footprint of the product, expressed as a quantification, in accordance with the applicable delegated act, of a product's life cycle environmental impacts, whether in relation to one or more environmental impact categories or an aggregated set of impact categories.\n(m) the carbon footprint of the product;\n(ma) the material footprint of the product." }, "@id": "aspect:type", "@type": "schema:string" }, "unit": { "@context": { "@definition": "The unit of measurement of the environmental impact category. For each impact category a specific unit is used. If an aggregation is used, utilize the normalization and weighting methods used in the referenced rulebook." }, "@id": "aspect:unit", "@type": "schema:string" }, "value": { "@context": { "@definition": "The value of the footprint of the product. This attribute is mentioned in the ESPR proposal from March 30th, 2022 Annex I:\n(l) the environmental footprint of the product, expressed as a quantification, in accordance with the applicable delegated act, of a product's life cycle environmental impacts, whether in relation to one or more environmental impact categories or an aggregated set of impact categories;\n(m) the carbon footprint of the product;\n(ma) the material footprint of the product.\n" }, "@id": "aspect:value", "@type": "schema:number" } }, "@definition": "The carbon footprint of the product. This is mentioned in the ESPR provisional agreement from January 9th, 2024 Annex I:\nThe following parameters shall, as appropriate, and where necessary supplemented by others, be used, individually or combined, as a basis for improving the product aspects referred to in Article 5(1):\n(m) the carbon footprint of the product;\nand Article 7:\n(2)(b)(i) information on the performance of the product in relation to one or more of the product parameters referred to in Annex I, including a scoring of reparability or durability, carbon footprint or environmental footprint;\nand defined by Article 2:\n(25) 'carbon footprint' means the sum of greenhouse gas (GHG) emissions and GHG removals in a product system, expressed as CO2 equivalents and based on a life cycle assessment using the single impact category of climate change.", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:carbon" }, "environmental": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "declaration": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "content": { "@context": { "@definition": "The content of the document e.g a link." }, "@id": "aspect:content", "@type": "schema:string" }, "contentType": { "@context": { "@definition": "The type of content which can be expected in the \"content\" property. Examples are a link, restricted link, pdf, excel, etc." }, "@id": "aspect:contentType", "@type": "schema:string" }, "header": { "@context": { "@definition": "The header as a short description of the document with a maximum of 100 characters." }, "@id": "aspect:header", "@type": "schema:string" }, "id": "@id", "type": "@type" }, "@definition": "The footprint declaration in the format of a link ", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:declaration" }, "id": "@id", "lifecycle": { "@context": { "@definition": "The lifecycle stage, to which the environmental footprint corresponds. These could be for example \"raw material acquisition and pre-processing\", \"main product production\", \"distribution\" or \"end of life and recycling\"." }, "@id": "aspect:lifecycle", "@type": "schema:string" }, "manufacturingPlant": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "facility": { "@context": { "@definition": "The identifier used for a location. This attribute is mentioned in the ESPR provisional agreement from January 9th 2024 Annex III:\n(i) unique facility identifiers;\nArticle 2 Definitions: (33) 'unique facility identifier' means a unique string of characters for the identification of locations or buildings involved in the value chain of a product or used by actors involved in the value chain of a product." }, "@id": "aspect:facility", "@type": "schema:string" }, "id": "@id", "type": "@type" }, "@definition": "The manufacturing plant of the footprint in the specific lifecycle phase.", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:manufacturingPlant" }, "performanceClass": { "@context": { "@definition": "The performance classification of the footprint." }, "@id": "aspect:performanceClass", "@type": "schema:string" }, "rulebook": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "content": { "@context": { "@definition": "The content of the document e.g a link." }, "@id": "aspect:content", "@type": "schema:string" }, "contentType": { "@context": { "@definition": "The type of content which can be expected in the \"content\" property. Examples are a link, restricted link, pdf, excel, etc." }, "@id": "aspect:contentType", "@type": "schema:string" }, "header": { "@context": { "@definition": "The header as a short description of the document with a maximum of 100 characters." }, "@id": "aspect:header", "@type": "schema:string" }, "id": "@id", "type": "@type" }, "@definition": "The applied rulebook for the environmental footprint of the product.", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:rulebook" }, "type": { "@context": { "@definition": "The type of the environmental footprint of the product. This could be one of the environmental impact categories. This attribute is mentioned in the ESPR provisional agreement from January 9th 2024 Article 7:\n(2)(b)(i) information on the performance of the product in relation to one or more of the product parameters referred to in Annex I, including a scoring of reparability or durability, carbon footprint or environmental footprint;\nAnnex I:\n(l) the environmental footprint of the product, expressed as a quantification, in accordance with the applicable delegated act, of a product's life cycle environmental impacts, whether in relation to one or more environmental impact categories or an aggregated set of impact categories.\n(m) the carbon footprint of the product;\n(ma) the material footprint of the product." }, "@id": "aspect:type", "@type": "schema:string" }, "unit": { "@context": { "@definition": "The unit of measurement of the environmental impact category. For each impact category a specific unit is used. If an aggregation is used, utilize the normalization and weighting methods used in the referenced rulebook." }, "@id": "aspect:unit", "@type": "schema:string" }, "value": { "@context": { "@definition": "The value of the footprint of the product. This attribute is mentioned in the ESPR proposal from March 30th, 2022 Annex I:\n(l) the environmental footprint of the product, expressed as a quantification, in accordance with the applicable delegated act, of a product's life cycle environmental impacts, whether in relation to one or more environmental impact categories or an aggregated set of impact categories;\n(m) the carbon footprint of the product;\n(ma) the material footprint of the product.\n" }, "@id": "aspect:value", "@type": "schema:number" } }, "@definition": "The environmental footprint of the product. This attribute is mentioned in the ESPR provisional agreement from January 9th, 2024 Annex I:\nThe following parameters shall, as appropriate, and where necessary supplemented by others, be used, individually or combined, as a basis for improving the product aspects referred to in Article 5(1):\n(l) the environmental footprint of the product, expressed as a quantification, in accordance with the applicable delegated act, of a product's life cycle environmental impacts, whether in relation to one or more environmental impact categories or an aggregated set of impact categories.\nand Article 7:\n(2)(b)(i) information on the performance of the product in relation to one or more of the product parameters referred to in Annex I, including a scoring of reparability or durability, carbon footprint or environmental footprint;\nand defined by Article 2:\n(23) 'environmental footprint' means a quantification of product environmental impacts throughout its life cycle, whether in relation to a single environmental impact category or an aggregated set of impact categories based on the Product Environmental Footprint method or other scientific methods developed by international organisations and widely tested in collaboration with different industry sectors and adopted or implemented by the Commission in other Union legislation;\n(24) 'Product Environmental Footprint method' means the life cycle assessment method to quantify the environmental impacts of products established by Recommendation (EU) 2021/2279.", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:environmental" }, "id": "@id", "material": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "declaration": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "content": { "@context": { "@definition": "The content of the document e.g a link." }, "@id": "aspect:content", "@type": "schema:string" }, "contentType": { "@context": { "@definition": "The type of content which can be expected in the \"content\" property. Examples are a link, restricted link, pdf, excel, etc." }, "@id": "aspect:contentType", "@type": "schema:string" }, "header": { "@context": { "@definition": "The header as a short description of the document with a maximum of 100 characters." }, "@id": "aspect:header", "@type": "schema:string" }, "id": "@id", "type": "@type" }, "@definition": "The footprint declaration in the format of a link ", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:declaration" }, "id": "@id", "lifecycle": { "@context": { "@definition": "The lifecycle stage, to which the environmental footprint corresponds. These could be for example \"raw material acquisition and pre-processing\", \"main product production\", \"distribution\" or \"end of life and recycling\"." }, "@id": "aspect:lifecycle", "@type": "schema:string" }, "manufacturingPlant": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "facility": { "@context": { "@definition": "The identifier used for a location. This attribute is mentioned in the ESPR provisional agreement from January 9th 2024 Annex III:\n(i) unique facility identifiers;\nArticle 2 Definitions: (33) 'unique facility identifier' means a unique string of characters for the identification of locations or buildings involved in the value chain of a product or used by actors involved in the value chain of a product." }, "@id": "aspect:facility", "@type": "schema:string" }, "id": "@id", "type": "@type" }, "@definition": "The manufacturing plant of the footprint in the specific lifecycle phase.", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:manufacturingPlant" }, "performanceClass": { "@context": { "@definition": "The performance classification of the footprint." }, "@id": "aspect:performanceClass", "@type": "schema:string" }, "rulebook": { "@container": "@list", "@context": { "@context": { "@version": 1.1, "content": { "@context": { "@definition": "The content of the document e.g a link." }, "@id": "aspect:content", "@type": "schema:string" }, "contentType": { "@context": { "@definition": "The type of content which can be expected in the \"content\" property. Examples are a link, restricted link, pdf, excel, etc." }, "@id": "aspect:contentType", "@type": "schema:string" }, "header": { "@context": { "@definition": "The header as a short description of the document with a maximum of 100 characters." }, "@id": "aspect:header", "@type": "schema:string" }, "id": "@id", "type": "@type" }, "@definition": "The applied rulebook for the environmental footprint of the product.", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:rulebook" }, "type": { "@context": { "@definition": "The type of the environmental footprint of the product. This could be one of the environmental impact categories. This attribute is mentioned in the ESPR provisional agreement from January 9th 2024 Article 7:\n(2)(b)(i) information on the performance of the product in relation to one or more of the product parameters referred to in Annex I, including a scoring of reparability or durability, carbon footprint or environmental footprint;\nAnnex I:\n(l) the environmental footprint of the product, expressed as a quantification, in accordance with the applicable delegated act, of a product's life cycle environmental impacts, whether in relation to one or more environmental impact categories or an aggregated set of impact categories.\n(m) the carbon footprint of the product;\n(ma) the material footprint of the product." }, "@id": "aspect:type", "@type": "schema:string" }, "unit": { "@context": { "@definition": "The unit of measurement of the environmental impact category. For each impact category a specific unit is used. If an aggregation is used, utilize the normalization and weighting methods used in the referenced rulebook." }, "@id": "aspect:unit", "@type": "schema:string" }, "value": { "@context": { "@definition": "The value of the footprint of the product. This attribute is mentioned in the ESPR proposal from March 30th, 2022 Annex I:\n(l) the environmental footprint of the product, expressed as a quantification, in accordance with the applicable delegated act, of a product's life cycle environmental impacts, whether in relation to one or more environmental impact categories or an aggregated set of impact categories;\n(m) the carbon footprint of the product;\n(ma) the material footprint of the product.\n" }, "@id": "aspect:value", "@type": "schema:number" } }, "@definition": "The material footprint of the product. This is mentioned in the ESPR provisional agreement from January 9th, 2024 Annex I:\n(ma) the material footprint of the product;\nand defined by Article 2:\n(25a) 'material footprint' refers to the total amount of raw materials extracted to meet final consumption demands.", "@version": 1.1, "id": "@id", "type": "@type" }, "@id": "aspect:material" }, "type": "@type" }, "@id": "aspect:productFootprint" }, "reparabilityScore": { "@context": { "@definition": "The reparability score. This attribute is mentioned ESPR provisional agreement from January 9th, 2024 Article 7:\n(b) as appropriate, also require products to be accompanied by:\n(i) information on the performance of the product in relation to one or more of the product parameters referred to in Annex I, including a scoring of reparability or durability [...]." }, "@id": "aspect:reparabilityScore", "@type": "schema:string" }, "status": { "@context": { "@definition": "The status of the product (original, repurposed, re-used, remanufactured or waste) to indicated, whether it is a used product. This attribute is mentioned in the ESPR proposal from March 30th, 2022 Annex I:\n(j) incorporation of used components." }, "@id": "aspect:status", "@type": "schema:string" }, "type": "@type" }, "@id": "aspect:sustainability" }, "type": "@type" } } } } ], "type": [ "VerifiableCredential", "CertifiedDataCredential", "DigitalProductPassport" ], "issuer": "did:web:localhost:7777:BPNL00000000W3TR", "parent": { "@id": "did:web:dpp-test-system.com:BPNL000000000000:api:public:urn%3Auuid%3A1c5b6a7c-90d4-3481-0538-f134ff53076d", "checksum": "64b1a523da600e8fc0018cf57b8f7756b83bb6e9b11c81b1c7444272fab239902321b1b6ae6624d6846fd010616ae98c118f12491f922badd64e58b782c6a115" }, "credentialSubject": { "DigitalProductPassport": { "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": 20.0, "unit": "unit:millimetre" }, "length": { "value": 20.0, "unit": "unit:millimetre" }, "weight": { "value": 20.0, "unit": "unit:gram" }, "height": { "value": 20.0, "unit": "unit:millimetre" } }, "lifespan": [ { "value": 36, "unit": "unit:day", "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": "Mirror left" }, "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" } ] } ] }, "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" }, { "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" } }, "other": { "id": "BPNL0123456789XX", "role": "distributor" }, "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" } ] } ] }, "status": "original", "durabilityScore": "A" } } }, "issuanceDate": "2024-06-06T17:29:33+00:00Z", "expirationDate": "2024-11-21T17:29:33+00:00Z", "proof": { "type": "JsonWebSignature2020", "proofPurpose": "assertionMethod", "verificationMethod": "did:web:localhost:7777:BPNL00000000W3TR#fe2dac16-8b62-4400-94af-2bf45a476a4e", "created": "2024-06-06T17:29:33+00:00Z", "jws": "eyJ0eXAiOiAidmMrbGQiLCAiYjY0IjogZmFsc2UsICJjcnYiOiAiRWQyNTUxOSJ9..rgUcM4JP9QnoAlWTORn5mye0W87OYXftHRnR47qow88Ug6l-9TO3oVJPWE_4qiDJN0EOxPfFt1Elsiyllr8OAQ" } } ```
matbmoser commented 3 months ago

We are also able to create the did endpoint for getting the public key with the method:

Image

Content:

{
    "id": "did:web:localhost%3A7777:BPNL00000000W3TR",
    "verificationMethod": [
        {
            "publicKeyJwt": {
                "kty": "OKP",
                "kid": "d0963535-a285-4d34-8885-c50117fcbde5",
                "crv": "Ed25519",
                "x": "kz9ANMS6vEosKnL9LJJPJUG2Hdo7o37lE357aqvAdu0"
            },
            "controller": "did:web:localhost%3A7777:BPNL00000000W3TR",
            "id": "did:web:localhost%3A7777:BPNL00000000W3TR#d0963535-a285-4d34-8885-c50117fcbde5",
            "type": "JsonWebKey2020"
        }
    ],
    "@context": [
        "https://www.w3.org/ns/did/v1",
        "https://w3c.github.io/vc-jws-2020/contexts/v1"
    ]
}
matbmoser commented 3 months ago

For assuring data integrity I will add the checksum form the expanded json-ld in the signature:

Image

matbmoser commented 3 months ago

I could finally verify our first credential issued!

Image

matbmoser commented 3 months ago

Started working in migrating the simple wallet to tractus-x, it was before in my personal repository to test things: https://github.com/matbmoser/simple-wallet:

Image

Working in the following branch https://github.com/eclipse-tractusx/digital-product-pass/tree/feature/simple-wallet

matbmoser commented 3 months ago

I just implemented authorization:

Image

Now if the API key is not configured here:

Image

The application will no accept the requests

matbmoser commented 3 months ago

For authentication requests the user needs to add its BPN:

Image

BPN is like the "clientId" and the API Key the "clientSecret"

matbmoser commented 3 months ago

Ok I created a docker container for the wallet

Image

matbmoser commented 3 months ago

I have registered the digital twin:

{
    "description": [
        {
            "language": "en",
            "text": "Battery Digital Twin"
        }
    ],
    "displayName": [],
    "globalAssetId": "urn:uuid:a4c600e8-b11f-4e1d-a2f9-80ad518806b8",
    "idShort": "Battery_DPP-XYZ789",
    "id": "urn:uuid:a4c600e8-b11f-4e1d-a2f9-80ad518806b8",
    "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:a377ff49-6bde-4215-8d38-b8f02c991a35",
                        "endpointProtocol": "HTTP",
                        "endpointProtocolVersion": [
                            "1.1"
                        ],
                        "subprotocol": "DSP",
                        "subprotocolBody": "id=urn:uuid:3e4a5957-f226-478a-ab18-79ced49d6195;dspEndpoint=https://dpp.int.demo.catena-x.net/BPNL000000000000",
                        "subprotocolBodyEncoding": "plain",
                        "securityAttributes": [
                            {
                                "type": "NONE",
                                "key": "NONE",
                                "value": "NONE"
                            }
                        ]
                    }
                }
            ],
            "idShort": "digitalProductPass",
            "id": "urn:uuid:a377ff49-6bde-4215-8d38-b8f02c991a35",
            "semanticId": {
                "type": "ExternalReference",
                "keys": [
                    {
                        "type": "Entity",
                        "value": "https://www.w3.org/ns/credentials/v2"
                    },
                    {
                        "type": "DataElement",
                        "value": "urn:samm:io.catenax.dpp_verification.cdc:1.0.0#CertifiedDataCredential"
                    },
                    {
                        "type": "Submodel",
                        "value": "urn:samm:io.catenax.generic.digital_product_passport:4.0.0#DigitalProductPassport"
                    },
                    {
                        "type": "Operation",
                        "value": "https://w3c.github.io/vc-jws-2020/contexts/v1/"
                    }
                ]
            },
            "description": [
                {
                    "language": "en",
                    "text": "Verifiable Digital Product Passport Submodel"
                }
            ],
            "displayName": []
        }
    ]
}

In the submodel we included the following schema for the semantic Ids:

matbmoser commented 3 months ago

Ok the backend is finally able to verify the credentials:

Image

matbmoser commented 3 months ago

I have configured a dpp consumer wallet and a dpp provider wallet so the provider can sign the credentials and the consumer another instance can verify the credential for the backend!

matbmoser commented 3 months ago

In case the Verifiable Credential is not able to be verified this is what we get:

Image

matbmoser commented 2 months ago

Status here:

matbmoser commented 2 months ago

I could auto verify and retrieve the data from the backend!

Image

Image

matbmoser commented 2 months ago

I present the first verifiable credential which is working, verified E2E and presented in the frontend !

Image

matbmoser commented 2 months ago

All the PRs are create and waiting to be reviewed and merged!

matbmoser commented 2 months ago

Final PoC is implemented and working:

Image

saudkhan116 commented 2 months ago

Included in a DPP release v4.0.0

matbmoser commented 2 months ago

Pending to merge the following PRs:

matbmoser commented 2 months ago

Ok, Issue Documentation updated to match developments and artifacts produced. I also added the issue ticket for the documentation which is still open. I am updating the documentation to match the implementation.

matbmoser commented 2 months ago

@stephanbcbauer updated the description of this feature and detailed all the aspects like dependecies etc...

matbmoser commented 1 month ago

Latest Version Will be published in this PR digital-product-pass#388