Skip to content

Integrate the iRODS file source to support a new remote repository connection#1

Draft
fairytalesbykcc wants to merge 5 commits intoCESNET:devfrom
fairytalesbykcc:feature/irods-file-source
Draft

Integrate the iRODS file source to support a new remote repository connection#1
fairytalesbykcc wants to merge 5 commits intoCESNET:devfrom
fairytalesbykcc:feature/irods-file-source

Conversation

@fairytalesbykcc
Copy link
Copy Markdown

Summary

This PR introduces iRODS as a remote repository backend for Galaxy, supporting template-driven onboarding and data lifecycle workflows.

Key Results

  • Integrated iRODS Support: Implemented a new Remote File Source plugin allowing iRODS collections to be mounted as browsable repositories.
  • Flexible Configuration: Supports connection via default YAML configuration or project-specific paths.
  • User-Level Provisioning: Users can now create and manage their own iRODS-backed access paths via the "Manage Repositories" interface.
  • Verified Data Paths: Confirmed successful Read/Write operations.
  • Workflow Compatibility: Enabled Galaxy History Import/Export directly through iRODS file source paths.

Technical Implementation

Backend Logic irods.py

  • Defined the iRODS file source data structures for consistent metadata handling.
  • Implemented _open_fs to manage the connection lifecycle, including session construction and timeout handling.
  • Overrode the _list function to correctly resolve and parse absolute logical paths from the iRODS filesystem (supporting both recursive and non-recursive traversal).

Data Models model.py

  • Extended template models to include iRODS as a file source type.
  • Added iRODS configuration schemas to the type-discriminated union for system-wide recognition.

Configuration & Templates irods.yml

  • Created a YAML template defining the required fields for session creation.

Testing Suite test_irods.py

  • Unit Tests: Used "fake" sessions and filesystem objects to verify plugin registration and configuration logic.
  • Integration Tests: Performed live connectivity smoke tests, path listing validation, and read/write verification.
  • Test Ergonomics: Added environment-driven settings and automated cleanup to ensure tests are reproducible and non-destructive.

Galaxy Interface

How to test the changes?

License

  • I agree to license these and all my past contributions to the core galaxy codebase under the MIT license.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant