Skip to main content

Saturn EDC Version Handling (0.11.x and later)

In this article you can find details about policy schema structure and payloads, and other changes for Saturn EDCs (0.11.x and later)

Saturn EDCs (version 0.11.x and later) introduce a new protocol version and updated policy structure. These changes follow the Catena-X standard: CX-0018 Dataspace Connectivity v4.2.
​

This update is important for Dataspace OS API users, as it affects how the Catalog is queried, how contracts are negotiated and how policies are configured for Saturn EDCs. Find information about how to upgrade your EDC here.

Changes for Data Provider

The main changes for data providers occur with the schema for defining policies. Making use of the Policy Builder helps with building consistent policies.

Access Policy:

{
"@context": [
"https://w3id.org/dspace/2025/1/odrl-profile.jsonld",
"https://w3id.org/catenax/2025/9/policy/context.jsonld",
{
"@vocab": "https://w3id.org/edc/v0.0.1/ns/"
}
],
"@type": "PolicyDefinition",
"@id": "membership-deg",
"policy": {
"@type": "Set",
"permission": [
{
"action": "access",
"constraint": {
"leftOperand": "BusinessPartnerNumber",
"operator": "isAnyOf",
"rightOperand": ["BPN6789", "..."]
}
}
]
}
}

Usage Policy:

{
"@context": [
"https://w3id.org/dspace/2025/1/odrl-profile.jsonld",
"https://w3id.org/catenax/2025/9/policy/context.jsonld",
{
"@vocab": "https://w3id.org/edc/v0.0.1/ns/"
}
],
"@type": "PolicyDefinition",
"@id": "{{POLICY_ID}}",
"policy": {
"@type": "Set",
"permission": [
{
"action": "use",
"constraint": {
"and": [
{
"leftOperand": "FrameworkAgreement",
"operator": "eq",
"rightOperand": "DataExchangeGovernance:1.0"
},
{
"leftOperand": "UsagePurpose",
"operator": "isAnyOf",
"rightOperand": ["<value>"]
}
]
}
}
]
}
}

Key changes:

The following updates apply compared to previous (Jupiter) EDC versions:

  • New Operators: The BusinessPartnerNumber and UsagePurpose constraints schema now allows only isAnyOf and isNoneOf operators, and requires the right operand to be an array of BPN-Ls.

    • Replaces Jupiter eq operators

  • Updated context. Saturn defines the odrl namespace as "https://w3id.org/dspace/2025/1/odrl-profile.jsonld" and the policy namespace as "https://w3id.org/catenax/2025/9/policy/context.jsonld".

Changes for Data Consumer

Catalog Query for Saturn EDCs

The Catalog must now be requested using the updated protocol version and endpoint structure:

POST: {{Consumer-Saturn-EDC-URL}}/management/v3/catalog/request

{
"@context": [
{
"@vocab":"https://w3id.org/edc/v0.0.1/ns/"
}
],
"@type": "CatalogRequest",
"counterPartyId": "did:web:portal-backend.beta.cofinity-x.com:api:administration:staticdata:did:{{Provider-BPNL}}",
"counterPartyAddress": "{{Provider-Saturn-EDC-URL}}/api/v1/dsp/2025-1",
"protocol": "dataspace-protocol-http:2025-1",
"querySpec": {
"offset": 0,
"limit": 50,
"sortField": "http://purl.org/dc/terms/type",
"sortOrder": "DESC",
"filterExpression": [
]
}
}

Contract Negotiation for Saturn EDCs

Contract negotiations must also be requested using the updated protocol version:

{
"@context": [
"https://w3id.org/dspace/2025/1/odrl-profile.jsonld",
"https://w3id.org/catenax/2025/9/policy/context.jsonld",
{
"@vocab": "https://w3id.org/edc/v0.0.1/ns/"
}
],
"@type": "ContractRequest",
"counterPartyAddress": "{{Provider-Saturn-EDC-URL}}/api/v1/dsp/2025-1",
"protocol": "dataspace-protocol-http:2025-1",
"policy": {
"@type": "Offer",
"@id": "{{OFFER_ID}}",
"target": "{{ASSET_ID}}",
"assigner": "did:web:portal-backend.beta.cofinity-x.com:api:administration:staticdata:did:{{Provider-BPNL}}",
"permission": [],
"prohibition": [],
"obligation": []
}
}

Key Changes:

The following updates apply compared to previous (Jupiter) EDC versions:

  • Protocol version updated

    • New value: "dataspace-protocol-http:2025-1"

    • Replaces Jupiter value: "dataspace-protocol-http"

  • Counter Party Address updated

    • Saturn EDCs now require the versioned endpoint:

      /2025-1
  • Counter Party ID/assigner format changed

    • Now uses a DID-based identifier:

      did:web:portal-backend.beta.cofinity-x.com:api:administration:staticdata:did:{{Provider-BPNL}}
    • Instead of using only the BPNL (as in Jupiter EDCs)

How to Determine the Provider EDC Version

A Provider exposes a public version discovery endpoint:

GET: {{Provider-Saturn-EDC-URL}}/api/v1/dsp/.well-known/dspace-version

No authorization is required.

Example response:

{
"protocolVersions": [
{
"version": "v0.8",
"path": "/",
"binding": "HTTPS"
},
{
"version": "2025-1",
"path": "/2025-1",
"binding": "HTTPS"
}
]
}
  • v0.8 → Jupiter EDCs

  • 2025-1 → Saturn EDCs

This means:

  • If the Provider supports 2025-1, the Consumer must use /2025-1 endpoints.

  • If only v0.8 is supported, endpoints (/) are used.

Compatibility Note

EDC Communication would work in the following way:

Consumer

Provider

Protocol

CounterPartyAddress

CounterPartyId

Saturn

Saturn

dataspace-protocol-http:2025-1

{{Provider-Saturn-EDC-URL}}/api/v1/dsp/2025-1

did:web:portal-backend.beta.cofinity-x.com:api:administration:staticdata:did:{{Provider-BPNL}}

Saturn

Jupiter

dataspace-protocol-http

{{Provider-EDC-URL}}/api/v1/dsp

{{Provider-BPNL}}

Jupiter

Saturn

dataspace-protocol-http

{{Provider-EDC-URL}}/api/v1/dsp

{{Provider-BPNL}}

If you would like to test the connection of your Saturn EDC against a Cofinity-X Saturn EDC, find the details here.

Did this answer your question?