Skip to content

Plugin Guide

This guide walks through creating and configuring DQue plugins. Plugins define HPC application templates that users select when submitting SLURM jobs.

  1. Navigate to Admin > Plugins (or Setting > My Plugins for user plugins).
  2. Click New Plugin.
  3. Enter a Plugin ID — 1–64 characters, lowercase letters and numbers, hyphens and underscores allowed in the middle.
  4. Click Create. You are redirected to the plugin editor.

A new plugin starts with a minimal template: disabled, with a single command textarea field and a script that runs $command.

The plugin editor has 8 tabs.

Plugin editor — Basic Info tab
FieldDescription
NameDisplay name shown to users (e.g., “MATLAB”, “OpenFOAM”)
CategoryFree-text category for organization (e.g., “Simulation”, “Data Analysis”)
DescriptionBrief description of what the plugin does
Plugin VersionVersion string for tracking configuration changes
EnabledToggle — whether users can see and use this plugin

Default SLURM resource allocation that pre-fills the job submission form. Users can override these values.

Plugin editor — SLURM tab
FieldDescription
NodesNumber of compute nodes
Tasks (ntasks)Total number of parallel tasks
Tasks per NodeTasks distributed per node
CPUs per TaskCPU cores per task
MemoryMemory per node (e.g., 4G, 2048M)
ExclusiveExclusive access to allocated nodes

Controls how the job runs — MPI, GUI support, modules, environment, and processing steps.

Plugin editor — Execution tab

Machinefile Type — format of the MPI machinefile:

OptionFormatUse Case
NoneNo machinefileDefault — SLURM handles task distribution
With Slotsnode01 slots=4OpenMPI
With Coresnode01:4Intel MPI
Without Coresnode01Simple hostfile

GUI Settings:

FieldDescription
Enable VNC GUIRuns the script inside a VNC desktop session with DISPLAY exported
GUI ModeAlways (mandatory VNC) or Optional (user chooses via checkbox)

When GUI Mode is Optional, a built-in gui boolean variable becomes available for use in showIf/requiredIf conditions and the script.

Environment Modules — module names loaded before the script executes (e.g., gcc/11.2.0).

Environment Variables — admin-defined key-value pairs exported before script execution. The option Allow users to add environment variables at submit time adds a user-facing section on the form.

Preprocess / Postprocess — commands that run before/after the main script. Each step has a name, command, and enabled toggle. Users can toggle or edit these on the submit form.

Apptainer (Singularity) container support.

Plugin editor — Container tab
FieldDescription
Enable Apptainer container supportMaster toggle
Container ModeOptional (Native/Apptainer tabs) or Mandatory (always container)
Container DirectoriesPaths scanned for .sif files
Default Container FiltersSubstring filters to auto-select a container
Show mount pathsUsers can configure mount paths
Show environment variablesUsers can configure container env vars
Default CommandPre-fills the command input on the Apptainer tab

Define form fields that users fill out when submitting a job. Each parameter becomes a shell variable in the script.

Plugin editor — Parameters tab

Parameter properties:

PropertyDescription
KeyVariable name used in the script (valid shell identifier)
Typestring, integer, number, boolean, object, array
TitleLabel displayed on the form
DescriptionHelp text below the field
DefaultPre-filled value
RequiredWhether the field must be filled

Widget types: text, number, textarea, select, radio, switch, checkbox, file, directory, hidden.

Advanced options: showIf (conditional visibility), requiredIf (conditional requirement), extensions (file type filter), enumLabels (display labels for enum values), presetOptions (predefined file choices), enableTemplate (template selection for textarea).

Version Selection Pattern — click Add Version Fields to auto-generate three fields: a hidden versions object (map of version names to paths), a version dropdown populated from it, and a hidden version_path auto-filled with the selected path. Use $version_path in the script.

The bash script template executed by SLURM.

Plugin editor — Script tab

Available variables:

  • Form parameters: $param_name for each parameter
  • SLURM variables: $SLURM_JOB_ID, $SLURM_NTASKS, etc.
  • Platform constants: $DQUE_USER_HOME, $DQUE_ROOT, $DQUE_JOB_ROOT, $DQUE_USER_JOB_ROOT, $DQUE_USERID

Organize form fields into labeled sections on the submit form.

Plugin editor — Groups tab
  • When groups are defined, all non-hidden parameters must be assigned to a group.
  • Hidden parameters should not be added to groups.
  • If no groups are defined, all fields appear in a flat list.

Live preview of the plugin as users will see it.

Plugin editor — Preview tab
  • Form Preview — rendered form with working field visibility and validation.
  • Script Preview — generated SLURM batch script with current form values substituted.

On the plugin editor page, click the Upload button to add a logo image. Supported formats: PNG, JPEG, WebP. Maximum size: 2 MB. Use a square image with a transparent background for best results.

Plugin editor — JSON mode
ModeDescription
Visual EditorThe tabbed form-based editor described above
JSON EditorRaw JSON text area showing the full plugin configuration

Toggle between modes using the button at the top of the page. Both modes validate the schema before saving. For the complete JSON reference, see the Plugin JSON Reference.

  • Reset to Default — for built-in plugins, click Reset to Default to revert all customizations to the original configuration.
  • Delete — only user-created plugins can be deleted. Built-in plugins can only be disabled.

For step-by-step examples, see Plugin Examples.