This pull-request adds federation / interoperability support with an EFGS(-compatible) hub to the dp3t-sdk-backend.
Client facing API
The existing requests (POST /v2/gaen/exposed and GET /v2/gaen/exposed) get extended by a withFederationGateway flag, which the app can set when configuring the SDK. If the flag is not set by the app, the default can be controlled by a configuration property (ws.federation.download.defaultvalue and ws.federation.upload.defaultvalue). This allows to control whether previous versions of the app automatically get federation support, or only new version which configure the DP3T-SDK with the respective flag.
To sync with an EFGS-compatible hub, a new micro-service is used which connects to the dp3t-database and syncs keys regularly with a hub using the HTTP REST API. The communication with an EFGS-compatible hub is done through a mutual TLS connection (with client certificates) and uses the Protobuf format to exchange keys.
This pull-request adds federation / interoperability support with an EFGS(-compatible) hub to the dp3t-sdk-backend.
Client facing API
The existing requests (
POST /v2/gaen/exposed
andGET /v2/gaen/exposed
) get extended by awithFederationGateway
flag, which the app can set when configuring the SDK. If the flag is not set by the app, the default can be controlled by a configuration property (ws.federation.download.defaultvalue
andws.federation.upload.defaultvalue
). This allows to control whether previous versions of the app automatically get federation support, or only new version which configure the DP3T-SDK with the respective flag.Dedicated sync micro-service: dpppt-backend-sdk-interops
To sync with an EFGS-compatible hub, a new micro-service is used which connects to the dp3t-database and syncs keys regularly with a hub using the HTTP REST API. The communication with an EFGS-compatible hub is done through a mutual TLS connection (with client certificates) and uses the Protobuf format to exchange keys.