- Add an ascp handler to the frontend, so users can paste ascp:// urls
- Add ssh key passphrase config option, without this downloads hang
waiting for password
- Bypass is_dir / is_file checks, they'll always fail. We assume files
for now.
- Implement top-level get_file. `_get_file` would require implementing
`get_info` which doesn't really make sense for this file source.
This commit implements a FilesSource that interacts with an RSpace [1] instance and includes a file source template so that users can define their own file sources based on it.
RSpace is an electronic lab notebook
(ELN) designed for documenting, managing and sharing scientific data. The central concepts in RSpace are the Workspace,
the Inventory and the Gallery.
The Workspace's role is organizing and managing research activities. It allows creating documents, folders and research
notebooks [2]. The Inventory is a tool to keep track of laboratory resources, such as reagents, samples and equipment
[3]. The Gallery is where any research data represented as files is stored [4].
The FilesSource implemented by this module accesses the Gallery of an RSpace instance. The Gallery is organized in
categories (e.g. Images, Audio, Documents, Chemistry), where each category is itself a tree structure with folders and
files just like a regular filesystem, although there is a key difference: categories and their subfolders can only
contain files of certain types (e.g. jpeg, bmp, png, etc. for the Images category).
This implementation is based on the rspace-client-python` library [5], which provides a PyFilesystem2 [6] interface
to interact with RSpace's Gallery (available as `GalleryFilesystem` in the rspace_client.eln.fs` module). It
consists just of a minimal wrapper (based on the base `PyFilesystem2FilesSource` provided by Galaxy) around the
`GalleryFilesystem` class.
References:
- [1] https://www.researchspace.com/
- [2] https://documentation.researchspace.com/article/bzgr8ea9e3-the-workspace
- [3] https://documentation.researchspace.com/category/zpizk20kgx-inventory
- [4] https://documentation.researchspace.com/article/sl6mo1i9do-the-gallery
- [5] https://github.com/rspace-os/rspace-client-python
- [6] https://docs.pyfilesystem.org/