Skip to content

Which core Galaxy files are replaced with customized substitutions from our playbooks

Kjetil Klepper edited this page Apr 9, 2024 · 34 revisions

For the old NeLS Galaxies, we made a fork of the Galaxy codebase in order to incorporate our custom NeLS-specific modifications. This meant that it was a hassle to upgrade to new Galaxy versions, since we had to merge our own code with the new release on GitHub every time. To make things easier with UseGalaxy.no, we now use the standard repository directly so we don't have to maintain our own fork. However, we still need to make a few customizations, and this is done by using Ansible to replace some code files on the server with versions we have in our playbooks after Galaxy is installed/upgraded. (Note that the list does not include regular configuration files.)

Files that replace existing Galaxy files

  • client/src/style/scss/theme/blue.scss

    This file defines the CSS style applied to the user interface, such as colors and fonts, etc. We have modified this file to apply our own NeLS style.

  • client/src/components/login/Login.vue (renamed to LoginForm.vue in v22.05. Parent directory renamed to Login in v23.0)

    This Vue template defines the login page (although some of the functionality has since been moved to other files). We have modified this file in order to disable the login form for "regular Galaxy users" (that are registered in Galaxy's internal database) and to force everyone to log in with FEIDE or NeLS ID instead. Some informative welcome text and images have also been added to the page in the latest version.

  • lib/galaxy/authnz/psa_authnz.py

    This file defines various OIDC authorization backends that are supported by Galaxy. We have added two extra lines to include support for our NeLS OIDC backend. The Python file implementing this class is added to the "social-auth-core" package in the virtual environment (see below).

Files that replaced existing Galaxy files in the past but are not used anymore

  • client/src/mvc/history/options-menu.js

    The original purpose of this file was to fix a faulty implementation of "history options menu" webhooks, which originally did not work at all in Galaxy. We use these webhooks to add options for importing and exporting histories between Galaxy and NeLS Storage to the history options menu. The fix has since been incorporated into Galaxy, so this file is not strictly needed anymore. However, we still keep it around just to be able to change the "Webhooks" section header on line 196 to "NeLS Storage", which is a bit more informative for our use.

Extra files that don't replace existing files but are added alongside

  • {{ galaxy_venv_dir }}/lib/python3.6/site-packages/social_core/backends/nels.py (Python version changed to 3.7 with Galaxy v22.01 and to 3.8 in 23.1)

    This file is added to the social-auth-core Python package which is required by Galaxy and installed in the virtual environment. The file defines a class for our NeLS OIDC authorization backend, which is referenced by the file "lib/galaxy/authnz/psa_authnz.py" (see above). It is an Ansible template file where the OIDC endpoint URL is defined with a variable, which allows us to use different endpoints for test and production setups. Note that the location were this file is placed depends on the Python version being used, and this is version must be set with the "galaxy_python_version" variable in the playbook.

  • lib/galaxy/files/sources/nels.py

    This "plugin" file implements support for connecting NeLS Storage to Galaxy as a remote data source.

Clone this wiki locally