v4.1 Release Notes

Acknowledgments

  • List of first time contributors

  • Call out specific folks that made a big difference to this release!

Breaking Changes and Deprecations

  • The important stuff!

Operating System Support

OnDemand 4.1 adds support for RHEL/Rocky/AlmaLinux 10.

OnDemand 4.1 drops support for Ubuntu 20.04.

Dependency Updates

This release updates the following dependencies:

  • Passenger 6.1.0

  • NGINX 1.26.3

  • ondemand-dex 2.44.0

  • NodeJS 22 (Every OS)

    Warning

    The change in NodeJs version means any Node-based apps that are not provided by the OnDemand RPM must be rebuilt or supply their own Node Wrapper to use the older version of NodeJs.

SELinux Changes

Add ondemand_manage_config_dir boolean to allow OnDemand to manage .config directories labeled with config_home_t

Authentication and Security

  • What the sysadmins care about :)

Platform Configuration, Operations, and Observability

  • NGINX

  • Passenger

  • Shell?

  • Environment variables

  • Portal stuff

Passenger Telemetry Now Disabled By Default

Passenger anonymous telemetry is now disabled by default in version 4.1. If you would like to override this default and enable passenger telemetry, you can add passenger_disable_anonymous_telemetry: 'off' to your passenger_options hash. Note that this change has also been backported in the 4.0.4 and 3.1.12 releases.

Shell Terminal is Now Configurable

The new OOD_SHELL_TERM environment variable allows the default TERM=xterm-16color to be overridden. This variable can be set to any other terminal type whose escape codes are fully supported by the underlying hterm library. Some other common supported options include xterm, xterm-256color, and xterm-direct. This environment variable can only be set from /etc/ood/config/apps/shell/env.

Accessibility and Usability

  • Any UX or UI stuff

  • Accessibility improvements

Dynamic Forms Announce to Screen Readers

Dynamic batch connect forms now alert screen readers when form items are changed, allowing visually impaired users to better understand what is happening on the page. This is supported by all dynamic form actions.

New Skip Navigation Button

Version 4.1 adds a new skip navigation button to the dashboard, which can be accessed through keyboard navigation at the top of the page, and is read directly after the page title by screen readers. Clicking the button allows you to bypass the all navigation bar items and reliably skip to the main content of the page.

New Dashboard Widgets

New dashboard widgets have been added in this release. They include balances, file_quotas, nsf_access_events and system_status.

See Custom layouts in the dashboard for more details.

New Canadian Internationalization Files

Open OnDemand v4.1 will be the first to include Canadian internationalization files for both English and French, thanks to Rahim Khoja of the University of Alberta. This adds to pre-existing internationalization files for American English, Chinese, and Japanese. It is easy to customize or generate your own localization files, and we greatly appreciate community contributions for languages we do not include by default. In addition to making it easier for others in your country or region to use Open OnDemand, contributed localization files will also be automatically updated with new releases.

Interactive Jobs and Applications

  • Batch Connect

  • Interactive sessions

  • Job cards, session information, submission things

Session Cards Now Have 'Download as Zip' Button

Interactive session cards now have a 'Download as Zip' button. This allows users to collect session details like logs, scripts, and user-defined parameters in a single zip file so that this context can be easily included with support ticket requests. To avoid accidentally downloading sensitive session information, this button is only available on completed sessions, and is hidden from users who do not have downloads enabled.

Sessions Cards Show Cores and GPUs Requested

Session cards now have widgets to display cores and GPUs available to the job, making it easier to view the parameters of current or past jobs when re-running for your next session. Note that resource widgets will only appear when the quantity requested is greater than 0.

Forms, Widgets, and User Input

  • Dynamic forms

  • Widgets

  • Smart attributes

  • Form YAML stuff

New bc_num_nodes Smart Attribute

Open OnDemand now offers the bc_num_nodes smart attribute, which allows you to request nodes consistently across schedulers. This replaces the bc_num_slots smart attribute, which selected either nodes or cores depending on the scheduler. For more details, see bc_num_nodes.

New auto_cores Functionality

