These are the convenience libraries that the data platform uses across different services. There is a core set of libraries (common behavior) as well as cloud platform specific versions that facilitate integration in their environment:
...
...
@@ -44,61 +35,4 @@ These are the convenience libraries that the data platform uses across different
The Azure implementation of delivery follows a different implementation pattern as a result of provider dependency which will be addressed in R3. The Delivery function posts to a Delivery endpoint, but is hosted in the os-storage microservice.
The current API endpoint supported for delivery on Azure is as follows: https://\<main_service_URI\>/delivery/GetFileSignedURL
Agreed input/output and SPI
The main API call called for delivery is getFileSignedURLs(). Passing in the list of SRNs, it expects a list of file signed URLs in the JSON format below (output). We're generalizing using a String for the response (for now) to avoid pitfalls of strongly typing the response and reduce re-work when more functionality is added.
#### Delivery::GetFileSignedURL::Post - Input
```
{
srns: ["srn1", "srn2", "srn3"] < R2: required
}
```
#### Delivery::GetFileSignedURL::Post - Output
```
{
"unprocessed": ["srn1", "srn2"],
"processed": {
"srn3": {
"signedUrl": "https://...", < R2: required
"unsignedUrl": "...", < R2: Not required. Future extension point
"kind": "..." < R2: Not required. Future extension point
}
}
}
```
#### SPI
```
public interface ISignedURLService {
String getFileSignedURLS(List<String> srns); < R2: JSON representation of the API Output
}
```
We propose attaching the delivery API to the storage service as another endpoint.