Table of Contents
Eclipse Dataspace Components (EDC) is a framework for building dataspaces, exchanging data securely with ensured data sovereignty.
sovity extends the EDC Connector's functionality with extensions to offer enterprise-ready managed services like "Connector-as-a-Service", out-of-the-box fully configured DAPS and integrations to existing other dataspace technologies.
An IDS Broker is a central component of a dataspace that operates on the IDS protocol, that aggregates and indexes connectors and data offers.
This IDS Broker is written on basis of the EDC and should be used in tandem with the Broker UI.
For development, access to the GitHub Maven Registry is required.
To access the GitHub Maven Registry you need to provide the following properties, e.g. by providing
a ~/.gradle/gradle.properties
.
gpr.user={your github username}
gpr.key={your github pat with packages.read}
Create an issue using the release template and follow the instructions.
Deployment Unit | Version / Details |
---|---|
Reverse Proxy that merges the UI+Backend and removes the ports | (deployment specific) |
Postgresql | 15 or compatible version |
Broker Backend | broker-server-ce, see CHANGELOG.md for compatible versions. |
Broker UI | edc-ui, see CHANGELOG.md for compatible versions. |
There is a docker-compose.yaml to try out the broker locally. However, a productive release will require a few more configuration options, so you should only use it to check if the released version is roughly working or if it's broken.
- The broker is meant to be served via TLS/HTTPS.
- The broker is meant to be deployed with a reverse proxy merging the following ports:
- The UI's
80
port. - The Backend's
11002
port. - The Backend's
11003
port.
- The UI's
- The mapping should look like this:
/backend/api/v1/ids
->broker-backend:11003/backend/api/v1/ids
/backend/api/v1/management
->broker-backend:11002/backend/api/v1/management
- All other requests should be mapped to
broker-ui:80
A productive configuration will require you to join a DAPS.
For that you will need a SKI/AKI ClientID. Please refer to edc-extension's Getting Started Guide on how to generate one.
# Required: Fully Qualified Domain Name
MY_EDC_FQDN: "example.com"
# Required: DB
MY_EDC_JDBC_URL: jdbc:postgresql://broker-postgresql:5432/edc
MY_EDC_JDBC_USER: edc
MY_EDC_JDBC_PASSWORD: edc
# Required: List of EDCs to fetch
EDC_BROKER_SERVER_KNOWN_CONNECTORS: "https://connector-a/ids/data,https://connector-b/ids/data"
# List of Data Space Names for special Connectors (default: '')
EDC_BROKER_SERVER_KNOWN_DATASPACE_CONNECTORS: "Mobilithek=https://some-connector/ids/data,OtherDataspace=https://some-other-connector/ids/data"
# Required: DAPS credentials
EDC_OAUTH_TOKEN_URL: 'https://daps.test.mobility-dataspace.eu/token'
EDC_OAUTH_PROVIDER_JWKS_URL: 'https://daps.test.mobility-dataspace.eu/jwks.json'
EDC_OAUTH_CLIENT_ID: '_your SKI/AKI_'
EDC_KEYSTORE: '_your keystore file_' # Needs to be available as file in the running container
EDC_KEYSTORE_PASSWORD: '_your keystore password_'
EDC_OAUTH_CERTIFICATE_ALIAS: 1
EDC_OAUTH_PRIVATE_KEY_ALIAS: 1
# Required: Management API Key
EDC_API_AUTH_KEY: "ApiKeyDefaultValue"
# Required: Admin Api Key
EDC_BROKER_SERVER_ADMIN_API_KEY: DefaultBrokerServerAdminApiKey
All pre-configured config values for either the broker server or the underlying EDC can be found in connector/.env.
# Required: Profile
EDC_UI_ACTIVE_PROFILE: broker
# Required: Management API URL
EDC_UI_DATA_MANAGEMENT_API_URL: https://my-broker.com/backend/api/v1/management
# Required: Management API Key
EDC_API_AUTH_KEY: "ApiKeyDefaultValue"
Connectors can be dynamically added at runtime by using the following endpoint:
# Response should be 204 No Content
curl --request PUT \
--url 'http://localhost:11002/backend/api/v1/management/wrapper/broker/connectors?adminApiKey=DefaultBrokerServerAdminApiKey' \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: ApiKeyDefaultValue' \
--data '["https://some-new-connector/api/v1/ids/data", "https://some-other-new-connector/api/v1/ids/data"]'
Connectors can be dynamically removed at runtime by using the following endpoint:
# Response should be 204 No Content
curl --request DELETE \
--url 'http://localhost:11002/backend/api/v1/management/wrapper/broker/connectors?adminApiKey=DefaultBrokerServerAdminApiKey' \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: ApiKeyDefaultValue' \
--data '["https://some-connector-to-be-removed/api/v1/ids/data", "https://some-other-connector-to-be-removed/api/v1/ids/data"]'
Distributed under the Apache 2.0 License. See LICENSE
for more information.