diff --git a/cx/credentials/samples/dataexchange.governance.credential.json b/cx/credentials/samples/dataexchange.governance.credential.json new file mode 100644 index 0000000..a16056a --- /dev/null +++ b/cx/credentials/samples/dataexchange.governance.credential.json @@ -0,0 +1,23 @@ +{ + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://w3id.org/catenax/credentials/v1.0.0" + ], + "id": "1f36af58-0fc0-4b24-9b1c-e37d59668089", + "type": [ + "VerifiableCredential", + "DataExchangeGovernanceCredential" + ], + "issuer": "did:web:com.example.issuer", + "issuanceDate": "2021-06-16T18:56:59Z", + "expirationDate": "2022-06-16T18:56:59Z", + "credentialSubject": + { + "id": "did:web:com.example.participant", + "holderIdentifier": "BPNL000000001", + "group": "UseCaseFramework", + "useCase": "DataExchangeGovernance", + "contractTemplate": "https://catena-x.net/en/catena-x-introduce-implement/governance-framework-for-data-space-operations", + "contractVersion": "a.b" + } +} \ No newline at end of file diff --git a/cx/credentials/schema/context/credentials.context.json b/cx/credentials/schema/context/credentials.context.json index 21bdce7..6a98b9f 100644 --- a/cx/credentials/schema/context/credentials.context.json +++ b/cx/credentials/schema/context/credentials.context.json @@ -11,6 +11,9 @@ "BpnCredential": { "@id": "cx-credentials:BpnCredential" }, + "DataExchangeGovernance": { + "@id": "cx-credentials:DataExchangeGovernance" + }, "DismantlerCredential": { "@id": "cx-credentials:DismantlerCredential" }, diff --git a/cx/credentials/schema/credentials/dataexchange.governance.credential.schema.json b/cx/credentials/schema/credentials/dataexchange.governance.credential.schema.json new file mode 100644 index 0000000..4428ab6 --- /dev/null +++ b/cx/credentials/schema/credentials/dataexchange.governance.credential.schema.json @@ -0,0 +1,41 @@ +{ + "$id": "https://w3id.org/catenax/schemas/v1.0.0/dataexchange.governance.credential.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "DataExchangeGovernanceCredential", + "description": "Data Exchange Governance Credential Schema", + "type": "object", + "properties": { + "credentialSubject": { + "type": "object", + "properties": { + "id": { + "description": "The Web DID of the holder", + "$ref": "./types.schema.json#/definitions/web-did" + }, + "holderIdentifier": { + "description": "The Business Partner Number of the holder", + "type": "string" + }, + "useCase": { + "description": "The linked use case - in this case Data Exchange Governance Framework agreement is valid for all Catena-X use cases", + "type": "string" + }, + "contractTemplate": { + "description": "A link to the framework agreement type that was signed by the holder", + "$ref": "./types.schema.json#/definitions/endpoint" + }, + "contractVersion": { + "description": "The version of the framework agreement that was signed by the holder. format: x.y", + "type": "string" + } + }, + "required": [ + "id", + "holderIdentifier", + "contractTemplate", + "contractVersion" + ] + } + } +} + diff --git a/cx/credentials/specs/specification.changes.md b/cx/credentials/specs/specification.changes.md index abbf742..d94edbd 100644 --- a/cx/credentials/specs/specification.changes.md +++ b/cx/credentials/specs/specification.changes.md @@ -7,3 +7,4 @@ 5. Create JSON Schema definitions for all credentials using the URI: https://w3id.org/catenax/schemas/v1.0.0/ 6. Adopt JWT-based VCs using JWS algorithm `ES256K` and JWK curve `secp256k1` 7. Separate namespaces for `tractusx` and `catenax` +8. Add Data Exchange Governance Credential diff --git a/cx/credentials/specs/vc.specification.md b/cx/credentials/specs/vc.specification.md index 24274d1..41baded 100644 --- a/cx/credentials/specs/vc.specification.md +++ b/cx/credentials/specs/vc.specification.md @@ -30,26 +30,30 @@ Specified in [Membership Credential Schema](../schema/credentials/membership.cre ### 2.4. Framework Credential Types -#### 2.4.1. The `BehavioralTwinCredential` Type +#### 2.4.1. The `DataExchangeGovernance` Type + +Specified in [Data Exchange Governance Credential Schema](../schema/credentials/dataexchange.governance.credential.schema.json). + +#### 2.4.2. The `BehavioralTwinCredential` Type Specified in [Behavioral Twin Credential Schema](../schema/credentials/behavioral.twin.credential.schema.json). -#### 2.4.2. The `PcfCredential` Type +#### 2.4.3. The `PcfCredential` Type Specified in [PCF Credential Schema](../schema/credentials/pcf.credential.schema.json). -#### 2.4.3. The `QualityCredential` Type +#### 2.4.4. The `QualityCredential` Type Specified in [Quality Credential Schema](../schema/credentials/quality.credential.schema.json). -#### 2.4.4. The `ResiliencyCredential` Type +#### 2.4.5. The `ResiliencyCredential` Type Specified in [Resiliency Credential Schema](../schema/credentials/resiliency.credential.schema.json). -#### 2.4.5. The `SustainabilityCredential` Type +#### 2.4.6. The `SustainabilityCredential` Type Specified in [Sustainability Credential Schema](../schema/credentials/sustainability.credential.schema.json). -#### 2.4.6. The `TraceabilityCredential` Type +#### 2.4.7. The `TraceabilityCredential` Type Specified in [Traceability Credential Schema](../schema/credentials/traceability.credential.schema.json). diff --git a/cx/credentials/tests/credentials/dataexchangegovernance-secp256k1-pubkey.json b/cx/credentials/tests/credentials/dataexchangegovernance-secp256k1-pubkey.json new file mode 100644 index 0000000..2897887 --- /dev/null +++ b/cx/credentials/tests/credentials/dataexchangegovernance-secp256k1-pubkey.json @@ -0,0 +1 @@ +{"kty":"EC","use":"sig","crv":"secp256k1","x":"3EbyIFWR7uFsSMw2uDjXB-E1WI1VOI222tn3qBj5bJo","y":"u6VEz_zZX1VcV5u-XloahfYTDF-bmZjVJiJmPnDL9Ho"} \ No newline at end of file diff --git a/cx/credentials/tests/credentials/dataexchangegovernance-secp256k1.jwt b/cx/credentials/tests/credentials/dataexchangegovernance-secp256k1.jwt new file mode 100644 index 0000000..53dea68 --- /dev/null +++ b/cx/credentials/tests/credentials/dataexchangegovernance-secp256k1.jwt @@ -0,0 +1 @@ +eyJraWQiOiJkaWQ6d2ViOmRpbS1zdGF0aWMtcWEuZGlzLWNsb3VkLXFhLmNmYXBwcy5ldTEyLmhhbmEub25kZW1hbmQuY29tOmRpbS1ob3N0ZWQ6MjEwMjZkYzQtMmIzNS00M2VkLWIwOTAtYjEzMDdjNjNiZGUxOmNhdGVuYS14LW9wY28taXNzdWVyI2tleXMtODUyZmQ2NzktZjQ3MC00ZTYxLWFkOTItZDVkZTEzYWI0N2QyIiwiYWxnIjoiRVMyNTZLIiwidHlwIjoiSldUIn0.eyJpYXQiOjE3MTk0ODcxNTksImV4cCI6MTcxOTY1OTk1MywidmMiOnsiaWQiOiJhNDViOTA1ZGI5NGNmMWNkNmQwNjI0NTViMDU2YzcxNzZhMjFmYjgyNzk0NjJjMzI2ODBhYjQxYiIsInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJEYXRhRXhjaGFuZ2VHb3Zlcm5hbmNlQ3JlZGVudGlhbCJdLCJpc3N1ZXIiOiJkaWQ6d2ViOmRpbS1zdGF0aWMtcWEuZGlzLWNsb3VkLXFhLmNmYXBwcy5ldTEyLmhhbmEub25kZW1hbmQuY29tOmRpbS1ob3N0ZWQ6MjEwMjZkYzQtMmIzNS00M2VkLWIwOTAtYjEzMDdjNjNiZGUxOmNhdGVuYS14LW9wY28taXNzdWVyIiwiQGNvbnRleHQiOlsiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvdjEiXSwiaXNzdWFuY2VEYXRlIjoiMjAyNC0wNi0yN1QxMToxOToxOS40ODZaIiwiZXhwaXJhdGlvbkRhdGUiOiIyMDI0LTA2LTI5VDExOjE5OjEzLjEzMFoiLCJjcmVkZW50aWFsU2NoZW1hIjp7ImlkIjoiaHR0cHM6Ly9kaW0tc3RhdGljLXFhLmRpcy1jbG91ZC1xYS5jZmFwcHMuZXUxMi5oYW5hLm9uZGVtYW5kLmNvbS9jcmVkZW50aWFsLXNjaGVtYS85MGVhZTcwNS1kYTJjLTQxMDAtOTU3Ny1jOTc4ZDc4OGE1OWQvY2F0ZW5hLXgtb3Bjby1pc3N1ZXIvZGF0YWdvdmVybmFuY2UvMS4wIiwidHlwZSI6Ikpzb25TY2hlbWEifSwiY3JlZGVudGlhbFN0YXR1cyI6eyJpZCI6Imh0dHBzOi8vZGltLXN0YXRpYy1xYS5kaXMtY2xvdWQtcWEuY2ZhcHBzLmV1MTIuaGFuYS5vbmRlbWFuZC5jb20vY3JlZGVudGlhbHMvc3RhdHVzLzkwZWFlNzA1LWRhMmMtNDEwMC05NTc3LWM5NzhkNzg4YTU5ZC9kYTM1Y2Y2OS0zYWEzLTQ5ZDUtOGQyNi0wY2M2MzNiNWI3ZWMjMiIsInR5cGUiOiJTdGF0dXNMaXN0MjAyMUVudHJ5Iiwic3RhdHVzUHVycG9zZSI6InJldm9jYXRpb24iLCJzdGF0dXNMaXN0SW5kZXgiOiIyIiwic3RhdHVzTGlzdENyZWRlbnRpYWwiOiJodHRwczovL2RpbS1zdGF0aWMtcWEuZGlzLWNsb3VkLXFhLmNmYXBwcy5ldTEyLmhhbmEub25kZW1hbmQuY29tL2NyZWRlbnRpYWxzL3N0YXR1cy85MGVhZTcwNS1kYTJjLTQxMDAtOTU3Ny1jOTc4ZDc4OGE1OWQvZGEzNWNmNjktM2FhMy00OWQ1LThkMjYtMGNjNjMzYjViN2VjIn0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImlkIjoiZGlkOndlYjpkaW0tc3RhdGljLXFhLmRpcy1jbG91ZC1xYS5jZmFwcHMuZXUxMi5oYW5hLm9uZGVtYW5kLmNvbTpkaW0taG9zdGVkOjA0NDk2NTE5LTk2NTctNGViMy1hNzU0LWRkOTI5MzY0YmM3MTpjYXItbWFudWZhY3R1cmVyIiwidXNlQ2FzZSI6IkRhdGFFeGNoYW5nZUdvdmVybmFuY2UiLCJjb250cmFjdFZlcnNpb24iOiIxLjAiLCJjb250cmFjdFRlbXBsYXRlIjoiaHR0cHM6Ly9jYXRlbmEteC5uZXQvZW4vY2F0ZW5hLXgtaW50cm9kdWNlLWltcGxlbWVudC9nb3Zlcm5hbmNlLWZyYW1ld29yay1mb3ItZGF0YS1zcGFjZS1vcGVyYXRpb25zIiwiaG9sZGVySWRlbnRpZmllciI6IkJQTkwwMDAwMDAwMDEifX0sImlzcyI6ImRpZDp3ZWI6ZGltLXN0YXRpYy1xYS5kaXMtY2xvdWQtcWEuY2ZhcHBzLmV1MTIuaGFuYS5vbmRlbWFuZC5jb206ZGltLWhvc3RlZDoyMTAyNmRjNC0yYjM1LTQzZWQtYjA5MC1iMTMwN2M2M2JkZTE6Y2F0ZW5hLXgtb3Bjby1pc3N1ZXIiLCJzdWIiOiJkaWQ6d2ViOmRpbS1zdGF0aWMtcWEuZGlzLWNsb3VkLXFhLmNmYXBwcy5ldTEyLmhhbmEub25kZW1hbmQuY29tOmRpbS1ob3N0ZWQ6MDQ0OTY1MTktOTY1Ny00ZWIzLWE3NTQtZGQ5MjkzNjRiYzcxOmNhci1tYW51ZmFjdHVyZXIiLCJqdGkiOiJhNDViOTA1ZGI5NGNmMWNkNmQwNjI0NTViMDU2YzcxNzZhMjFmYjgyNzk0NjJjMzI2ODBhYjQxYiIsIm5iZiI6MTcxOTQ4NzE1OX0.bQeHDhGDEsGvAY_wpoWxu1GRQxckKv8T7ddicpnB2q0leS_zU5AobhivY-eUX0fI79OX6H5Cfj0khjIFRl8TyA \ No newline at end of file diff --git a/cx/credentials/tests/presentations/dataexchange-governance-presentation-pubkey.json b/cx/credentials/tests/presentations/dataexchange-governance-presentation-pubkey.json new file mode 100644 index 0000000..a5dfc8d --- /dev/null +++ b/cx/credentials/tests/presentations/dataexchange-governance-presentation-pubkey.json @@ -0,0 +1 @@ +{"kty":"EC","use":"sig","crv":"secp256k1","x":"A8gkcK6CZ_GGpswBW9GVqW2B4gwfJLCxDf_O1kJvZh8","y":"GbIwlCtsU6EH28bgiKwkdos8xoL2MZ23tB10k0alihk"} \ No newline at end of file diff --git a/cx/credentials/tests/presentations/dataexchange-governance-presentation.jwt b/cx/credentials/tests/presentations/dataexchange-governance-presentation.jwt new file mode 100644 index 0000000..dc2bcfa --- /dev/null +++ b/cx/credentials/tests/presentations/dataexchange-governance-presentation.jwt @@ -0,0 +1 @@ +eyJraWQiOiJkaWQ6d2ViOmRpbS1zdGF0aWMtcWEuZGlzLWNsb3VkLXFhLmNmYXBwcy5ldTEyLmhhbmEub25kZW1hbmQuY29tOmRpbS1ob3N0ZWQ6MDQ0OTY1MTktOTY1Ny00ZWIzLWE3NTQtZGQ5MjkzNjRiYzcxOmNhci1tYW51ZmFjdHVyZXIja2V5cy1lOTMwMWFjZC0zMjMxLTQ4YTgtYmE5Zi1lY2E3ZWE5YWNkNDEiLCJhbGciOiJFUzI1NksiLCJ0eXAiOiJKV1QifQ.eyJ2cCI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSJdLCJ0eXBlIjpbIlZlcmlmaWFibGVQcmVzZW50YXRpb24iXSwidmVyaWZpYWJsZUNyZWRlbnRpYWwiOlsiZXlKcmFXUWlPaUprYVdRNmQyVmlPbVJwYlMxemRHRjBhV010Y1dFdVpHbHpMV05zYjNWa0xYRmhMbU5tWVhCd2N5NWxkVEV5TG1oaGJtRXViMjVrWlcxaGJtUXVZMjl0T21ScGJTMW9iM04wWldRNk1qRXdNalprWXpRdE1tSXpOUzAwTTJWa0xXSXdPVEF0WWpFek1EZGpOak5pWkdVeE9tTmhkR1Z1WVMxNExXOXdZMjh0YVhOemRXVnlJMnRsZVhNdE9EVXlabVEyTnprdFpqUTNNQzAwWlRZeExXRmtPVEl0WkRWa1pURXpZV0kwTjJReUlpd2lZV3huSWpvaVJWTXlOVFpMSWl3aWRIbHdJam9pU2xkVUluMC5leUpwWVhRaU9qRTNNVGswT0RjeE5Ua3NJbVY0Y0NJNk1UY3hPVFkxT1RrMU15d2lkbU1pT25zaWFXUWlPaUpoTkRWaU9UQTFaR0k1TkdObU1XTmtObVF3TmpJME5UVmlNRFUyWXpjeE56WmhNakZtWWpneU56azBOakpqTXpJMk9EQmhZalF4WWlJc0luUjVjR1VpT2xzaVZtVnlhV1pwWVdKc1pVTnlaV1JsYm5ScFlXd2lMQ0pFWVhSaFJYaGphR0Z1WjJWSGIzWmxjbTVoYm1ObFEzSmxaR1Z1ZEdsaGJDSmRMQ0pwYzNOMVpYSWlPaUprYVdRNmQyVmlPbVJwYlMxemRHRjBhV010Y1dFdVpHbHpMV05zYjNWa0xYRmhMbU5tWVhCd2N5NWxkVEV5TG1oaGJtRXViMjVrWlcxaGJtUXVZMjl0T21ScGJTMW9iM04wWldRNk1qRXdNalprWXpRdE1tSXpOUzAwTTJWa0xXSXdPVEF0WWpFek1EZGpOak5pWkdVeE9tTmhkR1Z1WVMxNExXOXdZMjh0YVhOemRXVnlJaXdpUUdOdmJuUmxlSFFpT2xzaWFIUjBjSE02THk5M2QzY3Vkek11YjNKbkx6SXdNVGd2WTNKbFpHVnVkR2xoYkhNdmRqRWlYU3dpYVhOemRXRnVZMlZFWVhSbElqb2lNakF5TkMwd05pMHlOMVF4TVRveE9Ub3hPUzQwT0RaYUlpd2laWGh3YVhKaGRHbHZia1JoZEdVaU9pSXlNREkwTFRBMkxUSTVWREV4T2pFNU9qRXpMakV6TUZvaUxDSmpjbVZrWlc1MGFXRnNVMk5vWlcxaElqcDdJbWxrSWpvaWFIUjBjSE02THk5a2FXMHRjM1JoZEdsakxYRmhMbVJwY3kxamJHOTFaQzF4WVM1alptRndjSE11WlhVeE1pNW9ZVzVoTG05dVpHVnRZVzVrTG1OdmJTOWpjbVZrWlc1MGFXRnNMWE5qYUdWdFlTODVNR1ZoWlRjd05TMWtZVEpqTFRReE1EQXRPVFUzTnkxak9UYzRaRGM0T0dFMU9XUXZZMkYwWlc1aExYZ3RiM0JqYnkxcGMzTjFaWEl2WkdGMFlXZHZkbVZ5Ym1GdVkyVXZNUzR3SWl3aWRIbHdaU0k2SWtwemIyNVRZMmhsYldFaWZTd2lZM0psWkdWdWRHbGhiRk4wWVhSMWN5STZleUpwWkNJNkltaDBkSEJ6T2k4dlpHbHRMWE4wWVhScFl5MXhZUzVrYVhNdFkyeHZkV1F0Y1dFdVkyWmhjSEJ6TG1WMU1USXVhR0Z1WVM1dmJtUmxiV0Z1WkM1amIyMHZZM0psWkdWdWRHbGhiSE12YzNSaGRIVnpMemt3WldGbE56QTFMV1JoTW1NdE5ERXdNQzA1TlRjM0xXTTVOemhrTnpnNFlUVTVaQzlrWVRNMVkyWTJPUzB6WVdFekxUUTVaRFV0T0dReU5pMHdZMk0yTXpOaU5XSTNaV01qTWlJc0luUjVjR1VpT2lKVGRHRjBkWE5NYVhOME1qQXlNVVZ1ZEhKNUlpd2ljM1JoZEhWelVIVnljRzl6WlNJNkluSmxkbTlqWVhScGIyNGlMQ0p6ZEdGMGRYTk1hWE4wU1c1a1pYZ2lPaUl5SWl3aWMzUmhkSFZ6VEdsemRFTnlaV1JsYm5ScFlXd2lPaUpvZEhSd2N6b3ZMMlJwYlMxemRHRjBhV010Y1dFdVpHbHpMV05zYjNWa0xYRmhMbU5tWVhCd2N5NWxkVEV5TG1oaGJtRXViMjVrWlcxaGJtUXVZMjl0TDJOeVpXUmxiblJwWVd4ekwzTjBZWFIxY3k4NU1HVmhaVGN3TlMxa1lUSmpMVFF4TURBdE9UVTNOeTFqT1RjNFpEYzRPR0UxT1dRdlpHRXpOV05tTmprdE0yRmhNeTAwT1dRMUxUaGtNall0TUdOak5qTXpZalZpTjJWakluMHNJbU55WldSbGJuUnBZV3hUZFdKcVpXTjBJanA3SW1sa0lqb2laR2xrT25kbFlqcGthVzB0YzNSaGRHbGpMWEZoTG1ScGN5MWpiRzkxWkMxeFlTNWpabUZ3Y0hNdVpYVXhNaTVvWVc1aExtOXVaR1Z0WVc1a0xtTnZiVHBrYVcwdGFHOXpkR1ZrT2pBME5EazJOVEU1TFRrMk5UY3ROR1ZpTXkxaE56VTBMV1JrT1RJNU16WTBZbU0zTVRwallYSXRiV0Z1ZFdaaFkzUjFjbVZ5SWl3aWRYTmxRMkZ6WlNJNklrUmhkR0ZGZUdOb1lXNW5aVWR2ZG1WeWJtRnVZMlVpTENKamIyNTBjbUZqZEZabGNuTnBiMjRpT2lJeExqQWlMQ0pqYjI1MGNtRmpkRlJsYlhCc1lYUmxJam9pYUhSMGNITTZMeTlqWVhSbGJtRXRlQzV1WlhRdlpXNHZZMkYwWlc1aExYZ3RhVzUwY205a2RXTmxMV2x0Y0d4bGJXVnVkQzluYjNabGNtNWhibU5sTFdaeVlXMWxkMjl5YXkxbWIzSXRaR0YwWVMxemNHRmpaUzF2Y0dWeVlYUnBiMjV6SWl3aWFHOXNaR1Z5U1dSbGJuUnBabWxsY2lJNklrSlFUa3d3TURBd01EQXdNREVpZlgwc0ltbHpjeUk2SW1ScFpEcDNaV0k2WkdsdExYTjBZWFJwWXkxeFlTNWthWE10WTJ4dmRXUXRjV0V1WTJaaGNIQnpMbVYxTVRJdWFHRnVZUzV2Ym1SbGJXRnVaQzVqYjIwNlpHbHRMV2h2YzNSbFpEb3lNVEF5Tm1Sak5DMHlZak0xTFRRelpXUXRZakE1TUMxaU1UTXdOMk0yTTJKa1pURTZZMkYwWlc1aExYZ3RiM0JqYnkxcGMzTjFaWElpTENKemRXSWlPaUprYVdRNmQyVmlPbVJwYlMxemRHRjBhV010Y1dFdVpHbHpMV05zYjNWa0xYRmhMbU5tWVhCd2N5NWxkVEV5TG1oaGJtRXViMjVrWlcxaGJtUXVZMjl0T21ScGJTMW9iM04wWldRNk1EUTBPVFkxTVRrdE9UWTFOeTAwWldJekxXRTNOVFF0WkdRNU1qa3pOalJpWXpjeE9tTmhjaTF0WVc1MVptRmpkSFZ5WlhJaUxDSnFkR2tpT2lKaE5EVmlPVEExWkdJNU5HTm1NV05rTm1Rd05qSTBOVFZpTURVMll6Y3hOelpoTWpGbVlqZ3lOemswTmpKak16STJPREJoWWpReFlpSXNJbTVpWmlJNk1UY3hPVFE0TnpFMU9YMC5iUWVIRGhHREVzR3ZBWV93cG9XeHUxR1JReGNrS3Y4VDdkZGljcG5CMnEwbGVTX3pVNUFvYmhpdlktZVVYMGZJNzlPWDZINUNmajBraGpJRlJsOFR5QSJdfSwiYXVkIjpudWxsLCJub25jZSI6IjBjNzViYzFhLWQ5NWItNGYwNi1hYWU2LTEzMjNjYWE0MjRmNyIsImp0aSI6IjkyYWE0MDVjZDNhYzAzMjJlYzIxMDBhOWNhMjlhZGNjN2Q0ZjgyY2M5M2VjNTcxNzYzYWY5ZmIwIiwiaXNzIjoiZGlkOndlYjpkaW0tc3RhdGljLXFhLmRpcy1jbG91ZC1xYS5jZmFwcHMuZXUxMi5oYW5hLm9uZGVtYW5kLmNvbTpkaW0taG9zdGVkOjA0NDk2NTE5LTk2NTctNGViMy1hNzU0LWRkOTI5MzY0YmM3MTpjYXItbWFudWZhY3R1cmVyIn0.HcKUtedB9AdXy_7NsAkwMSkwUZ-8xz87maqIDuZbO0m1kRILlnHFKTLti3mPt7uNijEp5nEfCT6UxkyothbmHQ \ No newline at end of file diff --git a/cx/policy/samples/policy.sample.json b/cx/policy/samples/policy.sample.json index f6d72dd..926522e 100644 --- a/cx/policy/samples/policy.sample.json +++ b/cx/policy/samples/policy.sample.json @@ -14,7 +14,7 @@ "constraint": { "leftOperand": "FrameworkAgreement", "operator": "eq", - "rightOperand": "Pcf:1.0.0" + "rightOperand": "DataExchangeGovernance:1.0" } } } diff --git a/cx/policy/samples/policy.sample.playground.json b/cx/policy/samples/policy.sample.playground.json index fff2e8f..52be40f 100644 --- a/cx/policy/samples/policy.sample.playground.json +++ b/cx/policy/samples/policy.sample.playground.json @@ -31,7 +31,7 @@ "constraint": { "leftOperand": "FrameworkAgreement", "operator": "eq", - "rightOperand": "Pcf" + "rightOperand": "DataExchangeGovernance:1.0" } } } diff --git a/cx/policy/specs/policy.definitions.md b/cx/policy/specs/policy.definitions.md index 371311b..97a1457 100644 --- a/cx/policy/specs/policy.definitions.md +++ b/cx/policy/specs/policy.definitions.md @@ -144,7 +144,21 @@ is optional. Framework agreement constraints may only be used as an ODRL `Permission`. -## 4.1. PCF +## 4.1. Data Exchange Governance + +The DataExchangeGovernance framework agreement is expressed as: + +```json +{ + "constraint": { + "leftOperand": "FrameworkAgreement", + "operator": "eq", + "rightOperand": "DataExchangeGovernance:[version]" + } +} +``` + +## 4.2. PCF The PCF framework agreement is expressed as: @@ -158,7 +172,7 @@ The PCF framework agreement is expressed as: } ``` -## 4.2. Sustainability +## 4.3. Sustainability The Sustainability framework agreement is expressed as: @@ -172,7 +186,7 @@ The Sustainability framework agreement is expressed as: } ``` -## 4.3. Quality +## 4.4. Quality The Quality framework agreement is expressed as: @@ -186,7 +200,7 @@ The Quality framework agreement is expressed as: } ``` -## 4.4. Resiliency +## 4.5. Resiliency The Resiliency framework agreement is expressed as: @@ -200,7 +214,7 @@ The Resiliency framework agreement is expressed as: } ``` -## 4.5. Traceability +## 4.6. Traceability The Traceability framework agreement is expressed as: @@ -214,7 +228,7 @@ The Traceability framework agreement is expressed as: } ``` -## 4.6. Behavioral Twin +## 4.7. Behavioral Twin The Behavior framework agreement is expressed as: @@ -228,11 +242,11 @@ The Behavior framework agreement is expressed as: } ``` -## 4.7. BPN +## 4.8. BPN > ISSUE: The Membership VC appears to contain the same information. Is the BPN VC needed? -## 4.8. ContractReference +## 4.9. ContractReference The `Membership` constraint is used to reference applicable terms and conditions or other applicable rules. It is expressed as follows: @@ -252,7 +266,7 @@ The `ContractReference` constraint may only be used as an ODRL `Permission`. Valid `rightOperand` values must contain a `string` segment. This segment may be any valid set of characters, including a `URL`, contract number, or other relevant data. -## 4.9. UsagePurpose +## 4.10. UsagePurpose The `UsagePurpose` constraint is used to denote a governing purpose. It is expressed as follows: @@ -298,7 +312,7 @@ an active signed traceability agreement: { "leftOperand": "FrameworkAgreement", "operator": "eq", - "rightOperand": "Traceability" + "rightOperand": "DataExchangeGovernance:1.0" } ] }