Eclipse Connector
Introduction
The Eclipse Dataspace Components (EDC) provide a framework for sovereign, inter-organizational data sharing. They implement the IDS Dataspace Protocol (DSP) as well as relevant protocols associated with GAIA-X. The EDC are designed in an extensible way in order to support alternative protocols and integrate in various ecosystems.
Eclipse also offers the Minimum Viable Dataspace (MVD), a sample implementation of a dataspace that leverages the Eclipse Dataspace Components (EDC). The main purpose is to demonstrate the capabilities of the EDC, make dataspace concepts tangible based on a specific implementation, and to serve as a starting point to implement a custom dataspace.
Below is a step-by-step description of deploying this example locally, and some first impressions are documented.
Getting started
The example shows three companies forming a data space through their corresponding connectors. In addition, each company has access to a web dashboard where, among other things, they can see a catalog of the data offered by the other companies.
The dashboard lets you "negotiate contracts" to access the data offered by the other companies. Once a contract has been negotiated, the data can be downloaded.
The data exchanged are files stored in Azurite (a local Azure instance, just like Amazon's buckets). In other words, the Eclipse Minimum Viable Data space essentially provides a controlled environment for file exchange.
Set-up
-
First, make sure that Java 17 is installed in your system. If you are on Ubuntu / Debian you can install it by:
-
Once your system is ready, clone the web dashboard:
-
Then set the environment variable
MVD_UI_PATH
to the path of the cloned DataDashboard repository: -
Now, clone the MVD repository and navigate to its root folder:
- Build the MVD
- Build the
EDC Connector
andRegistrationService
runtimes. As we are running MVD locally, we includeuseFsVault
to indicate that the system will be using the local file-system based key vault. Execute the following command to build the connector JAR and registration service JAR: -
Then, to bring up the dataspace with the
ui
profile, please execute the following command from the MVD root folder: -
Set the environment variable `TEST_ENVIRONMENT`` to local to enable local blob transfer test and then run MVD system test using the following command:
File transfer demo
-
Download and install Microsoft Azure Storage Explorer to connect to the
Azurite
storage container. It will let us view the transferred files. -
Using Microsoft Azure Storage Explorer, connect to the local blob storage account on
localhost:10000
(provided by Azurite) ofcompany1
:- Account name:
company1assets
- Password:
key1
- Account name:
-
Create a container named
src-container
. - Upload a dummy
text-document.text
file into the newly created container. - The following steps initiate and complete a file transfer with the provided test document:
- Open the website of company1 (e.g. http://localhost:7080) and verify the existence of two assets in the
section
Assets
. - Open the website of the company2 (e.g. http://localhost:7081) and verify six existing assets from all participants in
the
Catalog Browser
.- In the
Catalog Browser
clickNegotiate
for the assettest-document_company1
.- There should be a message
Contract Negotiation complete! Show me!
in less than a minute.
- There should be a message
- In the
- From the previous message click
Show me!
. If you missed it, switch manually to the sectionContracts
.- There should be a new contract. Click
Transfer
to initiate the transfer process. - A dialog should open. Here, select as destination
AzureStorage
and clickStart transfer
. - There should be a message
Transfer [id] complete! Show me!
in less than a minute. (Whereid
is a UUID.)
- There should be a new contract. Click
- To verify the successful transfer the Storage Explorer can be used to look into the storage account of
company2
.- Storage account name and key is set in
system-tests/docker-compose.yml
for the serviceazurite
. Default name iscompany2assets
, key iskey2
. - There should be new container in the storage account containing two files
.complete
andtext-document.txt
.
- Storage account name and key is set in
- Open the website of company1 (e.g. http://localhost:7080) and verify the existence of two assets in the
section