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
, thedashboard_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
andondemand
profiles to theHelp
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
textdashboard_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
, theAll 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
-
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
andInteractive 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
-
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
anddark
. 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 thecustom_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
andInteractive Apps
.nav_categories: ['Apps', 'Files', 'Jobs', 'Clusters', 'Interactive Apps']
- Example
Only create dropdown menus on the navigation bar for the categories
Apps
,Files
andJobs
.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