- Consumer pull
- Provider push
- Provider and consumer agree to a contract (not displayed in the diagram)
- Consumer initiates the transfer process by sending a
DataRequest
with destination typeHttpProxy
- Provider Data Plane Selector is queried to find a suitable instance
- Provider Control Plane build a
DataAddress
which typeEDR
, whose:- endpoint corresponds to the public API of the selected Data Plane
- auth key is
Authorization
- auth code is a signed token generated by the Control Plane with claims:
dad
containing the encryptedDataAddress
of the actual data source (provider ecosystem)cid
claim containing the contract id
- This
DataAddress
is sent to the consumer Control Plane through DSP protocol - Consumer Control Plane converts the
DataAddress
into aEndpointDataReference
object and dispatch it through theEndpointDataReferenceReceiverRegistry
Once this process is completed, the consumer backend applications can use the received EndpointDataReference
in order
to query data from the provider Data Plane, by simply providing the provided token in the request header.
NOTE: For a Data Plane instance to be eligible for the Consumer Pull transfer, it must:
- contains
HttpProxy
in theallowedDestTypes
- contain a
property
which keypublicApiUrl
, which contains the actual URL of the Data Plane public API.
- Provider and consumer agree to a contract (not displayed in the diagram)
- Consumer initiates the transfer process, i.e. sends
DataRequest
with any destination type other thanHttpProxy
- Provider Control Plane retrieves the
DataAddress
of the actual data source and creates aDataFlowRequest
based on the receivedDataRequest
and this data address - Provider Control Plane asks the selector which Data Plane instance can be used for this data transfer
- Selector returns an eligible Data Plane instance (if any)
- Provider Control Plane sends the
DataFlowRequest
to the selected Data Plane instance through its control API (seeDataPlaneControlApi
) - Provider Data Plane validates the incoming request
- If request is valid, Provider Data Plane returns acknowledgement
DataPlaneManager
of the Provider Data Plane processes the request: it creates aDataSource
/DataSink
pair based on the source/destination data addresses- Provider Data Plane fetches data from the actual data source (see
DataSource
) - Provider Data Plane pushes data to the consumer services (see
DataSink
)
Description:
- Provider lists supported protocols and flows (e.g., HTTP push) as part of the initial contract offer. TBD which IDS message property can be used.
Subsequently, a contract negotiation (not depicted here) is performed.