Skip to content

Connector Controllers

This page provides a comprehensive overview of the Connector controllers in the Tractus-X SDK. These controllers are the main building blocks for interacting with dataspace entities managed by the Eclipse Tractus-X Connector, such as assets, contracts, policies, and transfer processes. Whether you are managing data, negotiating contracts, or monitoring connector health, connector controllers offer a unified and extensible API for all major dataspace operations. Use this guide to understand which connector controller fits your use case, how to instantiate them, and what methods are available for each type.

Purpose

Connector Controllers provide the main interface for interacting with dataspace entities such as assets, contracts, policies, and transfer processes. They encapsulate the logic for CRUD operations, queries, and process management, abstracting the underlying HTTP/API details and ensuring consistency across dataspace versions.

Controllers are responsible for:

  • Managing dataspace entities (assets, contracts, policies, etc.)
  • Querying and retrieving entity details
  • Orchestrating data transfer and negotiation processes

They are versioned and extensible, supporting multiple dataspace standards (e.g., "jupiter", "saturn").

Controller Types, Supported Versions, and Methods

The following table summarizes all available controller types in the Tractus-X SDK, the dataspace protocol versions they support, and the key methods they provide. The rightmost column describes the main purpose of each controller, helping you quickly identify which controller to use for a given task.

Tip

Most controllers are available for both the "jupiter" and "saturn" dataspace versions. Some advanced controllers (such as Dataplane Selector, Application Observability, Connector Discovery, and Protocol Version) are specific to the "saturn" version and provide specialized functionality for connector management and monitoring.

Controller Type Supported Versions Methods Description
Asset Controller Jupiter, Saturn create, update, get_by_id, delete, get_all, query Manages assets: create, update, retrieve, delete, and query
Catalog Controller Jupiter, Saturn get_catalog Retrieves catalogs of available assets from counterparties
Contract Agreement Controller Jupiter, Saturn get_negotiation_by_id, get_by_id, get_all, query Manages contract agreements and negotiations
Contract Definition Controller Jupiter, Saturn create, update, get_by_id, delete, get_all, query Manages contract definitions: create, update, retrieve, delete, and query
Contract Negotiation Controller Jupiter, Saturn create, terminate_by_id, get_agreement_by_negotiation_id, get_by_id, get_all, get_state_by_id, query Handles contract negotiation lifecycle and agreement retrieval
EDR Controller Jupiter, Saturn get_data_address, refresh, create, get_all, delete, query Manages Endpoint Data References (EDRs) for secure data access
Policy Controller Jupiter, Saturn create, update, get_by_id, delete, get_all, query Manages policies: create, update, retrieve, delete, and query
Transfer Process Controller Jupiter, Saturn create, terminate_by_id, deprovision_by_id, get_by_id, get_all, query, get_state_by_id Orchestrates data transfer processes between dataspace participants
Dataplane Selector Controller Saturn get_all_v3, get_all_v4alpha Manages and queries available dataplanes for data transfer
Application Observability Controller Saturn get_health, get_liveness Provides health and liveness checks for connector applications
Connector Discovery Controller Saturn get_discover Discovers connectors and their protocol versions in the dataspace
Protocol Version Controller Saturn get_discover Queries supported protocol versions for connectors

Instantiation & Required Attributes

Controllers are typically instantiated via the ControllerFactory, which selects the correct implementation for the dataspace version and entity type.

Required attributes for instantiation:

Attribute Type Description
dataspace_version str Dataspace protocol version (e.g., "jupiter", "saturn")
adapter BaseDmaAdapter Adapter for HTTP/API communication
endpoint_url str API endpoint for the controller
model Model Entity model for operations (varies by controller)
kwargs dict (optional) Additional parameters for customization

Example

Python
from tractusx_sdk.dataspace.controllers.connector.controller_factory import ControllerFactory
from tractusx_sdk.dataspace.adapters.connector.adapter_factory import AdapterFactory

# Instantiate the DMA adapter for the desired dataspace version and connector
my_adapter = AdapterFactory.get_dma_adapter(
    dataspace_version="jupiter",
    base_url="https://my-connector-controlplane.url",
    dma_path="/management",
    headers={"X-Api-Key": "my-api-key", "Content-Type": "application/json"}
)

# Instantiate the asset controller using the adapter
asset_controller = ControllerFactory.get_asset_controller(
    dataspace_version="jupiter",
    adapter=my_adapter
)

Controller Methods Reference

Method Name Required Attributes / Parameters Controllers Implementing Method Description
create Model Asset, Contract Definition, Policy, Contract Negotiation, Transfer Process, EDR Registers a new entity (asset, contract, policy, etc.)
update Model Asset, Contract Definition, Policy Updates metadata or properties of an existing entity
get_by_id oid Asset, Contract Definition, Policy, Contract Agreement, Contract Negotiation, Transfer Process, EDR Retrieves details of a specific entity by its unique identifier
delete oid Asset, Contract Definition, Policy, EDR Deletes an entity by its unique identifier
get_all Asset, Contract Definition, Policy, Contract Agreement, Contract Negotiation, Transfer Process, EDR Retrieves a list of all entities currently registered
query QuerySpecModel (optional) Asset, Contract Definition, Policy, Contract Agreement, Contract Negotiation, Transfer Process, EDR Queries entities based on specific criteria
get_state_by_id oid Contract Negotiation, Transfer Process Retrieves the current state of a specific entity
terminate_by_id oid, Model Contract Negotiation, Transfer Process Terminates an ongoing process by its unique identifier
refresh oid EDR Refreshes the Endpoint Data Reference (EDR) for an entity
get_data_address oid EDR Retrieves the data address associated with an asset or contract
get_catalog CatalogModel Catalog Retrieves catalogs of available assets from counterparties
get_negotiation_by_id oid Contract Agreement Retrieves negotiation details for a contract agreement
get_agreement_by_negotiation_id oid Contract Negotiation Retrieves contract agreement by negotiation ID
deprovision_by_id oid Transfer Process Deprovisions resources associated with a transfer process
get_all_v3 Dataplane Selector (Saturn) Retrieves all dataplanes (v3 API)
get_all_v4alpha Dataplane Selector (Saturn) Retrieves all dataplanes (v4alpha API)
get_health Application Observability (Saturn) Provides health check for connector application
get_liveness Application Observability (Saturn) Provides liveness check for connector application
get_readiness Application Observability (Saturn) Provides readiness check for connector application
get_startup Application Observability (Saturn) Provides startup check for connector application
get_discover Model Connector Discovery, Protocol Version (Saturn) Discovers connectors or protocol versions in the dataspace
evaluation_plan oid, EvaluationPolicyModel Policy (Saturn) Evaluates a policy plan for a given policy definition
validate_policy oid Policy (Saturn) Validates a policy definition

Info

  • Model refers to the specific model type for the controller (e.g., AssetModel, ContractDefinitionModel, PolicyModel, etc.)
  • oid is the unique identifier for the entity.
  • Not all controllers implement every method; see specific controller documentation for details.

Further Reading


NOTICE

This work is licensed under the CC-BY-4.0.

  • SPDX-License-Identifier: CC-BY-4.0
  • SPDX-FileCopyrightText: 2025 Contributors to the Eclipse Foundation
  • Source URL: https://github.com/eclipse-tractusx/tractusx-sdk