-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TRS should be able to serve binary files #235
Comments
Good point. But I would like to point out that the current specs are at least consistent in that binary files appear to not be supported on purpose:
So with this in mind, let me address your points:
I may be wrong, but I know of no workflow engine supporting the execution of workflows defined in one of the currently enumerated
While I generally agree that there is an inconsistency here, the inability to fetch individual files is not restricted to binary files only, as described above. No file of So, personally, I think we should not worry about supporting binary files unless we have a real-world use case that demonstrates a strong need for binary descriptor, test or container recipe files. Otherwise the route of fetching a ZIP archive of all files seems a perfectly acceptable way of dealing with files of any type, including binary, to me. Perhaps we could make it clearer though, both in the documentation and the specs, that clients are expected to make use of this mechanism if they want to fetch a workflow for actual execution, and that the other endpoints are more designed for allowing quick introspection of workflow descriptors, container recipes etc. |
We're pondering Nextflow which has the option of binary files https://www.nextflow.io/docs/latest/faq.html#how-do-i-invoke-custom-scripts-and-tools
That said, the zip archive/improving documentation route makes sense to me |
But this is not about descriptor files @denis-yuen. Surely workflows in the wild rely on scripts or executables being shipped with the workflows in the way described in the Nextflow documentation. A similar mechanism exists for Snakemake as well, and probably other workflow engines, including support for executing these executables in the indicated containers. So by all means, if you fetch a workflow and expect to be able to run it, you will need to make sure to fetch files of type By the way, if we go the doc improvement route, we might use the opportunity to more clearly specify that files of type |
Thanks for the thoughtful response @uniqueg .
Ah, good point, I hadn't paid attention and wasn't aware of that. That does simplify things. So then, I'm good with fetching via archive only and improving the doc. A digression that this discussion about archives triggers for me... I suspect file permissions may be important in some cases for running the workflow and we may want to make |
🤔 |
A workflow could have binary files, such as compiled code, images, etc.
TRS does not have a way to serve up binaries; the FileWrapper object returns a JSON object with a String content field -- if the data were binary, it would need to be escaped.
Some brainstorming:
content
field is encoded or not, so the client will know whether to decode it.PLAIN
types, e.g.,PLAIN_WDL
is requested? An error response, or return the data with the content-type set accordingly?┆Issue is synchronized with this Jira Story
┆Project Name: Zzz-ARCHIVE GA4GH tool-registry-service
┆Issue Number: TRS-64
The text was updated successfully, but these errors were encountered: