ondemand.d/*.yml files

Most of the configurations are now held within yml files in the /etc/ood/config/ondemand.d/ directory. Open OnDemand will read all the .yml and .yml.erb files within this directory for configurations.

To use a different directory other than this use the OOD_CONFIG_D_DIRECTORY environment variable in the /etc/ood/config/apps/dashboard/env file.

These properties support profile based configuration, see the profile configuration documentation.

Note

Simple properties (strings and booleans) can be configured using environment variables as well. The name of the environment variable will be the property name in capitals prepended with OOD_. eg: property brand_bg_color will be OOD_BRAND_BG_COLOR enviroment variable.

We recommend setting environment variables in /etc/ood/config/nginx_stage.yml as YAML mappings (key value pairs) in the mapping (hash/dictionary) pun_custom_env. Alternatively you can set these in the env files of the dashboard and the apps.

Warning

When using environment variables with nginx_stage.yml file, be careful to set the value using quotes i.e. OOD_BRAND_BG_COLOR: '#0000ff'. If you omit the quotes, YAML will see # as a comment and the value of the OOD_BRAND_BG_COLOR will be nil

Configuration Properties with profile support

dashboard_header_img_logo (String, null)

The url to the logo image for the main navigation. If no logo is configured, the dashboard_title property will be used as text.

Default

No logo image will be shown, just the dashboard_title text.

dashboard_header_img_logo: null
Example

Show /public/logo.png as the logo image.

dashboard_header_img_logo: "/public/logo.png"
disable_dashboard_logo (Bool, false)

Whether to show the dashboard_logo property in the homepage welcome message.

Default

false, the dashboard_logo logo will be shown in the homepage welcome message.

disable_dashboard_logo: false
Example

Disable the logo in the welcome message.

disable_dashboard_logo: true
dashboard_logo (String, null)

The url to the logo image for the homepage welcome message. If no logo is configured, the dashboard_title property will be used as text.

Default

No logo image will be shown with the welcome message.

dashboard_logo: null
Example

Show /public/welcome.png as the welcome message logo image.

dashboard_logo: "/public/welcome.png"
dashboard_logo_height (Integer, null)

HTML image overide for the height of the welcome message logo image configured with dashboard_logo

Default

null, no override will be applied and the original image height will be used.

dashboard_logo_height: null
Example

Adjust the image height to 150 pixels.

dashboard_logo_height: "150px"
brand_bg_color (String, null)

The CSS color override for the main navbar background. Any valid CSS color value can be used.

Default

Null, no background color override. The default theme color from the navbar_type property will be used.

brand_bg_color: null
Example

Use #007FFF (shade of blue) as the background color for the navbar.

brand_bg_color: "#007FFF"
brand_link_active_bg_color (String, null)

The CSS color override for background of the active navigation link in the navbar. Any valid CSS color value can be used.

Default

Null, no color override. The default theme color from the navbar_type property will be used.

brand_link_active_bg_color: null
Example

Use #007FFF (shade of blue) for the background color of the active navigation link.

brand_link_active_bg_color: "#007FFF"
dashboard_layout (Object, null)

Specify the dashboard layout. Rearrange existing widgets and add more custom widgets. See the documentation on custom dashboard layouts for details and examples.

Default

Null, do not change the default dashboard layout.

Example

See the dashboard layout documentation

pinned_apps (Array<Object>, null)

An array of pinned app objects specifying what apps to pin to the dashboard. See the documentation on pinned apps for details and examples.

Default

Null, don’t pin any apps to the dashboard.

Example

See the pinned apps documentation

pinned_apps_menu_length (Integer, 6)

The maximum number of pinned apps in the ‘Apps’ menu bar.

Default

Show 6 items in the menu.

pinned_apps_menu_length: 6
Example

Show 10 items in the menu.

pinned_apps_menu_length: 10
pinned_apps_group_by (String, null)

Group the pinned apps icons by this field in the dashboard.

Default

Null, do no group pinned apps by any field.

pinned_apps_group_by: null
Example

Group the pinned apps by category.

pinned_apps_group_by: "category"
profile_links (Array<Object>, [])

List of profiles to display in the Help navigation menu. This will allow users to change profiles. For more information see the profile selection documentation.

Default

Empty list, no profile links will be shown.

profile_links: []
Example

Add a link to the default and ondemand profiles to the Help menu.

profile_links:
  - id: ""
    name: "Default"
    icon: "house-user"
  - id: "ondemand"
    name: "OnDemand Profile"
    icon: "user"
custom_css_files (Array<String>, [])

List of relative URLs to the CSS files to include in all Dashboard pages. These CSS files can be used to customize the look and feel of the Dashboard.

The relative path will be prefixed with the value of the public_url property.

Default

Empty list, no custom css files will be included.

custom_css_files: []
Example

Add two custom CSS files: /myfolder/navigation.css and /myfolder/pinned_apps.css to the Dashboard.

custom_css_files: ["/myfolder/navigation.css", "/myfolder/pinned_apps.css"]
custom_javascript_files (Array<String>, [])

List of relative URLs to custom javascript files to include in all Dashboard pages. These javascript files can be used to customize the behavior of the Dashboard.

The relative path will be prefixed with the value of the public_url property.

Default

Empty list, no custom javascript files will be included.

custom_javascript_files: []
Example

Add two custom Javascript files: /myfolder/navigation.js and /myfolder/pinned_apps.js to the Dashboard.

custom_javascript_files: ["/myfolder/navigation.js", "/myfolder/pinned_apps.js"]
dashboard_title (String, 'Open OnDemand')

The text to use as the main navigation logo. If the dashboard_header_img_logo property is defined, this property will be used as the HTML image title.

Default

Open OnDemand text

dashboard_title: "Open OnDemand"
Example

Show My Institution as the logo text.

dashboard_title: "My Institution"
show_all_apps_link (Bool, false)

Whether to show the All Apps link in the navbar. This links to the Dashboard page showing all system installed applications.

Default

false, the All Apps link will not be shown in the navbar.

show_all_apps_link: false
Example

Include the All Apps link in the navbar.

show_all_apps_link: true
nav_bar (Array<Object>, [])

An array of navigation items to create a custom navbar. This property sets the navigation items for the left hand side navigation menu in the header.

See the documentation on custom navigation for details and examples.

Default

Empty array, show the default navbar.

Example

See the custom navigation documentation

help_bar (Array<Object>, [])

An array of navigation items to create a custom help navigation. This property sets the navigation items for the right hand side navigation menu on the header.

See the documentation on custom navigation for details and examples.

Default

Empty array, show the default help navigation.

Example

See the custom navigation documentation

help_menu (Array<Object>, [])

A single navigation item to add links to the Help dropdown menu. This property adds navigation items at the end of any exisiting links in the menu.

See the documentation on adding urls to the Help menu for details and examples.

Default

Empty array, no additional links will be added to the Help menu.

Example

See the documentation on adding urls to the Help menu

interactive_apps_menu (Object, {})

A single navigation item to create a custom interactive apps menu. This property sets the interactive applications to display in the left hand side menu on the Interactive Apps and Interactive Sessions pages.

See the documentation on interactive apps menu for details and examples.

Default

Empty object, No customizations, show the currently installed interactive applications.

Example

See the interactive apps menu documentation

custom_pages (Hash<String, Object>, {})

A hash with the definition of the layouts for the configured custom pages. The key is a string with the page code. The value is the custom page layout definition.

See the documentation on custom pages for details and examples.

Default

Empty hash, No custom pages defined.

Example

See the custom pages documentation

support_ticket (Object, {})

Configuration settings to enable and configure the support ticket feature.

See the documentation on Support Ticket for details and examples.

Default

Empty object, support ticket feature is disabled.

Example

See the Support Ticket documentation

navbar_type (String, 'dark')

The navbar theme type. There are 2 themes, light and dark. The selected theme will update the colors of the navbar.

Default

Set theme to dark.

navbar_type: "dark"
Example

Set theme to light.

navbar_type: "light"
public_url (String, '/public')

The prefix url used to load the favicon.ico and custom CSS files configured with the custom_css_files property.

Default

‘/public’ prefix url.

public_url: "/public"
Example

Use /public/resources as the prefix path to load these resources.

public_url: "/public/resources"
announcement_path (Array<String>, ['/etc/ood/config/announcement.md', '/etc/ood/config/announcement.yml', '/etc/ood/config/announcements.d'])

The file or directory path to load announcement messages from.

Default

The default files are: /etc/ood/config/announcement.md, /etc/ood/config/announcement.yml, and /etc/ood/config/announcements.d

announcement_path:
  - "/etc/ood/config/announcement.md"
  - "/etc/ood/config/announcement.yml"
  - "/etc/ood/config/announcements.d"
Example

Use /etc/ood/config/announcement.team1.d/ as the path to load announcements.

announcement_path: "/etc/ood/config/announcement.team1.d/"
nav_categories (Array<String>, ['Apps', 'Files', 'Jobs', 'Clusters', 'Interactive Apps'])

By default Open OnDemand will create dropdown menus on the navigation bar for certain categories listed below.

Use this property to add or remove which application categories will create dropdown menus on the navigation bar.

Default

Create dropdown menus on the navigation bar items for the categories Apps, Files, Jobs, Clusters and Interactive Apps.

nav_categories: ['Apps', 'Files', 'Jobs', 'Clusters', 'Interactive Apps']
Example

Only create dropdown menus on the navigation bar for the categories Apps, Files and Jobs.

nav_categories: ['Apps', 'Files', 'Jobs']

Configuration Properties

files_enable_shell_button (Bool, true)

While browsing files, by default, Open OnDemand will show a button to shell into that directory location. Use this configuration to disable that behaviour.

Default

True. Files App has will show a button to open a shell to that location.

files_enable_shell_button: true
Example

Disable the terminal button in the Files App.

files_enable_shell_button: false
bc_dynamic_js (Bool, false)

Enable dynamic interactive app forms. See Dynamic Form Widgets for more information on what this feature does.

Default

False. Interactive app forms will not be dynamic.

bc_dynamic_js: false
Example

Interactive app forms will be dynamic.

bc_dynamic_js: true
bc_clean_old_dirs(Bool, false)

Interactive Apps create a new directory ~/ondemand/data/sys/dashboard/batch_connect/... every time the application is launched. Over time users may create many directories that hold essentially old and useless data.

When enabled, the system will remove every directory that is older than 30 days. See bc_clean_old_dirs_days below to change the time range. You may wish to keep directories for longer or shorter intervals.

Default

False. Never delete these directories.

bc_clean_old_dirs: false
Example

Delete these directories after 30 days.

bc_clean_old_dirs: true
bc_clean_old_dirs_days(Integer, 30)

If you have bc_clean_old_dirs above enabled, the system will clean every directory that is older than 30 days. This configuration specifies how old a directory (in days) must be to be removed.

The system checks creation time, not modification time.

Default

Delete these directories after 30 days if bc_clean_old_dirs is enabled.

bc_clean_old_dirs_days: 30
Example

Delete these directories after 15 days if bc_clean_old_dirs is enabled.

bc_clean_old_dirs_days: 15
host_based_profiles (Bool, false)

Feature flag to enable automatic selection of configuration profiles based on the hostname of the request.

Default

False. Profiles will be selected manually based on the user settings file.

host_based_profiles: false
Example

Enable automatic hostname profile selection.

host_based_profiles: true
disable_bc_shell (Bool, false)

Some schedulers like LSF use the the -L flag to bsub for purposes other than setting the shell path. Interactive apps set the shell path to /bin/bash by default using various flags or editing scripts.

Default

False. All interactive apps will submit jobs with the shell path flag set.

disable_bc_shell: false
Example

Do not submit interactive jobs with any shell path.

disable_bc_shell: true
cancel_session_enabled (Bool, false)

Feature flag to enable the cancellation of active interactive sessions without deleting the session card.

Default

False. Active interactive sessions can only be deleted.

cancel_session_enabled: false
Example

Enable interactive sessions cancellations.

cancel_session_enabled: true
module_file_dir (String, null)

Specify a directory where cluster specific module files exist. It’s important that there be a file for each cluster because the system can then tie those modules to that specific cluster.

This directory should have module spider-json output for each cluster as indicated by the command below. Open OnDemand will read these files and potentially show them in a from for a cluster called my_cluster.

$LMOD_DIR/spider -o spider-json $MODULEPATH > /some/directory/my_cluster.json

Default

Null. No directory given.

module_file_dir: null
Example

Look for json files in the /etc/reporting/modules directory.

module_file_dir: "/etc/reporting/modules"
user_settings_file (String, '.ood')

The full path of the file to store user settings. This file is used to store any user defined settings.

Default

A file called ‘.ood’.

user_settings_file: "~/.config/ondemand/settings.yml"
Example

Use user_settings.txt as the file name for user settings and change the path slightly.

user_settings_file: "~/.config/local/open-ondemand/user_settings.txt"
facl_domain (String, null)

The File Access Control List (FACL) domain to use when setting FACLs on files or directories.

Default

No facl domain given.

facl_domain: null
Example

What we use at OSC.

facl_domain: "osc.edu"
auto_groups_filter (String, null)

Specify a filter for the automatic form option auto_groups.

Default

No filter given. All Unix groups will be shown.

auto_groups_filter: null
Example

Only show Unix groups that start with P.

auto_groups_filter: '^P.+'
bc_simple_auto_accounts (Boolean, false)

Use a simple accounting scheme that assumes all accounts are available on all clusters.

Default

False. The account list generated will be a list of all the accounts available across all clusters.

bc_simple_auto_accounts: false
Example

Enable simple accounts. This will generate a list of accounts that should be available on all clusters.

bc_simple_auto_accounts: true
remote_files_enabled (Boolean, false)

Enable remote file browsing, editing and downloading.

Default

Remote files are disabled.

remote_files_enabled: false
Example

Enable remote filesystems through rclone.

remote_files_enabled: true
remote_files_validation (Boolean, false)

Enable validating remote files on startup.

Default

Remote file systems will not be validated on startup.

remote_files_validation: false
Example

Remote file systems will be validated on startup.

remote_files_validation: true
upload_enabled (Boolean, true)

Enable uploading files.

Default

File uploads are enabled.

upload_enabled: true
Example

File uploads are disabled. Users will not be able to upload files through Open OnDemand.

upload_enabled: false
download_enabled (Boolean, true)

Enable downloading files.

Default

File downloads are enabled.

download_enabled: true
Example

File downloads are disabled. Users will not be able to download files through Open OnDemand.

download_enabled: false
hide_app_version (Boolean, false)

Hide the interactive application’s version.

Default

Interactive application versions are shown.

hide_app_version: false
Example

Never show interactive application versions.

hide_app_version: true
globus_endpoints (Array<Object>, null)

Add a Globus button to the file browser. The button opens the current directory in the Globus transfer web app.

In the example with multiple endpoints, suppose you use the local file browser to look at your local file system. If you were to navigate to your local /home and then click the Globus button, you would see a new tab open with the endpoint associated to that local path in the Globus interface.

If you then go back to the localfile browser and navigate to /project and then click the Globus button, you would now see the endpoint associated with that local /project directory open in the Globus interface in a new tab.

The gist here is you navigate to the desired directory using the local filebrowser then click the Globus button to show the corresponding endpoint in the Globus interface which opens in a new tab.

Note that endpoint_path is the path that Globus will initialize to and is very likely to be / regardless of the actual storage path.

Default

Null, do not enable the Globus button

Example

Use a single endpoint for the whole filesystem.

globus_endpoints:
  - path: "/"
    endpoint: "716de4ac-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    endpoint_path: "/"
Example

Use multiple endpoints.

globus_endpoints:
  - path: "/home"
    endpoint: "716de4ac-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    endpoint_path: "/home"

  - path: "/project"
    endpoint: "9f1fe759-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    endpoint_path: "/project"
Example

When pathnames differ between the filesystem and endpoint.

globus_endpoints:
  - path: "/project"
    endpoint: "9f1fe759-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    endpoint_path: "/"
Example

Reference the home directory of the current user.

globus_endpoints:
  - path: "<%=  Etc.getpwnam(Etc.getlogin).dir %>"
    endpoint: "9f1fe759-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    endpoint_path: "/"
google_analytics_tag_id (String, nil)

Configure Google Analytics by supplying a tag id.

Default

Google Analytics is disabled.

google_analytics_tag_id: nil
Example

Google Analytics is enabled and will upload data to the tag id abc123.

google_analytics_tag_id: 'abc123'
motd_render_html (Boolean, false)

Render HTML in the Message of the Day (MOTD). This configuration was added because some MOTD formats like RSS can generate HTML that is potentially unsafe.

Default

The Message of the day will not render HTML.

motd_render_html: false
Example

The Message of the day will render HTML.

motd_render_html: true