-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Implement file source to integrate Galaxy with RSpace #20167
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
bgruening
reviewed
May 6, 2025
lib/galaxy/config/sample/user_preferences_extra_conf.yml.sample
Outdated
Show resolved
Hide resolved
0b3aca6
to
7104c0c
Compare
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/
There are two ways to enable file sources: globally or as file source templates. File source templates allow each user to define their own file sources, providing their credentials in the process; the newly defined file sources are only shown in the list of file sources after they have been set up. Global file sources are always shown on the list of file sources; credentials may be provided on the user preferences page. Everything that is "personal", for example Dropbox or your own S3 buckets should be enabled using file source templates. Everything that is public AND requires no credentials (or equivalently, it is meant to be accessible to all users of the instance, as it may happen in a private lab) should also be enabled using file source templates. The remaining may be configured as global file sources. RSpace falls in the first category, thus it makes sense to discourage configuring it as a global file source.
davelopez
approved these changes
May 9, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you @kysrpex!
Looks and works fine in my local testing! 👍
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR implements a FilesSource that interacts with an RSpace 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. The Inventory is a tool to keep track of laboratory resources, such as reagents, samples and equipment. The Gallery is where any research data represented as files is stored.
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, which provides a PyFilesystem2 interface to interact with RSpace's Gallery (available asGalleryFilesystem
in therspace_client.eln.fs
module). It consists just of a minimal wrapper (based on the basePyFilesystem2FilesSource
provided by Galaxy) around theGalleryFilesystem
class.How to test the changes?
(Select all options that apply)
License