Skip to content

Add OOD embedding, custom templates, a script browser and a Nodes page - #33

Open
geoffreyweal wants to merge 1 commit into
RIKEN-RCCS:mainfrom
geoffreyweal:main
Open

Add OOD embedding, custom templates, a script browser and a Nodes page#33
geoffreyweal wants to merge 1 commit into
RIKEN-RCCS:mainfrom
geoffreyweal:main

Conversation

@geoffreyweal

@geoffreyweal geoffreyweal commented Jul 30, 2026

Copy link
Copy Markdown

Hey RIKEN team

Thanks so much for this app. We are trialling it here at the moment.

I thought to push what we have done upstream, however we have made quite a few additiions to help us use this app with our users with our system. So this is a big push. Hopefully the additions we have made help enhance this great app that you guys have made.

I am happy to discuss the additions we have made with you in person over video-call if you would like to chat more about these additions.

Thanks

Geoffrey

-----------------------------------------------------------------------------------------------------------------------

Recorded under [Unreleased] in CHANGELOG.md

Adds Open OnDemand embedding, a custom template system, a script browser, a Nodes page, module-aware form widgets and a substantially extended history page.

Open OnDemand integration

  • OOD-integrated (embedded) mode: Open Composer renders inside OOD's own chrome (live OOD navbar and footer) via a reverse-proxy dashboard initializer under ood_integration/, with no iframe (We had problems with iframe).

Home page, templates and the script browser

  • All Templates page (/all_templates): every template as one flat list, including applications hidden from the index page.
  • Custom templates: save the current form values as a reusable template, with inline rename/re-describe, delete, and drag-and-drop ordering.
  • Load or Create a Script from Disk: a full-page file browser that opens .sl/.sh/.bash/.sbatch/.batch/.slurm files in the generic scheduler form with script location and name pre-filled.
  • New Script and New Custom Template pickers.
  • home_format: small (compact letter-grouped listing), per-category badge colors, and automatic GPU badges via the tags manifest key.

Application forms

  • module_load widget: a dropdown of every available version of an environment module, rewriting the existing module load line in place so surrounding hand-written script lines survive.
  • dependent_module_select widget: a module list that follows the value of another (driver) widget.
  • remember_last on select widgets.
  • Script-to-form parsing: editing the script pane updates the widgets, and opening a job from the history page reconstructs the whole form.
  • Empty-script submission warning.

History page

  • sacct is now the source of truth, so jobs submitted outside Open Composer appear too, with their script fetched live. (this might be a problem for other schedulers. I can not test others, I only have slurm. Happy to talk about this.)
  • Job Efficiency panel: wall time, CPU, memory, and GPU utilization and memory for GPU jobs.
  • Live job details modal, with disclosure of the exact command run.
  • Output/Error columns with an in-page file viewer.
  • Cancel All Jobs, Delete All History and Refresh, plus per-job cancellation with a progress bar.
  • Per-column sorting and Cancelled/Unknown status filters.

Nodes page

  • A new page listing the cluster's compute nodes with state, CPU, memory and generic resources, built from sinfo, with one dynamically discovered column per GRES type.

Job submission

  • Automatic SSH key provisioning on Submit (opt-in, off by default).
  • Configurable modules_list_url for the site module catalog.

Configuration and theming

  • The accent palette, GPU memory capacities and navbar/footer branding are now configuration rather than hard-coded values, so a site can be restyled without editing a view.
  • conf.yml.erb.sample reorganized into ten numbered sections, matching the installation documentation.

Also extends the form.yml smoke tests under misc/tests/ to cover the new widgets.

Recorded under [Unreleased] in CHANGELOG.md. No version number is assigned
and VERSION stays at 2.0.2, since the release number is the maintainer's
call.

Adds Open OnDemand embedding, a custom template system, a script browser, a
Nodes page, module-aware form widgets and a substantially extended history
page.

Open OnDemand integration
- OOD-integrated (embedded) mode: Open Composer renders inside OOD's own
  chrome (live OOD navbar and footer) via a reverse-proxy dashboard
  initializer under ood_integration/, with no iframe.

Home page, templates and the script browser
- All Templates page (/all_templates): every template as one flat list,
  including applications hidden from the index page.
- Custom templates: save the current form values as a reusable template,
  with inline rename/re-describe, delete, and drag-and-drop ordering.
- Load or Create a Script from Disk: a full-page file browser that opens
  .sl/.sh/.bash/.sbatch/.batch/.slurm files in the generic scheduler form
  with script location and name pre-filled.
- New Script and New Custom Template pickers.
- home_format: small (compact letter-grouped listing), per-category badge
  colors, and automatic GPU badges via the tags manifest key.

Application forms
- module_load widget: a dropdown of every available version of an
  environment module, rewriting the existing module load line in place so
  surrounding hand-written script lines survive.
- dependent_module_select widget: a module list that follows the value of
  another (driver) widget.
- remember_last on select widgets.
- Script-to-form parsing: editing the script pane updates the widgets, and
  opening a job from the history page reconstructs the whole form.
- Empty-script submission warning.

History page
- sacct is now the source of truth, so jobs submitted outside Open Composer
  appear too, with their script fetched live.
- Job Efficiency panel: wall time, CPU, memory, and GPU utilization and
  memory for GPU jobs.
- Live job details modal, with disclosure of the exact command run.
- Output/Error columns with an in-page file viewer.
- Cancel All Jobs, Delete All History and Refresh, plus per-job
  cancellation with a progress bar.
- Per-column sorting and Cancelled/Unknown status filters.

Nodes page
- A new page listing the cluster's compute nodes with state, CPU, memory
  and generic resources, built from sinfo, with one dynamically discovered
  column per GRES type.

Job submission
- Automatic SSH key provisioning on Submit (opt-in, off by default).
- Configurable modules_list_url for the site module catalog.

Configuration and theming
- The accent palette, GPU memory capacities and navbar/footer branding are
  now configuration rather than hard-coded values, so a site can be
  restyled without editing a view.
- conf.yml.erb.sample reorganized into ten numbered sections, matching the
  installation documentation.

Also extends the form.yml smoke tests under misc/tests/ to cover the new
widgets, falling back to macOS's bundled jsc when node is unavailable.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@geoffreyweal

Copy link
Copy Markdown
Author

Hey RIKEN team

Thanks so much for this app. We are trialling it here at the moment.

I thought to push what we have done upstream, however we have made quite a few additiions to help us use this app with our users with our system. So this is a big push. Hopefully the additions we have made help enhance this great app that you guys have made.

I am happy to discuss the additions we have made with you in person over video-call if you would like to chat more about these additions.

Thanks

Geoffrey

@geoffreyweal

Copy link
Copy Markdown
Author

Also. I have updated the docs pages with these additions, which is why the images will look different to your original. I have made sure that the manuals in the english docs are up-to-date and reflect the changes made correctly, but I needed claude's help to translate the updates into Japanese. Apologies if the additions to the Japanese version does not make sense.

@geoffreyweal

geoffreyweal commented Jul 30, 2026

Copy link
Copy Markdown
Author

I obviously wrote this with the help of AI (Claude). I have read over much of the code and and changes that have been made. All the features have tested this as much as I can on our OnDemand system.

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