Open OnDemand now offers the auto_cores smart attribute, which allows you to request cores across schedulers. When used alongside the auto_batch_cluster attribute, this ensures that the number of cores selected is valid for the cluster you are submitting to. For more details, see auto_batch_clusters and auto_cores.

New data-help Directive

Version 4.1 adds the data-help directive, allowing you to dynamically change the help text below form items when certain select options are chosen. For example, you may have a node_type select widget, where type basic has older GPUs than advanced. The data-help directive can change the help text on the num_gpus option for users who select advanced so that they can take that info into account when deciding how many GPUs to select. For full documentation, see Dynamic Help Text.

Form Items Can Be Hidden By Default

Form items now accept a hide_by_default: true attribute, which will hide the form item until an option with a data-hide-item: false is selected. This is especially useful when certain items are only needed for a few options, as you no longer have to include data-hide-item: true on all of those options, but instead only supply directives to options that will show the item. For more details and examples, see the data-hide documentation.

Form Items Accept Markdown Headers

Batch connect form items accept a header attribute, which can be used to render markdown above the item's label. Headers can provide useful structure to forms, and are not affected when the item is hidden, or by any other dynamic form actions. For full documentation, see Form Item Headers.

Recently Used Apps Display Recent Settings

A popup has been added to the recently_used_apps dashboard widget allowing you to preview the settings that will be submitted by hovering over the app icon. Only attributes with display: true will appear in this popup, and passwords will never appear. For full documentation on how to add recently_used_apps to your homepage and configure which attributes to display, see Dashboard Widgets and Attribute Display Option.

Files, Projects, and Data Management

  • Files App

  • Project Manager

  • File Editor

  • File Browser?

File Browser Can Now Render HTML Files

Open OnDemand v4.1 brings back HTML rendering within the files app, allowing users to open and view HTML files directly. This is disabled by default due to security concerns, but can be enabled by setting OOD_UNSAFE_RENDER_HTML=true in your environment or including unsafe_render_html=true in your ondemand.d/*.yml files.

File Downloads Have a Maximum Size

Version 4.1 adds a configurable maximum size for file downloads, which also applies to opening files in the file browser. This can be configured with the OOD_DOWNLOAD_FILE_MAX environment variable, or setting download_file_max in your ondemand.d/*.yml files. This variable accepts plain integer values, and defaults to 10GiB. Note that size configurations always accept an integer number of (binary) bytes, so the default 10GiB would be represented as 10737418240. For more details on this configuration, as well as a similar one for directory downloads, see Set Download Limits.

File Editor Has a Maximum Size

As of v4.1 the file editor will not open files above a configurable maximum size. The default is 12MiB, but this can be changed by setting the OOD_FILE_EDITOR_MAX_SIZE environment variable, or setting file_editor_max_size in your ondemand.d/*.yml files. This uses the same binary byte format as OOD_DOWNLOAD_FILE_MAX above, so the 12MiB default would be represented as 12582912.

Help, Support and Institutional Integration

  • SerivceNow, ticketing things

Upgrade Instructions

Warning

Update the development and/or test instances of OnDemand installed at your center before before you modify the production instance.

Warning

We have tested the upgrade from 4.0.8 to 4.1.0 at OSC's OnDemand instance.

  1. Update OnDemand repository.

    sudo yum install -y https://yum.osc.edu/ondemand/4.1/ondemand-release-web-4.1-1.el8.noarch.rpm
    
  2. (RHEL/Rocky/AlmaLinux 8 & 9 only) Enable dependency repositories.

    sudo dnf module reset nodejs
    sudo dnf module enable nodejs:22
    
  3. Update OnDemand

    sudo yum clean all
    sudo yum update ondemand
    
  4. (Dex users only) Update the ondemand-dex package.

    sudo yum update ondemand-dex
    
  5. Update Apache configuration and restart Apache.

    sudo /opt/ood/ood-portal-generator/sbin/update_ood_portal
    
    sudo systemctl try-restart httpd
    
  6. (Dex users only) Restart the ondemand-dex service.

    sudo systemctl try-restart ondemand-dex.service
    
  7. (SELinux users only) Update SELinux policies.

    See SELinux after Updates.

  8. Force all PUNs to restart.

    sudo /opt/ood/nginx_stage/sbin/nginx_stage nginx_clean -f