Skip to content

Multi-Tenant Adaptations #2683

@lgblaumeiser

Description

@lgblaumeiser

WHAT

The feature documents an assessment of the current existing extensions especially for the control plane and what is the state concerning multi-tenant support.

From the discussion in the assessment, the goal for Tractus-X would be, to have a connector runtime, that is multi-tenant capable and contains all extensions necessary for a Catena-X dataspace. The discussion raised a point concerning the current strategy to collaborate on extensions and to differentiate on runtimes, as a multi-tenant runtime for different dataspaces require a superset of all extensions. The Multi-Tenant connector comes with dataspace scopes and the idea would be, that the different dataspaces define their own scope which is then used to activate extensions for that scope. This requires additional changes in the extensions which are not addressed with this item. This item is about summarizing the adaptations on the existing extensions concerning a runtime for a concrete dataspace, especially the Catena-X dataspace.

Tractus-X Extension list

Both Control-plane and Data-plane

Modules Description Ready? Relevance Notes Issue
core/core-utils Libs module Feature.
core/edr-core "EDR with single call" core module Feature Data storage adaptations to support multi participant data, in general, the edr extensions need to be refactored and brought together
edc-extensions/event-subscriber Sends logs to an OTEL collector Not relevant This extension forwards domain events to the logger. This is not a feature for a multi-tenant approach, as domain events should be handled per participant not in one central log store
edc-extensions/log4j2-monitor Log4j implementation of the monitor Support log4j as logger, easily reusable
edc-extensions/migrations/* Migrations for database schemas Feature Migrations need to be extended in order to support the new database schema supporting participant separation, follow-up activity of other changes
edc-extensions/single-participant-vault Provides a single participant vault Not relevant This extension can be deleted if EDC is at least at version 0.15.1
edc-extensions/tokenrefresh-handler Provides "refresh token" feature to the "EDR with single call" feature (see edr-core) Feature Under observation, will be influenced on work concerning DPS API, tokenrefresh should be refactored and brought together

Control-plane

Modules Description Ready? Relevance Notes Issue
core/json-ld-core Registers overall json-ld contexts and namespaces Standard Compliance
core/json-ld-cx Registers Catena-X json-ld contexts and namespaces Standard Compliance
edc-extensions/agreements/retirement-evaluation-* adds agreement retirement feature Feature Data storage has to become participant aware
edc-extensions/agreements-bpns/bpns-evaluation-* adds event subscriber that stores agreements with additional information, i.e., BPNLs Standard Compliance Data storage has to become partipant aware #2718
edc-extensions/bdrs-client registers an AudienceMapper that will use the BDRS to map between BPNLs and DIDs ❌/✅ Standard Compliance Is not participant aware, but potentially does not have to be, as there is no value in storing the mapping data redundantly and there is no record on which participant uses which mappings #2695
edc-extensions/connector-discovery/* Provides API to discover DSP connector endpoints given the root DSP endpoint ❌/✅ Feature Is not participant aware, but potentially does not have to be, as the general discovery of a counter party connector is nothing participant specific and a general approach supports better caching of results.
edc-extensions/cx-policy Registers policy functions Standard Compliance Validation is about to be replaced by JSON Schema based validation and Evaluation should be replaced by CEL expressions
edc-extensions/cx-policy-legacy Registers policy functions for Jupiter connections Not relevant Becomes obsolete with removal of DSP 0.8
edc-extensions/data-flow-properties-provider Adds custom properties to be sent to the data plane on transfer startup Future Standard Compliance This feature is not offered by the upcoming DPS implementation (yet), the requirement is, that the access token must contain claims based on the contract and its usage policy
edc-extensions/dataspace-protocol/cx-dataspace-protocol Registers 0.8 Dataspace Profile context Not relevant Becomes obsolete with removal of DSP 0.8
edc-extensions/dataspace-protocol/dataspace-protocol-core Registers 2025/1 Dataspace Profile context Standard Compliance  
edc-extensions/dcp/tx-dcp Registers scope extractor for DCP ❌/✅ Standard Compliance Potentially needs to be adapted, analysis has to show, whether this is participant relevant or can be solved generally.
edc-extensions/dcp/tx-dcp-sts-dim Add support for DIV in DCP ❌/✅ Feature Potentially needs to be made participant aware
edc-extensions/dcp/verifiable-presentation-cache Cache for verifiable presentations Feature
edc-extensions/did-document/did-document-service-dim provides a client for managing DID Document Service entries using the DIV API Feature Has to follow changes in did-document registration
edc-extensions/did-document/did-document-service-self-registration Registers/unregisters DID service entry at startup/shutdown Feature Needs some reconsideration for multi-tenancy , as registration of all instances during startup and shutdown could be am issue, potentially, a service that can be triggered from outside makes more sense.
edc-extensions/edr/* "EDR with single call" feature additional extensions Feature Has api and data storage topics concerning the support of multiple participants. A refactoring that brings this together with the core edr functionality is required.
edc-extensions/token-interceptor Implements interceptors for DSP communication Not relevant Becomes obsolete with removal of DSP 0.8 because it handles a pecularity, that the DSP v0.8 implementation did not have the Bearer prefix in Authorization header which was an issue in multi-version handling.
edc-extensions/validators/empty-asset-selector Adds validators for Contract Definitions Feature Should be replaced by json-schema validation (potentially not available at the moment upstream)

Data-Plane

The data plane modules are listed as the initial assessment from Andrea shows. They have not been analysed further, because the adoption of DPS will clearly set new constraints which might make these modules most likely either not needed anymore or require substantial change which might result of the adoption work.

Modules Description Supports multiple participants Multi-support needed Notes Issue
edc-extensions/dataplane/dataflow-* Adds endpoint to trigger the flow of a new chunk of data for non-finite transfers Api
edc-extensions/dataplane/dataplane-proxy/dataplane-proxy-http Provides support for reading data from a Proxy HTTP. The underlying data-plane doesn't support multiple participants
edc-extensions/dataplane/dataplane-proxy/dataplane-public-api-v2 Provides HTTP Proxy endpoint for Data-Plane same as above ^
edc-extensions/dataplane/dataplane-proxy/edc-dataplane-proxy-consumer-api Proxy endpoint that permits consumer to directly fetch data without knowing the EDR Api, Data
edc-extensions/dataplane/dataplane-token-refresh/* Enable token refresh mechanism for HTTP Pull transfer type Api, Data
edc-extensions/dataplane/dataplane-util Provides utility methods/classes
edc-extensions/non-finite-provider-push/* Provides "non finite push transfers" feature The underlying data-plane doesn't support multiple participants
edc-extensions/provision-additional-headers/* Adds additional headers on the HTTP Pull incoming calls Configuration This module is a control-plane one but it's deprecated and it should be migrated to data-plane in any case

WHY

The idea is, that the Eclipse Tractus-X connector runtime is also possible to run for a Catena-X connector and further on for other dataspace configurations as well to have a common Open Source implementation that can be used for productization.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestlaterImportant issue, but not urgent

    Type

    No type

    Projects

    Status

    Open

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions