Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Improve and document data-plane-transfer
- Loading branch information
1 parent
cfba051
commit f3e21e4
Showing
46 changed files
with
1,224 additions
and
823 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,9 @@ | ||
# Data Plane Transfer extension | ||
# Data Plane Transfer | ||
|
||
This extension provides resources used to delegate data transfer to the Data Plane, or to use the Data Plane as a proxy for querying the data. | ||
This module provides extensions for performing data transfer through the Data Plane. Each extension is designed to | ||
support one type of data transfer. | ||
|
||
The setting parameters of this extension are listed below: | ||
## Extensions | ||
|
||
| Parameter name | Description | Mandatory | Default value | | ||
|:----------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------|:----------|:---------------------------------------| | ||
| `edc.transfer.proxy.token.signer.privatekey.alias` | Alias of private key used to sign token used to hit Data Plane public API | true | | | ||
| `edc.transfer.proxy.token.verifier.publickey.alias` | Alias of public key used to verify tokens hitting the Data Plane public API (public key must be in the Vault) | false | private key alias suffixed with "-pub" | | ||
| `edc.transfer.proxy.token.validity.seconds` | Validity of tokens generated for hitting Data Plane public API (in seconds) | false | 600 | | ||
| `edc.transfer.proxy.endpoint` | Public API endpoint of the Data Plane (TODO: this has to be dynamically generated by the Data Plane Selector) based on the request | true | | | ||
| `edc.transfer.client.selector.strategy` | Selection strategy used by the client to determine to which Data Plane instance data transfer should be delegated | true | | | ||
- [Data Plane Transfer Client](./data-plane-transfer-client/README.md) provides a client to delegate data transfer to the Data Plane. | ||
- [Data Plane Transfer Sync](./data-plane-transfer-sync/README.md) provides services to use the Data Plane as a proxy for querying data from the provider data source. |
52 changes: 52 additions & 0 deletions
52
extensions/data-plane-transfer/data-plane-transfer-client/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
# Data Plane Transfer Client | ||
|
||
This extension provides a client for delegating data transfer to a Data Plane instance. | ||
|
||
## Background | ||
|
||
After successful negotiation and contract agreement between a consumer and a provider, the Data Plane must be triggered to perform the actual data transfer. | ||
|
||
### Scope | ||
|
||
Data transfer from source to destination | ||
|
||
### Use Cases | ||
|
||
This extension is dedicated to use-cases wherein the consumer wants specific data from a given provider to be pushed in a recipient storage in its own environment. | ||
|
||
## Technical Details | ||
|
||
### Interfaces | ||
|
||
### Dependencies | ||
|
||
| Name | Description | | ||
|:--------------------------------------------|:----------------------------------------| | ||
| extensions:data-plane:data-plane-spi | Required for `DataPlaneManager` | | ||
| extensions:data-plane-selector:selector-spi | Required for `DataPlaneSelectorService` | | ||
|
||
### Configurations | ||
|
||
| Parameter name | Description | Mandatory | Default value | | ||
|:----------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------|:----------|:---------------------------------------| | ||
| `edc.transfer.client.selector.strategy` | Selection strategy used by the client to determine to which Data Plane instance data transfer should be delegated | false | random | | ||
|
||
## Terminology | ||
|
||
## Design Principles | ||
|
||
This extension provides a client for delegating a data transfer to the data plane. As Data Plane exposes both a Java and a REST API, the client | ||
is designed to support both. The extension is centered around the `DataPlaneTransferFlowController` which is triggered for any data request | ||
whose destination type is different from `HttpProxy` (this one being reserved for Client Pull data transfers). This controller maps the incoming | ||
`DataRequest` into a `DataFlowRequest`, which is mainly composed of source/destination data address pair. This `DataFlowRequest` is | ||
finally forwarded to the Data Plane by the client. | ||
|
||
#### Flow diagram | ||
|
||
![alt text](../../../docs/architecture/data-transfer/diagrams/data-plane-transfer-client.png) | ||
|
||
## Decisions | ||
|
||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
37 changes: 37 additions & 0 deletions
37
...ava/org/eclipse/dataspaceconnector/transfer/dataplane/spi/DataPlaneTransferConstants.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
/* | ||
* Copyright (c) 2022 Amadeus | ||
* | ||
* This program and the accompanying materials are made available under the | ||
* terms of the Apache License, Version 2.0 which is available at | ||
* https://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* SPDX-License-Identifier: Apache-2.0 | ||
* | ||
* Contributors: | ||
* Amadeus - Initial implementation | ||
* | ||
*/ | ||
|
||
package org.eclipse.dataspaceconnector.transfer.dataplane.spi; | ||
|
||
/** | ||
* Type of Data Plane transfer. | ||
*/ | ||
public interface DataPlaneTransferConstants { | ||
/** | ||
* {@link org.eclipse.dataspaceconnector.spi.types.domain.transfer.DataFlowRequest} type that | ||
* triggers data proxy transfer. | ||
*/ | ||
String HTTP_PROXY = "HttpProxy"; | ||
|
||
/** | ||
* Claim of the token used in input of Data Plane public API containing the address of the | ||
* data source as an encrypted string. | ||
*/ | ||
String DATA_ADDRESS = "dad"; | ||
|
||
/** | ||
* Claim of the token used in input of Data Plane public API containing the contract id. | ||
*/ | ||
String CONTRACT_ID = "cid"; | ||
} |
25 changes: 0 additions & 25 deletions
25
...ain/java/org/eclipse/dataspaceconnector/transfer/dataplane/spi/DataPlaneTransferType.java
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.