Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The goal is to allow to reference files from external storage platforms as input and output of executions.
This should be considered as a draft and I made some questionable choice that are open to discussion.
So to reference a external file as input, one should sent on
POST /executions
So just prefix the path with some platform identifier. The current format (
/path/to/file
) is of course still supported to reference a local file on the requested platform.Then to output data on an external platform, there is a new optional field when creating an execution :
Again, the field content has the same format. A local folder can also be specified. That's what we already do in VIP with a mandatory input parameter on every pipeline. The fact that it is optional implies no change for the platforms which do not want to let the users choose the output location.
It is up to the CARMIN platform to download and upload the files to the external platforms. To do so, the user can only reference external platforms that are supported. A Carmin platform exposes the external platforms it supports through
GET /externalPlatforms
This declaration means the CARMIN platform can exchange data whith those platform, whether it is through a REST API, some SFTP link or any other possible way. But before using an external platform, an user should configure how to identify him on it. This is done with the method `PUT /user/externalKeys' :
(I could be wrong with the REST url, maybe it should be /user/externalKeys/{platformIdentifier} )
Waiting for your remarks :)