phac-nml/irida-next

Pipelines Configuration: Parameter options overrides

ericenns opened this issue · 0 comments

Problem

As an administrator of IRIDA Next I would like to be able to provide my own sets of options for pipeline parameters when I register a pipeline in the system. Specifically I would like to be able to provide a set of database options which would render a select dropdown for a specified database option with a name (visible to the user) and a path which is passed to the pipeline. This would ensure that my Users would be able to launch a pipeline with a given database without having knowledge of our database store. These parameter overrides could be set for a specific version of a pipeline or for any version of the same pipeline.

Summary

  • Update pipeline json config at config/pipelines/pipelines.json to support overriding parameters in version config or in pipeline entry.
    [
      {
        "url": "https://github.com/phac-nml/iridanextexample",
        "name": "phac-nml/iridanextexample",
        "description": "IRIDA Next Example Pipeline",
        "parameter_overrides": {
           "database": {
             "description": { # can be left for later
               "en": "Englush fdescpt",
               "fr": "Francais safd"
             },
             "default": "DBNAME",
             "enum": [
              {"DBNAME": "PATH_TO_DB"}
             ]
           }
        },
        "versions": [
          {
            "name": "1.0.2",
            "parameter_overrides": {
              "database": {
                "default": "DBNAME",
                "enum": [
                  {"DBNAME": "PATH_TO_DB"}
                ]
              }
            },
          },
        ],
      },
    ]
  • Update lib/irida/pipelines.rb to parse the section for the pipeline in register_pipelines to parse parameter_overrides and merge global if present with version specific parameter_overrides
  • Update lib/irida/pipeline.rb to include parameter_overrides attr and method to access it
  • Update NextflowComponent to check parameter_overrides and if present modify parameter for display