This repository contains the POSSIBLE-X Extension that works with
the Eclipse Dataspace Components Connector
in the version v0.4.1
to technically enforce the so-called POSSIBLE-X enforced policies.
POSSIBLE-X Dataspace participants can define a POSSIBLE-X enforced policy when they provide Service Offerings / Data Service Offerings. The policy consists of constraints that the provider participants choose. The POSSIBLE-X Extension implements the enforcement of following constraints which take effect during contract negotiation / data transfer attempts:
- The consumer of an offering must be on the list of allowed consumer participants. Only then is it possible to negotiate a contract and trigger a data transfer in the case of Data Service Offerings. The provider participant defines the participant list.
- The consumer of an offering can only negotiate a contract after a certain start date. Data transfers are also only possible after the specified start date. This date is defined by the provider participant.
- The consumer of an offering can only negotiate a contract before a certain end date. Data transfers are also only possible before the specified end date. This date is defined by the provider participant.
The POSSIBLE-X Extension implementation can be found in the policy-extension
folder.
Through activation of the EDC connector's contract-core
extension as seen here,
it is possible to enforce another constraint during data transfer attempts:
- The consumer of an offering can only transfer data within a certain time frame which starts after the contract agreement is formed. This time frame is defined by the provider participant.
Below is an explanation on how to run an EDC with the POSSIBLE-X and the IONOS S3 extensions.
- Java 17
- Gradle
- Postman/Insomnia (optional)
- Checkout this repository
git clone https://github.com/POSSIBLE-X/possible-x-edc-extension.git
- Open the GitHub settings for your personal access tokens: https://github.com/settings/tokens
- Generate a new token. Select only the scope
read:packages
for it.
- Export your
GitHub
authentication data. Use the token created in the previous step.
export USERNAME_GITHUB=<YOUR USERNAME> or <YOUR TOKEN NAME>
export TOKEN_GITHUB=<YOUR TOKEN>
- Go to the main folder and execute the following:
./gradlew build
- Open the
connector/resources/config.properties
file and edit the following fields. Take the values from the KeePass DB in thepossible-x-infra
repository and insert them.
Field name | Description |
---|---|
possible.connector.edcVersion |
Version of the Connector |
edc.ionos.access.key |
IONOS Access Key Id to access S3 |
edc.ionos.secret.key |
IONOS Secret Access Key to access S3 |
edc.ionos.endpoint.region |
IONOS S3 Endpoint Region |
edc.ionos.token |
IONOS token to allow S3 provisioning |
- Add these fields to the
provider-configuration.properties
andconsumer-configuration.properties
as well, before starting one dedicated consumer and one dedicated provider instance.
To know more about the IONOS S3 Extension
please check this site.
Either execute the following command, for starting one instance:
java -Dedc.fs.config=connector/resources/config.properties -jar connector/build/libs/connector.jar
Or execute the following commands, for starting one dedicated consumer and one dedicated provider instance:
java -Dedc.fs.config=connector/resources/provider-configuration.properties -jar connector/build/libs/connector.jar
java -Dedc.fs.config=connector/resources/consumer-configuration.properties -jar connector/build/libs/connector.jar
For experimenting with the running EDC, some Postman/Insomnia collections were added to this repository at postman/
:
POSSIBLE-X-IONOS-S3.postman_collection.json
is a Postman collection with examples for performing a transfer from and to an IONOS S3 Bucket.POSSIBLE-X.Insomnia_IONOS-S3.json
is an Insomnia collection with examples for performing a transfer from and to an IONOS S3 Bucket.POSSIBLE-X.postman_collection.json
is a Postman collection with examples for performing a transfer from and to an HTTP API.Test.postman_environment.json
is a Postman environment file which sets up the collections to interact with the POSSIBLE-X EDCs running in the IONOS cloud.
Import the collection into Postman/Insomnia. In the collection's settings, fill the Environment Variables with the path
and port of your running EDC.
Check the corresponding [...]-configuration.properties
for the correct values.
A GitHub Action Pipeline (Build and Deploy EDC) was implemented to build and deploy the Artifacts to the DEV environment
The Pipeline Builds a docker container and deploys it to the IONOS Cloud Possible-X Kubernetes Cluster:
Component | Namespace | URL |
---|---|---|
Consumer | edc-dev | https://consumer.edc.dev.possible-x.de |
Provider | edc-dev | https://provider.edc.dev.possible-x.de |