Connector TCK
The Connector TCK validates that Eclipse Tractus-X EDC implementations work correctly with the Tractus-X SDK. It tests the complete data exchange flow using the simple-data-backend as a storage backend.
Demo
Two EDC protocol generations are covered:
| Protocol | EDC Versions | Identifier |
|---|---|---|
| Jupiter — Legacy DSP | 0.8.0 – 0.10.x | dataspace-protocol-http |
| Saturn — DSP 2025-1 | 0.11.x + | dataspace-protocol-http:2025-1 |
Test Scripts
Six scripts cover two protocol versions, two complexity levels, and two discovery modes:
| Script | Protocol | EDC Version | Discovery | Complexity |
|---|---|---|---|---|
tck_e2e_saturn_0-11-X_detailed.py |
Saturn | 0.11.x+ | BPNL | Detailed |
tck_e2e_saturn_0-11-X_simple.py |
Saturn | 0.11.x+ | BPNL | Simple |
tck_e2e_saturn_0-11-X_detailed_did.py |
Saturn | 0.11.x+ | DID | Detailed |
tck_e2e_saturn_0-11-X_simple_did.py |
Saturn | 0.11.x+ | DID | Simple |
tck_e2e_jupiter_0-10-X_detailed.py |
Jupiter | 0.8.x–0.10.x | BPNL | Detailed |
tck_e2e_jupiter_0-10-X_simple.py |
Jupiter | 0.8.x–0.10.x | BPNL | Simple |
Detailed vs. Simple
Detailed tests (*_detailed.py):
- Explicit control over every phase (provision, catalog, negotiate, transfer, access)
- Validates individual API responses at each step
- Comprehensive request/response logging
- Best for: debugging, learning the data flow, verifying specific behaviors
Simple tests (*_simple.py):
- Uses
do_get_with_bpnl()— the entire consumer flow in a single SDK call - Minimal code, maximum automation
- Best for: quick smoke tests, CI/CD integration, production usage patterns
Test Flow
All TCK tests follow this standardized sequence:
sequenceDiagram
participant Backend as Backend Storage
participant Provider as Provider EDC
participant Consumer as Consumer EDC
Note over Backend: Phase 0: Upload Sample Data
Backend->>Backend: Store test payload (JSON)
Note over Provider: Phase 1: Provider Data Provision
Provider->>Provider: Create Access Policy (BPN-based)
Provider->>Provider: Create Usage Policy (Framework Agreement)
Provider->>Provider: Create Asset (backend reference)
Provider->>Provider: Create Contract Definition
Note over Consumer,Provider: Phase 2: Consumer Data Consumption
Consumer->>Provider: Discover connector (via BPNL or DID)
Note over Consumer: Saturn only: automatic discovery<br/>Jupiter: manual DSP URL config
Consumer->>Provider: Request catalog (filtered by asset ID)
Provider-->>Consumer: Catalog with offers
Consumer->>Provider: Initiate contract negotiation
Note over Provider: State: REQUESTING → REQUESTED<br/>→ AGREED → VERIFIED → FINALIZED
Provider-->>Consumer: Contract Agreement ID
Consumer->>Provider: Start transfer process (HttpData-PULL)
Provider-->>Consumer: Transfer Process ID
Consumer->>Provider: Poll for EDR token
Provider-->>Consumer: EDR (endpoint + authorization token)
Note over Consumer,Provider: Phase 3: Data Access
Consumer->>Provider: HTTP GET with EDR token
Provider->>Backend: Proxy request (validate token)
Backend-->>Provider: Data payload
Provider-->>Consumer: Data payload
Prerequisites
Before running any TCK script, ensure the following are in place:
1. Two EDC Connectors (Provider and Consumer)
- Tractus-X EDC — Saturn: ≥ 0.11.x / Jupiter: 0.8.x–0.10.x
- Management API accessible with a valid API key from your machine
- Both connectors reachable over HTTP/HTTPS
2. Backend Storage Service
- Recommended: simple-data-backend
- HTTP endpoint for storing and retrieving test data
- Reachable from the Provider Data Plane
3. Network Connectivity
| Source | Destination |
|---|---|
| Test machine | Provider Control Plane (Management API) |
| Test machine | Consumer Control Plane (Management API) |
| Consumer EDC | Provider EDC (DSP protocol endpoint) |
| Provider Data Plane | Backend Storage |
4. Discovery Service (Saturn only)
- BPN-to-connector mapping registered
- Discovery Finder and BPN Discovery services operational
5. Dataspace Onboarding & Verifiable Credentials
Both Provider and Consumer must be onboarded in the Catena-X dataspace:
- Valid BPN Verifiable Credentials for both parties
- Framework Agreement VCs matching the usage policy (e.g.,
Traceability:1.0) - EDC connectors configured with SSI/credential validation
- All VC claims must match the
leftOperandvalues used in policies
Warning
Without valid credentials, contract negotiations will be rejected even if the catalog is visible. If tests fail during negotiation (state stuck in REQUESTING or TERMINATED), verify that both parties have the required VCs.
Next Steps
| Topic | Description |
|---|---|
| Configuration | Set up tck-config.yaml for your environment |
| Running Tests | CLI options, parallel execution, and manual testing |
| CI/CD Integration | GitHub Actions workflows for Jupiter and Saturn protocols |
| Interpreting Results | Log format, PASS/FAIL criteria, and troubleshooting guide |
| API Reference | Extension module layout, all classes and helpers, custom test authoring |
Protocol Differences
| Aspect | Jupiter (0.8.x–0.10.x) | Saturn (0.11.x+) |
|---|---|---|
| DSP Protocol | dataspace-protocol-http |
dataspace-protocol-http:2025-1 |
| ODRL Context | https://w3id.org/tractusx/auth/v1.0.0http://www.w3.org/ns/odrl.jsonld |
https://w3id.org/catenax/2025/9/policy/odrl.jsonldhttps://w3id.org/catenax/2025/9/policy/context.jsonld |
| Catalog Keys | Prefixed (dcat:dataset, odrl:hasPolicy) |
Unprefixed or both |
| Discovery | Manual BPNL→DSP URL mapping | Required (BPNL→DID→DSP URL) |
Use Jupiter for EDC v0.8.x–0.10.x, Saturn for v0.11.x+. Run both to verify backward compatibility during a migration.
NOTICE
This work is licensed under the CC-BY-4.0.
- SPDX-License-Identifier: CC-BY-4.0
- SPDX-FileCopyrightText: 2025, 2026 Contributors to the Eclipse Foundation
- SPDX-FileCopyrightText: 2025, 2026 Catena-X Automotive Network e.V.
- SPDX-FileCopyrightText: 2025, 2026 LKS Next
- SPDX-FileCopyrightText: 2025, 2026 Mondragon Unibertsitatea
- Source URL: https://github.com/eclipse-tractusx/tractusx-sdk