From 19afb4880dae3b2925b15a36aa7f1e7e52b4e952 Mon Sep 17 00:00:00 2001 From: oscwiag Date: Wed, 20 Nov 2024 19:19:21 +0000 Subject: [PATCH] [ci skip] Autodoc commit for 4656a3a04f754abb92e966dee299c8a1f426e47f. --- .../app-dev-tutorial-ps-to-quota-1.png | Bin 180511 -> 0 bytes .../app-dev-tutorial-ps-to-quota-2.png | Bin 67089 -> 0 bytes .../_sources/authentication/oidc.rst.txt | 2 +- .../authentication/overview/map-user.rst.txt | 4 +- .../authentication/shibboleth.rst.txt | 4 +- .../_sources/customizations.rst.txt | 180 +++- .../interactive/conn-params.rst.txt | 84 +- .../interactive/dynamic-form-widgets.rst.txt | 54 +- .../app-development/interactive/form.rst.txt | 56 ++ .../how-tos/debug/debug-apache.rst.txt | 15 +- .../debug/debug-interactive-apps.rst.txt | 2 +- .../how-tos/monitoring/logging.rst.txt | 6 +- .../how-tos/monitoring/prometheus.rst.txt | 14 - auto-modules-filtering/_sources/index.rst.txt | 4 +- .../_sources/installation.rst.txt | 2 +- .../cluster-config-schema.rst.txt | 4 +- .../installation/install-software.rst.txt | 34 +- .../resource-manager/advanced-configs.rst.txt | 4 +- .../resource-manager/slurm.rst.txt | 8 +- .../resource-manager/test.rst.txt | 12 - .../_sources/issues/overview.rst.txt | 184 ---- .../reference/files/nginx-stage-yml.rst.txt | 6 +- .../reference/files/ondemand-d-ymls.rst.txt | 6 +- .../reference/files/ood-portal-yml.rst.txt | 5 +- .../files/submit-yml/basic-bc-options.rst.txt | 2 +- .../_sources/release-notes.rst.txt | 1 + .../release-notes/v1.8-release-notes.rst.txt | 2 +- .../release-notes/v3.0-release-notes.rst.txt | 49 +- .../release-notes/v3.1-release-notes.rst.txt | 24 +- .../release-notes/v4.0-release-notes.rst.txt | 105 +++ .../_sources/requirements.rst.txt | 4 +- .../_sources/security.rst.txt | 56 ++ .../security/vulnerability-management.rst.txt | 42 + .../tutorials-passenger-apps.rst.txt | 4 +- .../nodejs-starter-app.rst.txt | 97 +++ .../ps-to-quota.rst.txt | 482 ----------- .../python-starter-app.rst.txt | 144 ++++ .../ruby-starter-app.rst.txt | 87 ++ auto-modules-filtering/architecture.html | 2 +- auto-modules-filtering/authentication.html | 2 +- .../authentication/adfs-with-auth-mellon.html | 2 +- .../authentication/cas.html | 2 +- .../authentication/dex.html | 2 +- .../authentication/duo-2fa-with-keycloak.html | 2 +- .../authentication/insecure.html | 2 +- .../authentication/nsf-access.html | 2 +- .../authentication/oidc.html | 4 +- .../authentication/overview.html | 49 +- .../overview/configure-authentication.html | 49 +- .../overview/configure-logout.html | 49 +- .../authentication/overview/map-user.html | 51 +- .../authentication/shibboleth.html | 6 +- .../tutorial-oidc-keycloak-rhel7.html | 2 +- .../add-custom-theme.html | 2 +- .../configure-cilogon.html | 2 +- .../configure-keycloak-webui.html | 2 +- .../install-keycloak.html | 2 +- .../install_mod_auth_openidc.html | 2 +- auto-modules-filtering/customizations.html | 323 ++++++-- auto-modules-filtering/enable-desktops.html | 2 +- .../enable-desktops/add-cluster.html | 2 +- .../custom-job-submission.html | 2 +- .../modify-form-attributes.html | 2 +- .../software-requirements.html | 2 +- auto-modules-filtering/genindex.html | 2 +- auto-modules-filtering/glossary.html | 5 +- .../how-tos/analytics/google-analytics.html | 2 +- .../how-tos/app-development.html | 2 +- .../how-tos/app-development/app-sharing.html | 2 +- .../enabling-development-mode.html | 2 +- .../how-tos/app-development/interactive.html | 5 +- .../interactive/additional-info.html | 2 +- .../interactive/conn-params.html | 79 +- .../interactive/dynamic-form-widgets.html | 42 +- .../interactive/form-widgets.html | 2 +- .../app-development/interactive/form.html | 65 +- .../app-development/interactive/manifest.html | 2 +- .../app-development/interactive/setup.html | 6 +- .../setup/enable-reverse-proxy.html | 2 +- .../setup/modify-cluster-configuration.html | 2 +- .../setup/software-requirements.html | 2 +- .../app-development/interactive/sub-apps.html | 2 +- .../app-development/interactive/submit.html | 2 +- .../app-development/interactive/template.html | 2 +- .../app-development/interactive/view.html | 2 +- auto-modules-filtering/how-tos/debug.html | 2 +- .../how-tos/debug/debug-apache.html | 16 +- .../how-tos/debug/debug-interactive-apps.html | 4 +- .../how-tos/monitoring/logging.html | 41 +- .../how-tos/monitoring/prometheus.html | 14 +- auto-modules-filtering/http-routingtable.html | 2 +- auto-modules-filtering/index.html | 35 +- auto-modules-filtering/install-ihpc-apps.html | 2 +- auto-modules-filtering/installation.html | 4 +- .../installation/add-cluster-config.html | 6 +- .../installation/add-ssl.html | 2 +- .../installation/cluster-config-schema.html | 6 +- .../installation/install-software.html | 44 +- .../installation/modify-system-security.html | 2 +- .../resource-manager/advanced-configs.html | 12 +- .../bin-override-example.html | 4 +- .../installation/resource-manager/ccq.html | 4 +- .../resource-manager/kubernetes.html | 4 +- .../resource-manager/linuxhost.html | 4 +- .../installation/resource-manager/lsf.html | 4 +- .../installation/resource-manager/pbspro.html | 4 +- .../installation/resource-manager/sge.html | 4 +- .../installation/resource-manager/slurm.html | 12 +- .../resource-manager/systemd.html | 4 +- .../installation/resource-manager/test.html | 16 +- .../installation/resource-manager/torque.html | 4 +- auto-modules-filtering/issues/overview.html | 427 ---------- auto-modules-filtering/objects.inv | Bin 7582 -> 7824 bytes auto-modules-filtering/reference.html | 2 +- .../nginx-stage/commands/app-clean.html | 2 +- .../nginx-stage/commands/app-list.html | 2 +- .../nginx-stage/commands/app-reset.html | 2 +- .../commands/nginx-stage/commands/app.html | 6 +- .../nginx-stage/commands/nginx-clean.html | 2 +- .../nginx-stage/commands/nginx-list.html | 2 +- .../nginx-stage/commands/nginx-show.html | 2 +- .../commands/nginx-stage/commands/nginx.html | 2 +- .../commands/nginx-stage/commands/pun.html | 2 +- .../reference/commands/nginx-stage/usage.html | 2 +- .../commands/ood-portal-generator.html | 2 +- .../reference/files/nginx-stage-yml.html | 8 +- .../reference/files/ondemand-d-ymls.html | 14 +- .../reference/files/ood-portal-yml.html | 5 +- .../reference/files/submit-yml-erb.html | 2 +- .../files/submit-yml/basic-bc-options.html | 4 +- .../reference/files/submit-yml/script.html | 2 +- .../files/submit-yml/vnc-bc-options.html | 2 +- .../submit-yml/vnc-container-bc-options.html | 2 +- .../reference/pun-environment.html | 6 +- auto-modules-filtering/release-notes.html | 19 +- .../release-notes/v1.0-release-notes.html | 11 +- .../release-notes/v1.1-release-notes.html | 11 +- .../release-notes/v1.2-release-notes.html | 11 +- .../release-notes/v1.3-release-notes.html | 11 +- .../release-notes/v1.4-release-notes.html | 7 +- .../release-notes/v1.5-release-notes.html | 7 +- .../release-notes/v1.6-release-notes.html | 7 +- .../release-notes/v1.7-release-notes.html | 7 +- .../release-notes/v1.8-release-notes.html | 7 +- .../release-notes/v2.0-release-notes.html | 3 +- .../release-notes/v3.0-release-notes.html | 10 +- .../release-notes/v3.1-release-notes.html | 27 +- .../release-notes/v4.0-release-notes.html | 449 ++++++++++ auto-modules-filtering/requirements.html | 16 +- auto-modules-filtering/search.html | 2 +- auto-modules-filtering/searchindex.js | 2 +- auto-modules-filtering/security.html | 428 ++++++++++ .../security/vulnerability-management.html | 356 ++++++++ .../tutorials/tutorials-dashboard-apps.html | 6 +- .../tutorials-dashboard-apps/dashboard.html | 2 +- .../tutorials-dashboard-apps/shell-app.html | 2 +- .../tutorials/tutorials-interactive-apps.html | 2 +- .../add-custom-queue.html | 2 +- .../add-custom-queue/global-static-list.html | 2 +- .../add-custom-queue/local-static-list.html | 2 +- .../add-jupyter.html | 2 +- .../add-jupyter/copy-app.html | 2 +- .../add-jupyter/customize-attributes.html | 2 +- .../add-jupyter/deploy.html | 2 +- .../add-jupyter/modify-submit-parameters.html | 2 +- .../add-jupyter/software-requirements.html | 2 +- .../add-matlab.html | 2 +- .../add-matlab/copy-app.html | 2 +- .../add-matlab/deploy.html | 2 +- .../add-matlab/edit-form-js.html | 2 +- .../add-matlab/edit-form-yml.html | 2 +- .../add-matlab/edit-script-sh.html | 2 +- .../add-matlab/edit-submit-yml.html | 2 +- .../add-matlab/known-issues.html | 2 +- .../add-matlab/software-requirements.html | 2 +- .../add-rstudio.html | 2 +- .../add-rstudio/copy-app.html | 2 +- .../add-rstudio/customize-attributes.html | 2 +- .../add-rstudio/deploy.html | 2 +- .../add-rstudio/setup-singularity.html | 2 +- .../add-rstudio/software-requirements.html | 2 +- .../k8s-jupyter.html | 2 +- .../k8s-like-hpc-jupyter.html | 2 +- .../troubleshooting.html | 2 +- .../tutorials/tutorials-passenger-apps.html | 37 +- .../nodejs-starter-app.html | 440 ++++++++++ .../tutorials-passenger-apps/ps-to-quota.html | 784 ------------------ .../python-starter-app.html | 479 +++++++++++ .../ruby-starter-app.html | 428 ++++++++++ auto-modules-filtering/version-policy.html | 2 +- 190 files changed, 4285 insertions(+), 2688 deletions(-) delete mode 100644 auto-modules-filtering/_images/app-dev-tutorial-ps-to-quota-1.png delete mode 100644 auto-modules-filtering/_images/app-dev-tutorial-ps-to-quota-2.png delete mode 100644 auto-modules-filtering/_sources/issues/overview.rst.txt create mode 100644 auto-modules-filtering/_sources/release-notes/v4.0-release-notes.rst.txt create mode 100644 auto-modules-filtering/_sources/security.rst.txt create mode 100644 auto-modules-filtering/_sources/security/vulnerability-management.rst.txt create mode 100644 auto-modules-filtering/_sources/tutorials/tutorials-passenger-apps/nodejs-starter-app.rst.txt delete mode 100644 auto-modules-filtering/_sources/tutorials/tutorials-passenger-apps/ps-to-quota.rst.txt create mode 100644 auto-modules-filtering/_sources/tutorials/tutorials-passenger-apps/python-starter-app.rst.txt create mode 100644 auto-modules-filtering/_sources/tutorials/tutorials-passenger-apps/ruby-starter-app.rst.txt delete mode 100644 auto-modules-filtering/issues/overview.html create mode 100644 auto-modules-filtering/release-notes/v4.0-release-notes.html create mode 100644 auto-modules-filtering/security.html create mode 100644 auto-modules-filtering/security/vulnerability-management.html create mode 100644 auto-modules-filtering/tutorials/tutorials-passenger-apps/nodejs-starter-app.html delete mode 100644 auto-modules-filtering/tutorials/tutorials-passenger-apps/ps-to-quota.html create mode 100644 auto-modules-filtering/tutorials/tutorials-passenger-apps/python-starter-app.html create mode 100644 auto-modules-filtering/tutorials/tutorials-passenger-apps/ruby-starter-app.html diff --git a/auto-modules-filtering/_images/app-dev-tutorial-ps-to-quota-1.png b/auto-modules-filtering/_images/app-dev-tutorial-ps-to-quota-1.png deleted file mode 100644 index 3afab57f01d411586482952268bcffde2a3a9c5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180511 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%0A!V|Z!9>cItQsE(l1pd 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 bwJDQTPpEl!w}7MN_QLa`kLzO>^sRpZ6HfJY diff --git a/auto-modules-filtering/_images/app-dev-tutorial-ps-to-quota-2.png b/auto-modules-filtering/_images/app-dev-tutorial-ps-to-quota-2.png deleted file mode 100644 index 18f6d94296dbdb9dd4b907f477a9f6a1e238545a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67089 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
  • Configuration Reference
  • +
  • Security
  • Release Notes
  • Versioning Policy
  • Glossary
  • -
  • OnDemand’s Known Issues
  • diff --git a/auto-modules-filtering/authentication.html b/auto-modules-filtering/authentication.html index 6e78d6676..5a6ae8044 100644 --- a/auto-modules-filtering/authentication.html +++ b/auto-modules-filtering/authentication.html @@ -145,10 +145,10 @@ diff --git a/auto-modules-filtering/authentication/adfs-with-auth-mellon.html b/auto-modules-filtering/authentication/adfs-with-auth-mellon.html index ba656a278..90bf9e9dc 100644 --- a/auto-modules-filtering/authentication/adfs-with-auth-mellon.html +++ b/auto-modules-filtering/authentication/adfs-with-auth-mellon.html @@ -152,10 +152,10 @@ diff --git a/auto-modules-filtering/authentication/cas.html b/auto-modules-filtering/authentication/cas.html index 14ef6ac43..e65dcf93c 100644 --- a/auto-modules-filtering/authentication/cas.html +++ b/auto-modules-filtering/authentication/cas.html @@ -145,10 +145,10 @@ diff --git a/auto-modules-filtering/authentication/dex.html b/auto-modules-filtering/authentication/dex.html index 1b9b89792..647f96b4c 100644 --- a/auto-modules-filtering/authentication/dex.html +++ b/auto-modules-filtering/authentication/dex.html @@ -157,10 +157,10 @@ diff --git a/auto-modules-filtering/authentication/duo-2fa-with-keycloak.html b/auto-modules-filtering/authentication/duo-2fa-with-keycloak.html index 47bf5d859..c7ef5376a 100644 --- a/auto-modules-filtering/authentication/duo-2fa-with-keycloak.html +++ b/auto-modules-filtering/authentication/duo-2fa-with-keycloak.html @@ -149,10 +149,10 @@ diff --git a/auto-modules-filtering/authentication/insecure.html b/auto-modules-filtering/authentication/insecure.html index 7491975d0..835a32be7 100644 --- a/auto-modules-filtering/authentication/insecure.html +++ b/auto-modules-filtering/authentication/insecure.html @@ -145,10 +145,10 @@ diff --git a/auto-modules-filtering/authentication/nsf-access.html b/auto-modules-filtering/authentication/nsf-access.html index 4b7b9eed8..1cd41b075 100644 --- a/auto-modules-filtering/authentication/nsf-access.html +++ b/auto-modules-filtering/authentication/nsf-access.html @@ -150,10 +150,10 @@ diff --git a/auto-modules-filtering/authentication/oidc.html b/auto-modules-filtering/authentication/oidc.html index 38f0231cb..73d4f7b40 100644 --- a/auto-modules-filtering/authentication/oidc.html +++ b/auto-modules-filtering/authentication/oidc.html @@ -145,10 +145,10 @@ @@ -229,7 +229,7 @@

    Note

    -

    OnDemand repos provide the httpd24-mod_auth_openidc RPM for RHEL 7 and CentOS 7 as it must be built against SCL Apache. The OnDemand repos also have the mod_auth_openidc RPM for RHEL 8 and Rocky 8 that are newer than what the OS provides to make use of some newer features.

    +

    The OnDemand repos have the mod_auth_openidc RPM for RHEL 8 and Rocky 8 that are newer than what the OS provides to make use of some newer features.

    The following is an example ood-portal-generator configuration file:

    # /etc/ood/config/ood_portal.yml
    diff --git a/auto-modules-filtering/authentication/overview.html b/auto-modules-filtering/authentication/overview.html
    index 184f4f131..4c593a069 100644
    --- a/auto-modules-filtering/authentication/overview.html
    +++ b/auto-modules-filtering/authentication/overview.html
    @@ -102,33 +102,9 @@
                 
                 
                   

    Getting Started

    -

    Reference

    -

    In the example above:

      -
    • The user_map_cmd uses regular expressions to map the authenticated user +

    • The user_map_match uses regular expressions to map the authenticated user bob@my-center.edu to their system user name bob.

    • The RequestHeader settings are used to strip private session information from being sent to the backend web servers.

    • diff --git a/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7.html b/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7.html index ece827ab3..6dd381ea5 100644 --- a/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7.html +++ b/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7.html @@ -152,10 +152,10 @@ diff --git a/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7/add-custom-theme.html b/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7/add-custom-theme.html index 38d23a032..c410fee50 100644 --- a/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7/add-custom-theme.html +++ b/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7/add-custom-theme.html @@ -152,10 +152,10 @@ diff --git a/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7/configure-cilogon.html b/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7/configure-cilogon.html index 37353e37a..14e9cdfb6 100644 --- a/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7/configure-cilogon.html +++ b/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7/configure-cilogon.html @@ -152,10 +152,10 @@ diff --git a/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7/configure-keycloak-webui.html b/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7/configure-keycloak-webui.html index 0d7a887f7..9cf0cd7bd 100644 --- a/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7/configure-keycloak-webui.html +++ b/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7/configure-keycloak-webui.html @@ -152,10 +152,10 @@ diff --git a/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7/install-keycloak.html b/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7/install-keycloak.html index 9ab4262d1..39fb5b63c 100644 --- a/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7/install-keycloak.html +++ b/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7/install-keycloak.html @@ -152,10 +152,10 @@ diff --git a/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7/install_mod_auth_openidc.html b/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7/install_mod_auth_openidc.html index b38ee3c60..a77a1be3a 100644 --- a/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7/install_mod_auth_openidc.html +++ b/auto-modules-filtering/authentication/tutorial-oidc-keycloak-rhel7/install_mod_auth_openidc.html @@ -152,10 +152,10 @@ diff --git a/auto-modules-filtering/customizations.html b/auto-modules-filtering/customizations.html index 65e87d1d3..bd6e2dec7 100644 --- a/auto-modules-filtering/customizations.html +++ b/auto-modules-filtering/customizations.html @@ -111,6 +111,7 @@

      How-Tos

      Reference

      -
        + @@ -288,8 +345,30 @@

        Check out the PUN environment for an overview of how environment variables can be added.

        +
        +

        Disabling applications

        +

        OnDemand is comprised of a few components. Each of which you can disable or limit +access by simply changing the file permissions of the application.

        +

        All the applications OnDemand installs are located in /var/www/ood/apps/sys. +So, for example, if you wished to disable the file browser you would simply +change it’s directory to 700 so it’s unreadable by regular users.

        +

        When this directory is unreadable by regular users, the functionality +it provides will be disabled.

        +
        sudo chmod 700 /var/www/ood/apps/sys/files
        +
        +
        +

        Alternatively, if you wished to limit access you can do so through group +permissions. For example, if you wanted to limit access to the file browser +to only members in the Unix group staff, you would simply apply the +applicable file permission such that anonymous users cannot access the +directory while members of the staff Unix group can.

        +
        sudo chmod 750 /var/www/ood/apps/sys/files
        +sudo chown root:staff /var/www/ood/apps/sys/files
        +
        +
        +
        -

        Announcements

        +

        Announcements

        To add an announcement message that appears at the top of the dashboard you can create a file at /etc/ood/config/announcement.(md|yml) or /etc/ood/config/announcements.d/any_file_name.(md|yml).

        On each request the dashboard will check for the existence of this file. If it exists, the contents will be converted using markdown converter to HTML and displayed inside a bootstrap alert.

        For example, if I create an announcement.md file with the contents:

        @@ -301,36 +380,50 @@

        Announcements +
        _images/dashboard-announcement.png -

        Fig. 1 Example of the Dashboard announcement.

        +

        Fig. 1 Example of the Dashboard announcement.

        If the announcement file has the extension yml and is a yaml file it is first rendered using ERB and then the resulting file is parsed as YAML. The valid keys are:

        - - +
        Table 2 Config Files
        +---++ - - - + + + + + - - - + + + + + + + +
        Table 2 Announcement configuration keys.

        type

        warning, info, success, or danger

        this is the Bootstrap alert style

        Key

        Description

        type

        The type of announcment. Values can be warning, info, success, or danger.

        msg

        string containing markdown formatted message

        if this is a blank string (only whitespace), the alert will not display

        msg

        The announcement’s message.

        dismissable

        Specify if the announcment is dismissable or not with true or false. +Defaults to true.

        required

        Specify if the announcment is required or not with true or false. +Defaults to false. When this is set to true, the user will not be +do anything until the announcment has been accepted.

        +
        +

        Tip

        +

        You can use required announcements to present users with a ToS (terms of service), +EULA (end user license agreement) or similar.

        +

        Because the announcement is rendered via ERB you can do some interesting things, like stop showing the announcement past a specified date:

        type: warning
         msg: |
           <% if Time.now < Time.new(2018, 9, 24, 12, 0, 0) %>
           A **Ruby Partial Downtime** for 4 hours on Monday, September 24 from 8:00am to 12:00pm
        -  will prevent SSH login to Ruby nodes and and Ruby VDI sessions.
        +  will prevent SSH login to Ruby nodes and Ruby VDI sessions.
           <% end %>
         
        @@ -357,27 +450,27 @@

        Announcements

        Warning

        -

        Some MOTD formats like rss, markdown and markdown_erb can contain malicous +

        Some MOTD formats like rss, markdown and markdown_erb can contain malicious HTML content. For your safety, by default, the Open OnDemand system will not render HTML. We provide a configuration to enable HTML rendering in MOTD should you need to render HTML.

        -
        +
        _images/dashboard_motd.png -

        Fig. 2 Message of the Day appears in the body of the index page.

        +

        Fig. 2 Message of the Day appears in the body of the index page.

        We recommend setting this in /etc/ood/config/apps/dashboard/env.

        Branding

        -

        You can customize the logo, favicon, title, and navbar colors of OnDemand.

        +

        You can customize the logo, favicon, title, and navbar colors of OnDemand.

        _images/dashboard_branding_logo_and_colors.png

        We recommend setting these values using the OnDemand configuration properties. Currently only the dashboard uses the colors in the navbar.

        - - +
        Table 3 Branding
        +@@ -429,9 +522,9 @@

        BrandingOnDemand configuration documentation.

        -
        +
        _images/dashboard_navbar_branding_bluered.png -

        Fig. 3 Nav bar if I set brand_bg_color to #0000ff and brand_link_active_bg_color to #ff0000 and dashboard_title to OSC OnDemand

        +

        Fig. 3 Nav bar if I set brand_bg_color to #0000ff and brand_link_active_bg_color to #ff0000 and dashboard_title to OSC OnDemand

        Custom CSS files

        @@ -478,8 +571,8 @@

        Custom CSS files

        Add URLs to Help Menu

        These URLs can be specified, which will appear in the Help menu and on other locations of the Dashboard. We recommend setting this in /etc/ood/config/apps/dashboard/env.

        -

        Table 3 Branding
        - +
        Table 4 Dashboard URLs
        +@@ -542,7 +635,7 @@

        Add URLs to Help Menu
        -

        Add Shortcuts to Files Menu

        +

        Add Shortcuts to Files Menu

        The Files menu by default has a single link to open the Files app in the user’s Home Directory. More links can be added to this menu, for Scratch space and Project space directories.

        @@ -591,13 +684,57 @@

        Add URLs to Help Menu

        Additionally project scratch directories have a ‘title’ attribute and will with in the dropdown with both the title and the path.

        -

        On each request, the Dashboard will check for the existence of the directories -in OodFilesApp.candidate_favorite_paths array and whichever directories -exist and the user has access to will appear as links in the Files menu under -the Home Directory link.

        -
        +

        The following example adds all directories within the specified base directories to the favorite paths. This approach is ideal when there is no specific directory naming logic to follow. It also appropriately handles Access Control Lists (ACLs). If a directory does not exist, no error is raised, making this configuration easily exportable to different clusters.

        +
        # /etc/ood/config/apps/dashboard/initializers/ood.rb
        +
        +Rails.application.config.after_initialize do
        +  OodFilesApp.candidate_favorite_paths.tap do |paths|
        +
        +    # Hash of base paths to check for additional directories with titles
        +    # location => Title
        +    base_paths = {
        +      '/home/share/' => 'Shared home',
        +      '/srv/scratch/shares/' => 'Shared scratch',
        +      '/srv/scratch/groups/' => 'Group scratch',
        +      '/srv/fast/users/' => 'Fast user'
        +      # Add more paths and titles here if needed
        +    }
        +
        +    base_paths.each do |base_path, title|
        +      # Check if the base path exists and is a directory, to avoid error
        +      next unless Dir.exist?(base_path)
        +
        +      # Get all entries in the current base path
        +      Dir.entries(base_path).each do |entry|
        +        # Construct the full path for the current entry
        +        full_path = File.join(base_path, entry)
        +
        +        # Skip if it's not a directory or if it's a special entry like '.' or '..'
        +        next unless File.directory?(full_path) && !['.', '..'].include?(entry)
        +
        +        # Check if the directory is readable and executable
        +        if File.readable?(full_path) && File.executable?(full_path)
        +          # Access the value of the current base_path using the `title` variable
        +          paths << FavoritePath.new(full_path, title: "#{title}: #{File.basename(full_path)}")
        +        end
        +      end
        +    end
        +  end
        +end
        +
        +# The variable ``base_paths`` is an hash (``dirname`` => ``Title``) of all directories you want to parse. For the directory ``OSC_test`` in ``/srv/scratch/groups/``; the favorite path will be displayed as following
        +
        +| Group scratch: OSC_test | /srv/scratch/groups/OSC_test |
        +
        +On each request, the Dashboard will check for the existence of the directories
        +in ``OodFilesApp.candidate_favorite_paths`` array and whichever directories
        +exist and the user has access to will appear as links in the Files menu under
        +the Home Directory link.
        +
        +
        +
        _images/files_menu_shortcuts_osc.png -

        Fig. 4 Shortcuts to scratch and project space directories in Files menu in OSC OnDemand.

        +

        Fig. 4 Shortcuts to scratch and project space directories in Files menu in OSC OnDemand.

        -

        Limit auto generated menu bars

        +

        Limit auto generated menu bars

        As described in the previous section, the system will generate new dropdown menus for every category it discovers.

        If you wish to add or remove which categories create dropdown menus @@ -759,7 +896,7 @@

        Automatic Profile Selectionnav_categories property.

        -

        Here is the 2.0 documentation for controling the navbar.

        +

        Here is the 2.0 documentation for controlling the navbar.

        @@ -830,7 +967,7 @@

        Using manifests to create menu items - logout

        -

        The configuration above would be equvialent to the default navigation bar as described +

        The configuration above would be equivalent to the default navigation bar as described in Understanding the default navigation bar.

        As menus are dynamically discovered from your system, this documentation can only cover how a fresh install - with no other applications - would behave.

        @@ -884,11 +1021,11 @@

        Predefined templates
        -An image of the navigation bar. From left to right the items are "All Apps" link, "Apps" dropdown menu, "My Interactive Sesssions" link, "Develop" drop down menu, "Help" drop down menu, "Logout" link and 'logged in as ood' text. +An image of the navigation bar. From left to right the items are "All Apps" link, "Apps" dropdown menu, "My Interactive Sessions" link, "Develop" drop down menu, "Help" drop down menu, "Logout" link and 'logged in as ood' text.

        Table 4 Dashboard URLs
        - +
        Table 5 OnDemand Locale Files
        +@@ -1588,7 +1767,7 @@

        Individual Fileset Quota -

        Balance Warnings on Dashboard

        +

        Balance Warnings on Dashboard

        You can display warnings to users on the Dashboard if their resource balance is nearing its limit. This requires an auto-updated (it is recommended to update this file daily with a cronjob) JSON file @@ -1653,7 +1832,7 @@

        Project Balance -

        Maintenance Mode

        +

        Maintenance Mode

        As an administrator you may want to have some downtime of the Open OnDemand service for various reasons, while still telling your customers that the downtime is expected.

        You can do this by setting Open OnDemand in ‘Maintenance Mode’. @@ -1686,9 +1865,9 @@

        Project Balance -

        Grafana support

        +

        Grafana support

        It’s possible to display Grafana graphs within the ActiveJobs app when a user expands a given job.

        -

        Grafana must be configured to support embedded panels and at this time it is also required to have a anonymous organization. Below are configuration options are needed to support displaying Grafana panels in ActiveJobs. Adjust org_name to match whatever organization you wish to be anonymous.

        +

        Grafana must be configured to support embedded panels and at this time it is also required to have an anonymous organization. Below are configuration options are needed to support displaying Grafana panels in ActiveJobs. Adjust org_name to match whatever organization you wish to be anonymous.

        Warning

        Changing a Grafana install to support anonymous access can cause unintended consequences for how authenticated users interact with Grafana. @@ -1757,7 +1936,7 @@

        Project Balance -

        Set Illegal Job Name Characters

        +

        Set Illegal Job Name Characters

        If you encounter an issue in running batch connect applications complaining about invalid job names like the error below.

        Unable to read script file because of error: ERROR! argument to -N option must not contain /

        @@ -1770,7 +1949,7 @@

        Project Balance -

        Customize Dex Theme

        +

        Customize Dex Theme

        It’s possible to use a customized theme when authenticating with Dex when using OnDemand’s default authentication. Refer to the upstream Dex template docs for additional information on templating Dex.

        The simplest approach is to copy the OnDemand theme and make changes. This is idea if you wish to make the following changes:

        @@ -1812,11 +1991,11 @@

        Project Balance -

        XDMoD Integration

        +

        XDMoD Integration

        XDMoD Integration requires XDMoD 9+, OnDemand 1.8+, and the ability to facilitate single sign on between the two services. Currently this has been demonstrated to work using OpenID Connect via Keycloak as well as a modified instance of Dex Identity Provider to support sessions.

        -
        +
        _images/customization_xdmod.png -

        Fig. 5 Example of XDMoD Job Efficiency reports in the OnDemand Dashboard.

        +

        Fig. 5 Example of XDMoD Job Efficiency reports in the OnDemand Dashboard.

        Steps to enable the XDMoD reports in the OnDemand Dashboard:

          @@ -1937,7 +2116,7 @@

          Cancel Interactive Sessions

          Support Tickets

          The Dashboard now supports sending a support ticket to your institution Help Desk system. The feature uses email as the delivery mechanism, but it could be extended to support others.

          -

          To enable this feature, define the settings needed using the the configuration property support_ticket. +

          To enable this feature, define the settings needed using the configuration property support_ticket. Once this configuration object is defined, the Submit Support Ticket link will be shown in the Help navigation menu and in all interactive session cards.

          @@ -1953,9 +2132,9 @@

          Cancel Interactive Sessions
        1. Username: Logged in user. Username will be added to the support ticket body for reference.

        2. Email: Email address to communicate regarding this support ticket. A single email address is supported.

        3. -
        4. CC: Additional email address to communicate regardig this ticket. A single email address is supported.

        5. +
        6. CC: Additional email address to communicate regarding this ticket. A single email address is supported.

        7. Subject: Brief description of the problem.

        8. -
        9. Attachments: Add screeshots of the problem to help with debugging and troubleshooting.

        10. +
        11. Attachments: Add screenshots of the problem to help with debugging and troubleshooting.

        12. Description: Detail description of the problem.

        13. Sample configuration:

          @@ -1996,7 +2175,7 @@

          Configuration # Optional. # Text added to the page under the support ticket header description: | - My optional description Text for the support ticket feture + My optional description Text for the support ticket feature # email section is required and should always be present. # It configures how the support ticket email is sent @@ -2027,8 +2206,8 @@

          Configuration -

          Customizations

          +
          +

          Customizations

          The support ticket form can be customized using the form and attributes configuration properties. In the same way that you can configure the form for interactive applications, the support ticket form fields can be arranged or changed as required.

          diff --git a/auto-modules-filtering/enable-desktops.html b/auto-modules-filtering/enable-desktops.html index b46e9f08d..73e762c7e 100644 --- a/auto-modules-filtering/enable-desktops.html +++ b/auto-modules-filtering/enable-desktops.html @@ -132,10 +132,10 @@ diff --git a/auto-modules-filtering/enable-desktops/add-cluster.html b/auto-modules-filtering/enable-desktops/add-cluster.html index 0183e58d7..97cce2f46 100644 --- a/auto-modules-filtering/enable-desktops/add-cluster.html +++ b/auto-modules-filtering/enable-desktops/add-cluster.html @@ -132,10 +132,10 @@ diff --git a/auto-modules-filtering/enable-desktops/custom-job-submission.html b/auto-modules-filtering/enable-desktops/custom-job-submission.html index 6884c8cfd..9697464aa 100644 --- a/auto-modules-filtering/enable-desktops/custom-job-submission.html +++ b/auto-modules-filtering/enable-desktops/custom-job-submission.html @@ -138,10 +138,10 @@ diff --git a/auto-modules-filtering/enable-desktops/modify-form-attributes.html b/auto-modules-filtering/enable-desktops/modify-form-attributes.html index bd8786370..7d5e6088b 100644 --- a/auto-modules-filtering/enable-desktops/modify-form-attributes.html +++ b/auto-modules-filtering/enable-desktops/modify-form-attributes.html @@ -141,10 +141,10 @@ diff --git a/auto-modules-filtering/enable-desktops/software-requirements.html b/auto-modules-filtering/enable-desktops/software-requirements.html index f97c6dfe2..c5edf1c58 100644 --- a/auto-modules-filtering/enable-desktops/software-requirements.html +++ b/auto-modules-filtering/enable-desktops/software-requirements.html @@ -132,10 +132,10 @@ diff --git a/auto-modules-filtering/genindex.html b/auto-modules-filtering/genindex.html index 37d52366c..c783544d5 100644 --- a/auto-modules-filtering/genindex.html +++ b/auto-modules-filtering/genindex.html @@ -126,10 +126,10 @@ diff --git a/auto-modules-filtering/glossary.html b/auto-modules-filtering/glossary.html index 3acf5562a..d98c8c9b3 100644 --- a/auto-modules-filtering/glossary.html +++ b/auto-modules-filtering/glossary.html @@ -39,7 +39,6 @@ - @@ -126,10 +125,10 @@ @@ -223,8 +222,6 @@

        Table 5 OnDemand Locale Files
        - +diff --git a/auto-modules-filtering/reference/commands/nginx-stage/commands/nginx-clean.html b/auto-modules-filtering/reference/commands/nginx-stage/commands/nginx-clean.html index b6e3c2ed7..9fde11e7f 100644 --- a/auto-modules-filtering/reference/commands/nginx-stage/commands/nginx-clean.html +++ b/auto-modules-filtering/reference/commands/nginx-stage/commands/nginx-clean.html @@ -150,10 +150,10 @@
      • PUN environment
      • +
      • Security
      • Release Notes
      • Versioning Policy
      • Glossary
      • -
      • OnDemand’s Known Issues
      • diff --git a/auto-modules-filtering/reference/commands/nginx-stage/commands/nginx-list.html b/auto-modules-filtering/reference/commands/nginx-stage/commands/nginx-list.html index c0bd3cb65..7b42c656c 100644 --- a/auto-modules-filtering/reference/commands/nginx-stage/commands/nginx-list.html +++ b/auto-modules-filtering/reference/commands/nginx-stage/commands/nginx-list.html @@ -149,10 +149,10 @@
      • PUN environment
      • +
      • Security
      • Release Notes
      • Versioning Policy
      • Glossary
      • -
      • OnDemand’s Known Issues
      • diff --git a/auto-modules-filtering/reference/commands/nginx-stage/commands/nginx-show.html b/auto-modules-filtering/reference/commands/nginx-stage/commands/nginx-show.html index 0a25e8432..5da927dcc 100644 --- a/auto-modules-filtering/reference/commands/nginx-stage/commands/nginx-show.html +++ b/auto-modules-filtering/reference/commands/nginx-stage/commands/nginx-show.html @@ -150,10 +150,10 @@
      • PUN environment
      • +
      • Security
      • Release Notes
      • Versioning Policy
      • Glossary
      • -
      • OnDemand’s Known Issues
      • diff --git a/auto-modules-filtering/reference/commands/nginx-stage/commands/nginx.html b/auto-modules-filtering/reference/commands/nginx-stage/commands/nginx.html index 5f24622ee..7d53c0b7a 100644 --- a/auto-modules-filtering/reference/commands/nginx-stage/commands/nginx.html +++ b/auto-modules-filtering/reference/commands/nginx-stage/commands/nginx.html @@ -151,10 +151,10 @@
      • PUN environment
      • +
      • Security
      • Release Notes
      • Versioning Policy
      • Glossary
      • -
      • OnDemand’s Known Issues
      • diff --git a/auto-modules-filtering/reference/commands/nginx-stage/commands/pun.html b/auto-modules-filtering/reference/commands/nginx-stage/commands/pun.html index a7ef78ea7..4a5ec0e42 100644 --- a/auto-modules-filtering/reference/commands/nginx-stage/commands/pun.html +++ b/auto-modules-filtering/reference/commands/nginx-stage/commands/pun.html @@ -151,10 +151,10 @@
      • PUN environment
      • +
      • Security
      • Release Notes
      • Versioning Policy
      • Glossary
      • -
      • OnDemand’s Known Issues
      • diff --git a/auto-modules-filtering/reference/commands/nginx-stage/usage.html b/auto-modules-filtering/reference/commands/nginx-stage/usage.html index fe0dc8e36..16fe1183a 100644 --- a/auto-modules-filtering/reference/commands/nginx-stage/usage.html +++ b/auto-modules-filtering/reference/commands/nginx-stage/usage.html @@ -146,10 +146,10 @@
      • PUN environment
      • +
      • Security
      • Release Notes
      • Versioning Policy
      • Glossary
      • -
      • OnDemand’s Known Issues
      • diff --git a/auto-modules-filtering/reference/commands/ood-portal-generator.html b/auto-modules-filtering/reference/commands/ood-portal-generator.html index 5d1765841..b81f0e5e3 100644 --- a/auto-modules-filtering/reference/commands/ood-portal-generator.html +++ b/auto-modules-filtering/reference/commands/ood-portal-generator.html @@ -138,10 +138,10 @@
      • PUN environment
      • +
      • Security
      • Release Notes
      • Versioning Policy
      • Glossary
      • -
      • OnDemand’s Known Issues
      • diff --git a/auto-modules-filtering/reference/files/nginx-stage-yml.html b/auto-modules-filtering/reference/files/nginx-stage-yml.html index ea023036e..3d983a930 100644 --- a/auto-modules-filtering/reference/files/nginx-stage-yml.html +++ b/auto-modules-filtering/reference/files/nginx-stage-yml.html @@ -138,10 +138,10 @@
      • PUN environment
      • +
      • Security
      • Release Notes
      • Versioning Policy
      • Glossary
      • -
      • OnDemand’s Known Issues
      • @@ -1015,16 +1015,12 @@

        Configuration Options -
        Example

        Using CentOS 6

        +
        Example

        Define new minimum UID

        min_uid: 500
         
        -
        -

        Note

        -

        For RHEL6 and CentOS 6 the user id’s begin at 500.

        -
        diff --git a/auto-modules-filtering/reference/files/ondemand-d-ymls.html b/auto-modules-filtering/reference/files/ondemand-d-ymls.html index ea6b3ba9c..9454fb073 100644 --- a/auto-modules-filtering/reference/files/ondemand-d-ymls.html +++ b/auto-modules-filtering/reference/files/ondemand-d-ymls.html @@ -139,10 +139,10 @@
      • PUN environment
      • +
      • Security
      • Release Notes
      • Versioning Policy
      • Glossary
      • -
      • OnDemand’s Known Issues
      • @@ -966,7 +966,10 @@
        upload_enabled (Boolean, true)
        -

        Enable uploading files.

        +
        +

        New in version 3.1.

        +
        +

        Enable uploading files.

        Default

        File uploads are enabled.

        upload_enabled: true
        @@ -982,10 +985,13 @@
         
        -
        +
        download_enabled (Boolean, true)
        -

        Enable downloading files.

        +
        +

        New in version 3.1.

        +
        +

        Enable downloading files.

        Default

        File downloads are enabled.

        download_enabled: true
        diff --git a/auto-modules-filtering/reference/files/ood-portal-yml.html b/auto-modules-filtering/reference/files/ood-portal-yml.html
        index 20c74c6ad..42d23fa83 100644
        --- a/auto-modules-filtering/reference/files/ood-portal-yml.html
        +++ b/auto-modules-filtering/reference/files/ood-portal-yml.html
        @@ -144,10 +144,10 @@
         
      • PUN environment
      • +
      • Security
      • Release Notes
      • Versioning Policy
      • Glossary
      • -
      • OnDemand’s Known Issues
      • @@ -279,7 +279,8 @@

        Configure General Optionsservername also respond to the hostname class.my-cool-site.example.edu.

        -
        servername: "class.my-cool-site.example.edu"
        +
        server_aliases:
        +   - "class.my-cool-site.example.edu"
         

        diff --git a/auto-modules-filtering/reference/files/submit-yml-erb.html b/auto-modules-filtering/reference/files/submit-yml-erb.html index a23e29cbb..dc65d054d 100644 --- a/auto-modules-filtering/reference/files/submit-yml-erb.html +++ b/auto-modules-filtering/reference/files/submit-yml-erb.html @@ -143,10 +143,10 @@
      • PUN environment
      • +
      • Security
      • Release Notes
      • Versioning Policy
      • Glossary
      • -
      • OnDemand’s Known Issues
      • diff --git a/auto-modules-filtering/reference/files/submit-yml/basic-bc-options.html b/auto-modules-filtering/reference/files/submit-yml/basic-bc-options.html index 0936d93dc..d4fc194e3 100644 --- a/auto-modules-filtering/reference/files/submit-yml/basic-bc-options.html +++ b/auto-modules-filtering/reference/files/submit-yml/basic-bc-options.html @@ -143,10 +143,10 @@
      • PUN environment
      • +
      • Security
      • Release Notes
      • Versioning Policy
      • Glossary
      • -
      • OnDemand’s Known Issues
      • @@ -444,7 +444,7 @@ # careful now, we can't override run_file or we have to # change it here too! This also doesn't account for timeout, # if it's provided. - IMAGE=/opt/images/centos7.sif + IMAGE=/opt/images/el9.sif singularity exec -p $IMAGE /bin/bash script.sh diff --git a/auto-modules-filtering/reference/files/submit-yml/script.html b/auto-modules-filtering/reference/files/submit-yml/script.html index eb8e8696c..2368fb6ff 100644 --- a/auto-modules-filtering/reference/files/submit-yml/script.html +++ b/auto-modules-filtering/reference/files/submit-yml/script.html @@ -143,10 +143,10 @@
      • PUN environment
      • +
      • Security
      • Release Notes
      • Versioning Policy
      • Glossary
      • -
      • OnDemand’s Known Issues
      • diff --git a/auto-modules-filtering/reference/files/submit-yml/vnc-bc-options.html b/auto-modules-filtering/reference/files/submit-yml/vnc-bc-options.html index 4321267c0..a57ae705c 100644 --- a/auto-modules-filtering/reference/files/submit-yml/vnc-bc-options.html +++ b/auto-modules-filtering/reference/files/submit-yml/vnc-bc-options.html @@ -143,10 +143,10 @@
      • PUN environment
      • +
      • Security
      • Release Notes
      • Versioning Policy
      • Glossary
      • -
      • OnDemand’s Known Issues
      • diff --git a/auto-modules-filtering/reference/files/submit-yml/vnc-container-bc-options.html b/auto-modules-filtering/reference/files/submit-yml/vnc-container-bc-options.html index f0f3c76e6..31bf19339 100644 --- a/auto-modules-filtering/reference/files/submit-yml/vnc-container-bc-options.html +++ b/auto-modules-filtering/reference/files/submit-yml/vnc-container-bc-options.html @@ -146,10 +146,10 @@
      • PUN environment
      • +
      • Security
      • Release Notes
      • Versioning Policy
      • Glossary
      • -
      • OnDemand’s Known Issues
      • diff --git a/auto-modules-filtering/reference/pun-environment.html b/auto-modules-filtering/reference/pun-environment.html index c23fda0cb..0091f7318 100644 --- a/auto-modules-filtering/reference/pun-environment.html +++ b/auto-modules-filtering/reference/pun-environment.html @@ -39,7 +39,7 @@ - + @@ -135,10 +135,10 @@
      • PUN environment
      • +
      • Security
      • Release Notes
      • Versioning Policy
      • Glossary
      • -
      • OnDemand’s Known Issues
      • @@ -276,7 +276,7 @@

        + - + - - + + - + - + + - diff --git a/auto-modules-filtering/search.html b/auto-modules-filtering/search.html index faf6846dc..9903fa4af 100644 --- a/auto-modules-filtering/search.html +++ b/auto-modules-filtering/search.html @@ -126,10 +126,10 @@ diff --git a/auto-modules-filtering/searchindex.js b/auto-modules-filtering/searchindex.js index 5c51f4fa1..c6d99809a 100644 --- a/auto-modules-filtering/searchindex.js +++ b/auto-modules-filtering/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["architecture","authentication","authentication/adfs-with-auth-mellon","authentication/cas","authentication/dex","authentication/duo-2fa-with-keycloak","authentication/insecure","authentication/nsf-access","authentication/oidc","authentication/overview","authentication/overview/configure-authentication","authentication/overview/configure-logout","authentication/overview/map-user","authentication/shibboleth","authentication/tutorial-oidc-keycloak-rhel7","authentication/tutorial-oidc-keycloak-rhel7/add-custom-theme","authentication/tutorial-oidc-keycloak-rhel7/configure-cilogon","authentication/tutorial-oidc-keycloak-rhel7/configure-keycloak-webui","authentication/tutorial-oidc-keycloak-rhel7/install-keycloak","authentication/tutorial-oidc-keycloak-rhel7/install_mod_auth_openidc","customizations","enable-desktops","enable-desktops/add-cluster","enable-desktops/custom-job-submission","enable-desktops/modify-form-attributes","enable-desktops/software-requirements","glossary","how-tos/analytics/google-analytics","how-tos/app-development","how-tos/app-development/app-sharing","how-tos/app-development/enabling-development-mode","how-tos/app-development/interactive","how-tos/app-development/interactive/additional-info","how-tos/app-development/interactive/conn-params","how-tos/app-development/interactive/dynamic-form-widgets","how-tos/app-development/interactive/form","how-tos/app-development/interactive/form-widgets","how-tos/app-development/interactive/manifest","how-tos/app-development/interactive/setup","how-tos/app-development/interactive/setup/enable-reverse-proxy","how-tos/app-development/interactive/setup/modify-cluster-configuration","how-tos/app-development/interactive/setup/software-requirements","how-tos/app-development/interactive/sub-apps","how-tos/app-development/interactive/submit","how-tos/app-development/interactive/template","how-tos/app-development/interactive/view","how-tos/debug","how-tos/debug/debug-apache","how-tos/debug/debug-interactive-apps","how-tos/monitoring/logging","how-tos/monitoring/prometheus","index","install-ihpc-apps","installation","installation/add-cluster-config","installation/add-ssl","installation/cluster-config-schema","installation/install-software","installation/modify-system-security","installation/resource-manager/advanced-configs","installation/resource-manager/bin-override-example","installation/resource-manager/ccq","installation/resource-manager/kubernetes","installation/resource-manager/linuxhost","installation/resource-manager/lsf","installation/resource-manager/pbspro","installation/resource-manager/sge","installation/resource-manager/slurm","installation/resource-manager/systemd","installation/resource-manager/test","installation/resource-manager/torque","issues/overview","reference","reference/commands/nginx-stage/commands/app","reference/commands/nginx-stage/commands/app-clean","reference/commands/nginx-stage/commands/app-list","reference/commands/nginx-stage/commands/app-reset","reference/commands/nginx-stage/commands/nginx","reference/commands/nginx-stage/commands/nginx-clean","reference/commands/nginx-stage/commands/nginx-list","reference/commands/nginx-stage/commands/nginx-show","reference/commands/nginx-stage/commands/pun","reference/commands/nginx-stage/usage","reference/commands/ood-portal-generator","reference/files/nginx-stage-yml","reference/files/ondemand-d-ymls","reference/files/ood-portal-yml","reference/files/submit-yml-erb","reference/files/submit-yml/basic-bc-options","reference/files/submit-yml/script","reference/files/submit-yml/vnc-bc-options","reference/files/submit-yml/vnc-container-bc-options","reference/pun-environment","release-notes","release-notes/v1.0-release-notes","release-notes/v1.1-release-notes","release-notes/v1.2-release-notes","release-notes/v1.3-release-notes","release-notes/v1.4-release-notes","release-notes/v1.5-release-notes","release-notes/v1.6-release-notes","release-notes/v1.7-release-notes","release-notes/v1.8-release-notes","release-notes/v2.0-release-notes","release-notes/v3.0-release-notes","release-notes/v3.1-release-notes","requirements","tutorials/tutorials-dashboard-apps","tutorials/tutorials-dashboard-apps/dashboard","tutorials/tutorials-dashboard-apps/shell-app","tutorials/tutorials-interactive-apps","tutorials/tutorials-interactive-apps/add-custom-queue","tutorials/tutorials-interactive-apps/add-custom-queue/global-static-list","tutorials/tutorials-interactive-apps/add-custom-queue/local-static-list","tutorials/tutorials-interactive-apps/add-jupyter","tutorials/tutorials-interactive-apps/add-jupyter/copy-app","tutorials/tutorials-interactive-apps/add-jupyter/customize-attributes","tutorials/tutorials-interactive-apps/add-jupyter/deploy","tutorials/tutorials-interactive-apps/add-jupyter/modify-submit-parameters","tutorials/tutorials-interactive-apps/add-jupyter/software-requirements","tutorials/tutorials-interactive-apps/add-matlab","tutorials/tutorials-interactive-apps/add-matlab/copy-app","tutorials/tutorials-interactive-apps/add-matlab/deploy","tutorials/tutorials-interactive-apps/add-matlab/edit-form-js","tutorials/tutorials-interactive-apps/add-matlab/edit-form-yml","tutorials/tutorials-interactive-apps/add-matlab/edit-script-sh","tutorials/tutorials-interactive-apps/add-matlab/edit-submit-yml","tutorials/tutorials-interactive-apps/add-matlab/known-issues","tutorials/tutorials-interactive-apps/add-matlab/software-requirements","tutorials/tutorials-interactive-apps/add-rstudio","tutorials/tutorials-interactive-apps/add-rstudio/copy-app","tutorials/tutorials-interactive-apps/add-rstudio/customize-attributes","tutorials/tutorials-interactive-apps/add-rstudio/deploy","tutorials/tutorials-interactive-apps/add-rstudio/setup-singularity","tutorials/tutorials-interactive-apps/add-rstudio/software-requirements","tutorials/tutorials-interactive-apps/k8s-jupyter","tutorials/tutorials-interactive-apps/k8s-like-hpc-jupyter","tutorials/tutorials-interactive-apps/troubleshooting","tutorials/tutorials-passenger-apps","tutorials/tutorials-passenger-apps/ps-to-quota","version-policy"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":1,"sphinx.domains.index":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:56},filenames:["architecture.rst","authentication.rst","authentication/adfs-with-auth-mellon.rst","authentication/cas.rst","authentication/dex.rst","authentication/duo-2fa-with-keycloak.rst","authentication/insecure.rst","authentication/nsf-access.rst","authentication/oidc.rst","authentication/overview.rst","authentication/overview/configure-authentication.rst","authentication/overview/configure-logout.rst","authentication/overview/map-user.rst","authentication/shibboleth.rst","authentication/tutorial-oidc-keycloak-rhel7.rst","authentication/tutorial-oidc-keycloak-rhel7/add-custom-theme.rst","authentication/tutorial-oidc-keycloak-rhel7/configure-cilogon.rst","authentication/tutorial-oidc-keycloak-rhel7/configure-keycloak-webui.rst","authentication/tutorial-oidc-keycloak-rhel7/install-keycloak.rst","authentication/tutorial-oidc-keycloak-rhel7/install_mod_auth_openidc.rst","customizations.rst","enable-desktops.rst","enable-desktops/add-cluster.rst","enable-desktops/custom-job-submission.rst","enable-desktops/modify-form-attributes.rst","enable-desktops/software-requirements.rst","glossary.rst","how-tos/analytics/google-analytics.rst","how-tos/app-development.rst","how-tos/app-development/app-sharing.rst","how-tos/app-development/enabling-development-mode.rst","how-tos/app-development/interactive.rst","how-tos/app-development/interactive/additional-info.rst","how-tos/app-development/interactive/conn-params.rst","how-tos/app-development/interactive/dynamic-form-widgets.rst","how-tos/app-development/interactive/form.rst","how-tos/app-development/interactive/form-widgets.rst","how-tos/app-development/interactive/manifest.rst","how-tos/app-development/interactive/setup.rst","how-tos/app-development/interactive/setup/enable-reverse-proxy.rst","how-tos/app-development/interactive/setup/modify-cluster-configuration.rst","how-tos/app-development/interactive/setup/software-requirements.rst","how-tos/app-development/interactive/sub-apps.rst","how-tos/app-development/interactive/submit.rst","how-tos/app-development/interactive/template.rst","how-tos/app-development/interactive/view.rst","how-tos/debug.rst","how-tos/debug/debug-apache.rst","how-tos/debug/debug-interactive-apps.rst","how-tos/monitoring/logging.rst","how-tos/monitoring/prometheus.rst","index.rst","install-ihpc-apps.rst","installation.rst","installation/add-cluster-config.rst","installation/add-ssl.rst","installation/cluster-config-schema.rst","installation/install-software.rst","installation/modify-system-security.rst","installation/resource-manager/advanced-configs.rst","installation/resource-manager/bin-override-example.rst","installation/resource-manager/ccq.rst","installation/resource-manager/kubernetes.rst","installation/resource-manager/linuxhost.rst","installation/resource-manager/lsf.rst","installation/resource-manager/pbspro.rst","installation/resource-manager/sge.rst","installation/resource-manager/slurm.rst","installation/resource-manager/systemd.rst","installation/resource-manager/test.rst","installation/resource-manager/torque.rst","issues/overview.rst","reference.rst","reference/commands/nginx-stage/commands/app.rst","reference/commands/nginx-stage/commands/app-clean.rst","reference/commands/nginx-stage/commands/app-list.rst","reference/commands/nginx-stage/commands/app-reset.rst","reference/commands/nginx-stage/commands/nginx.rst","reference/commands/nginx-stage/commands/nginx-clean.rst","reference/commands/nginx-stage/commands/nginx-list.rst","reference/commands/nginx-stage/commands/nginx-show.rst","reference/commands/nginx-stage/commands/pun.rst","reference/commands/nginx-stage/usage.rst","reference/commands/ood-portal-generator.rst","reference/files/nginx-stage-yml.rst","reference/files/ondemand-d-ymls.rst","reference/files/ood-portal-yml.rst","reference/files/submit-yml-erb.rst","reference/files/submit-yml/basic-bc-options.rst","reference/files/submit-yml/script.rst","reference/files/submit-yml/vnc-bc-options.rst","reference/files/submit-yml/vnc-container-bc-options.rst","reference/pun-environment.rst","release-notes.rst","release-notes/v1.0-release-notes.rst","release-notes/v1.1-release-notes.rst","release-notes/v1.2-release-notes.rst","release-notes/v1.3-release-notes.rst","release-notes/v1.4-release-notes.rst","release-notes/v1.5-release-notes.rst","release-notes/v1.6-release-notes.rst","release-notes/v1.7-release-notes.rst","release-notes/v1.8-release-notes.rst","release-notes/v2.0-release-notes.rst","release-notes/v3.0-release-notes.rst","release-notes/v3.1-release-notes.rst","requirements.rst","tutorials/tutorials-dashboard-apps.rst","tutorials/tutorials-dashboard-apps/dashboard.rst","tutorials/tutorials-dashboard-apps/shell-app.rst","tutorials/tutorials-interactive-apps.rst","tutorials/tutorials-interactive-apps/add-custom-queue.rst","tutorials/tutorials-interactive-apps/add-custom-queue/global-static-list.rst","tutorials/tutorials-interactive-apps/add-custom-queue/local-static-list.rst","tutorials/tutorials-interactive-apps/add-jupyter.rst","tutorials/tutorials-interactive-apps/add-jupyter/copy-app.rst","tutorials/tutorials-interactive-apps/add-jupyter/customize-attributes.rst","tutorials/tutorials-interactive-apps/add-jupyter/deploy.rst","tutorials/tutorials-interactive-apps/add-jupyter/modify-submit-parameters.rst","tutorials/tutorials-interactive-apps/add-jupyter/software-requirements.rst","tutorials/tutorials-interactive-apps/add-matlab.rst","tutorials/tutorials-interactive-apps/add-matlab/copy-app.rst","tutorials/tutorials-interactive-apps/add-matlab/deploy.rst","tutorials/tutorials-interactive-apps/add-matlab/edit-form-js.rst","tutorials/tutorials-interactive-apps/add-matlab/edit-form-yml.rst","tutorials/tutorials-interactive-apps/add-matlab/edit-script-sh.rst","tutorials/tutorials-interactive-apps/add-matlab/edit-submit-yml.rst","tutorials/tutorials-interactive-apps/add-matlab/known-issues.rst","tutorials/tutorials-interactive-apps/add-matlab/software-requirements.rst","tutorials/tutorials-interactive-apps/add-rstudio.rst","tutorials/tutorials-interactive-apps/add-rstudio/copy-app.rst","tutorials/tutorials-interactive-apps/add-rstudio/customize-attributes.rst","tutorials/tutorials-interactive-apps/add-rstudio/deploy.rst","tutorials/tutorials-interactive-apps/add-rstudio/setup-singularity.rst","tutorials/tutorials-interactive-apps/add-rstudio/software-requirements.rst","tutorials/tutorials-interactive-apps/k8s-jupyter.rst","tutorials/tutorials-interactive-apps/k8s-like-hpc-jupyter.rst","tutorials/tutorials-interactive-apps/troubleshooting.rst","tutorials/tutorials-passenger-apps.rst","tutorials/tutorials-passenger-apps/ps-to-quota.rst","version-policy.rst"],objects:{"":{"/node/(host)/(port)(path)":[45,0,1,"get--node-(host)-(port)(path)"],"/rnode/(host)/(port)(path)":[45,0,1,"get--rnode-(host)-(port)(path)"]},"nginx_stage-app":{"--skip-nginx":[73,1,1,"cmdoption-nginx-stage-app-n"],"--sub-request":[73,1,1,"cmdoption-nginx-stage-app-r"],"--sub-uri":[73,1,1,"cmdoption-nginx-stage-app-i"],"--user":[73,1,1,"cmdoption-nginx-stage-app-u"],"-N":[73,1,1,"cmdoption-nginx-stage-app-n"],"-i":[73,1,1,"cmdoption-nginx-stage-app-i"],"-r":[73,1,1,"cmdoption-nginx-stage-app-r"],"-u":[73,1,1,"cmdoption-nginx-stage-app-u"]},"nginx_stage-app_reset":{"--sub-uri":[76,1,1,"cmdoption-nginx-stage-app-reset-i"],"-i":[76,1,1,"cmdoption-nginx-stage-app-reset-i"]},"nginx_stage-nginx":{"--signal":[77,1,1,"cmdoption-nginx-stage-nginx-s"],"--skip-nginx":[77,1,1,"cmdoption-nginx-stage-nginx-n"],"--user":[77,1,1,"cmdoption-nginx-stage-nginx-u"],"-N":[77,1,1,"cmdoption-nginx-stage-nginx-n"],"-s":[77,1,1,"cmdoption-nginx-stage-nginx-s"],"-u":[77,1,1,"cmdoption-nginx-stage-nginx-u"]},"nginx_stage-nginx_clean":{"--force":[78,1,1,"cmdoption-nginx-stage-nginx-clean-f"],"--skip-nginx":[78,1,1,"cmdoption-nginx-stage-nginx-clean-n"],"-N":[78,1,1,"cmdoption-nginx-stage-nginx-clean-n"],"-f":[78,1,1,"cmdoption-nginx-stage-nginx-clean-f"]},"nginx_stage-nginx_show":{"--user":[80,1,1,"cmdoption-nginx-stage-nginx-show-u"],"-u":[80,1,1,"cmdoption-nginx-stage-nginx-show-u"]},"nginx_stage-pun":{"--app-init-url":[81,1,1,"cmdoption-nginx-stage-pun-a"],"--skip-nginx":[81,1,1,"cmdoption-nginx-stage-pun-n"],"--user":[81,1,1,"cmdoption-nginx-stage-pun-u"],"-N":[81,1,1,"cmdoption-nginx-stage-pun-n"],"-a":[81,1,1,"cmdoption-nginx-stage-pun-a"],"-u":[81,1,1,"cmdoption-nginx-stage-pun-u"]},"ood-portal-generator":{"--config":[83,1,1,"cmdoption-ood-portal-generator-c"],"--detailed-exitcodes":[83,1,1,"cmdoption-ood-portal-generator-detailed-exitcodes"],"--force":[83,1,1,"cmdoption-ood-portal-generator-f"],"--rpm":[83,1,1,"cmdoption-ood-portal-generator-r"],"--template":[83,1,1,"cmdoption-ood-portal-generator-t"],"-c":[83,1,1,"cmdoption-ood-portal-generator-c"],"-f":[83,1,1,"cmdoption-ood-portal-generator-f"],"-r":[83,1,1,"cmdoption-ood-portal-generator-r"],"-t":[83,1,1,"cmdoption-ood-portal-generator-t"]},"ood_auth_map.mapfile":{"--file":[12,1,1,"cmdoption-ood-auth-map-mapfile-f"],"-f":[12,1,1,"cmdoption-ood-auth-map-mapfile-f"]}},objnames:{"0":["http","get","HTTP get"],"1":["std","cmdoption","program option"]},objtypes:{"0":"http:get","1":"std:cmdoption"},terms:{"0000ff":[20,85],"000943s":139,"000966s":139,"007fff":85,"00am":20,"00pm":20,"1000k":139,"1000m":20,"10mb":20,"1240x900":90,"150mb":106,"150px":85,"162m":101,"172m":101,"17m":101,"181m":101,"1920x1080":90,"1_all":103,"20g":20,"20gb":106,"20s":50,"24h":4,"24t10":69,"256m":101,"28800s":63,"2f58606":12,"2faccess":7,"2fbatch":[118,126],"2fbatchconnect":[118,126],"2fcilogon":12,"2fidp":[7,11,13],"2flogout":[11,13],"2fondemand":[8,11,19],"2fprofil":[11,13],"2fservera":12,"2ftemplat":[118,126],"2fuser":12,"2fwww":19,"2jhfyh7":20,"2mb":20,"2u5":98,"31m":101,"3rd":56,"40cilogon":12,"40core":136,"40harvard":12,"40osc":12,"41fa":8,"48core":136,"4gi":135,"500g":139,"500mi":135,"50gb":106,"53565a":84,"592m":101,"5b4d93636e0968be920cf409252292d674cc951d":60,"5mb":20,"5tb":124,"63m":101,"64g":63,"64gb":[63,106],"65kb":20,"688x":64,"68m":101,"6mb":20,"716de4ac":85,"73s0qfxc5e_s":63,"87f7":8,"88a4":8,"933k":139,"99616m":139,"99m":101,"9f1fe759":85,"boolean":[4,35,36,37,58,62,85,86,89,101,103,104],"break":[10,12,51,60,84,89,100,101,131,140],"byte":[20,84],"case":[10,12,14,19,20,23,24,27,34,35,39,43,44,45,55,57,62,63,71,84,86,101,102,118,126,135,136,139],"class":[17,20,30,35,45,86,89,103,104,139],"default":[4,11,12,14,15,16,17,18,19,21,23,25,28,29,34,35,36,37,39,43,44,45,47,49,50,51,53,54,56,57,58,60,61,62,63,65,66,67,71,77,83,84,85,86,88,89,90,91,92,97,99,100,101,103,105,108,112,113,118,126,135,139],"export":[2,33,39,40,43,44,46,59,60,63,66,67,71,86,89,125,131,133],"final":[10,17,18,35,43,69,96,131],"float":35,"function":[0,1,12,20,39,44,56,70,86,88,92,98,99,103,106,108,125,131,135,140],"import":[2,17,23,27,29,40,47,49,60,62,85,91,100,135,136],"long":[35,44,97,100,137],"new":[4,5,10,13,14,19,20,23,27,29,30,36,37,42,44,45,50,53,57,62,71,84,85,93,94,95,96,98,99,108,115,117,118,121,122,126,130,132,135,136,139,140],"null":[4,5,11,19,24,35,59,60,62,63,84,85,86,88,100,135,136],"public":[4,16,20,55,57,58,85,92,139],"return":[2,7,11,12,13,20,24,35,39,43,44,56,60,66,73,75,76,81,118,126,139],"short":[68,101,106],"static":[1,4,20,44,101,110,111,139],"switch":[101,102,110,125,139],"throw":[71,100,110,127],"true":[4,7,8,18,20,24,30,34,35,36,37,43,45,56,60,62,63,67,84,85,86,89,124,135],"try":[6,47,49,55,56,60,61,86,88,101,102,103,104,105,108,116],"var":[4,12,18,20,23,24,29,30,42,49,58,60,63,66,69,71,73,80,81,84,86,91,92,95,96,97,98,99,101,102,103,115,116,117,121,122,130,131,132,136,139],"while":[5,20,34,47,52,71,85,101,102,108,116,137],Added:[18,99,105],Adding:[20,28,31,46,51,53,86],And:[24,27,33,39,106,109],Being:62,But:[24,34,35,43,44,108,118,126],CAS:[1,53],DNS:63,For:[2,4,5,10,14,16,18,20,22,23,24,27,29,30,35,36,41,43,44,45,49,50,52,54,55,56,60,62,63,65,69,71,84,85,86,89,97,98,99,100,101,103,104,112,113,115,118,121,126,130,136,137,139,140],Has:101,IDE:[63,108],IPs:86,K8s:[62,135,136],NFS:58,NOT:[20,25,41,44,45,119,128,134],Not:[20,35,84,89],OSes:105,One:[20,49,62,104,135,136],PBS:[21,51,54,70,89,101,114,120],QoS:35,TLS:4,That:[22,24,35,40,42,54,101,131],The:[0,1,2,4,7,8,10,11,12,13,16,17,19,20,21,22,23,24,25,26,28,30,32,33,34,35,36,37,39,41,42,43,44,45,47,49,50,51,52,53,54,55,56,57,58,60,61,62,64,65,66,67,69,70,71,73,76,77,80,81,82,83,84,85,86,87,88,89,90,91,94,95,96,97,98,99,100,101,102,103,104,105,106,108,109,110,112,113,114,115,116,117,118,119,120,121,122,124,125,126,127,128,129,130,131,132,134,135,139,140],Then:[13,17,18,19,20,30,35,40,109,115,121,130,131],There:[6,20,23,24,29,42,44,45,49,61,62,63,71,85,86,101,103,104,118,124,126,127,131],These:[5,9,14,17,20,29,35,37,43,44,45,46,49,51,54,62,63,85,86,87,88,89,90,92,97,103,104,115,118,121,126,130,136,139],Tos:51,Use:[8,13,17,20,24,43,47,62,63,83,84,85,86,89,91,106,108,110,111,120,124,137],Used:[4,56,86,92,100],Useful:[86,116],Uses:35,Using:[11,14,60,63,67,71,84,86,99],VMs:106,WILL:44,Will:56,With:[20,27,34,42,60,63,108,139],__main__:60,__name__:60,_access:49,_any_:20,_blank:33,_email:20,_erb:20,_err_to_out:60,_error:49,_footer:20,_html:20,_in:60,_limits_:135,_my_cluster_widget:20,_my_new_widget:20,_native_vnc_:45,_requests_:135,_shibsession_:[10,13],_theme:15,_tmux:63,_your_:7,a12ff167dd13:8,aaba6ahbauquag:[20,56],aarch64:106,ab001:39,ab100:39,abaqu:52,abc123:[42,85],abil:[16,20,56,62,63,66,97,99,104],abl:[4,18,19,20,21,24,29,35,42,46,49,53,54,60,62,63,71,85,86,94,97,100,102,103,108,114,120,129,133,137,139],abort:[100,139],about:[20,27,30,39,47,48,49,50,51,55,56,66,100,102,112,113,116,118,126,135,136],abov:[7,11,13,20,22,23,24,25,27,32,35,39,41,44,50,62,63,67,71,85,86,90,92,94,95,96,101,103,104,108,112,113,118,119,126,128,134,135],abruptli:116,absolut:[20,23,45,63,86,91,131],abus:44,academ:123,acceler:[124,128],accept:[0,4,17,20,27,35,58,102],access:[1,4,11,12,14,16,17,18,19,23,30,32,33,43,44,45,51,53,54,56,57,58,62,69,81,84,85,86,94,95,97,98,101,102,103,104,111,115,121,130,133,139],accesslog:86,accomid:105,accommod:86,accomplish:[10,56,112,113,131,137],accord:[106,125],accordingli:[7,20,47],account:[16,20,23,24,27,34,35,42,43,57,62,69,85,86,88,89,100,124,135,136],accounting_id:[35,43,89,135,136],achiev:63,acl:104,across:[20,35,49,85,103,112],act:[19,29,42,58,62],action:[5,20,33,45,58,71,103],activ:[1,18,20,44,50,53,54,62,78,80,85,96,98,100,102,139],activejob:[20,29,92,97],actual:[22,23,35,40,42,47,55,57,59,62,63,69,85,103,106,108,118,125,126,133,139],adapt:[20,21,24,39,40,51,56,58,60,61,62,63,64,65,66,67,68,70,71,94,95,98,118,124,126,136],adaybujeda:104,add:[1,2,4,5,9,14,18,21,23,29,32,34,35,37,39,43,51,52,53,54,56,60,62,63,66,81,85,86,92,94,97,103,104,105,107,110,118,126,127,139],add_line_to_configmap:135,added:[15,16,20,29,34,35,36,43,45,54,84,85,86,88,92,97,98,99,100,101,102,103,104,127,139],adding:[10,15,20,29,55,57,62,85,95,97,98,99,100,103,116,118,124,126,131],addit:[4,7,20,28,31,34,37,81,84,85,86,90,91,101,131,135,136,140],addition:[20,31,34,86],addr:4,address:[12,18,20,49,62,84,86,89,101],adequ:71,adf:[1,53],adjust:[4,17,20,33,50,63,85],admin:[4,15,16,17,18,19,20,29,49,62,71,99,107,139],administr:[2,20,35,42,45,47,49,57,67,84,93,101,102,139],adopt:[51,140],advanc:[9,23,51,54,56],advantag:[23,43,45,97,99,112,113,114,120,129],advers:127,adversli:84,advertis:[29,53],advic:20,aebruno:104,affect:[20,24,58,69,84,92,95,97,103,104],after:[1,12,15,18,19,20,22,24,29,31,33,35,53,54,56,57,60,62,63,69,85,88,89,97,99,101,102,103,104,105,106,108,112,113,115,116,117,121,122,130,132,136,137,139,140],after_initi:[20,30,104],again:[20,32,56,63,69,116],against:[8,12,20,23,35,71,103],agarw:104,agent:86,aggreg:[20,50],agnost:[43,112,113],ago:18,ahead:[97,108,116,124,131],aid:98,aim:107,alert:[20,97],alia:[16,20],alias:[20,86],align:33,aliv:[19,47,105],all:[0,4,5,7,12,18,19,20,22,23,24,27,28,29,31,34,35,39,42,43,44,45,46,49,52,53,54,56,57,58,62,63,67,69,71,72,74,75,76,78,79,82,84,85,86,87,88,89,90,91,92,94,95,96,97,99,100,101,102,104,105,108,112,115,117,118,121,122,126,130,131,132,134,135,136,138,139,140],all_app:20,all_namespac:62,alllow:105,alloc:[7,63,124],allow:[17,22,23,24,29,34,35,36,42,43,45,48,50,51,53,56,58,62,63,70,84,85,86,98,99,100,101,102,103,104,111,112,115,118,124,126,131],allow_embed:20,allow_origin:135,allowlist:[51,56,86,104],alma:[50,57],almalinux:[50,57,105,106],almost:60,alon:[20,35,131],along:[32,86,101,104],alongsid:[98,140],alpha:101,alphabet:[51,92],alphanumer:[44,84],alreadi:[7,17,18,20,35,40,43,44,45,49,87,102,112,113,125,135,136],also:[1,8,12,14,15,20,23,24,29,30,32,34,35,36,43,44,45,49,50,51,52,54,57,58,60,62,63,64,71,78,83,84,86,87,88,97,98,99,102,103,104,106,108,112,116,118,124,126,135,136,140],alter:[56,60,84],altern:[7,56,62,67,71,85,127,129],although:[20,29,43,118,126],altogeth:[20,36,104],alwai:[12,20,24,29,32,40,62,69,86,89,97,98,99,101,102,103,105],alwasi:135,amazon:[53,57,106],amd64:[50,62],among:57,amount:[35,42,71,89],amzn2023:57,an0047:29,analysi:[100,102],analyt:[46,51,85,86],analyticsservic:27,analyticsv3:27,ancestor:[20,86],anchor:[20,39,55],ani:[2,10,17,19,20,22,24,27,32,34,35,39,40,42,44,45,49,59,60,62,67,69,73,74,76,82,83,84,85,86,90,91,97,98,99,101,102,103,104,105,106,108,116,118,119,123,124,125,126,128,134,135,136,138,139],anni:[7,12],annot:62,announc:[51,85],announcement_path:85,anonym:[13,17,20],anoth:[29,34,39,43,62,71,86,89,99,104,106,112,117,122,124,132],another_script:33,ansi:[52,123],ansibl:54,answer:127,anticip:47,any_file_nam:20,anymor:[24,74,103,112,113],anyon:[20,62,84,104,140],anyth:[26,34,35,39,42,63,84,88,89,105,112,123,137],anywher:[20,56,97,104,140],aoaklei:[7,12],apach:[0,1,2,6,8,9,11,12,13,14,20,28,38,46,49,50,51,53,57,58,81,83,84,86,97,99,102,106],apache2:[47,57,105],apache_hom:47,api:[4,18,27,31,56,62,88,90,123],apivers:62,app:[16,19,21,22,23,24,25,26,27,33,34,35,37,40,41,43,44,45,46,49,50,51,54,56,58,63,69,71,74,75,76,81,82,84,85,86,87,88,89,92,93,96,100,105,106,107,111,112,113,116,118,119,124,126,128,131,134],app_clean:82,app_config_path:84,app_development_en:30,app_directori:[115,121,130],app_init_url:81,app_jupyt:36,app_list:82,app_nam:[20,71,73],app_own:73,app_passenger_env:84,app_request_regex:84,app_request_uri:84,app_reset:82,app_root:[30,84],app_token:84,appear:[20,24,29,30,35,45,63,71,81,97,98,99,101,115,121,127,130,131,139],append:[23,24,100,118,126],append_path:131,appl:69,appli:[13,19,20,35,43,58,62,63,71,85,87,88,90,91,103,135],applic:[0,7,18,28,29,30,31,32,33,34,35,36,37,40,42,43,44,45,48,51,56,59,60,62,66,69,71,73,74,75,76,84,85,86,87,89,92,93,101,102,103,104,105,106,120,125,135,136,137,138],appnam:[29,104],appprocess:139,appreci:1,approach:[11,20,29,62,98,128,136],appropri:[5,15,18,19,20,27,35,39,43,44,49,55,63,92,97,119,128,131,134,139],approv:16,apprun:133,apps_path:136,apptain:91,apt:[2,4,55,57,103,105],aptli:44,arbirari:[36,62],arbitrari:[20,30,63,98],architectur:[51,57,94,100,105],archiv:50,area:[17,36],aren:44,arg:[20,60,62,89,136],arguement:12,argument:[20,23,43,60,66,69,84,86,89,90,91,99,100,112,113,118,126],argv:60,arithmet:[24,43,44],arizona:51,arm64:106,around:[20,40,49,67,71,104,115,121,130],arrai:[4,23,24,35,36,43,51,84,85,86,88,89,90,102,112,113,118,126,135,139],arrang:[20,71],arrow:102,ascii:100,asid:[118,126],ask:[30,97],aspect:[104,136],assert:[62,139],assert_equ:139,asset:[20,44,84,92,125,139],assign:20,assist:14,associ:[33,56,85,97,139],assum:[2,22,29,30,35,37,43,44,45,55,62,85,97,102,108,111,112,135,136,139],atkin:100,attach:[20,34,59],attack:39,attempt:[4,6,14,20,24,69,71,77,86,96,100,104,108,134],attribut:[18,20,21,22,23,31,33,34,42,43,44,45,51,63,87,89,97,101,102,104,110,111,114,118,120,126,129,139],audit2allow:58,audit:58,aug:29,auth:[1,2,6,8,10,13,16,17,18,19,20,51,53,62,63,86,99,101,102,106],auth_openidc:[19,86],auth_shib:13,authent:[3,4,5,6,7,8,9,11,12,13,14,16,17,18,20,44,45,49,51,53,57,58,63,71,86,95,99,101,103,104,136],authenticated_usernam:12,authentict:105,authnam:19,author:[2,4,13,16,19,29,55,62],authtyp:[2,8,10,13,19,86],authuserfil:19,auto:[24,104,131,139],auto_account:[35,89,104],auto_group:[35,85,104],auto_groups_filt:85,auto_modul:104,auto_modules_:35,auto_modules_matlab:35,auto_modules_netcdf:35,auto_modules_netcdf_seri:35,auto_modules_r:35,auto_primary_group:[35,104],auto_qo:35,auto_queu:[35,89],auto_supplemental_group:62,autofil:20,autogroup:35,autom:[54,98,139],automat:[9,31,34,62,85,89,109],aux:139,avail:[1,20,23,24,27,29,33,34,35,43,44,45,49,50,51,52,56,60,62,63,69,71,76,85,89,92,97,100,101,102,104,112,118,124,126,128,134,136,139,140],averag:106,avoid:[30,44,82,86,139],awai:24,awar:[12,20,35,56,123,128],awesom:45,awk:[7,39,62,88,118,126],aws:61,b972c25d:8,back:[6,16,19,24,33,34,39,44,57,58,85,88,97,100,103,104,108,116,139],backend:[10,13,19,45,61,86,112,113],background:[20,43,44,85,108,110,124,125],backport:51,backtrac:63,backup:[97,99],backward:[20,103,140],bad:60,bak:97,balanc:51,balance1:20,balance2:20,balzana:101,banner:108,bar:[37,51,85,86,89,101,104],bart:101,barton:100,base64:62,base:[5,7,11,13,15,16,18,28,29,30,31,42,47,50,56,62,63,84,85,88,90,99,103,104,105,123,128,133,134,136,138,139],base_slurm_arg:136,base_url:[33,45,135],basearch:133,basedn:4,baselin:62,bash:[7,12,20,39,40,43,44,56,60,62,63,66,69,85,87,88,98,103,118,126,135,136,139],bash_help:88,bash_profil:[40,139],bash_rematch:12,bashrc:[40,66,109,139],basi:[20,35,102],basic:[6,19,24,33,39,40,43,44,51,56,66,87,90,91,100,102,104,106,112,113,118,136],basicconfig:60,batch:[22,23,25,29,31,34,35,37,40,41,44,45,49,51,52,53,56,59,62,63,65,66,69,70,94,96,103,104,111,113,114,115,116,118,119,120,121,124,126,128,129,130,131,134],batch_connect:[20,23,33,37,39,40,43,44,45,49,62,63,66,71,85,87,88,90,91,104,112,113,115,118,121,126,130,136],batchmod:63,baverhei:101,bc_account:[23,24,35,42,89,112,113,116,118,124,126,131],bc_clean_old_dir:85,bc_clean_old_dirs_dai:85,bc_desktop:[20,22,23,24,29,42,97,98],bc_desktop_example_kd:29,bc_dynamic_j:85,bc_email_on_start:[23,24,35,89,112,113,116,118,124,126,131],bc_example_jupyt:[52,115],bc_example_rstudio:[130,131,132,134],bc_js_filepick:[105,123],bc_jupyter_dynpart:52,bc_my_center_matlab:[121,122,123,124,125,126,127],bc_num_hour:[23,24,35,44,89,112,113,116,118,124,126,131,136],bc_num_slot:[23,24,35,112,113,116,118,124,126,131],bc_osc_abaqu:52,bc_osc_ansys_workbench:52,bc_osc_codeserv:52,bc_osc_comsol:52,bc_osc_example_shini:52,bc_osc_jupypt:33,bc_osc_jupyt:52,bc_osc_jupyter_spark:52,bc_osc_matlab:[52,121,125],bc_osc_paraview:52,bc_osc_qgi:52,bc_osc_rstudio_serv:52,bc_osc_stata:52,bc_osc_vmd:52,bc_queue:[23,24,35,43,89,111,112,113,116,118,126,131],bc_relion:52,bc_simple_auto_account:[35,85],bc_vnc_idl:24,bc_vnc_resolut:[24,124],bcff07264b318688c3f4272a9662b13477833373:125,becaus:[7,11,18,20,22,24,29,35,40,43,54,56,61,62,63,66,67,69,71,85,86,88,89,99,101,102,103,104,110,124,133,135,139],becom:[10,20,98,100,103],been:[2,14,16,20,35,40,43,56,63,64,69,71,77,97,98,99,100,101,103,105,125,127,128,136,137,140],befor:[2,10,19,20,21,23,24,29,31,33,35,43,50,57,59,62,67,71,84,86,88,91,97,98,99,100,101,102,103,104,105,108,109,114,115,116,119,120,121,128,130,134,135,136,137],before_fil:88,before_script:88,beforehand:86,begin:[2,5,12,20,24,27,84,108,109,115,116,121,124,130,131,136],behalf:29,behav:[20,51,62,66,104,110,135],behavior:[4,32,34,60,63,85,92,98,99,100,104],behaviour:[20,67,85],behe:4,behind:[1,18,20,86],being:[4,10,13,19,20,35,40,42,46,49,56,60,61,86,88,89,97,99,100,101,103,104,106,108,127,136,140],believ:128,belong:[63,99],below:[0,1,5,16,18,19,20,24,29,30,31,35,36,43,44,45,47,56,62,63,66,67,84,85,86,88,90,91,94,95,97,98,100,102,103,104,110,112,118,125,126,136],ben:102,beneath:73,benefici:49,benefit:[29,42,97,99,131,136],best:[24,39,43,47,54,69,97,98,102,103,106],beta:101,better:[20,29,35,86,100,105],between:[4,18,20,29,35,49,55,62,63,73,85,86,98,99,100,101,102,104,110,131,139],beyond:104,bgohar:30,big:[47,104,136],biggest:97,bin:[4,7,8,12,13,18,20,29,39,40,43,44,50,56,59,60,61,62,63,64,65,66,67,69,70,83,84,85,87,88,90,91,103,104,105,108,109,127,131,135,136,139],bin_overrid:[51,54,61,64,65,66,67,70],binari:[4,53,54,61,66,67,70,84],bind:[5,17,18,23,63,91,133],binddn:4,bindir:64,bindpw:4,bio:20,biologi:[20,37,103,104],bit:20,bjob:64,bkill:64,black:20,blank:[17,20,23,24,43,118,124,126],blender:29,blob:[53,57,60],block:[18,35,44,51,104,125,136,137,139],block_limit:20,block_usag:20,blocklist:[56,104],blocks_grac:139,blocks_limit:139,blocks_quota:139,blue:[0,35,85,139],bmcmichael:30,bob:[12,13,29,73,77,80,81],bodi:[20,40,84],body_bytes_s:84,book:20,bookworm_al:57,bool:85,boostrap:[43,62],boot:[43,90,91],bootstrap:[20,43,45,91,97,103,133,139],border:139,border_color:20,botani:37,both:[12,14,18,19,20,34,35,42,43,53,56,62,63,86,87,89,92,98,99,102,103,131,135,136],bottom:[17,20,88,98,138],bound:[62,133],bowdoin:51,box:[0,16,20,34,35,50,84,102,103,115,121,130],branch:[108,109,140],brand:[51,102,103,104,138],brand_bg_color:[20,85],brand_link_active_bg_color:[20,85],bresum:64,breviti:[27,63,66,91],bridg:7,brief:[20,60],brittl:35,broader:87,broke:98,broken:[9,29],broker:16,brows:[55,85,104],browseabl:98,browser:[0,5,16,20,21,22,23,24,26,33,35,39,45,47,51,55,71,84,85,97,98,102,104,105,108,114,115,117,118,120,121,122,126,129,130,132,139],bstop:64,bsub:[43,56,64,85,101],btn:45,buechler:101,buffalo:[51,102],buffer:102,bug:[71,95,98,115,121,127,130,140],bugfix:96,build:[4,5,8,10,19,20,35,36,39,44,51,86,108,115,121,125,129,130,136,139],builder:[57,103],built:[0,8,20,24,43,53,57,63,66,71,98,103,112,115,121,130,133,136,139,140],builtin:12,bulk:[97,135],bunch:104,bundl:[84,98,99,139],bundle_user_config:84,bundler:[57,108,139],bus:63,bust:139,button:[17,20,35,36,45,85,86,98,103,115,116,121,130,139],bypass:106,c12:[43,118,126],cacert:62,cach:[31,91,104,139],cacheabl:35,cachetempl:18,cachethem:18,cae:52,call:[12,18,20,24,27,29,33,35,43,60,62,77,85,86,88,102,103,112,113,116,139],callback:16,campu:7,can:[1,2,4,7,9,10,12,13,15,16,17,18,20,23,24,26,27,28,30,31,32,33,34,35,36,37,39,42,43,44,45,47,49,50,51,54,55,56,58,59,60,62,63,67,68,69,71,82,83,84,85,86,87,88,89,90,91,92,97,98,99,100,101,102,103,104,105,106,107,108,109,112,113,115,117,118,121,122,123,124,126,130,132,135,136,139,140],canari:29,cancel:[51,85],cancel_session_en:[20,85],candid:140,candidate_favorite_path:[20,104],cannot:[12,20,24,29,39,62,63,88,89,110,124],capabl:[12,34,37,82,83,86,87],capac:71,capit:85,captur:[8,13,49,86],card:[28,31,33,51,56,85,100,104,105],care:[24,29,43,44,56,85,88,99],carri:24,casloginurl:10,cat:[18,49,50,58,62,71,101,125,127],catalog:29,categori:[29,37,85,98,99,103,104,108,139],caus:[10,20,23,35,43,45,51,56,63,67,86,88,90,98,106,108,112,118,126,139],caution:[20,24],caveat:67,ccq:61,ccqcert:61,ccqdel:61,ccqstat:61,ccqsub:61,center:[1,3,11,13,15,20,35,43,51,52,73,81,86,97,98,99,100,101,102,103,104,105,115,121,130,136],cento:[8,47,50,53,57,63,69,84,98,99,101,103,104,106,131,133],centos7:[63,88,131,133],centos_7:63,central:[3,101],cert:[2,4,18,55,61,62,86],cert_authority_fil:62,certain:[20,62,63,71,84,85,97,98],certainli:60,certian:104,certif:[2,4,14,17,18,53,55,57,61,62],cfg:135,cgconfig:63,cgi:[33,86],cgred:63,cgroup:[0,20],cgrule:63,chain:[69,86],chanc:22,chang:[4,8,10,11,18,19,21,23,29,30,31,34,35,36,39,47,51,53,58,60,61,62,69,71,83,85,86,88,90,92,93,101,102,108,109,112,116,117,118,122,124,126,127,131,132,136,139,140],changelog:[94,95,98,99],changem:[20,62],changetarget:33,channel:55,charact:[44,51,56,66,71,82,84,86,88,100,101],charg:[20,23,34,35,43,89,124],charge_account:34,check:[16,20,34,35,36,43,49,50,57,58,63,71,85,95,97,108,115,118,121,126,130,139],check_box:[34,35,36,105],checkbox:[34,36,89],checked_valu:36,checkout:[108,109,139],checksum:[83,101],cherri:43,chevi:35,chgrp:[19,29],child:[20,42,63],chmod:[4,8,10,18,19,29,62,69],choic:[34,35,42,43,103,104,136],choos:[5,16,17,20,22,24,32,34,35,36,42,43,52,62,102,103,104,111,112,113,118,126,136],chose:[112,113,136],chosen:[34,35,42,63,84,118,126],chown:[4,18,49,91],chpc:52,chrome:[71,99,106],chromium:71,cidr:20,cilogon:[1,7,14,86],circumv:104,claim:[12,19],class_instruct:20,classroom:103,claus:34,clean:[5,44,56,63,74,78,85,88,91,98,99,100,101,102,103,104,105],clean_fil:88,clean_script:88,cleaner:69,cleanup:[31,60,62,88],cli:[18,67,119,128,134],click:[5,16,17,20,22,35,37,42,45,62,71,85,86,97,102,104,108,112,113,115,116,118,121,126,130,139],clickabl:100,client:[0,1,4,12,14,16,19,20,21,27,47,53,54,56,60,61,62,64,65,66,67,70,71,84,90,102,123,125],client_bodi:81,client_id:[4,7,62],client_nam:4,client_redirect_uri:4,client_secret:[4,62],clipboard:[71,102,103],clock:[20,125],clone:[4,5,29,108,109,115,121,130,134,135,136,138],close:[12,103,104],closer:[35,140],closest:103,cloud:[61,62],cloudcmd:103,cloudi:[51,54,102],cloudyclust:61,cluster1:[23,35,39,69,118,126],cluster2:[35,69],cluster:[20,21,23,24,26,31,32,34,38,39,42,43,44,51,52,60,64,65,66,67,69,70,71,85,87,99,100,104,105,110,113,115,116,118,121,124,126,130,131],cluster_id:[32,44],cluster_overrid:20,cluster_us:56,clusteradmin:62,cmd:[4,58,86],cmd_user:62,cmdline:50,code:[8,20,21,23,27,28,30,31,34,40,42,43,45,52,53,56,57,60,81,83,84,85,86,88,92,98,99,100,104,108,109,112,118,125,126,139,140],codebas:20,coderais:103,codereadi:[57,103],codeserv:49,cog:20,cold:135,collabor:[29,51],collect:[2,18,30,50,57,84,92,97,98,99,106,139],colleg:51,colon:[20,98],color:[20,85,90,97,103,108],column:[20,100,103],com:[2,4,5,8,19,20,35,39,50,52,53,57,60,62,86,101,102,103,105,108,109,115,121,124,125,127,130,139],combin:[18,47,86],come:[24,43,45,57,60,63,68,104,108,140],comf:12,comfort:[47,57],comm:50,comma:[36,63,86,91,100],command:[9,18,23,29,39,43,47,49,51,53,55,56,61,62,63,64,65,66,67,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,96,101,102,103,116,118,126,127,135,136,137],comment:[7,18,20,52,85,101],commit:[116,118,126,139,140],common:[1,12,15,20,24,34,43,44,84,104,105,112,124,137,139],commonli:[35,131],commun:[4,20,45,52,55,61,63,71,86,138,140],compar:[20,103],compat:[20,56,98,103,104,136,140],complain:[20,66],complaint:100,complet:[20,24,27,31,44,46,66,69,88,89,90,95,97,99,100,101,106,107],complex:[103,111],complic:71,compon:[0,35,46,93,98,99,100],compos:[29,49,51,54,56,60,92,96,98,99,102,107,139],composit:125,compositor:125,comprehens:100,compris:87,comput:[0,20,21,25,26,28,38,39,41,45,49,51,56,62,63,68,91,102,104,106,110,114,118,119,120,126,128,129,133,134,137],compute_clust:136,comsol:[45,52],con:42,conbin:86,concat:20,concurr:140,conda:135,condition:43,conf:[2,10,13,18,19,47,50,56,63,64,66,67,81,83,84,86,91,97,99,100,136],confer:98,confidenti:17,config:[2,4,5,8,10,11,13,14,16,17,18,22,23,24,29,30,34,35,39,40,42,43,45,51,54,55,57,61,62,63,64,65,66,67,69,70,73,74,75,76,81,83,84,85,86,87,92,96,98,99,102,103,108,112,116,118,124,125,126,131,135,139],config_fil:62,config_properti:20,config_valu:20,configmap:[62,110],configmap_data:135,configmap_filenam:135,configr:[51,54],configur:[1,3,7,8,9,13,14,15,18,22,23,24,28,30,31,34,38,39,42,44,45,46,47,49,51,53,55,56,57,60,61,64,65,66,67,70,73,74,75,76,81,83,87,88,92,96,98,99,101,105,106,107,116,118,124,126,131,135,136,140],configvers:125,confirm:[21,39,86,96,114,117,120,122,127,132],conflict:[40,44],confnew:103,confus:[0,24,95,108],conn_fil:[88,90],conn_param:[28,31,88,90,103,136],connect:[1,7,11,12,16,17,18,19,21,28,31,34,37,39,40,44,46,47,49,50,51,52,53,54,56,59,62,63,66,78,80,94,99,100,103,104,106,114,115,120,121,124,129,130,139],connector:[4,12,86],consequ:[20,24,84,98,103],consid:[20,29,63,101,102,140],consider:56,consist:[20,35,43,45,84],consolid:20,constitut:97,constraint:136,construct:[44,45,71],consumpt:[50,63],contact:[14,17,20,97],contain:[18,20,23,28,30,33,43,44,51,52,56,62,66,84,86,87,88,98,99,100,110,116,131,133,139,140],container:63,container_bindpath:91,container_command:91,container_modul:91,container_path:91,container_start_arg:91,content:[5,19,20,35,43,56,60,62,71,86,88,89,98,104,116,135],context:[20,31,33,35,49,51,58,62,88,103,120,125],contian:91,continu:[21,34,63,86,98,99,102,104,114,115,116,120,121,127,130],contract:12,contrib:[102,139],contribut:[1,52,101,102,104,106],contributor:101,control:[20,23,35,43,45,47,56,61,62,63,64,65,66,67,70,71,77,85,86,97,98,102,104,112,118,126],conveni:137,convent:[20,28,62,97,138],convers:[20,44],convert:[2,20,24,35,43,44],convieni:12,cooki:[10,13,18,19,98],cool:[37,86],coorespond:62,copi:[4,5,17,20,29,44,52,55,67,84,86,89,96,97,99,103,106,110,114,117,120,122,124,125,129,132,139],copy_environ:[67,89],cor:20,core:[20,28,34,35,36,42,43,47,89,97,101,106,124,136],corner:[5,16,17,108],correct:[1,18,19,20,24,29,63,69,71,92,108,109,118,125,126,139],correctli:[12,20,27,35,48,49,104],correspond:[12,22,23,24,35,40,43,45,47,53,58,69,70,73,76,81,84,85,86,96,102,112,116,118,124,126,131],corrupt:71,could:[1,10,20,29,30,35,39,55,59,62,63,88,98,100,103,108,131,135,140],count:139,counter:98,countri:35,coupl:20,cours:30,cover:[20,100,131,136],covert8:104,cpu:[20,23,35,47,56,63,102,106,118,123,126,135,136],cpu_limit:135,cpu_request:135,cpuaccount:63,cpuquota:63,crash:[20,49,100,125],crb:57,creat:[0,2,17,18,22,23,27,28,29,30,32,35,43,44,45,47,49,51,54,56,62,69,81,84,85,95,96,97,98,99,102,104,107,112,113,114,115,120,121,125,127,129,130,131,135,136,138,140],create_passwd:44,create_salt_and_sha1:135,created_at:32,creation:[62,85],cred:62,credentail:62,credenti:[16,17,19,27,57,62],criteria:[20,101],critic:[100,123],crond:63,cronjob:20,crontab:62,crop:22,crt:[4,18,55,62],csc:104,csrf:20,css:[85,103,139],cuda:34,cuda_vers:34,cuda_visible_devic:59,cumul:20,curl:50,current:[1,15,17,20,25,29,31,34,35,44,51,52,53,56,57,62,63,67,69,71,76,83,84,85,86,88,94,95,97,103,106,108,115,116,121,130,133,140],currentus:20,custim:20,custom:[1,2,10,12,14,16,21,22,24,28,31,33,34,43,47,51,58,60,63,84,85,86,92,95,96,97,98,100,101,102,108,110,114,120,129,139],custom_app:97,custom_config:112,custom_css_fil:[20,85],custom_env:98,custom_javascript_fil:[85,105],custom_location_direct:86,custom_map:12,custom_nam:98,custom_pag:[20,85],custom_pages_guid:20,custom_queu:[112,113],custom_variable_on:33,custom_variable_two:33,custom_vhost_direct:86,customapp:29,customlog:18,cwd:[60,100],cyberduck:71,cyberinfrastructur:7,cycl:140,d3d3d3:125,daemon:[18,44,50,125],daemons_use_tti:58,dai:[27,51,85],daili:20,dalli:103,dan:100,danger:[20,97],dark:[20,85],dasbhoard:62,dashboard:[11,16,19,22,24,26,28,30,35,37,44,45,46,49,51,54,56,60,62,69,73,84,85,86,88,92,96,99,104,105,109,112,115,117,121,122,130,132,139],dashboard_header_img_logo:[20,85],dashboard_layout:[20,85],dashboard_logo:[20,85],dashboard_logo_height:[20,85],dashboard_titl:[20,85],data:[12,18,20,27,33,34,35,44,46,60,62,71,85,88,95,99,100,102,103,104,105,135,139],databas:[14,63,67],dataroot:105,date:[20,55,61,88,103],date_field:35,davidmonro:104,dbu:63,deb:[57,103,105,140],debian:[47,53,55,57,106],debug:[9,20,22,43,45,47,49,51,57,63,89,95,96,116,125,135,136],debuggin:49,decid:24,declar:[84,98],decleari:84,decod:[12,60],decreas:[47,86,103],dedic:[26,28],def:[60,87,88,139],defens:5,defin:[4,17,18,20,23,24,27,31,33,42,43,44,54,59,62,63,69,83,84,85,86,89,92,98,102,112,113,116,118,124,126,131,133,136,139],definit:[20,24,43,63,85,87,101,139],degrad:47,degre:140,delet:[5,10,20,47,53,62,63,74,85,99,100,103],delimit:[20,63,98,100],deliveri:20,delivery_method:20,delivery_set:20,delm:7,demo:86,demonstr:[17,20,60],deni:[20,84],denial:58,denot:[73,76],depart:20,depend:[5,20,23,29,35,45,47,49,50,51,52,53,55,97,98,99,102,112,113,118,126,131,133,134,139],deploi:[8,11,13,29,31,35,43,44,45,52,74,75,76,84,92,95,98,99,110,114,120,129,139],deploy:[2,5,20,29,46,53,55,62,84,86,97,117,122,132],deprec:[20,84,103,128,140],depth:90,deriv:98,describ:[20,23,27,31,34,35,37,39,43,44,54,56,62,66,84,86,115,118,121,126,127,130,135,136],descript:[18,20,24,35,37,52,139],design:63,desir:[16,20,49,71,85,103,112,134],desk1:20,desk:20,desktop:[20,22,23,25,29,41,51,56,63,71,90,95,96,98,99,100,103,104,106,110,120,125,128],despit:[20,98],destin:[20,71],destination_path:[135,136],detail:[0,1,2,7,9,11,12,27,35,44,45,54,56,58,59,62,73,80,83,84,85,86,93,94,95,115,116,118,121,126,130,135,136,137,139],detect:[63,100],determin:[4,35,43,44,56,62,84,86,88,90,118,126,135,136],dev:[5,14,17,19,20,29,30,35,43,44,45,59,60,62,63,71,73,81,84,91,96,107,112,113,115,116,117,118,121,122,123,124,125,126,127,130,131,132,134,135,136,139],dev_work:[108,109],devel:18,develop:[6,18,20,29,31,33,35,45,51,52,57,60,62,63,84,86,95,96,97,99,100,101,102,103,104,105,106,110,111,115,121,125,130,135,136,138,139,140],devgrp:30,deviat:139,dex:[1,8,9,51,53,58,86,103,105],dex_uri:[4,86,104],dexidp:4,diagnos:71,diagram:[44,51],dictionari:[20,85],did:[35,43,100,139],didn:[35,62],dies:116,dietz:100,diff:[96,97,98,99,100,139],differ:[3,14,20,23,24,34,35,40,43,47,61,62,64,65,66,67,70,83,84,85,86,97,98,99,101,104,108,109,118,123,124,126],different_select_clust:35,differenti:62,difficult:[53,57,71,103],digit:51,dimens:[27,35],dimension1:27,dimension3:27,dimension6:27,dir:[4,33,71,85,135],direct:[1,10,11,17,18,19,20,34,40,47,54,55,69,86,94,101,102,111,136,139],directli:[2,4,10,12,20,23,24,32,35,36,42,43,45,47,84,92,94,98,101,102,103,104,107,139],directori:[1,15,18,22,23,29,30,31,35,36,37,43,44,45,49,51,53,54,58,61,63,64,66,69,73,81,82,84,85,86,88,89,92,96,99,100,101,102,105,107,109,115,116,117,121,122,125,130,131,132,133,135,136,137,139],disabeled_shel:84,disabl:[4,18,19,23,35,36,39,51,56,58,62,84,85,86,125,127,134],disable_bc_shel:85,disable_bundle_user_config:84,disable_check_xsrf:135,disable_dashboard_logo:85,disable_log:86,disable_safari_basic_auth_warn:102,disabled_shel:84,disablerepo:99,disclos:104,discourag:[6,67],discours:[3,14,17,20,51,52,58,71,98,99],discov:[20,86,131],discover:71,discoveri:86,discuss:[9,12,20,24,35,118,126],discussus:12,disk:[51,58,60,84,98,115,121,130,139],dispar:7,displai:[11,16,20,24,31,32,36,43,44,45,51,55,56,59,62,74,77,78,80,82,83,84,85,86,90,96,98,99,100,101,102,103,105,124,125,127,137,139],disregard:101,disrupt:101,distant:61,distinct:[43,63,104],distinguish:108,distribut:[12,18,20,63],div:[20,103],dnf:[4,50,57,91,103,104,105],doc:[2,4,15,18,20,55,89,101,127],docker:[0,5,62,91,135,136],dockerfil:[53,57],documen:99,document:[4,7,8,12,13,15,17,20,23,27,30,43,45,47,51,55,56,62,69,72,85,86,89,95,97,100,102,103,111,112,113,135,136,140],dodeploi:5,doe:[1,10,20,23,27,29,30,34,35,38,44,45,51,55,56,58,60,61,63,85,98,100,105,108,115,121,124,125,127,128,130,133,135],doesn:[18,20,30,34,45,69,81,84,88,98,103,112,113],doing:[12,18,59,63,84,97,135],domain:[0,20,39,80,84,85,86,89,138],don:[14,18,19,20,23,24,27,34,35,39,52,53,57,74,83,84,85,86,94,95,101,108,135],donat:98,done:[20,22,23,29,40,44,58,60,62,66,88,97,102,103,108,113,117,118,122,123,125,126,132,135,137],dot:[0,12,63,90],doubl:84,down:[9,16,20,35,49,62,97,108,109,111,112,113],downgrad:99,download:[2,7,18,50,51,85,104,129],download_en:85,downtim:20,dpi:90,dpkg:103,dport:[4,58],drastic:69,draw:0,drawer:106,drink:125,driven:[35,140],drmaa:66,drop:[16,20,35,111,112,113,139],dropdown:[5,16,20,22,30,35,85,97,98,99,100,101,102,103,108,115,117,121,122,130,132,139],drwx:81,drwxr:[29,81],dsun:127,due:[51,98,101,102,139],duo:[1,53],duo_java:5,duosecur:5,duoweb:5,duplic:[20,71],durat:[62,90],dure:[18,20,63,83,86,88,90,97,98],dynam:[20,23,27,28,31,32,35,37,69,85,86,96,97,103,123],each:[0,12,15,20,22,24,27,29,31,35,42,43,45,54,62,63,67,84,85,94,95,96,97,98,99,103,105,106,108,112,115,121,124,130,136,139],each_pair:136,eager:100,earli:[44,51,140],earlier:[97,119,139],easi:103,easier:[15,16,96,139],easiest:[20,35],easili:97,echo:[7,12,44,59,62,69,88,125],ecmascript:106,edg:[20,51,100,106],edit:[2,5,10,13,17,18,19,20,23,24,27,29,53,62,69,84,85,98,101,104,110,112,116,120,124,127,131,137,138],editor:[20,27,29,71,94,95,96,97,98,99,100,103,108,116,124,131],edt:[12,18],edu:[4,11,12,13,14,16,17,18,19,20,29,30,39,40,43,45,52,53,54,55,56,57,61,62,63,64,65,66,67,69,70,71,73,81,85,86,89,91,97,98,99,100,101,102,103,104,105,112,115,117,121,122,130,132,136,139],edu_access_ssl:18,edu_error_ssl:18,educ:51,effect:[10,19,20,29,30,39,53,97,98,103,108,112],effici:[20,102],efranz:[29,30,139],eight:20,either:[4,14,20,23,34,35,49,56,62,63,66,71,86,87,98,99,101,103,104,112,113],el6:[98,99],el7:[2,57,97,98,99,101,104,105,106,139],el8:[2,57,91,104,105],el8serv:91,el9:[57,105],elaps:[20,100],element:[20,31,35,66,103,111,112,113,116,124,131],elev:63,elisa:100,ellips:18,els:[7,12,19,29,43,47,62,104,125,136],elsewher:20,elsif:136,email:[7,8,12,16,17,20,23,29,35,58,84,86,89,124],email_field:[20,35],email_on_start:[35,43,89],email_on_termin:89,emailattr:4,emb:[18,20,23,43,45,100,112,118,126],embed:[20,23,32,43,44,45,98,112,118,126],emploi:[62,103],empti:[10,12,24,27,35,62,85,86,88,89,100,123],emul:63,en_u:91,enabl:[2,4,10,11,16,17,18,19,20,23,28,34,35,38,44,45,51,53,58,62,63,64,66,69,84,85,86,94,96,99,101,102,103,104,105,107,108,120,128,136,139],enable_cuda_vers:34,enable_gpu:34,enable_native_vnc:45,enable_starttls_auto:20,encod:[12,82],encount:[20,49,55,66],encourag:71,encrypt:[55,98],end:[0,12,14,18,20,27,30,39,43,44,63,69,85,88,97,100,103,104,108,112,125,136,137,139,140],end_dat:27,endpoint:[16,62,85,105],endpoint_path:85,enforc:[20,86],engin:[51,54,62,98,101],english:20,enough:[12,26,103,127],ensur:[2,5,10,20,29,33,40,43,49,50,55,60,62,63,66,67,69,71,99,101,102,104,108,109,131,133,137,139],enter:[20,61,108,115,121,130],entir:[31,35,43,87,124],entiti:7,entitl:101,entri:[12,20,24,35,49,62,63,86,102,105,139],enumer:35,env:[4,16,20,29,30,35,45,60,62,84,85,86,89,92,97,98,101,102,103,107,135,136],envdir:64,enviorn:67,enviro:85,environ:[7,8,19,20,24,25,29,30,33,35,40,44,45,50,51,56,60,62,67,69,71,72,81,82,84,85,86,88,89,90,91,97,100,101,102,103,104,106,108,119,125,128,131,133,134,135,136],environment:100,eof:[18,50,62,139],eot:125,epel:[57,91,98,99,103],equal:[20,139],equip:107,equival:[24,35,118,126],equvial:20,erb:[18,20,22,23,24,28,31,33,45,51,62,72,83,84,85,88,89,90,97,100,102,104,112,113,116,118,123,124,125,126,127,131,135,136,137,139],eric:29,error:[12,39,48,49,51,55,60,61,66,69,71,81,84,86,88,89,90,96,101,110,116,120,139],error_path:[63,89],errorlog:[18,86],errorreturncod:60,erubi:[23,32,43,44,45,102,112,118,126,139],esac:62,escal:[22,49],escap:[19,33,82,139],escel:20,especi:55,ess:[36,136],essenti:[62,85,108],est:[12,20],etc:[2,4,7,8,10,11,12,13,16,18,19,20,22,23,24,26,29,30,35,39,40,42,43,45,49,50,54,55,56,58,61,62,63,64,65,66,67,69,70,83,84,85,86,87,89,91,92,96,98,99,100,101,102,103,104,112,116,118,124,126,131,135,136],evalu:[71,100],even:[20,29,30,34,63,83,103,135,137,140],event:[20,47,103],eventu:20,ever:[48,139],everi:[0,12,18,20,29,34,35,37,61,62,69,85,86,90,102,105,139,140],everyon:[28,29],everyth:[0,29,34,35,42],everytim:112,exact:20,exactli:35,exampl:[3,4,7,8,10,11,13,14,16,18,19,20,23,24,27,30,31,34,36,40,42,44,47,49,50,51,54,55,58,59,62,63,69,71,82,83,84,85,86,88,89,90,91,92,94,97,98,100,101,102,103,104,108,112,113,115,118,121,125,126,128,130,133,134,135,136,137,139,140],example_clust:40,example_templ:20,exce:71,except:[20,60,89,97,100,105,127,131],exception:100,exclud:[29,101],exclus:136,exec:[20,63,65,88,133,139],execstart:18,execut:[5,12,20,28,31,44,56,60,62,63,65,71,73,77,78,81,83,88,99,112,133,136,139],execv:[49,69,116],exempt:98,exercis:[53,57],exhaust:106,exisit:85,exist:[16,20,42,44,69,71,74,81,85,86,88,92,97,98,102,103,112,113,115,121,123,130,137,139],exit:[12,44,60,62,83,100,125],exit_cod:60,exitcod:83,expand:[20,97],expect:[20,35,45,53,62,63,84,89,91,98,99,112,113,139],experi:[29,58,71,106,127,137],experienc:[44,71],experiment:[20,69],expir:[4,61,62],expiri:[4,61],explain:[19,20,118,126],explan:[98,99],explicit:139,explicitli:[20,30,35,56,71,86,102,103,131],explor:[20,63,71,116,123,139],expos:[4,19],expr:[10,13],express:[9,10,13,20,35,39,61,84,86,103,112,139],exst:[28,31],extend:[15,20,104],extens:[18,20,23,43,44,45,51,54,56,101,118,126,139],extern:[4,16,29,51,97,127,139],extra:[20,35,37,89,90,97,103],extra_arg:90,extra_jupyter_arg:[112,113,116,118,126],extract:[27,61,62,102],eye:45,facil:[20,59],facilit:[20,63],facl:[29,85,104],facl_domain:85,fact:[27,42,44,62],factor:[1,53,62,99,101,106],fail:[12,22,39,48,49,51,63,69,86,101,102,118,126,139],failur:[20,46,49,60,139],fairli:20,fakeroot:91,fallback:[23,86],fals:[4,18,20,34,35,36,37,56,62,63,67,69,84,85,86,100,101,102,103,104,127],falsi:20,far:[58,102],fas:20,fashion:27,fastcgi_temp:81,faster:[12,56,97,103,139],fastest:12,favicon:[15,20,85,86,92],favor:[86,105],favorit:[36,116,124,131],favoritepath:[20,104],featur:[8,20,27,34,35,36,43,44,45,54,56,62,66,69,85,86,91,93,94,98,99,100,101,102,103,108,118,126,140],feaur:20,februari:20,fed:43,feder:[1,7,16,17,53],fedorapeopl:2,fedoraproject:98,feed:20,feedback:51,feel:[20,43,53,57,85,86,97,103],fetch:88,fetur:20,few:[24,29,44,60,63,86,104,108,111],ff0000:20,fff:84,field:[16,17,20,21,23,34,35,36,43,45,62,85,89,98,99,100,103,112,113,123],field_of_sci:[20,37,103],fig:44,fil:139,file:[2,4,5,7,8,9,10,13,14,15,18,19,22,23,24,26,27,28,30,31,32,33,35,36,39,40,42,43,45,49,50,51,52,53,54,56,57,58,60,61,62,63,64,65,66,67,69,70,72,73,74,75,76,80,81,82,83,84,86,87,88,89,90,92,95,96,97,98,99,107,112,113,115,116,118,121,123,124,125,126,127,128,130,131,133,135,136,138],file_attach:20,file_limit:20,file_upload_max:[20,102],file_usag:20,filebrows:85,fileexplor:[71,100],filenam:[20,60,86,103,135],files_enable_shell_button:[85,103],files_grac:139,files_limit:139,files_quota:139,filesystem:[20,58,85,99,131,136,139],filezilla:71,fill:[5,16,24,35,42,43,44,62,104,112,113,115,116,121,130,139],filter:[4,20,27,35,60,85,97,103,139],filter_argv:60,filter_script:60,find:[6,20,24,29,30,44,63,69,71,100,102,103,105,112,113,125],find_host_port:135,find_port:44,fine:[20,86,99],finish:[69,89,110,139],finland:104,firefox:[71,99,100,106],firewal:[1,53],firewalld:[4,58],first:[4,12,13,14,16,20,23,24,27,29,35,40,43,44,48,55,62,63,71,86,88,96,97,98,99,100,101,102,103,104,105,107,108,112,113,115,118,121,124,126,130,135,136,139,140],firstgpu:59,fit:[20,62,71],five:31,fix:[51,63,69,71,93,95,97,102,103,115,121,127,130,139,140],fixm:53,flag:[36,37,50,67,85,89,97,100,101,102,127],flask:139,flexibilti:56,flexibl:[35,97,135],flow:[5,16,23,43,45,51,98,104,112,118,126],fluxbox:[120,128,137],fluxbox_assets_root:125,fluxbox_rc_fil:125,flybirdkh:102,focal_al:[57,105],focu:[1,124],folder:[20,32,101,127],folk:104,follow:[0,1,2,4,7,8,9,10,12,13,19,20,23,24,25,28,29,31,33,35,39,40,41,43,44,45,50,52,55,58,61,62,63,64,65,66,67,70,84,86,97,101,102,103,104,105,106,108,111,112,113,115,117,119,121,122,127,128,130,131,132,133,134,136,138,139],font:[45,90],fontawesom:139,fontawesomenam:139,foo:[86,89],footer:[20,88,100],footnot:[94,95],forbidden:[51,98],forc:[4,20,78,83,101,102,103,104,105,108,125,139],ford:[35,112,113],forego:39,foreground:20,foreign:70,forget:40,fork:[43,44,82,103,135,136],form:[5,16,21,22,23,28,31,33,42,43,44,45,51,71,85,89,97,98,102,103,105,110,111,115,116,118,120,121,124,126,130,131,139],form_id:33,format:[2,12,19,20,22,24,27,39,60,61,84,85,86,98,100,118,126,139],former:42,formerlei:7,formerli:51,formerlli:102,forward:[18,20,57,97],found:[7,12,20,35,43,44,45,84,92,98,99,100,102,135,136],foundat:7,four:[0,20],fqdn:[4,39,62],fragil:60,frame:[5,20,49,86,140],framework:[104,139],frankli:56,free:[34,43,53,55,57,86,97,123],freeli:140,freez:51,french:20,fresh:[20,84],friend:125,friendli:20,from:[0,1,2,7,8,10,12,13,14,16,17,18,19,20,22,24,26,27,29,32,33,35,36,39,42,43,44,46,47,48,49,51,54,56,60,61,62,63,65,67,69,71,73,83,84,85,86,89,91,93,104,105,106,107,108,109,111,112,113,115,117,118,121,122,124,126,130,131,132,133,134,136,137,139,140],front:[0,14,20,86],frontend:[4,20,86,98],frozen:[98,99],fsgroup:62,ftl:5,ftp:20,full:[12,18,20,35,45,56,66,84,85,86,91,96,100,105,110,124,128,139],full_url:33,fullchain:55,fulli:29,fullscreen:125,fund:26,further:[20,31,60,84,103,104,118,126],futur:[10,17,63,69,84,96,97,98,100,102],ga_profil:27,ganglia:106,gap:20,gatewai:[29,30,73,84,115,133],gather:[20,35],gcloud:62,gcp:61,geco:4,gem:[89,100,108,118,126],gemfil:[102,108,139],gemset:139,gener:[0,1,2,4,8,10,11,12,13,14,18,22,32,33,34,35,37,39,43,44,45,49,50,51,53,58,61,62,69,71,72,82,84,85,88,89,95,96,97,98,99,100,103,104,105,112,113,116,118,124,126,131,135,140],generat:97,geometri:90,georg:51,georgiastuart:104,get:[4,7,15,17,20,24,27,29,32,35,39,42,44,45,47,51,55,56,57,60,62,63,66,86,95,100,103,105,108,115,116,120,121,130,136,137,139],get_ga_data:27,getelementbyid:103,getgrgid:56,getinputargu:127,getlogin:85,getpass:60,getpwnam:[85,135,136],getruntimemxbean:127,getus:60,gib:[20,102],gid:[62,135,136],gist:[18,85],git19:[98,99],git29:101,git:[4,5,29,42,97,108,109,115,116,118,121,126,130,139],github:[4,5,20,29,45,50,52,53,57,60,65,69,98,101,102,103,104,105,108,109,115,121,125,128,130,139,140],githubusercont:62,gitlab:52,give:[20,30,34,35,39,43,49,62,86,98,103,104],given:[0,7,12,20,22,23,24,27,29,35,42,43,44,45,54,62,64,77,80,81,83,84,85,86,88,89,90,98,106,116,118,124,126,131,140],glnxa64:127,glob:[20,35],global:[20,23,24,31,35,40,45,56,96,102,105,110,111,118,126],globu:[71,85],globus_endpoint:85,glossari:51,gmail:20,gnome:[21,25],gnu:35,goal:[63,115,121,130],goe:[48,63],going:[63,97,103,104,105,108,115,121,130,135,136,139],gone:71,good:[1,18,39,44,86,97,108,139],googl:[46,51,62,85,86,106],google_analytics_tag_id:[27,85],googleapi:62,goolg:62,gopath:4,got:[63,69],gpu:[34,43,59,124,125,128,136],gpus_per_nod:136,grab:44,grace:139,gracefulli:[99,101],grafana:[46,51,56],grai:0,grant:17,granular:[20,29,104],graph:[20,101,139],graphic:71,gre:[59,98],great:[55,100,108],greater:[29,35],greatli:1,green:[35,55],grei:[20,108],grep:[7,20,62,139],grid:[7,12,20,51,54,86,98,101,103],gridengin:66,group:[4,8,18,20,29,30,35,37,49,56,60,61,62,63,69,85,86,103,104,135],groupadd:[4,18],groupattr:4,groupinstal:91,groupsearch:4,grpc:4,guarente:92,guest:[131,133],gui:[43,44,52,94,137],guid:[2,20,21,28,38,67,114,120,127,129],guilherm:101,guimaluf:101,had:[43,78,95,100,101,105,106],hand:[20,32,35,85,101,103],handi:63,handl:[11,14,19,20,23,24,44,45,47,56,60,86,97,99,101,118,126],handler:86,hang:60,happen:[30,49,55,106],happi:[117,118,122,126,132],harbor:62,hard:[21,31,42,104,135],hardcod:124,hardwar:[51,123,124],harvard:[12,104],has:[2,7,11,12,14,16,18,20,23,24,26,29,30,32,34,35,37,42,43,44,45,46,47,56,57,58,62,63,64,69,71,85,86,88,89,97,98,99,100,101,102,105,106,112,113,123,124,125,127,128,135,136,137,138,139,140],hash:[4,20,24,35,43,84,85,86,89,119],have:[1,3,7,8,10,14,18,20,21,22,23,24,27,29,30,34,35,39,40,42,43,44,45,46,47,49,51,52,53,54,55,56,57,59,61,62,63,67,69,71,77,78,81,82,84,85,86,88,89,90,94,95,98,99,100,101,102,103,105,106,108,109,111,112,113,114,115,116,118,120,121,122,125,126,128,130,132,133,135,136,139,140],haven:[40,63,97],hdd:139,head:[20,59,60,63,71],header:[10,18,19,20,43,85,86,87,88],heart:112,heartbeat:90,heavili:62,height:[20,85],held:[20,85],helm:62,help:[12,16,21,22,29,33,35,36,44,45,46,47,51,58,59,64,82,83,85,86,95,100,101,102,108,112,113,124,127,131,133],help_bar:[20,85],help_menu:[20,85],helper:[30,139],her:0,here:[1,7,12,15,17,20,24,27,30,33,34,35,37,42,43,45,49,52,54,56,57,62,63,66,85,87,88,89,92,101,102,103,104,105,107,108,112,118,125,126,133,135,136],heterogen:34,hex:[18,19,63],heymann:100,hidden:[20,34,36,45,56,63,97,102],hidden_field:[20,35,36],hide:[30,31,35,51,85,100,103,105,115,121,123,130],hide_app_vers:[85,104],hide_when_empti:20,hierarchi:[20,92,97,131],high:[0,39,51,104],higher:[20,35,86],highest:88,highli:[6,22,44,71],highlight:[20,51,94,95,96,97,98,99,100,101,102,103,118,125,126],hint:18,his:29,hit:[27,44],hoffman2:98,hold:[23,43,44,85,86,89,97,135,136],home:[16,18,23,29,30,35,36,43,44,45,49,51,58,60,61,63,69,71,84,85,89,95,96,97,105,115,121,125,130,131,135,136],home_dir:135,homedir:115,homepag:85,hook:[31,86],hookenv:62,hooksdir:62,host:[1,4,14,27,28,39,40,43,44,45,47,50,51,53,54,56,58,60,61,62,64,65,66,67,70,83,84,86,88,90,91,97,99,100,103,105,112,117,118,122,126,131,132,133,135,136,139],host_based_profil:[20,85],host_cfg:135,host_port_cfg:135,host_regex:[39,86],host_typ:[135,136],hostnam:[2,18,20,27,39,44,45,47,49,85,86,88,118,126,139],hostport:135,hour:[19,20,23,24,35,43,62,88,89,124],hous:[56,85],hover:[17,37],how:[0,2,7,12,20,23,24,27,29,35,39,40,42,43,45,46,47,50,51,54,56,60,62,71,84,85,86,87,89,97,98,99,101,102,103,104,105,108,112,113,115,118,121,126,130,131,135,136],howev:[18,20,23,35,42,63,97,101,102],hpc:[0,3,14,16,17,18,19,20,21,29,51,52,54,56,61,62,63,64,65,66,67,70,94,102,110,135],hpctoolset:20,href:45,htcacheclean:[101,102],hterm:106,html:[2,15,18,19,20,31,33,35,36,45,51,55,85,86,88,96,99,102,103,111,112,113,116,124,127,131],html_option:34,htpasswd:19,http:[1,2,4,5,7,8,10,11,12,13,14,15,16,17,18,19,20,29,35,39,43,44,45,50,52,53,55,56,57,58,60,62,63,71,73,81,83,86,87,91,97,98,99,100,101,102,103,104,105,115,117,118,121,122,124,125,126,127,130,132,133,139],http_port:4,http_refer:84,http_user_ag:84,http_x_forwarded_escaped_uri:81,http_x_forwarded_for:84,httpd24:[2,8,10,18,19,47,50,57,83,97,99,101,102,103,104,105],httpd:[2,10,12,13,18,19,46,49,50,51,53,57,83,97,99,101,102,103,104,105],httpd_can_network_connect:58,httpd_enable_homedir:101,httpd_execmem:101,httpd_mod_auth_pam:58,httpd_read_user_cont:101,httpd_run_stickshift:58,httpd_setrlimit:58,httpd_unifi:101,https_port:4,hub:133,huge:124,hugemem:[124,136],human:20,hundr:71,hybrid:52,hyperthread:136,hyphen:[34,35],hypothet:45,i18n:20,iam:27,ico:[15,20,85],icon:[20,37,42,44,45,85,139],iconbar:125,id_:103,idattr:4,idea:[20,60,108,112,113],ident:[5,7,8,14,20],identifi:84,idl:[18,47,84,90],idletimeout:90,idp:[2,7,8,11,13,18,20,62],idp_issuer_url:62,idpdev:[14,16,17,18,19],idphint:7,idpmetadata:2,ids:35,idtoken:4,ifmodul:47,ifnotpres:136,ifram:20,ignor:[39,56,63,69,84,102],ihpc:45,illeg:[51,66],illustr:[0,27,34],imag:[20,44,61,63,85,86,88,91,92,100,102,129,131,135,136],image_pull_polici:136,image_pull_secret:62,imagin:34,img:[15,89],immedi:[29,63,137],impact:[106,127],implemen:128,implement:[20,27,63,71,101,123,125,128,139],implicitli:[39,56],impos:63,improv:[60,66,95,104],inaccess:104,inact:106,inbetween:62,inch:90,incid:106,includ:[0,2,8,10,15,18,20,23,24,29,30,33,35,40,45,49,51,52,54,56,58,62,63,67,78,84,85,94,97,100,101,102,103,104,125,131,133,139,140],incom:20,incommon:[1,17],incompat:103,incorpor:35,incorrect:51,incorrectli:63,increas:[12,20,29,47,84,98,103,106],increment:35,inde:[42,54],indent:[20,56],index:[15,20,45],indic:[37,55,85,89,101,103,139],individu:[29,62,63,97,138],info:[16,18,20,31,46,51,60,62,69,86,97,118,126],inform:[2,7,9,13,20,23,27,28,31,33,35,44,47,48,49,51,56,63,67,71,85,86,94,100,101,102,103,104,105,118,126,139],infra:17,infrastructur:[2,72,93],ing:[20,100],ingest:20,inheret:42,inherit:20,ini:[20,84],init:[5,81,110,125,136],init_contain:135,initi:[0,14,20,30,36,44,49,61,71,85,86,89,92,97,100,103,118,126,135,136],initialzi:135,inject:104,inkei:2,input:[4,12,24,34,35,36,45,58,83,89],input_path:89,input_us:12,insecur:[1,39,53],insecureskipverifi:4,insensit:20,insert:[17,20,39,103,139],insid:[10,20,43,58,62,71,91,108,131,136],instal:[1,7,8,9,10,13,14,17,20,21,24,25,28,30,38,39,41,45,46,49,51,56,58,60,61,63,65,66,67,69,71,77,83,84,85,86,91,94,95,96,98,99,100,102,103,104,105,106,108,115,119,121,128,130,134,136,137,139],install_bas:18,instanc:[0,5,7,14,18,20,26,27,45,51,55,71,80,97,98,99,100,101,102,103,104,105,106,111,138],instanti:20,instantli:110,instead:[12,14,18,19,20,23,24,35,43,45,56,60,63,67,71,86,89,90,92,99,100,101,102,103,104,108,109,118,126,137,139],institut:[1,16,20,26,51,52,85],instruct:[4,5,7,20,21,31,34,52,96,101,102,104,105,114,120],integ:[4,24,35,43,44,84,85,86,88,89,90,100],integr:[2,51,62,138],intel:[35,125,136],intend:[25,27,40,41,44,96,106,112,119,128,134],inter:48,interact:[0,4,22,23,24,25,28,29,33,34,35,36,37,40,41,43,44,45,46,49,51,54,56,58,62,63,64,70,71,85,94,95,96,98,99,100,101,102,105,106,111,112,113,114,115,117,120,121,122,123,129,130,132,135,136],interactive_apps_menu:[20,85],interest:[14,20,53,57,108],interfac:[19,20,29,45,62,70,71,85,95,96],interfer:99,interim:127,interm:[18,55],intermedi:[35,53,55,139],intern:[43,44,45,49,84,86,97,104,118,126],internation:[20,99,100],interpol:[20,40,56,84],interpret:89,interv:[62,85],intervent:35,intro:20,introduc:[20,71,98,112,115,121,130,140],introduct:[1,43,45,98],intuit:98,invalid:[20,101,115,121,130],invers:20,invert:20,invoc:61,invok:120,involv:[34,53,57],ips:104,iptabl:[4,58],irrespect:[78,115,121,130],isn:12,isol:29,issu:[20,22,35,44,49,51,53,55,57,62,63,64,65,67,69,70,84,86,100,102,103,104,110,120,137],issuer:20,item:[5,24,31,42,43,62,85,87,88,90,102,104,136],its:[13,20,24,29,35,49,63,71,84,97,98,100,102,104,108,118,126,127,137,139,140],itself:[15,20,26,30,42,49,59,67,84,106,107,110,135,136],jammy_al:[57,105],jan:[12,97],januari:97,jar:5,jason:101,jasonbuechl:101,java2d:127,java:[18,110,120],java_opt:127,javas:127,javascript:[20,34,35,85,103,123,139],jboss:18,jdenni:2,jdk:18,jeff:12,jessi:12,jiao:[52,102],jim:73,jks:18,jnickla:69,job:[21,22,24,25,26,28,29,31,32,33,35,39,40,41,42,44,45,49,51,53,54,59,60,61,62,64,65,67,68,69,70,71,85,87,88,89,90,92,96,98,104,105,110,111,114,116,118,119,120,124,125,126,127,128,129,134,135,136,139],job_environ:[43,89],job_id:[32,61],job_info_memory_cache_s:64,job_nam:[50,89],job_script_cont:[116,136],job_script_opt:116,jobcompos:20,jobid:[20,56,60],jobid_regex:61,joel:100,johndo:101,johrstrom:[29,63],join:[27,44,60,125],journal:12,journalctl:12,jqueri:[34,103],json:[18,20,62,85,116],jul:29,jupit:20,jupyt:[0,20,28,31,36,39,45,49,51,52,54,56,86,94,95,97,98,106,110,111,112,113,116,118,119,126,128],jupyter_api:[33,136],jupyter_experiment:52,jupyter_group:20,jupyterlab:36,jupyterlab_switch:33,just:[20,24,27,29,30,35,43,45,56,59,62,69,84,85,86,97,101,102,103,104,109,115,121,130,133,135,136],k8s:[62,135],k8s_username_prefix:62,kc_restart:18,keep:[14,17,19,20,42,43,47,63,85,102,105,108],kei:[2,4,18,20,24,36,37,55,56,62,63,67,84,85,92,125],kept:[20,139],kerbero:58,kernel:[49,56],keycloak:[1,8,15,20,53,86,95],keycloak_access_ssl:18,keycloak_duo_spi_buildbox:5,keycloak_error_ssl:18,keycloak_ident:18,keycloak_sess:18,keycloak_state_check:18,keycloakpass:18,keyfil:125,keyword:20,kib:20,kill:[44,62,63,78,82,101,106,139],kind:[1,55,62,86],know:[14,17,30,35,55,62,84,86,89,101,104,107,136],knowledg:[20,107],known:[7,8,19,33,45,51,86,98,99,106,110,120,137],known_host:63,ktrout:86,kube:[62,86],kubeconfig:[62,135,136],kubectl:62,kubernet:[51,54,58,110],l138:60,l148:60,lab:[33,36],label:[0,20,21,23,35,36,50,56,112,113,118,124,126,133,136],lack:63,lai:20,land:[20,104],lang:[91,127],languag:[23,91,103],larg:[43,51,88,102,136,139,140],large_clust:43,largemem:136,larger:[71,102],largest:88,last:[20,24,35,62,104,105,137],lastli:[20,35,135],lastusedthreshold:62,later:[18,29,35,44,112,135],latest:[5,15,45,50,91,97,98,99,106,125],latter:42,launch:[18,21,22,24,25,29,31,33,35,40,41,44,49,51,60,61,69,81,85,86,92,94,95,98,99,100,108,109,110,112,113,114,115,116,118,119,120,121,126,128,129,130,131,133,134,135,136,137,139],launcher:[131,133],layout:[51,85,100,104,108,139],lc_all:91,ld_library_path:[69,71,84,92,131],ldap1:17,ldap2:17,ldap:[1,6,14,16,18,58,62,102],lead:[20,69,84],learn:[116,118,126],least:[47,140],leav:[17,20,24,35,56,124],left:[5,6,16,17,20,36,53,56,57,85,95,102,103,115,121,130],leftov:44,length:[20,44,63],less:[20,35,71,97,101],let:[12,14,17,20,24,27,30,34,35,39,42,55,60,69,101,104,108,127,135,136],letsencrypt:86,letter:35,level:[0,20,35,56,60,69,86,104],leverag:[45,112,113],lexic:10,lib64:[56,63,69],lib:[4,12,18,56,60,63,64,66,70,71,81,84,86,98,99,131,136],libapache2:2,libari:133,libdir:64,libdrmaa:66,libdrmaa_path:66,libexec:2,librari:[27,30,32,34,44,53,56,57,61,65,69,70,86,88,105,133],libtorqu:70,licens:[29,43,52,123],license_fil:43,life:[103,140],lifetim:62,light:[0,20,85],lightweight:[4,139],like:[6,7,12,15,18,20,22,23,24,27,29,31,34,35,40,43,44,47,48,49,51,52,53,54,55,57,61,62,63,64,65,66,67,68,70,71,85,86,88,89,90,98,102,103,104,108,110,118,124,125,126,131,135,137,139,140],likelihood:52,likewis:133,limit:[35,44,51,52,56,62,67,84,89,104,123,135,139],limit_in_byt:63,line:[0,12,18,20,23,30,33,36,37,39,43,53,58,63,66,67,69,71,84,101,112,113,116,118,125,126,127,135,139],link:[3,6,11,15,16,22,29,30,39,45,51,52,53,56,62,84,85,86,100,102,105,115,116,121,130,139],linux:[12,45,50,53,56,57,58,62,63,103,104,106],linux_host:63,linuxhost:[21,51,54,101],linuxhost_adapt:63,linuxhost_submit:23,linuxhostadapt:63,list:[1,19,20,22,29,30,35,37,42,43,45,52,54,56,60,62,63,69,75,79,84,85,86,90,91,92,94,95,96,98,99,100,101,103,104,105,109,110,111,115,116,121,125,130,138,139],listen:[4,18,39,45,50,86,135],listen_addr_port:86,listenbacklog:47,littl:[18,35,136],live:[44,68,86],lmod:[119,124,128,131,134,136],lmod_dir:85,lmodfil:131,load:[10,17,18,20,40,44,49,50,56,60,69,71,85,88,91,92,98,99,100,103,105,116,119,124,125,128,131,134,139],load_script:60,loadmodul:47,local:[7,9,12,16,23,39,40,42,55,56,58,61,62,63,64,65,66,67,70,83,85,86,97,99,107,110,111,112,115,121,130,131,135,136],local_usernam:12,localdomain:12,localfil:85,localhost:[4,12,18,20,44,50,63,98,102],localiz:20,locat:[2,4,10,11,18,19,20,22,23,24,35,39,43,44,45,46,49,55,60,71,84,85,86,96,97,99,101,103,105,108,112,115,116,117,118,121,122,124,126,130,131,132,135,137],lock:[55,139],log:[5,11,12,13,16,17,18,20,22,44,45,46,51,56,58,60,62,66,69,71,81,84,86,96,98,99,100,103,104,105,116],log_level:135,log_me_out:86,log_out:20,logformat:86,logger:12,logic:[4,20,44,45,51,103,104,136],login01:[29,56,63],login02:63,login03:63,login:[4,5,15,16,17,18,20,24,25,26,30,39,40,45,49,53,54,61,62,63,64,65,66,67,68,70,86,89,98,101,102,103,109,112,139],login_url:33,loginalertmessag:20,loginalerttyp:20,loginbuttontext:20,loginlogo:20,logintitl:20,logo:[15,20,29,85,92,99],logo_img_tag:20,logout:[1,8,9,13,19,20],logout_redirect:[8,11,13,19,86],logout_uri:86,logroot:86,longer:[12,71,85,99,100,101,102,105,108,109],look:[4,12,18,20,24,31,35,37,44,49,54,56,61,62,63,64,65,66,67,69,70,84,85,86,97,102,103,108,115,116,118,121,124,125,126,130,135,136,139],lookup:[7,136],loop:[27,112,136],lost:103,lot:[24,27,46,47,135,136],louthan:51,lower:[12,20],lowercas:[12,35],lowest:88,lsb:64,lsb_mbd_port:64,lsb_query_enh:64,lsb_query_port:64,lsf:[43,51,53,54,56,85,89,94,95,99],lsof:[106,131],lua:[12,19,27,86,103,131],lua_log_level:[12,86],lua_root:86,luahookfixup:19,mac:[45,71],machin:[20,26,43,53,55,63,71,91,117,122,132],made:[4,20,28,33,35,45,83,97,99,101,102,103,104,105,116,118,124,126,136],mah:125,mai:[4,6,10,12,17,18,20,22,24,27,29,30,32,35,38,40,42,43,44,45,46,47,49,51,53,54,55,56,57,58,59,60,61,62,63,66,67,69,84,85,86,89,92,97,98,99,100,101,102,103,104,105,108,111,119,123,124,127,128,131,133,134,135,136,140],mail:[4,97],mailer:20,main:[5,14,31,35,40,42,54,60,62,85,88,101,116,118,124,126,131,136,140],maintain:[84,94,95,96,99,103,105,115,121,130,133],mainten:[51,67,86,97,104],maintenance_ip_allowlist:[20,86,104],maintenance_ip_whitelist:104,major:[45,51,100,133],make:[4,8,12,16,18,20,23,24,27,28,34,35,45,50,58,63,69,72,94,95,96,104,106,107,108,109,115,118,121,124,125,126,130,135,136,139],malic:[20,104],malici:[39,44],maluf:101,man:63,manag:[1,16,22,23,29,35,43,51,53,54,56,57,58,61,63,64,65,66,67,69,70,86,97,98,101,112,113,114,120,127,128,136,137],managementfactori:127,mani:[7,20,27,29,47,54,56,57,62,63,84,85,104,135,137],manifest:[28,31,139],manipul:[35,43,51,62,71],manner:[20,104],manpath:[84,92],manual:[10,19,60,61,63,84,85,101,106,115,121,130],map:[1,2,9,13,14,18,20,56,62,84,85,86,92,98,105,124,139],map_fail_uri:86,mapfil:[7,86],mapped_us:7,mapper:62,marco:125,mark:140,markdown:[20,24,32,35,97,103],markdown_erb:20,master:[17,18,20,53,57,62,139],match:[5,12,20,22,39,49,60,62,63,83,84,86,100,112,139],mate:[21,24,25,120,128,137],matei:125,mathwork:127,matlab:[28,29,35,51,52,110,123,124,126,127,128],matlab_env:127,matlab_root:127,matlabcentr:127,maven:5,max:[31,35,36,63,84,124],max_item:20,max_port:[44,88],max_result:27,max_siz:20,maxim:[100,110],maximum:[20,34,35,44,84,85],maxrequestsperchild:47,maxrequestwork:47,maxsparethread:47,mayank:104,mayb:[20,63,140],mbd_refresh_tim:64,mdq:7,mean:[4,7,16,18,20,23,24,29,35,37,40,53,97,98,99,101,102,103,104,105,109,118,126,139],meant:[25,27,41,82,103,119,128,134],measur:27,mechan:[4,20,29,71,86,97,102,104],media:[23,63,131],meet:[20,63,101],megabyt:71,mellon:2,mellon_create_metadata:2,mellon_endpoint:2,mellon_metadata:2,mellon_user_guid:2,mellonen:2,mellonendpointpath:2,mellonidpmetadatafil:2,mellonspcertfil:2,mellonspmetadatafil:2,mellonspprivatekeyfil:2,mem:[23,89,118,126],member:[4,20,29],membership:56,memori:[20,43,47,56,63,69,89,106,123,124,135,136],memory_limit:135,memory_mb:136,memory_request:135,memoryaccount:63,memorylimit:63,memsw:63,mention:52,menu:[5,16,22,35,36,37,51,56,71,85,95,97,98,99,102,103,104,108,115,121,125,130,139],menufil:125,merg:[4,60,98,99,101],messag:[12,15,21,35,36,49,51,63,69,71,83,85,86,101,112,113,115,121,130],messages_en:15,metadata:[2,7,20,37,39,40,54,56,61,62,63,64,65,66,67,70,102,112],method:[24,29,33,35,44,45,56,63,92,98,112,113,139],metric:[27,50,62,106],metrics_path:50,mfa:5,micket:104,micro:102,microsoft:[71,106],mid:100,midnight:89,might:[15,18,20,29,30,50],migrat:[20,96],miller:100,millicor:135,mime:84,mime_types_path:84,mimic:[23,69,118,126],min:[31,35,36,124],min_port:[44,88],min_uid:84,mind:63,minim:[20,21,137],minimal_:20,minimum:[34,35,84,106],minitest:139,minitest_help:139,minor:51,minsparethread:47,minut:[20,106],mirror:133,mirrorurl:133,misbehav:44,misc:[108,109],miser:22,miss:[51,104],missing_home_directori:20,mistak:20,mit:52,mitig:[103,127],mix:56,mjbludwig:52,mjob:100,mkdir:[4,20,22,29,30,50,54,69,97,115,121,125,130],mktemp:125,mnakao:104,mnt:[23,63,131],mod:[2,18,55],mod_auth_ca:3,mod_auth_mellon:[1,53],mod_auth_oidc:11,mod_auth_openidc:[8,14,86,105],mod_auth_openidc_sess:[7,8,19],mod_auth_openidc_session_0:[7,8,19],mod_auth_openidc_session_1:[7,8,19],mod_auth_openidc_session_chunk:[7,8,19],mod_auth_shib:11,mod_authn_:13,mod_head:18,mod_mpm_ev:47,mod_ood_proxi:[12,86,95,96,97],mod_proxi:20,mod_shib:13,mod_ssl:[2,55],modal:36,mode:[17,29,36,46,51,64,86,99,138],model:[0,20,29],modern:106,modif:[13,15,18,24,35,85,97,99,104],modifi:[4,10,13,15,18,19,20,21,22,23,29,30,35,38,39,51,52,62,63,83,84,86,92,95,97,98,99,100,101,102,103,104,105,110,114,120,131,135,136,139],modul:[1,2,9,11,13,19,23,35,39,40,44,47,49,54,56,57,63,85,86,88,90,91,102,103,104,105,112,113,116,118,119,124,125,126,128,131,134],module_file_dir:85,module_path:131,modulepath:85,moment:108,mon:18,mondai:20,monitor:[51,127,137],monolith:[98,99],monorepo:101,month:[27,106,140],more:[0,1,2,7,9,11,12,17,20,23,24,29,30,35,39,43,45,46,47,49,54,55,56,62,66,67,69,85,86,94,97,98,100,101,102,103,104,105,112,113,118,126,135,136,140],most:[1,10,12,14,15,20,22,23,34,35,43,44,47,62,63,71,84,85,97,99,100,103,118,126,131,139],mostli:[108,140],motd:[29,51,85,99],motd_format:20,motd_path:20,motd_render_html:85,motd_titl:20,mount:[23,58,62,63,91,110,131,133],mount_path:135,mountpoint:91,move:[29,46,57,96,97,98,103,110,115,121,127,130,131],mozilla:106,mpi:124,mpm:47,mpm_event_modul:47,mpm_prefork_modul:47,mrodger:29,msc:18,msg:[20,97],much:[47,51,56,62,97,103,136,139],multi:[18,37,64,67,71],multilin:51,multiphys:52,multipl:[17,20,24,29,35,36,84,85,86,92,101,111,124],multipli:47,multitud:[86,96],mung:[58,67,136],muse:108,must:[1,4,8,16,20,22,23,24,33,35,36,43,44,45,47,50,52,54,58,60,62,63,66,85,101,102,103,104,105,107,112,113,115,117,121,122,130,131,132,133,135,136],mvn:5,my_app:[31,33,35,42,43,44,45],my_app_imag:89,my_app_img:89,my_cent:[4,20,39,40,45,53,54,55,61,62,64,65,66,67,70,112,115,117,121,122,130,132],my_clust:[20,23,24,54,61,64,65,66,67,70,85,97,102,112,113,116,118,126,131],my_cluster_widget:20,my_conf:83,my_custom_attribut:35,my_custom_script:43,my_env_var:20,my_k8s_clust:62,my_module_vers:35,my_new_widget:20,my_other_clust:102,my_pun_app:86,my_pun_control:86,my_queu:43,my_schedul:61,my_site_hook:86,my_submit:23,my_uri:86,myaccount:69,myapp:[73,97],mycent:20,myclust:64,mydomain:20,myfil:83,myfold:[20,85],myjob:[20,29,56,60,95,97,100],mysit:20,mysql:14,n0001:39,n0691:39,name:[4,5,7,8,13,15,16,17,18,29,30,35,37,39,42,44,45,50,51,52,53,54,55,56,61,62,63,67,69,84,85,86,88,89,90,92,95,100,103,104,108,112,115,118,121,123,124,126,127,130,133,135,136,139],nameattr:4,nameid:2,namespac:[0,20,44,56,62,63,73,76,84],namespace_prefix:62,namespacelabel:62,namespacelastusedannot:62,namespaceregexp:62,nation:7,nativ:[23,31,35,43,62,63,71,87,89,106,112,113,118,126,135,136],native_vnc_login_host:45,nav:20,nav_bar:[20,85],nav_categori:[20,85,104],nav_help_custom:[16,20],navbar:[20,84,85,97,99,103,139],navbar_typ:[20,85],navconfig:[98,99],navig:[16,22,35,36,37,39,51,62,85,97,98,101,103,104,105,108,109,115,117,121,122,130,132],navit:104,navlogo:20,nb_gid:[135,136],nb_uid:[135,136],nb_user:[135,136],ncat:[41,106],ncpu:[23,118,126],nearing:20,nearli:101,necessari:[4,5,20,35,44,58,62,63,100,101,102,106,128,137,139],necessarili:69,need:[4,7,8,10,12,13,14,15,18,19,20,22,23,24,27,29,33,34,35,37,38,40,41,42,43,44,45,47,49,50,52,53,55,56,57,60,61,62,63,66,69,70,84,86,87,88,89,91,96,97,98,99,101,102,103,104,105,108,109,112,113,115,118,121,125,126,128,130,133,135,136,137,139,140],nest:4,netbean:[23,63],netbeans_2019:[23,63],network:[18,62,71,86],network_policy_allow_cidr:62,never:[10,17,20,40,57,60,85,98,104,105,135],new_app:29,new_app_group:29,new_app_us:29,new_featur:108,new_tab:20,new_window:[20,37,103],newer:[8,27,101],newjob_refresh:64,newli:[17,20,76],newlin:[12,100],next:[20,23,33,51,62,89,100,104,108,112,113,116,118,126,131,135,136,140],next_url:33,nextwindow:125,nextworkspac:125,nfs:135,nfsroot:136,nginx16:[98,99],nginx:[0,12,19,20,26,28,49,50,51,60,71,72,73,74,75,76,78,79,80,81,82,84,92,96,97,98,101,102,103,104,105,106,116,138,139],nginx_bin:84,nginx_clean:[82,84,103,104,105],nginx_file_upload_max:[20,84],nginx_handl:19,nginx_list:82,nginx_show:82,nginx_sign:84,nginx_stag:[20,30,51,72,82,85,86,92,94,95,96,97,98,99,100,101,102,103,104,105],nginx_stage_exampl:[84,92,98],nginx_uri:86,night:140,nightli:51,nil:[20,27,85,88,89,90,97],ningx:97,nmap:[41,106],nmodul:56,no_good_config:63,noarch:[57,91,97,98,99,100,101,102,103,104,105],node01:45,node02:45,node:[0,18,20,21,23,24,25,26,28,30,34,35,38,39,41,43,45,49,52,53,54,56,57,58,60,63,67,68,84,86,89,96,98,99,102,104,105,106,109,114,118,119,120,124,125,126,128,129,134,135,136,137,138,139],node_modul:[98,99],node_selector:136,node_typ:[23,24,34,124,125,136],node_uri:[39,86],nodea:50,nodej:[0,57,99,101,104,105,140],nodejs010:[98,99],nodejs10:103,nodejs12:104,nodejs6:[69,84,101],nologin:[4,18],nomenclatur:0,nomethoderror:51,non:[4,20,43,60,62,63],none:[17,35,60,67,89],noreset:59,normal:[20,98,106,136],nosoftwareopengl:125,notabl:[20,94,95,104,131],notat:20,note:[2,7,16,20,29,36,44,49,51,56,60,61,62,69,84,85,86,89,91,112,115,121,130,135],notebook:[31,36,39,45,51,86,106,114,115,116,118,119,126,128,135,136],notebookapp:[45,135],noth:[12,23,44,100,104],notic:[18,19,20,23,24,86,97,104,108,109,115,121,130],notifi:[35,71],novnc:[21,51,52,101,106],now:[16,17,18,19,20,22,23,24,27,29,33,35,39,42,43,47,55,57,60,63,69,85,88,89,96,97,98,99,100,104,105,108,109,112,113,115,116,118,121,124,125,126,130,131,139],npm:[108,109],nsf:[1,53],nslookup:55,nsswitch:136,ntask:136,num:34,num_cor:[34,36,43,89,124,136],number:[20,23,24,34,35,36,39,42,43,45,47,50,51,63,78,80,84,85,86,88,89,100,103,106,118,124,126,139],number_field:[35,36,124],number_of_hour:43,nvidia:[34,124],nvm:109,oak:69,oaklei:[7,12,22,34,54,62],oauth2:16,oauth:7,obatchmod:60,object:[17,20,27,31,35,45,84,85,86,89,124,139],objectclass:4,objectlabel:62,observ:[33,64,71],obsolet:83,obtain:55,occass:125,occur:[47,59,71,83,95],oci:0,odd:17,odic:62,off:[15,17,18,19,20,43,44,47,56,58,86,88,90,101,105,125],offer:[15,59,63,82,83,124],offici:[102,106,127,140],often:[61,135],ohio:[97,136],ohiosupercomput:[5,135],oidc:[1,4,8,11,17,19,86,102],oidc_access_token:86,oidc_claim:19,oidc_claim_email:86,oidc_claim_preferred_usernam:86,oidc_client_id:[7,8,86],oidc_client_secret:[7,8,86],oidc_cookie_same_sit:86,oidc_discover_root:86,oidc_discover_uri:86,oidc_provider_metadata_url:[7,8,86],oidc_remote_user_claim:[7,8,12,86],oidc_scop:[7,8,86],oidc_session_inactivity_timeout:[7,8,86],oidc_session_max_dur:[7,8,86],oidc_set:[7,8,86],oidc_state_max_number_of_cooki:[7,8,86],oidc_uri:[7,8,19,86],oidcauthrequestparam:7,oidcclientid:[10,19,86],oidcclientsecret:[19,86],oidccookiesamesit:86,oidccryptopassphras:19,oidcpassclaimsa:[7,8,19],oidcpassidtokena:[7,8,86],oidcpassrefreshtoken:[7,8,86],oidcprovidermetadataurl:[19,86],oidcredirecturi:19,oidcremoteuserclaim:[19,86],oidcresponsetyp:8,oidcscop:86,oidcsessioninactivitytimeout:[19,86],oidcsessionmaxdur:[19,86],oidcstatemaxnumberofcooki:86,oidcstripcooki:[7,8,10,19],old:[85,99,101,103],olddisplai:59,older:[51,85,101,102,104,105],omit:[14,20,27,85,100],onc:[7,17,20,32,45,62,97,99,108],ondemand:[0,1,3,5,6,7,8,9,11,12,13,14,15,16,18,22,25,28,29,31,34,35,36,37,38,39,40,41,42,43,44,45,46,47,49,50,52,53,54,56,57,58,59,60,63,64,65,66,67,68,69,70,72,73,80,81,83,84,86,88,89,91,92,95,96,97,98,104,105,106,107,108,109,112,113,115,116,117,118,119,121,122,123,124,125,126,127,128,130,131,132,134,136,137,138,140],ondemand_config:135,ondemand_export:50,ondemand_manage_user_home_dir:58,ondemand_manage_vmblock:58,ondemand_port:84,ondemand_titl:84,ondemand_tmux:63,ondemand_use_kerbero:58,ondemand_use_kubernet:[58,104],ondemand_use_ldap:58,ondemand_use_nf:58,ondemand_use_shell_app:104,ondemand_use_slurm:58,ondemand_use_smtp:58,ondemand_use_ssh:[58,104],ondemand_use_sssd:58,ondemand_use_torqu:58,ondemand_usernam:62,ondemand_version_path:84,ondemandopen:102,one:[0,7,19,20,30,34,35,42,43,49,54,56,62,63,86,88,89,92,97,98,100,101,102,103,104,107,115,121,130,136,137,139],ones:[20,78,100,124],onfailur:[135,136],onli:[0,1,4,8,12,14,16,18,20,24,25,27,29,32,33,34,35,36,41,42,43,44,45,50,53,54,58,61,62,63,66,70,73,77,78,81,84,85,86,88,90,94,95,97,98,99,101,102,103,104,105,106,109,115,118,119,121,126,128,130,134,140],onlin:29,onsubmit:33,onto:84,ood:[1,4,8,10,11,12,13,14,15,16,18,22,23,24,26,29,30,35,39,40,42,43,45,49,50,51,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,84,85,86,87,88,90,92,95,96,97,98,99,100,103,104,105,109,112,115,116,117,118,121,122,124,126,130,131,132,135,139],ood_:[85,86],ood_allowlist_path:[20,104],ood_app_catalog_url:29,ood_app_shar:[29,103],ood_auth_map:[8,12,13,94,95,96,97],ood_balance_path:20,ood_balance_threshold:20,ood_batch_connect_cache_attr_valu:35,ood_bc_ssh_to_compute_nod:[20,56,101],ood_brand_bg_color:[84,85,108],ood_brand_link_active_bg_color:84,ood_config_d_directori:[85,108],ood_cor:[56,60,89,118,126],ood_dashboard_dev_docs_url:20,ood_dashboard_docs_url:20,ood_dashboard_help_custom_url:[16,20],ood_dashboard_logo:20,ood_dashboard_logo_height:102,ood_dashboard_passwd_url:20,ood_dashboard_support_email:29,ood_dashboard_support_url:20,ood_dashboard_titl:84,ood_default_sshhost:20,ood_dev_ssh_host:30,ood_download_dir_max:20,ood_hide_job_arrai:20,ood_job_name_illegal_char:[20,101],ood_local:[20,102],ood_locales_root:[20,71],ood_max_script_size_kb:[20,101],ood_mod_proxi:86,ood_native_vnc_login_host:45,ood_oidc_access_token:86,ood_port:[2,4,7,8,10,11,13,19,20,39,51,72,83,97,100,101,102,103,104,105],ood_portal_exampl:86,ood_pun_socket_root:[84,99],ood_pun_t:58,ood_quota_path:[20,98],ood_quota_threshold:20,ood_shel:[100,103],ood_shell_origin_check:20,ood_show_job_options_account_field:97,ood_ssh_port:20,ood_ssh_wrapp:20,ood_sshhost_allowlist:20,ood_support:[30,56],ood_upcase_account:35,ood_xdmod_host:20,oodappkit:112,oodcor:[35,112,113,118,126],oodfilesapp:[20,104],oodsupport:[30,135,136],opaque_remote_usernam:12,open:[1,4,6,7,9,10,12,13,14,17,20,22,30,31,34,36,37,38,39,40,42,43,45,46,47,49,52,53,54,57,58,59,60,63,64,67,68,70,71,72,83,84,85,86,88,96,98,102,104,105,107,108,115,116,121,124,130,139,140],open_sess:63,open_timeout:20,openid:[1,7,11,12,16,17,18,19,20,53,62,71,99],openjdk:[18,128],openldap:[4,17],openondemand:[2,20,47,62,100],openssl:[2,18,19,119],oper:[24,43,44,51,57,69,103,105,133,140],opt:[5,8,10,12,13,15,18,19,20,23,29,39,47,50,56,60,61,62,63,65,69,83,84,86,88,89,90,91,92,96,97,99,100,101,102,103,104,105,127,131,135,136],optim:[20,35,127,136],optimis:52,option:[1,2,4,10,12,22,23,24,28,31,35,36,37,39,40,42,44,45,50,53,55,56,61,62,63,64,65,66,67,70,74,75,79,82,85,99,101,102,103,111,112,113,115,118,119,121,123,124,126,127,128,130,134,135,137,139],options_account_help:20,oracl:127,order:[10,13,16,20,24,27,35,45,49,51,52,56,62,63,92,104,127,131,137],oregon:51,org:[2,4,7,12,15,16,18,20,55,62,98,100,133],org_nam:20,org_rol:20,organ:[2,20,104],organiz:2,orgid:[20,56],origin:[20,45,60,85,101,103,139],orin:97,osc:[4,5,12,14,15,16,17,18,19,20,22,27,30,39,45,50,52,53,54,56,57,59,60,62,63,69,71,85,91,97,98,99,100,101,102,103,104,105,106,108,109,115,121,123,124,125,128,130,133,136,139,140],osu:56,osvers:133,other:[1,2,10,12,13,15,17,20,23,24,28,29,31,32,35,42,43,45,49,50,51,53,56,57,59,61,62,63,66,71,82,84,85,86,88,90,91,96,97,99,100,101,103,104,106,107,108,114,119,120,128,134,135,136,140],other_main:88,other_users_of_the_clust:56,otherwis:[4,12,37,40,44,62,63,69,136],otp:15,our:[7,10,17,20,23,24,27,30,39,51,69,71,86,94,95,97,98,99,104,106,108,112,113,115,116,118,121,126,130,135,137],ourselv:[27,137],out:[2,6,7,11,12,13,16,18,19,20,27,34,35,42,43,44,50,56,60,62,63,84,86,102,104,106,108,109,112,113,115,121,130,139],outag:[67,101],outcom:18,outlin:[20,45,97,111],output:[12,44,45,47,48,49,51,56,60,61,69,85,88,89,98,100,112,116,139],output_cluster1_2018:69,output_path:[63,89],outsid:[0,8,10,13,20,23,62,68,99,101,136,140],over:[17,20,37,55,57,85,86,97,106,115,121,130],overid:85,overidden:89,overlai:125,overload:71,overrid:[23,24,35,36,37,39,42,45,51,56,63,70,85,88,89,92,98,118,125,126,131],overridden:[24,37,88,90],overried:42,overview:[1,28,49,51,53,72,87,138],overwrit:97,overwritten:63,owen:[12,24,29,35,42,44,56,63,100,124,136],owens_login:[24,63],owens_login_desktop:24,own:[12,13,15,20,28,29,31,43,45,47,49,62,63,82,86,98,103,104,105,108,137],owner:[30,84,103,115,121,130],ownership:[18,49],p100:124,p18:136,p20:136,pack:62,packag:[1,5,20,30,53,57,58,99,101,102,103,133,136,139,140],page:[1,6,11,15,16,18,19,24,27,29,33,34,35,43,45,46,47,49,51,54,57,59,63,85,86,87,100,101,102,105,108,112,113,115,121,130,135,136,138,139],page_cod:20,pagepath:27,pagin:27,pair:[20,37,85,92,98,112,113],pam:[6,63],pam_exec:63,pam_keyinit:63,pam_limit:63,pam_mkhomedir:[20,98],pam_servic:63,pam_sss:63,pam_succeed_if:63,pam_systemd:63,pam_uid:63,pam_unix:63,pam_us:63,pane:94,panel:[20,31,56,103,125],panelid:20,parallel:43,param:[19,60,64],paramet:[17,20,22,28,31,35,84,88,90,103,104,110,114,116,120],paraview:[52,94],parent:[42,63,98,99],parlanc:[135,136],pars:[12,20,27,44,56,60,69,86,100,138],parse_uri:27,part:[0,7,12,26,27,35,46,52,101,108,127,139],parti:[39,56],partial:[20,71,94],particip:51,particular:[0,22,23,35,49,103,115,121,130],particularli:[53,57],partit:[35,51,71,84,106,110,112,113,136],partwai:71,pass:[4,10,12,19,20,33,35,60,62,67,69,84,86,88,89,90,91,92,103,124,139],passeng:[28,37,50,51,80,81,84,97,101,102,103,104,105,106,139],passenger40:[98,99],passenger_:84,passenger_log_fil:84,passenger_max_preloader_idle_tim:84,passenger_nodej:84,passenger_opt:84,passenger_pool_idle_tim:84,passenger_python:84,passenger_root:84,passenger_rubi:84,passenger_statu:50,passengerag:50,passwd:[44,90,135],passwd_from_secret:135,password:[4,5,18,19,20,31,44,60,61,62,63,69,88,90,119,135],password_field:35,password_fil:44,password_s:88,password_sha1:135,passwordless:63,passwordplacehold:20,past:[20,51,62,100,106,139],patch:51,path:[4,12,13,18,20,23,29,36,39,40,45,50,56,58,61,62,63,64,65,66,67,69,70,73,74,75,76,81,84,85,86,88,89,90,91,92,98,99,101,103,104,108,131,133,135,136,139],path_selector:[36,105],pathnam:[20,44,85],pattern:[20,35,86,103],paw0003:20,pbs:[23,65,118,126],pbs_default:69,pbspro:[43,51,65,94,99],pcp_dir:92,pct_cpu:139,pct_mem:139,pdf:[96,100],peer:28,pem:[55,86],peopl:[4,17],per:[0,12,18,20,26,35,63,73,76,77,78,79,80,81,84,90,92,97,98,102,103,106,116,118,124,126,136,139],percentag:106,perfect:123,perform:[15,16,24,43,44,46,51,56,58,62,63,83,100,101,102,124,125,127,137],perhap:42,period:[20,104,106,140],perl5lib:92,perl:103,perman:[4,58],permiss:[4,8,10,18,19,20,27,44,56,60,71,84,98,112,115,121,130],permit:[56,123,140],persist:[20,125,135],person:[29,71],personel:26,perspect:57,pfx:2,pgrep:137,phish:39,phusion:138,phusion_passeng:84,physic:26,pick:[43,108],picker:123,pid:[12,63,66,81,84,137,139],piec:[63,108],pin:[29,51,85,108],ping:69,pinned_app:[20,29,85,103,108],pinned_apps_group_bi:[20,29,85,103,108],pinned_apps_menu_length:[20,85,108],pip3:[60,91],pip:91,pipe:136,pirat:125,pittsburgh:51,pitzer:[56,98,100,136],pitzer_01_login:56,pixel:85,pizzazz:45,pkcs12:2,pkg_config_path:92,pki:[18,55,62],place:[10,14,20,29,42,44,45,55,56,60,62,92,97,108,128],plai:108,plain:[20,45,53,57,103],plan:58,plantuml:0,platform:[20,28,37,45,47,51,104],pleas:[4,14,17,20,23,35,45,51,52,55,58,69,86,94,95,97,98,99,100,101,102,103,104,105,106,112,113],plessing:102,plu:[131,133],plugin:[28,29,31,35,63,94,97,115,121,130],pn001:39,pn500:39,png:[15,20,37,44,85],pod:[62,135,136],point:[15,16,20,23,35,39,44,55,62,69,71,82,83,86,108,109,115,139],polici:[5,18,20,51,53,58,86],polish:29,poll:63,pom:5,pool:68,popul:[27,33,35,44,62,98,102,104],port:[4,14,18,19,39,44,45,49,50,51,58,86,88,90,104,135,136],port_cfg:135,portabl:43,portal:[4,8,9,11,12,13,14,20,30,39,51,53,72,84,86,95,96,97,99,100,103,104,105],portal_set:20,portion:[20,27,45,86,99],posit:[35,63,69],posix:[20,66],posixaccount:[4,17],posixgroup:4,possibl:[18,20,24,29,32,39,43,44,45,51,55,60,62,63,70,71,77,88,89,98,101,108,109,111,118,126,131,140],post:[16,31,33,51,52,58,91,98,99],potenti:[63,85,100],power:106,powerpoint:0,powertool:[57,103],ppc64le:106,ppn:[23,118,126],pre:[20,62,71,86,97,102,115,121,130,133,139],preced:[20,35,62,86],precis:66,predefin:[27,31,43,45,104],prefer:[4,20,35,45,60,71,125,128,137],preferred_usernam:[8,19,86],preferredusernameattr:4,prefix:[20,62,84,85,86],prehook:62,prepar:[1,88],prepend:[20,24,85,103],prerequisit:[8,13,27],presenc:139,present:[20,22,24,27,30,35,42,49,101,103,104,115,121,130,136],preserv:92,preset:[18,42],press:17,prevent:[19,20,29,63,71,84,101,134,137,140],preview:103,previou:[20,24,35,96,97,98,99,101,102,140],previous:[20,97,98,99,102,103],prevwindow:125,prevworkspac:125,primari:[0,29,35,45,63,97],print:[7,39,60,62,63,83,88,118,126],prior:[12,20,34,35,92,98,99,101,103,104,127,140],prioriti:89,privaci:10,privat:[13,18,19,55,136],privileg:[20,22,62,63,82,86],privkei:86,privleg:99,pro:[42,65],probabl:[14,17],problem:[17,20,51,60,69,98,106,127],problemat:[101,105],proc:137,procedur:9,proceed:57,process:[0,23,30,43,44,45,46,63,66,73,77,78,79,80,81,82,84,86,91,92,97,100,103,106,112,113,118,126,137,138,139],process_nam:50,processor:[23,24,35,118,124,126],prod:62,produc:[5,71,139],product:[14,18,20,29,50,54,56,62,69,71,84,86,97,98,99,100,101,102,103,104,105,108,115,121,130,136,139,140],production_profil:20,profession:[21,51,54,114,120],profil:[7,8,16,51,84,86,92,98,99,136],profile_link:[20,85],profile_nam:20,profiles_guid:20,program:[7,43,51,62,101],project1:20,project:[3,24,29,34,36,51,60,85,102,104,106,115,121,124,130,131,135,136,139],project_nam:20,project_typ:20,prolog:59,prometheu:[46,51,62],prometheusaddress:62,pronunci:125,proot:99,propag:[0,131,133],proper:[18,20,54,62,63,86,139],properli:[2,13,18,39,56,86,94,95,97,98,99,112],properti:[15,18,20,27,35,63,86,104,105],propog:67,protect:[20,71,86],proto:[18,20],protocol:[17,18,20,27,55,62],proven:58,provid:[1,2,4,5,7,8,12,14,15,17,18,19,20,29,30,31,34,35,36,40,42,43,44,45,49,50,51,52,54,55,56,58,61,62,63,66,69,83,86,88,91,92,97,98,101,102,104,105,114,120,123,124,128,129,133,135,139,140],provis:14,proxi:[0,1,10,12,14,18,19,31,38,51,73,76,84,106],proxy_serv:86,proxy_temp:81,proxy_us:84,proxypass:18,proxypassrevers:18,proxypreservehost:18,proxyrequest:18,psc:51,pstree:63,ptrace:131,pub:98,public_root:86,public_uri:86,public_url:[20,85],publicli:92,publish:[7,138],pull:[62,101,108,109,133,140],pun:[0,11,12,19,20,26,27,29,49,50,51,58,60,62,67,72,73,76,78,79,80,82,84,86,96,97,101,103,104,105,106,108,109,115,116,121,130],pun_access_log_path:84,pun_app_config:84,pun_config_path:84,pun_custom_env:[20,84,85,92,98,100,101,102],pun_custom_env_declar:[84,92,98],pun_error_log_path:84,pun_log_format:84,pun_max_retri:86,pun_pid_path:84,pun_pre_hook_export:86,pun_pre_hook_root_cmd:86,pun_secret_key_base_path:84,pun_sendfile_root:84,pun_sendfile_uri:84,pun_socket_path:84,pun_socket_root:86,pun_stage_cmd:86,pun_tmp_root:84,pun_uri:86,punctuat:100,puppet:[54,97],purdu:100,pure:[56,109,139],purg:[39,40,44,119,128,134],purpos:[20,29,45,63,85,102,125,135,136,140],push:139,put:[18,20,23,62,71,97,101,137],pwd:[5,29,44,125],pwd_cfg:135,python36:60,python3:91,python:[28,44,71,84,103,104,112,113,116,118,119,126,128,135,138,139],python_vers:35,pythonpath:92,pzs0001:43,pzs0002:20,pzs0562:139,pzs0714:[29,63],qdel:[65,66],qgi:52,qhold:[65,66],qos:102,qrl:[65,66],qselect:65,qstat:[65,66,102],qsub:[23,43,49,56,65,66,69,70,100,101,118,126],qsub_wrapp:66,qualiti:[35,102],quantifi:106,queri:[7,19,20,46,62,71,99,103],question:[6,63,97,98,99],queu:[48,66,69],queue1:[112,113],queue2:[112,113],queue:[20,23,24,35,43,51,63,69,89,95,100,110,112,113],queue_nam:[35,43,89,112,113],quick:[21,31,38,56,67,82,83,97,114,120,129],quiet:63,quit:[6,62,77,84],quot:[85,100],quota1:20,quota2:20,quota:[51,138],quota_additional_messag:20,quota_reload_messag:20,r2015b:124,r2016b:124,r2017a:124,r2018a:124,r2018b:124,rack:[28,138],rackapp:139,radio:36,radio_button:[35,36],rail:[20,30,69,92,98,99,101,104],rails_env:69,rais:69,rake:[54,57,69,97,139],rakefil:139,ram:[63,106,124],ran:[20,63,91],rand:[18,19],random:[19,44],randomli:4,rang:[20,44,85,106,111],range_field:35,rapidli:71,rational:[103,139],raw:[62,139],rc8:140,rclone:[20,85,104],rdynam:63,reach:[17,32,62,102,104,106,140],read:[4,7,12,18,20,22,30,35,39,44,55,60,62,63,66,67,82,85,86,89,90,99,101,103,104,112,113,118,126,135],read_onli:17,read_timeout:20,readabl:[4,8,19,20,29,62],reader:[6,53,57],readi:[29,108],readm:[52,98],readonli:20,real:[60,84,89,140],realiz:29,realli:[6,24,42,63,104],realm:[5,14,15,16,18,19,20,62],reapaft:62,reaper:62,reapnamespac:62,rearrang:[20,85],reason:[20,29,54,63],rebuild:[63,98,99,108,109],rebuilt:[98,103,104,105],recalcul:47,receiv:[16,24,39],recent:20,recently_used_app:[20,104],recip:63,recogn:20,recom:64,recommend:[4,8,14,18,20,22,23,29,30,40,43,44,45,55,56,62,71,82,83,84,85,86,96,99,101,102,105,108,116,118,119,126,128,134],reconfigur:[20,28,31,53,61,105],record:100,red:[20,35],redcarpet:100,redefin:24,redhat:[53,57,101,103,106],redir:81,redirect:[4,11,13,14,16,17,18,19,55,60,71,81,103],redirecturi:4,rediscov:63,reduc:[71,124],ref:89,refer:[1,12,20,27,34,43,45,51,56,62,82,83,85,86,87,89,94,95,104,105,125,127,135,136],referenc:[20,34,35,56,62,104],reflect:[20,101],refrain:43,refresh:[24,62,108,112,113],regard:[3,11,20,35],regardig:20,regardless:[32,34,85],regener:[11,20],regex:[8,12,13,35,61],regist:[7,14,86],register_root:86,register_uri:86,registr:[1,16],registri:136,registry_docker_config_json:62,registry_password:62,registry_us:62,regular:[10,12,13,20,30,35,39,61,67,84,86,101,103,139,140],regularis:52,regularli:42,reguluar:9,reinstal:[98,99],rel:[20,23,45,84,85,86],relat:[3,20,49,102,103,104,127,140],releas:[50,51,57,62,65,91,139,140],relev:[20,35,49,62,80,103,140],reli:[12,45,56,62,86,98,99,101,103],reliabl:[100,125],relion:52,reload:[4,18,20,50,58,77,84,139],remain:[92,101,102],remedi:[61,137],rememb:[13,15,17,20,24,98],remot:[9,51,55,58,60,63,85,115,121,130,139],remote_addr:84,remote_files_en:85,remote_files_valid:85,remote_us:[12,19,84,86],remov:[10,14,15,20,21,29,40,60,63,66,67,71,74,85,89,91,92,95,98,99,101,102,103,104,112,113,139,140],renam:[35,44,95,112],render:[20,28,29,31,33,35,43,45,49,56,59,62,71,83,85,102,103,136,139],render_template_notes_as_markdown:100,reopen:[77,84],repackag:99,repeat:[20,35],replac:[10,15,16,18,19,20,28,30,35,47,50,54,55,56,60,61,62,64,65,66,67,69,70,83,86,92,99,102,103,104,105,111,112,113,115,116,118,121,124,125,126,130,131,139],repli:20,replic:0,repo:[4,5,8,19,29,57,98,103,104,108,109,115,121,130,139],report:[20,27,66,71,85,100,102,106],repositori:[29,42,52,53,97,98,99,106,140],repres:36,represent:139,req:[10,13],request:[10,12,14,18,19,20,23,27,34,35,39,42,43,44,45,47,51,59,71,73,76,81,84,85,86,89,97,99,103,104,110,118,123,124,125,126,139,140],requesthead:[10,13,18,19],requir:[2,4,5,8,10,12,13,19,20,21,22,24,29,31,35,36,37,38,44,50,51,54,55,56,58,60,61,62,63,64,67,69,71,82,84,86,88,91,101,102,108,110,112,114,115,116,120,121,123,124,125,129,130,131,133,136,137,139],requiresess:[10,13],rerun:63,rerunn:89,research:[7,51,102],reserv:[63,89],reservation_id:89,reset:[103,104,105,139],resid:[10,42,54,69,84,86],resiz:[102,110,127],resolut:[35,36,124],resolution_field:[35,36],resolv:[20,55,63,98,104],resourc:[0,5,7,15,18,20,22,23,26,35,43,47,50,51,53,54,56,61,62,64,65,66,67,68,69,70,85,86,97,100,101,104,110,112,113,114,120,129,136],resource_id:20,resource_mgr:20,respawn:125,respect:[20,23,31,43,81],respond:[34,86],respons:[12,20,24,27,45,47,56,57,95,99,116,118,124,126,131],rest:[18,30,63],restart:[2,4,10,18,19,20,29,39,46,50,53,73,97,102,103,104,105,108,112,139],restart_polici:[135,136],restor:[20,56,99,125],restrict:[10,12,18,20,29,30,62,84,86,98,111],restructur:104,result:[20,27,29,43,49,60,63,69,71,86,97,98,99,101,104,139],retain:[45,98],retriev:[2,99],reus:[18,20],reusabl:135,revers:[0,1,31,38,51,73,76],revert:[30,98,99],review:[48,53,57],revisit:69,revok:63,rewrit:86,rewriteengin:86,rewritten:[101,103],rex:12,rhel6:84,rhel7:[1,53,99,136],rhel:[8,47,50,53,55,57,63,69,83,98,99,103,104,105,136],rice:101,right:[17,20,29,35,36,40,44,60,69,71,85,103,108,112,113,115,121,130,133,139],risk:[39,86],rnode:[39,45,52,86],rnode_uri:[39,86],road:49,robin:63,robinkar:104,robust:[20,131],rocki:[8,47,50,57,103,104,105,106],rockylinux:[57,91],role:[27,37,54,62,136],rolebind:62,root:[4,8,10,17,18,19,20,22,23,29,33,34,35,37,43,44,45,47,49,50,51,57,62,63,66,69,73,81,82,84,86,91,92,97,99,101,108,116,117,118,122,124,125,126,131,132,139],root_uri:86,rotat:62,round:63,roundrobin:63,rout:[47,139],router:20,row:[20,27,102,103],rpm:[8,46,57,65,83,86,91,98,99,100,101,102,103,104,105,106,134,139,140],rpmsave:99,rserver:[131,133],rss:[20,85,139],rstudio:[20,39,45,49,51,52,54,86,89,94,97,106,110,131,133,134],rstudio_contain:131,rstudio_group:20,rstudio_guid:20,rstudio_launcher_centos7:131,rstudio_server_imag:131,rubi:[0,20,23,24,27,28,30,32,34,35,43,44,45,50,57,84,89,92,97,99,100,101,104,105,112,118,126,136,138,139,140],rubular:35,ruby22:[98,99],ruby24:[69,101],ruby25:[84,103],ruby27:[103,104],rubydoc:[118,126],rubylib:92,rule:[13,18,35,63,86],run:[0,3,4,5,7,12,14,17,18,20,21,23,25,26,28,29,30,33,35,38,39,40,41,44,45,49,50,55,56,57,58,59,61,62,63,64,66,67,69,71,77,79,80,81,82,83,84,86,88,90,91,92,99,102,106,108,109,114,115,116,118,119,121,124,126,127,128,129,130,133,134,135,136,138],run_as_group:135,run_as_us:135,run_fil:88,run_owens_script:44,run_remote_sbatch:60,run_script:88,runasgroup:62,runasnonroot:62,runasus:62,runscript:133,runtim:[33,124,128,131,133],sacrific:100,safari:[51,106],safe:[45,99,102],safer:56,safeti:20,sai:[20,34,42],salt:135,same:[14,18,20,27,29,31,42,45,56,62,63,64,67,97,99,101,103,104,108,125,133,135,136,139],saml:[1,7,53],sampl:20,sandbox:[29,35,43,44,45,96,108,109,112,113,115,116,117,121,122,130,132,139],sanit:[9,123],satisfi:[8,13,57],saumyabhushan:104,save:[4,5,16,17,18,20,58,62],save_passwd_as_secret:135,sbatch:[23,43,49,56,60,67,101,118,126],sbatch_wrapp:56,sbin:[4,10,13,18,19,20,39,47,50,83,84,86,92,100,101,102,103,104,105],scaffold:139,scan:12,scancel:[56,67],scenario:[43,84,104],scgi_temp:81,schedul:[20,24,26,32,35,49,54,56,60,61,62,63,68,85,89,97,101,136],schema:[20,51,54],scheme:[20,35,42,85,101,140],scienc:[7,104],scipi:135,scl:[8,30,57,69,84,92,98,101,139],scl_sourc:[99,139],scontrol:[56,67],scontrol_wrapp:56,scope:[8,13,16,18],scrape:50,scrape_interv:50,scrape_timeout:50,scratch:[20,36,135,136],screen0:125,screen:[29,95],screeshot:20,script:[23,29,31,35,40,42,51,54,56,62,63,66,67,71,83,84,85,87,88,90,92,98,99,100,102,103,108,110,112,113,116,118,120,123,124,126,127,131,133,134,135,136,137],script_fil:[43,88],script_pid:66,script_wrapp:[39,40,56,66,67,88],scroll:17,scrub:88,seamless:140,search:[7,10,20,49,84,103],search_field:35,second:[20,35,43,44,62,63,69,84,88,89,90,100,105,112,113,124],secondari:[127,137],secondli:[20,27],secret:[4,10,16,17,19,62,84,135],secret_key_bas:84,section:[1,9,20,23,24,35,42,62,71,89,97,99,102,104,112,113,116,118,126,135,136,139],secur:[2,5,7,8,12,17,20,39,44,51,53,57,62,63,86,91,93,139,140],security_csp_frame_ancestor:86,security_strict_transport:86,securitycontext:62,see:[0,2,3,4,7,11,12,15,18,19,20,22,23,24,27,29,30,34,35,39,42,45,47,48,49,52,53,55,56,57,58,61,62,63,85,86,87,88,94,95,97,98,99,100,101,102,103,104,105,107,108,109,112,113,115,116,117,118,121,122,124,125,126,130,132,135,139],seed:139,seen:[20,35,49,62,63,102,140],segment:20,select:[5,15,16,17,23,24,29,31,35,36,51,60,62,63,85,89,96,97,102,103,111,112,113,118,123,124,125,126,136,137],selector:36,self:[5,18,20],selinux:[51,53,57,103,105],send:[20,23,27,39,57,58,60,71,77,84,86,89,90],send_256_colors_to_remot:125,sendenv:20,sendfil:84,sens:[34,50,118,124,126],sensit:[18,35],sent:[12,13,16,20,35,45,60,84],sentenc:20,sep:18,separ:[11,12,14,20,24,34,97,100,103,105,139],seper:[20,86,91,105],septemb:20,sequenc:[0,92,98],seri:[20,104],serial:[7,8,35,86],serivc:62,serv:[0,1,18,20,29,47,57,84,86,97,101,103,106,136,139],server:[0,1,4,8,10,11,12,13,14,19,20,23,26,28,31,33,35,39,40,41,44,45,52,53,54,55,57,58,61,62,65,67,69,70,71,73,76,81,83,84,86,87,94,97,98,108,112,114,116,118,119,123,124,126,128,129,131,133,134,135,136,138,139],server_alias:86,server_develop:15,serveralia:86,serverdir:64,serverlimit:47,servernam:[4,8,18,47,50,55,57,86],serverroot:86,servic:[1,3,7,18,20,27,35,39,46,50,51,53,62,63,71,83,101,102,103,104,105,134],serviceaccount:62,serviv:19,sescur:62,session:[9,13,19,21,22,28,31,33,39,46,48,51,56,59,63,67,73,80,85,86,94,100,102,103,105,116,125,139],session_context:[115,121,130],session_descript:20,session_id:[20,44,103],set:[1,4,5,7,11,12,13,15,17,18,19,21,22,24,27,29,30,31,33,35,36,38,40,42,44,51,56,57,58,59,60,61,62,63,65,66,67,70,84,85,86,88,89,90,92,97,99,102,103,104,107,109,112,124,125,127,131,135,137,140],set_host:[39,88,118,126],setenv:[86,99,131],setsebool:[58,101],setsid:59,setup:[1,5,9,16,17,20,21,27,31,39,51,53,57,62,63,67,86,108,109,110,111,114,120,129,136,138],setup_env:131,sever:[3,20,35,58,62,63,84,99,101,103,104,107],sftp:71,sge:[51,66,102],sge_root:66,sh_jupyt:52,sh_ood:52,sh_rstudio:52,sh_tensorboard:52,sha1:135,shade:85,shakei:71,shanghai:[52,102],shape:34,share:[4,20,28,51,55,84,125,136],shawn:101,shebang:[60,88,101],shelf:63,shell:[26,28,29,30,43,51,54,56,58,61,63,67,82,84,85,86,88,89,95,96,99,106,107,108,139],shell_path:89,shib:13,shibboleth:[1,10,11,53,71,86],shibcompatvalidus:13,shibrequestset:[10,13],shibsess:10,shift:62,shini:52,shinyusr:29,ship:[4,42,62,103,104,105],shortcut:[51,101,103,104],shorter:85,should:[7,10,12,16,18,19,20,21,22,23,24,29,35,37,45,46,47,49,50,52,53,55,56,57,58,60,61,62,63,65,67,71,73,76,84,85,86,88,89,90,92,97,98,99,101,102,103,104,108,109,112,115,116,121,123,124,125,130,136,139,140],shouldn:88,show:[14,18,20,24,29,30,34,35,36,46,49,56,60,80,83,84,85,94,95,99,103,104,109,123,135,139],show_all_apps_link:[20,85],show_fil:36,show_hidden:36,shown:[20,34,35,36,37,71,85,100,104,118,126],shub:133,shut:62,side:[20,85,86,98,123,124],sif:[23,63,88,91],sign:[1,18,20,53,55],signal:[77,84,86],significantli:[18,29,109],signingkei:4,silent:51,simg:[131,133],similar:[20,29,30,47,50,59,63,66,97,99,102,135,139],similarli:[53,103,118,126],simpl:[12,19,20,35,39,40,44,45,85,102,135,139],simplehttpserv:44,simpler:[12,20,34,35,56,86],simplest:[12,18,20,24,35,43,45,54,62,113,118,126],simpli:[20,24,42,56,61,63,71,101,102,104,108],simplic:133,simplifi:[14,20,39],simul:20,simultan:47,sinatra:139,sinc:[7,12,17,18,19,20,23,24,35,39,56,62,86,92,97,98,99,105,106,118,126],singl:[1,16,20,23,35,36,45,63,66,69,85,86,102,103,118,126,135,136],singuarl:133,singular:[0,51,63,88,91,99,110,129,131,134],singularity_bin:63,singularity_bindpath:[23,63,131],singularity_contain:[23,63],singularity_imag:63,singularityenv_ld_library_path:[71,131],singularityenv_path:131,singulartity_bind_path:89,sinit:63,sit:[4,104],site:[0,4,7,12,14,15,20,22,26,29,34,35,39,42,45,50,51,52,53,55,56,62,63,67,68,86,97,98,99,100,101,102,103,104,105,106,124,128,135,136,140],site_mapp:86,site_timeout:63,size:[24,34,35,44,51,84,90,103,106],sjtu:[52,102],skip:[73,77,78,81,83,135,136,139],sleep:[59,125,137],slightli:[29,85,103],slow:51,slower:20,slurm:[20,21,35,43,51,53,54,56,58,59,60,89,101,110,112,113,114,120],slurm_arg:136,slurm_export_env:67,slurm_job_gr:59,slurm_localid:59,small:[27,43,45,71,103],small_clust:43,smaller:[20,95],smallest:88,smtp:[20,58],sock:[80,81,84],socket:[0,18,39,80,84,86,100,136,138],soft:135,softar:99,softwar:[0,2,4,18,21,29,30,38,51,53,84,92,97,98,99,104,105,110,114,116,120,124,129,131,139],solid:125,solut:[17,45,71,84,111,127],solv:[60,71,127],some:[0,1,8,18,20,22,23,24,30,32,34,35,41,42,43,44,45,48,50,55,57,58,59,62,66,84,85,86,89,96,97,98,99,101,102,103,104,105,107,108,118,124,126,135,136,137],someelementid:103,someth:[12,20,23,24,27,62,63,69,88,90,108,118,124,126,135,139],sometim:109,son:66,soon:[15,63,89,97],sophist:103,sophstic:20,sort:[27,46],sortabl:103,sourc:[1,24,29,44,46,51,52,55,66,69,86,88,92,99,100,135,139],space:[20,56,104,108,109,135],spam:20,spark:[52,71],spassword:90,spawn:136,spec:[20,53,56,57,110],special:[20,23,36,37,42,43,63,71,82,93,99,115,121,130],specif:[0,4,7,10,17,20,24,27,29,30,35,38,42,43,44,50,52,56,58,62,84,85,86,89,90,92,97,98,99,104,105,112,113,124,135,136,139],specifc:125,specifi:[19,20,23,24,27,28,29,31,35,37,39,44,45,50,52,56,61,62,63,77,81,82,84,85,86,89,90,92,97,99,102,103,104,118,126,135,136,139],speed:[97,100],sperat:42,spi:[1,17,18],spider:85,spin:108,split:[101,103,139],sprintf:56,spw:139,sqlite:4,squeue:[56,67,98,100],squeue_wrapp:56,src:[4,5,63,97],srun:[67,101],srv:[23,61,63,131],srw:81,ssh:[30,39,44,45,51,54,56,58,60,62,63,64,65,66,67,70,71,100,102,103],ssh_allow:[20,56,62],ssh_host:[63,103],sshd:63,ssl:[2,4,14,18,53,55,86],ssl_protocol:86,sslcacertificatepath:18,sslcertificatechainfil:[18,55,86],sslcertificatefil:[18,55,86],sslcertificatekeyfil:[18,55,86],sslengin:18,sso:[11,13,20],sss:136,sssd:[58,99,136],stabil:140,stabl:[97,140],stack:[63,71],staff:[20,49,71,101],stage:[20,31,44,51,72,81,84,86,96],staged_root:[44,125,136],stale:74,standalon:[5,18],standard:[12,18,20,34,44,56,62,84,89,131,136],stanford:52,stanza:56,start:[0,1,4,7,14,15,20,21,22,23,33,35,38,39,43,44,48,49,50,51,53,55,59,61,62,63,67,77,84,85,86,89,90,91,92,94,95,97,98,101,102,103,108,109,112,113,114,116,120,124,125,127,129,134,135,137,138,139],start_dat:27,start_index:27,start_tim:89,starter:87,startserv:47,startup:[28,85,90,127,138],stat:139,stata:[52,137],stata_pid:137,state:[16,32,51,101,108],statement:[23,30,56,88,118,126,136],static_config:50,staticcli:4,staticmaxag:18,statu:[18,20,27,50,51,53,66,69,71,81,84,95,97,102,138],stderr:[49,60,69,71,100],stdin:60,stdout:[12,49,60,71],step:[5,14,20,30,35,36,38,96,97,99,101,108,109,117,122,124,132,139],step_siz:27,stick:18,still:[15,20,24,29,30,34,36,55,56,58,91,95,98,99,101,103,104,108,139],stop:[18,19,20,44,71,77,84,89,134],storag:[4,62,85,135],storage_fil:4,store:[2,4,20,45,55,84,85,86,92,95,102,103,139],str:60,strategi:[11,63,103,139],stream:99,streamlin:136,strict:[63,86],strict_host_check:63,stricthostkeycheck:63,strictli:137,string:[4,10,11,12,20,23,24,34,35,39,43,44,56,63,69,82,84,85,86,88,89,90,91,97,98,99,103,112,113,139],strip:[10,13,19,44,86,139],struct:139,structur:[20,31,81,97,136],student:103,studio:52,style:[20,139],styleoverlai:125,stylesheet:20,stylist:45,styliz:31,sub:[7,19,28,31,45,73,76,86],sub_capt:20,sub_request:73,sub_uri:[73,76],subapp:[42,98],subcategori:[20,37,139],subdirectori:20,subject:20,submenu:20,submiss:[21,22,24,28,31,33,35,49,51,56,60,61,64,65,66,67,69,70,87,116,118,126],submission_nod:60,submit:[0,20,22,23,24,26,28,29,31,32,33,40,41,42,44,45,51,52,53,54,56,60,62,63,69,70,72,85,89,96,97,98,99,100,102,103,110,111,112,113,114,115,116,120,121,123,124,130,139],submit_arg:69,submit_as_hold:89,submit_host:[63,64,65,66,67,70],submit_script:[118,126],submodul:5,subscript:[57,103],subsequ:[35,61,63,73,81,104],subset:[20,29,101,103],subshel:125,substitu:49,substitut:[23,43,45,66,112,118,126],subsystem:18,subtitl:20,success:[18,20,24,51,60,61,63,83,97],successfulli:[3,12,22,97],succss:49,sudo:[4,5,8,10,13,18,19,20,29,30,39,47,50,54,55,57,58,63,69,73,74,75,76,77,78,79,80,81,82,86,97,98,99,100,101,102,103,104,105,106,115,117,122,132,139],sudoer:[50,133],suffici:[14,62,71,103,131],suffix:20,suggest:[20,47,104],suit:[103,131],sum:63,summari:[8,29],sun:[66,98],supercomput:[51,56,63,97,136],supercomputing_support:20,superior:128,supplement:[29,62],supplementalgroup:62,suppli:[1,4,12,20,23,35,42,43,44,62,69,84,85,86,89,104,105,112,113],support:[1,4,6,10,13,14,19,25,29,34,35,38,41,43,51,53,56,57,61,63,64,65,66,67,71,84,86,94,95,103,123,124,136],support_ticket:[20,85],support_url:20,suppos:[49,56,85,108],supremm:102,sure:[12,16,19,20,44,52,57,63,84,108,112,116,124,131,139],svc_acct_fil:62,svg:[20,37],swap:133,swester:104,symbol:20,symlink:[20,29,30,84,98,99,108,109,115,131],syntax:[33,35,66,118,126],sys:[11,19,20,24,27,29,30,42,44,49,60,69,71,73,84,85,86,92,95,97,98,99,101,104,108,109,115,117,121,122,130,132,139],sysconfig:[4,58],syslog:12,system:[2,4,7,8,12,13,18,23,28,34,35,42,43,44,45,46,50,51,53,54,55,57,58,63,69,71,73,74,77,83,84,85,86,89,94,95,96,97,98,99,101,103,104,105,108,112,115,117,118,121,122,124,126,130,131,132,133,140],systemat:12,systemctl:[2,4,18,19,20,47,50,57,63,101,102,103,104,105,134],systemd:[4,18,50,51,54,83,101],systemtrai:125,tab:[5,17,19,20,56,62,71,85,96,103,108,115,121,130,139],tabl:[7,62,73,94,95,96,97,98,99,100,102,103,139],tag:[18,20,51,85,97,98,109,112,139],taglin:99,tai:125,tail:[66,71,137],take:[1,10,12,18,20,23,24,29,33,39,43,45,53,63,71,83,96,97,98,99,103,108,112,113,114,120,129],taken:[24,43,99],tandi:51,tap:[20,104],tar:[18,50],target:[5,18,27,33,50],task:[54,69,97,101,124,137,139],tcp:[0,4,58],team1:[20,85],team:[20,29,71,86,98,101,102,104,137,140],technic:0,techniqu:33,technolog:51,technot:127,techsquareinc:52,tee:63,telephone_field:35,tell:[12,20,34,57,62,63,112,113],temp:71,templat:[5,23,28,31,33,35,45,51,56,63,76,83,84,87,88,89,90,91,97,112,113,118,124,125,126,127,131,136,137,139],template_root:84,temporari:[44,71,98],temporarili:88,ten:[20,39,56],tensorboard:52,term:[26,42,71,97],termin:[61,71,85,103,109,120,125,128],terribl:60,tesla:124,test:[5,12,20,24,30,36,39,46,51,54,56,57,62,71,86,91,94,95,97,98,99,100,101,102,103,104,105,108,116,140],test_checkbox:36,test_command_output_pars:139,test_hidden_field:36,test_job:69,test_jobs_cluster1:69,test_resolution_field:36,test_text_area:36,test_text_field:36,testcommand:139,texa:51,text:[15,16,24,29,35,36,37,51,53,63,85,89,100,103,112,113],text_area:[20,35,36],text_field:[35,36],textarea:36,than:[8,12,17,20,24,35,43,47,49,67,84,85,86,96,101,102,103,109],thank:[93,98,100],the_answ:60,the_connect_api:[88,90],the_quest:60,thei:[6,7,12,16,20,24,27,29,30,32,34,35,42,43,49,54,58,62,63,71,86,88,90,91,92,98,99,101,102,103,104,115,121,123,124,130,135,136,139,140],them:[5,10,20,24,29,30,32,35,36,42,45,54,56,61,62,85,102,103,104,115,121,130],theme:[1,4,5,14,18,51,85],themselv:[20,29,35,62,115,121,130,134,137],theori:108,therefor:82,thi:[0,2,3,4,6,7,8,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,27,29,30,32,33,34,35,36,37,38,39,40,41,42,43,44,45,47,49,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,83,84,85,86,87,88,89,91,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,111,112,113,114,115,116,118,120,121,123,124,125,126,127,128,129,130,131,133,135,136,139,140],thing:[14,20,27,29,35,46,49,56,62,86,98,99,103,107,136],think:23,thirteen:103,this_remote_username_does_not_exist:12,those:[6,17,20,29,30,35,62,63,71,85,92,99,101,104,108,131,139],though:[67,86,103,104,108,135,140],thought:60,thread:18,threadlimit:47,threadsperchild:47,three:[9,18,20,35,43,45,92],threshold:[20,98,101],through:[0,4,12,19,20,21,24,27,29,35,36,38,39,45,61,62,63,71,84,85,86,88,92,94,97,100,101,102,103,104,105,106,108,111,112,114,116,120,124,129,131,135,136,139],throughout:[18,37,51,89],thu:[20,29,97],thumb:35,ticket:[51,53,57,85],tid:12,tie:85,tile:20,till:20,time:[1,12,16,18,20,27,29,32,34,35,43,44,47,51,57,62,63,71,84,85,86,88,89,97,100,102,103,104,106,116,124,125,131,133,139],time_loc:84,timeout:[44,63,88,90],timeoutstartsec:18,timeoutstopsec:18,timer:68,timestamp:[20,27,62],tip:[46,51],titl:[20,22,23,24,39,40,54,56,61,62,63,64,65,66,67,70,84,85,99,100,112,139],tls:[18,55,62],tls_cert:4,tls_kei:4,tlscert:4,tlsclientca:4,tlskei:4,tmp:[4,50,57,60,63,81,84,89,98,99,103,105,106,131,139],tmux:63,tmux_bin:63,to_:[88,139],to_i:[23,24,43,44,118,126,135,136],todo:62,togeth:[42,63],toggl:[20,34,37,104],token:[16,20,49,66,84,86],tong:[52,102],too:[63,71,88],tool:[24,31,43,45,62,63,83,106,107,119,125,128,134],toolbar:125,top:[17,20,22,35,56,89,101,102,112,115,121,130,139],topic:[3,6],torqu:[20,21,35,43,51,53,54,56,58,69,89,112,113,114,120],total:[20,29,34,101,102],total_block_usag:20,total_file_usag:20,touch:[20,108,139],toward:96,toyota:[35,112,113],trace:[71,139],track:[69,86,98,99],tradit:[24,63,135,136],traffic:[12,20,47,53,104],transfer:[71,85],translat:[20,51,102],transport:[20,57,86],tre:98,treat:[20,30],tree:[33,51,53,57,97,103,125],trigger:[20,99],trivial:133,troubl:[49,71,97,116],troubleshoot:[20,46,47,49,51,57,71,110],trust:[2,17,18,29,39,55,98],trustedci:100,truststor:[17,18],truststore_hostname_verification_polici:18,truststore_password:18,truststorespi:17,truthi:100,tty:139,tue:12,tuesdai:97,tuft:51,tune:46,tunnel:[44,45],turbovnc:[39,40,41,90,91,106],turbovncserv:91,turn:[13,20,32,58,62,63,64,104,137],tutori:[1,14,17,18,19,51,52,57,62,99,102,107,108,111,114,115,120,121,129,130,135,136,139],tweak:86,twice:106,two:[1,8,14,15,17,20,24,29,34,35,44,49,53,56,62,63,85,94,95,97,98,99,101,102,103,104,105,115,121,130,131,139,140],txt:[7,20,84,85,139],txt_erb:20,type:[4,17,18,20,23,24,31,34,35,36,45,49,50,56,62,63,71,73,84,85,97,103,115,118,121,123,124,125,126,130,133,135,136,140],typic:[23,24,30,31,45,49,58,84,86,98,103,115,121,130,140],ubuntu:[2,47,53,55,57,103,105,106],ucla:[51,98],uge:66,uid:[4,20,30,56,62,63,103,135,136,139],ultim:20,umask:[44,125],unabl:[20,24,27,44,63,66,69],unauthor:51,unavail:[20,103],unchang:[98,99],uncheck:[34,36],unchecked_valu:36,uncom:18,under:[4,10,19,20,22,24,29,35,39,43,44,45,54,58,69,73,77,81,82,84,86,87,88,92,96,98,99,105,111,112,113,115,116,118,121,124,126,130,131,139],undergradu:103,underli:[118,126],underneath:[20,22,23,24,97,112,113],underscor:[20,34,35],understand:[43,86,135,136],undertow:18,underwai:101,undesir:102,undocu:71,unexpect:66,unhandl:71,unicod:100,uninstal:[103,104],unintend:[20,84],uniqu:[7,20,44,84,98,106,115,121,130],unit:[4,18,20,135,139],univa:[66,98],univers:[51,52,102,124],unix:[0,2,35,80,84,85,86,90,138],unknown:[55,63],unless:[20,23,43,83,84,92,124],unlik:[12,56,108],unnecessari:86,unpack:18,unprivileg:[20,30,63],unsaf:85,unsatisfactori:71,unset:[10,13,19,20,135],unshar:63,unsupport:56,unsuspect:39,untest:119,until:[16,20,44,63,69,97,98,99,125],untouch:45,unus:[62,71,101],uofu:52,updat:[4,5,16,19,20,27,29,39,42,51,53,57,62,63,76,83,84,85,91,94,95,96,97,98,100,102,116,118,126,133,135],update_ood_port:[4,10,13,19,20,39,83,99,100,101,102,103,104,105],upgrad:[10,20,39,51,69,93,140],upload:[51,84,85,103],upload_en:85,upon:24,upper:[5,12,16,108],uppercas:35,uppi:103,upstream:20,upto:20,uri:[4,11,17,19,20,45,73,76,84,86],url:[2,11,12,16,17,19,29,37,39,45,51,52,56,63,73,81,82,84,85,86,98,103,108,109,115,117,121,122,130,132],url_field:35,urldecod:12,usabl:[16,103],usag:[20,27,29,56,62,64,71,83,86,98,100],use:[0,2,4,7,8,10,12,13,14,15,16,17,18,19,20,21,23,24,27,29,32,33,34,35,36,39,40,42,43,44,45,54,56,57,58,59,60,61,62,63,66,67,68,69,71,83,84,85,86,88,89,90,91,97,98,100,101,104,105,106,108,109,112,113,114,116,118,120,123,124,126,129,131,133,135,136,138,139],use_job_pod_reap:62,use_mainten:[20,86],use_nfs_home_dir:58,use_rewrit:[20,86,100],use_uid:63,useabl:56,used:[4,11,12,13,15,16,19,20,23,26,33,35,37,39,40,42,43,44,45,49,50,53,56,58,60,61,62,63,83,84,85,86,89,91,96,97,98,99,101,102,103,104,105,112,116,118,119,123,124,126,128,131,134,136,139],useful:[20,29,30,35,36,44,45,49,51,56,58,62,86,88,97,102,116,124,137],useless:85,user1:20,user:[1,2,4,5,6,8,9,10,11,13,14,17,18,19,21,22,23,24,26,27,28,29,30,31,32,34,36,39,40,42,43,44,45,49,51,53,54,56,57,58,60,66,69,71,73,76,77,78,79,80,81,82,83,84,85,88,89,90,92,94,96,97,98,99,100,102,103,104,106,111,112,113,114,115,116,118,120,121,123,124,125,126,127,129,130,131,133,135,136,137,139],user_defined_context:116,user_env:[12,86],user_map:12,user_map_cmd:[7,8,12,13,86,103],user_map_match:[12,86,103],user_nam:20,user_path:133,user_regex:84,user_set:85,user_settings_fil:85,useradd:[4,18],userattr:4,userinfo:[7,16],userknownhostsfil:63,usermatch:4,usermod:29,usernam:[4,5,7,12,20,27,50,56,61,62,84,86,90,103,104,115,135],username_prefix:62,usernameplacehold:20,usersearch:4,uses:[7,12,13,19,20,23,30,33,40,52,56,57,60,62,63,70,71,84,89,92,97,102,103,104,106,112,133,138,139],using:[0,1,3,4,7,8,12,14,17,18,20,21,23,29,31,33,34,35,39,43,44,45,47,50,51,53,54,55,56,58,59,60,62,63,66,76,84,85,86,89,92,95,97,98,99,101,102,104,105,106,108,109,112,115,118,121,123,125,126,130,131,135,136,138,139],usr:[2,4,20,23,29,30,39,40,50,55,56,59,60,61,62,63,64,65,66,67,69,70,71,73,81,84,90,91,103,131,135,136],usual:[20,60,106,108],utah:[51,52],utf:[60,91],util:[7,29,43,63,88,94,95,96,104,106,124,135,139,140],utility_img:135,uuid:[32,63,71],uuid_s:63,uuid_tmux:63,uuidgen:63,uwsgi_temp:81,v8314:[98,99],vagrant:58,valid:[2,8,10,13,17,19,20,22,60,61,62,70,84,85,86,100,101,116,118,123,124,126,131],valu:[4,5,12,16,17,18,20,21,31,33,35,36,37,39,40,42,43,45,47,56,58,60,62,63,64,65,66,85,86,88,92,100,102,112,113,115,116,118,121,123,124,126,130,131,139],varaibl:62,vari:[17,20,35,47,86,140],variabl:[12,20,23,29,30,32,33,35,40,43,44,45,60,62,69,71,84,85,86,88,89,90,92,98,100,101,102,103,104,108,112,118,126,131,135,136],variant:[20,34,42],variat:12,varieti:29,variou:[4,20,35,45,53,54,57,84,85,86,102],vdi:[20,97],vector:60,vendor:[17,18,98,99,139],vendor_rubi:84,verbatim:124,verbos:86,verheyd:101,veri:[1,24,35,39,49,61,67,85,88,104,115,121,130],verif:18,verifi:[5,14,17,18,19,20,38,53,54,62,97,98,99,101,102,103,105],version:[1,4,5,12,15,20,27,34,35,36,42,47,49,50,51,56,62,63,83,84,85,93,101,102,103,105,106,119,124,125,131,133,139],vglrun:125,via:[0,2,4,7,15,18,19,20,29,46,56,58,60,92,94,99,124],view:[15,17,20,28,29,31,33,51,54,62,88,95,96,103,104,115,116,118,121,126,130],viewer:[20,71],vim:108,virtual:[86,105],virtualbox:58,virtualgl:[125,128],virtualhost:[18,46,57],virut:86,vis:[59,124,125],visibl:[102,103],visit:[20,45],visual:[0,52,103,124,125],vmd:52,vnc:[28,31,35,36,39,40,41,44,47,56,63,66,86,87,88,94,124,125,126,137],vnc_arg:90,vnc_clean:90,vnc_contain:[43,91],vnc_passwd:90,vncserver:90,volum:20,volume2:20,volvo:[35,112,113],vpn:101,vsz:139,vuej:123,vulner:[20,104],wai:[12,20,30,35,42,43,45,57,62,63,69,97,98,99,101,102,103,104,108,131,135,136],wait:[44,60,90,99,116,124,137],walk:[21,27,38,111,112,114,116,120,124,129,131,135,136],walkthrough:[1,96],wall:[43,44,89],wall_tim:[35,43,89,135,136],walltim:[63,69,102],want:[18,19,20,22,23,24,27,30,32,34,35,36,39,42,43,44,45,47,49,54,56,57,62,84,89,97,98,99,100,101,102,103,108,112,113,115,118,121,124,125,126,130,135,136,139],wantedbi:18,warn:[29,39,49,51,56,69,86,97,100,103,104,115,121,130],weak:100,web:[0,4,10,13,15,16,17,19,20,26,27,28,29,35,40,43,44,45,47,49,50,57,58,60,63,71,73,74,75,84,85,86,96,97,98,99,100,101,102,103,104,105,106,108,112,113,116,118,126,138,139],web_2:103,web_3:[57,105],webdev07:18,webframework:102,webinar:51,webpack:123,webpag:[34,47],webserv:18,websit:[3,51,86],websocket:[51,71,90,106,139],websockfii:90,websockfiy_cmd:90,websockifi:[39,40,41,90,91,104,106],websockify_cmd:[39,40,90],websockify_heartbeat_second:90,webtest04:139,wed:12,week:[45,140],welcom:[29,85,140],welcome_html:20,well:[4,7,8,12,15,19,20,24,43,45,46,47,49,52,57,62,71,77,82,84,85,86,96,97,98,99,102,104,111,120,124,136],went:[71,97],were:[12,18,27,35,51,74,83,85,97,98,99,100,101,102,103],wget:[2,18,50,57,62,103,105],what:[7,8,12,17,20,34,35,39,43,49,52,53,56,57,62,63,66,71,84,85,86,90,91,101,103,104,108,112,113,124,135,139],whatev:[20,22,47,98,108,124,125],whati:131,when:[1,4,11,12,13,16,18,19,20,22,23,24,26,29,32,33,34,35,36,37,43,44,45,47,49,51,55,56,58,60,61,62,63,64,67,81,83,84,85,86,88,89,92,95,96,97,98,99,101,102,104,105,106,108,109,110,112,113,115,116,118,121,124,125,126,127,130,131,135,136,139],whenev:[24,97,100],where:[10,12,18,20,26,29,30,34,35,36,44,45,49,54,55,62,63,66,71,80,84,85,86,89,98,100,101,102,104,106,112,113,115,116,118,121,124,126,130,131,133,135,136,138,139,140],whether:[18,35,49,56,63,85,89,97,100,115,121,123,130],which:[4,7,11,14,15,18,19,20,22,23,24,27,30,31,33,34,43,47,49,52,56,58,60,62,63,71,85,89,92,97,98,99,101,102,103,104,105,106,107,108,112,113,118,124,125,126,131,133,134,135,136,137,139,140],whichev:20,white:20,whitelist:99,whitelist_path:[98,104],whitespac:20,who:[30,51,78,100,102,104,105],whoami:62,whoever:29,whole:[85,102,108,124,136],whom:29,whorka:104,whose:[20,35,71,98],why:[27,29,127],wide:[35,62,97],widest:106,widet:105,widget:[20,28,31,35,85,89,112,113,124],width:20,widthperc:125,wildcard:[20,84,86],wildfli:18,willing:[102,106],window:[20,37,45,110,120,127,128,139],wipe:10,wish:[20,27,29,35,45,62,85,91,102,104,105],within:[10,12,20,21,25,33,35,37,41,44,45,63,71,84,85,86,105,107,112,113,114,116,118,119,120,126,127,128,129,134,140],without:[1,5,20,35,42,46,51,54,56,57,60,63,71,84,85,86,97,98,99,101,102,103,104,120,131,133,139],won:[19,54,81,86,103,112,113],word:[34,100,108,109],work:[1,4,9,14,15,18,20,22,27,29,30,35,38,42,43,45,49,50,51,52,54,56,57,59,62,63,67,84,86,88,89,97,98,99,100,101,102,103,107,108,109,111,115,116,119,121,124,125,127,130,131,133,135,136,137,139],work_dir:88,workaround:71,workbench:52,workdir:89,worker:[56,62,136],workflow:[20,44,103],working_dir:135,workspac:44,workspacenam:125,world:[19,86],worth:12,would:[1,10,12,18,19,20,22,23,24,27,29,34,35,39,42,43,44,49,51,52,53,57,58,62,77,85,100,101,103,118,126,136,137,139,140],wouldn:[118,126],wrap:[35,40,43,60,88,100,104,136],wrapper:[43,51,54,56,60,61,63,64,65,66,67,70,84,88,103],writabl:69,write:[12,18,27,49,56,71,82,84,103,104,135,136,139],written:[4,24,35,63,88,90,98,100,101,104],wrong:[47,71,108],wrote:104,wsgi:[28,138],wss:20,www:[15,18,20,24,29,30,42,56,63,69,73,84,86,92,95,97,101,115,117,118,121,122,124,126,127,130,132,139],x11:[59,90,91],x86_64:[57,91,101,103,106,139],x_scl:[84,92],xalt:125,xauth:91,xdg:71,xdg_cache_hom:125,xdg_config_hom:[105,125],xdg_data_dir:92,xdg_data_hom:125,xdmod:51,xdmod_url_warning_messag:20,xdmod_url_warning_message_seconds_after_job_complet:20,xdmod_widget_job:20,xdmod_widget_job_effici:20,xfce4:125,xfce:[21,25,63,91,120,128,137],xfsettingsd:125,xfwm4:125,xhr:99,xml:[2,5,7,17,18,51,102],xorg:91,xrender:127,xsede:7,xsetroot:125,xstartup:90,xstata:137,xxx:140,xxxx:85,xxxxxxxxxxxx:85,xy001:39,xy125:39,xzf:18,yaml:[4,10,19,20,22,23,24,34,35,39,43,54,56,61,62,63,64,65,66,67,70,83,84,85,92,96,97,101,112,118,126,136],yes:[35,36,52,60],yet:52,yml:[2,4,7,8,10,11,13,16,19,20,22,23,24,28,29,30,31,33,39,40,42,44,51,54,56,61,62,63,64,65,66,67,69,70,71,72,83,88,89,92,96,97,98,100,101,102,103,104,105,108,110,112,113,116,118,123,124,126,131,139],you:[1,4,5,6,7,10,12,13,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,61,62,63,64,66,67,69,77,82,83,84,85,86,87,88,89,91,92,96,97,98,99,100,101,102,103,104,105,106,107,108,109,111,112,113,114,115,116,117,118,119,120,121,122,124,125,126,128,129,130,131,132,134,135,136,137,139],your:[1,2,4,5,7,10,13,14,15,17,20,21,22,23,24,27,28,29,31,35,36,38,39,43,44,45,46,47,48,52,53,54,55,57,61,62,63,66,67,68,69,85,86,87,92,96,97,98,99,100,101,102,103,104,105,108,109,111,112,114,115,116,117,118,120,121,122,124,125,126,129,130,131,132,135,136,139],yum:[2,4,5,18,19,50,55,57,58,91,97,98,99,100,101,102,103,104,105,133,139],yyi:140,zip:29,zone:[4,58],zoolei:101,zzz:140},titles:["Architecture","2. Authentication","SAML Authentication with Active Directory Federated Services (ADFS) and mod_auth_mellon","CAS","OpenID Connect with Dex","Two Factor Auth using Duo with Keycloak","Other Insecure Options","NSF ACCESS","OpenID Connect","Overview","1. Configure Apache Authentication","3. Configure Logout","2. Setup User Mapping","Shibboleth","OpenID Connect with KeyCloak on RHEL7","4. Add Custom Theme","5. Configure Keycloak with CILogon","2. Configure Keycloak","1. Install Keycloak","3. Configure OnDemand to authenticate with Keycloak","Customizations","Enable Interactive Desktop","2. Add a Cluster","4. Custom Job Submission","3. Modify Form Attributes","1. Software Requirements","Glossary","Adding Google Analytics","App Development","App Sharing","Enabling App Development","Interactive Apps","Adding Additional Information to the session cards","Connection Parameters conn_params","Dynamic Form Widgets","User Form (form.yml.erb)","Form Widgets","Manifest yml files","Setup Interactive Apps","3. Enable Reverse Proxy","2. Modify Cluster Configuration","1. Software Requirements","Sub-Apps and Reconfiguring exsting apps","Job Submission (submit.yml.erb)","Render Template","Connection View","Debugging and Monitoring","Apache httpd tips","Debugging Interactive Apps","Logging","Prometheus Monitoring","Open OnDemand","Install Other Interactive Apps","Installation","Cluster Configuration","3. Secure Apache httpd","Cluster Config Schema v2","1. Install Software","4. Add SELinux","Advanced Resource Manager Configrations","A Working Example of a bin_overrides Script","Cloudy Cluster","Kubernetes","LinuxHost","LSF","PBS Professional","Grid Engine","Slurm","Systemd","Test Configuration","Torque","OnDemand\u2019s Known Issues","Configuration Reference","nginx_stage app","nginx_stage app_clean","nginx_stage app_list","nginx_stage app_reset","nginx_stage nginx","nginx_stage nginx_clean","nginx_stage nginx_list","nginx_stage nginx_show","nginx_stage pun","Usage","ood-portal-generator","nginx_stage.yml","ondemand.d/*.yml files","ood_portal.yml","submit.yml.erb","Basic Batch Connect Options","Batch Connect Script Options","Batch Connect VNC Options","Batch Connect VNC Container Options","PUN environment","Release Notes","v1.0 Release Notes","v1.1 Release Notes","v1.2 Release Notes","v1.3 Release Notes","v1.4 Release Notes","v1.5 Release Notes","v1.6 Release Notes","v1.7 Release Notes","v1.8 Release Notes","v2.0 Release Notes","v3.0 Release Notes","v3.1 Release Notes","Requirements","Developing The OOD Dashboard","Developing the Dashboard App","Developing the Shell App","Tutorials: Interactive Apps","Add Custom Queues/Partitions","Use a Global Static List","Use a Local Static List","Add a Jupyter App","2. Copy Jupyter App","3. Customize Attributes","5. Deploy Jupyter App","4. Modify Submit Parameters","1. Software Requirements","Add a MATLAB App","2. Copy MATLAB App","7. Deploy MATLAB App","6. Edit Form.js","3. Customize Attributes","4. Edit Launch Script","5. Modify Submit Parameters","8. Known Issues","1. Software Requirements","Add an RStudio App","1. Copy RStudio App","4. Customize Attributes","5. Deploy RStudio App","3. Setup Singularity","2. Software Requirements","Add a Jupyter App on a Kubernetes Cluster","Add a Jupyter App on a Kubernetes Cluster that behaves like HPC compute","Troubleshooting Interactive Apps","Tutorials: Passenger Apps","Creating a Status App","Versioning Policy"],titleterms:{"2fa":101,"break":[56,71,103,104,105],"default":[20,24,30,73,81,98,102,104],"export":50,"new":[17,97,101,102,103,104,105],"public":86,"static":[112,113],"switch":136,"throw":137,"while":63,Added:[100,101,102],Adding:[27,32,45,103],Bus:63,CAS:3,PBS:[23,65,118,126],QoS:102,The:[29,63,107,133,136,137],Their:139,UGE:98,Use:[112,113,125],Used:104,Using:[20,29,62],aarch64:105,abil:[98,100,101,102],abl:48,access:[0,7,20,29],account:[97,101],acl:56,activ:[2,94,95,97,99,101,103],activejob:[101,103],adapt:[0,23,100,101],add:[10,15,16,17,19,20,22,24,57,58,98,99,100,101,102,108,111,112,113,114,120,129,135,136],added:[94,105],addit:[32,102],adf:2,administr:[104,105],advanc:[12,59,64],after:[44,58,100],alert:101,all:[98,103],allow:20,allowlist:[20,102],altern:133,alwai:100,amazon:105,analyt:[27,105],ani:63,announc:[20,97],apach:[4,10,18,19,39,47,55,71,100,101,103,104,105],app:[0,20,28,29,30,31,38,42,48,52,62,73,94,95,97,98,99,101,102,103,104,108,109,110,114,115,117,120,121,122,129,130,132,135,136,137,138,139],app_clean:74,app_list:75,app_reset:76,applic:[20,63,94,95,96,97,98,99,100],approach:63,architectur:[0,106],arm64:105,arrai:[20,99,100],asset:86,attribut:[24,35,103,112,113,116,124,131],audienc:62,audit:100,auth:[5,71],authent:[0,1,2,10,19,62,102],auto:20,autogener:98,autoload:104,automat:[12,20,35,104],avail:103,background:137,backport:140,balanc:[20,101],bar:20,base:[20,34,97,98],basic:[71,88,99],batch:[20,43,71,87,88,89,90,91,98,101,102],batch_connect:56,batchconnect:100,becaus:137,been:104,befor:44,behav:136,behind:[4,102,104],being:48,benefit:139,beta:102,better:[97,98,102],between:[103,136],bin_overrid:[56,60],blacklist:104,block:20,bootstrap:62,brand:[20,101,139],broker:101,browser:106,bug:100,build:[53,57,109,133],bundler:103,button:100,cach:[35,102],can:29,cancel:20,cannot:137,card:[20,32,35,101,103],categori:20,caus:71,ccq:102,cento:105,cgroup:63,chang:[20,24,43,55,94,95,97,98,99,100,103,104,105],charact:20,checkbox:105,chines:102,chrome:102,cilogon:[16,101],cleanup:44,client:[7,17],clone:139,cloudi:61,cluster:[22,35,40,54,56,61,62,63,97,101,102,112,135,136],code:[24,29,35],command:[12,20,97,139],common:[61,66],commun:[51,62],complet:[32,48,102,105],compon:[94,95,96,97],compos:[20,95,97,100,101],compress:100,comput:[100,101,136],conf:101,config:[19,20,56,97,100,101,104],configmap:135,configr:59,configur:[2,4,5,10,11,12,16,17,19,20,27,33,35,40,43,50,54,62,63,69,72,84,85,86,97,102,103,104,108,112],conn_param:33,connect:[4,8,14,20,33,43,45,48,71,86,87,88,89,90,91,98,101,102,105],contain:[0,63,71,91,135,136],context:[0,44,104],contribut:51,control:[29,100,103],copi:[98,102,115,121,130],core:98,creat:[20,108,109,139],css:20,custom:[4,15,20,23,35,56,71,99,103,104,105,111,112,113,116,124,131],customiz:98,dai:[20,103],dashboard:[0,20,29,50,71,94,95,97,98,100,101,102,103,107,108],data:49,debian:105,debug:[12,46,48,71,97,102],dedic:30,def:91,defin:35,delet:104,depend:[57,101,103,104,105,140],deploi:[62,117,122,132],deprec:[104,105],desktop:[0,21,24,94,97,137],detail:[20,97,98,99,100,101,102,103,104,105],dev:[108,109],develop:[28,30,98,107,108,109],dex:[4,12,20,55,102,104],diagram:0,differ:18,dir:98,direct:[103,104,105],directori:[2,20,71,97,98,103,104,108],disabl:[20,98,100,101,102,104,105],discover:98,disk:20,displai:[35,71,97,104],document:[99,101,104],doe:71,down:56,download:[20,71,105,133],drop:[101,102,104],due:71,duo:[5,99,101],dure:104,dynam:[34,43,105],easier:99,edg:71,edit:[55,123,125,139],effect:55,el6:101,el8:101,el9:104,element:34,embed:97,enabl:[21,29,30,39,57,97,98,100],enforc:[62,63],engin:[66,100],enhanc:[98,103],entir:34,entri:101,env:108,environ:[66,92,98],erb:[32,35,43,44,71,87,103,105],error:[20,63,98,100,109,127,137],etc:97,everi:101,everyon:30,exampl:[12,29,33,35,43,45,56,60,73,74,75,76,77,78,79,80,81,87],exchang:62,execut:[29,43],exist:63,experiment:98,express:12,exst:42,extend:102,factor:5,fail:71,featur:[104,105],feder:2,fetch:100,field:[24,97,102],file:[12,20,29,37,44,55,71,85,91,94,100,101,102,103,104,105,108,139],fileset:20,finish:137,firefox:98,firewal:[4,58],first:56,fix:[20,98,100,104],flow:0,fluxbox:125,forbidden:71,form:[20,24,34,35,36,100,104,112,113,123],format:103,formerli:95,freez:71,from:[4,50,53,57,94,95,96,97,98,99,100,101,102,103],front:18,full:[135,136],fulli:20,gem:[101,102,103,139],gener:[19,20,52,73,76,77,78,81,83,86,94,101,102],get:127,gke:62,global:[43,87,112],globu:105,glossari:26,googl:[27,105],grafana:[20,50,101],grid:[66,100],gridengin:102,handl:[102,112,113],hard:[24,35],hardwar:106,has:[103,104],have:[97,104],help:[20,24,97,104],hide:[20,34,97],high:71,home:[20,98,99],hook:[44,62],host:[0,2,18,20,30,63,98,101,102],hpc:136,html:[32,71,97,100,105,139],httpd:[47,55],icon:103,ident:[16,101],ignor:97,illeg:20,imag:[62,133],improv:[98,99,100,101,105],includ:98,incommon:7,incorrect:71,index:139,individu:20,info:[27,32,71,102],inform:[10,32,45],infrastructur:[94,95,96,97,98,99,100],init:135,initi:[18,104],input:61,insecur:6,instal:[2,4,5,18,19,29,50,52,53,57,73,81,97,101],instanc:16,instantli:137,instead:97,instruct:45,integr:[20,102,103,105],interact:[20,21,31,38,48,52,97,103,104,110,137],interfac:103,invalid:66,invok:125,issu:[61,66,71,98,109,127],item:[20,35,97],itself:137,java:[127,137],javascript:[98,105],job:[0,20,23,43,56,63,66,94,95,97,99,100,101,102,103,112,113,137],json:104,jupyt:[33,114,115,117,135,136],just:63,kei:98,keycloak:[5,14,16,17,18,19,62,99,101],know:108,known:[71,127],kuberenet:62,kubernet:[62,135,136],kyverno:62,label:24,land:103,larg:[71,103],launch:[20,42,63,103,104,125],layout:[20,103],ldap:[4,17],level:97,libcgroup:63,librari:63,like:136,limit:[20,63],link:[20,71,97,101,103],linux:[0,101,105],linuxhost:[23,24,63],list:[97,112,113],load:63,local:[20,100,102,108,113],locat:[47,48,104],log:[47,48,49,97],logic:71,login:56,logo:102,logout:[11,86],longer:[97,103],lsf:[64,100],mai:71,main:[19,43,44,139],mainten:[20,101],major:[103,140],make:[30,97],malform:101,manag:[4,59,62,103,118,125,126],mani:100,manifest:[20,37,100,103],manual:20,map:[7,12,16,73],mapfil:12,markdown:100,match:101,mate:125,matlab:[120,121,122,125,137],max:[34,102],maxim:137,memcach:103,menu:[20,101],messag:[20,24,103],meta:56,metadata:103,min:34,minim:24,minor:[71,140],miss:[20,98],mod_auth_mellon:2,mod_auth_openidc:[19,102],mod_ood_proxi:94,mode:[20,98,101],modifi:[24,40,112,118,126],modul:10,monitor:[46,50],more:27,motd:20,mount:[135,136],move:137,much:71,multilin:71,multipl:[97,100,102],name:[20,66,71,97,101],nativ:[45,102],navbar:[98,104],navconfig:104,navig:20,nginx:[77,86,99],nginx_clean:[78,101],nginx_list:79,nginx_show:80,nginx_stag:[73,74,75,76,77,78,79,80,81,84],ngnix_stag:100,nightli:140,node:[59,62,97,100,101],nodej:[98,103],nomethoderror:71,none:98,note:[93,94,95,96,97,98,99,100,101,102,103,104,105],notebook:33,novnc:[71,102],now:[101,102,103],nsf:7,number:140,object:44,offer:100,oidc:[7,62],old:[104,109],older:71,ondemand:[4,10,17,19,20,27,30,51,55,62,71,85,99,100,101,102,103,139],onli:[55,56],ood:[2,19,20,83,94,101,102,107,108],ood_auth_map:103,ood_port:[55,86],ood_ssh_host:100,open:[27,51,55,62,97,100,103],openid:[4,8,14,86],oper:106,option:[6,20,30,34,43,73,76,77,78,80,81,83,84,86,87,88,89,90,91,97,98,100,104,105],other:[0,6,34,52,102,118,126,139],output:71,overrid:20,overview:[0,9,20,29,139],own:34,packag:[4,104,105],page:[20,98,99,103,104],panel:[45,102],paramet:[33,43,118,126],pars:139,partit:111,pass:100,passeng:[0,98,99,138],password:45,past:[71,98,102],patch:140,path:105,pbspro:100,peer:[29,99],per:[62,86],percent:101,perform:[47,64,99],period:97,permiss:29,pid:100,pin:[20,103],place:18,polici:[62,140],port:20,portal:[10,19,55,83,94,101,102],post:45,ppc64le:105,predefin:[20,35],prepar:2,privat:62,problem:71,process:50,profession:[23,65,118,126],profil:[20,85,104],program:71,project:[20,101],prometheu:50,prompt:61,properti:85,protect:102,provid:[16,103],proxi:[4,39,45,86,104],publish:139,pun:[81,92,98],purpos:139,qualiti:100,queri:27,queue:111,quick:[42,104],quota:[20,98,100,139],rais:100,realm:17,rebuild:97,recent:104,reconfigur:42,redhat:105,redirect:86,reduc:101,refer:[4,72],regener:101,regex:103,regist:16,registr:[7,86],registri:62,reguluar:12,releas:[93,94,95,96,97,98,99,100,101,102,103,104,105],remot:[12,20,104],remov:[16,24,100],render:[44,100],repositori:57,request:[0,135],requir:[25,39,41,73,77,80,81,97,98,103,106,119,128,134],resiz:137,resourc:[59,63,118,126,135],restart:[47,55,101],retain:102,revers:[4,39,45,86,104],rewriteengin:100,rhel7:14,root:71,rpm:[50,97],rstudio:[0,71,99,129,130,132],rubi:[98,102,103],run:[97,100,101,104,139],safari:71,saml:2,sanit:[10,101],schedul:102,schema:56,scl:[99,103],script:[12,20,43,44,60,89,97,101,125],secret:98,secur:[55,98,100,104],select:[20,34,71],selector:105,selinux:[58,101,104],separ:18,server:[18,43],servic:[2,4,47,55,57],session:[0,10,20,32,35,44,45,49,71,97,101,104],set:[20,34,43,64,87,98,100,101,105,108],setup:[12,38,133,139],sever:98,sge:[98,99],share:[0,29,63,99,101,103],shell:[0,20,66,71,94,97,98,100,101,102,103,105,109],shibboleth:[7,13],shortcut:20,show:[47,101],signific:104,silent:71,simpl:87,sinatra:102,singular:[71,133],size:[20,101],slice:63,slow:71,slurm:[23,67,98,99,100,102,118,126,136],softwar:[25,41,57,63,106,119,128,134],sourc:[4,50,53,57],spec:[135,136],special:[51,101,102],specif:[63,101],specifi:[30,43],spi:5,ssh:[20,98,101],stale:100,start:[18,57],starter:91,state:63,statu:139,step:[18,39],store:97,streamlin:102,string:100,styliz:45,sub:42,submiss:[23,43,100,112,113],submit:[35,43,87,104,118,126,135,136],suggest:101,support:[16,20,85,97,98,99,100,101,102,104,105,106,140],svg:102,system:[0,20,29,49,106,139],systemd:[63,68],tag:140,taglin:20,take:55,target:63,templat:[20,43,44,52,71,100],termin:100,test:[50,69,139],test_command:139,text:[20,99],thank:[51,101,102,104],thei:97,theme:[15,20,103],thing:108,ticket:[20,104],tighter:103,time:140,tip:47,titl:101,token:62,top:97,torqu:[23,70,99,102,118,126],translat:71,tree:71,troubleshoot:[63,137],tune:47,tutori:[110,138],two:5,type:43,ubuntu:104,unauthor:20,under:97,understand:20,undetermin:63,updat:[55,58,99,101,103,104,105,139,140],upgrad:[71,94,95,96,97,98,99,100,101,102,103,104,105],upload:[20,71,102,105],url:[20,100],usag:82,use:[99,102,103],user:[0,7,12,16,20,35,55,62,63,86,101,105],using:[5,19,71,103],valu:[24,34],vari:99,verif:97,verifi:[39,57],version:[71,94,95,96,97,98,99,100,104,109,140],via:[50,102],view:[45,71,102,139],virtualhost:47,visual:59,vnc:[0,43,45,90,91,100,102],walltim:62,warn:[20,98,101],web:62,websocket:20,when:[71,100,137],whether:103,which:35,whitelist:[98,104],who:29,widget:[34,36,103,104,105],window:[97,103,125,137],without:[48,125],work:[39,60,71],wrapper:[20,101],xdmod:[20,102],xfce:[24,97,125],xml:71,yml:[35,37,43,55,84,85,86,87,135,136],you:127,your:[16,34]}}) \ No newline at end of file +Search.setIndex({docnames:["architecture","authentication","authentication/adfs-with-auth-mellon","authentication/cas","authentication/dex","authentication/duo-2fa-with-keycloak","authentication/insecure","authentication/nsf-access","authentication/oidc","authentication/overview","authentication/overview/configure-authentication","authentication/overview/configure-logout","authentication/overview/map-user","authentication/shibboleth","authentication/tutorial-oidc-keycloak-rhel7","authentication/tutorial-oidc-keycloak-rhel7/add-custom-theme","authentication/tutorial-oidc-keycloak-rhel7/configure-cilogon","authentication/tutorial-oidc-keycloak-rhel7/configure-keycloak-webui","authentication/tutorial-oidc-keycloak-rhel7/install-keycloak","authentication/tutorial-oidc-keycloak-rhel7/install_mod_auth_openidc","customizations","enable-desktops","enable-desktops/add-cluster","enable-desktops/custom-job-submission","enable-desktops/modify-form-attributes","enable-desktops/software-requirements","glossary","how-tos/analytics/google-analytics","how-tos/app-development","how-tos/app-development/app-sharing","how-tos/app-development/enabling-development-mode","how-tos/app-development/interactive","how-tos/app-development/interactive/additional-info","how-tos/app-development/interactive/conn-params","how-tos/app-development/interactive/dynamic-form-widgets","how-tos/app-development/interactive/form","how-tos/app-development/interactive/form-widgets","how-tos/app-development/interactive/manifest","how-tos/app-development/interactive/setup","how-tos/app-development/interactive/setup/enable-reverse-proxy","how-tos/app-development/interactive/setup/modify-cluster-configuration","how-tos/app-development/interactive/setup/software-requirements","how-tos/app-development/interactive/sub-apps","how-tos/app-development/interactive/submit","how-tos/app-development/interactive/template","how-tos/app-development/interactive/view","how-tos/debug","how-tos/debug/debug-apache","how-tos/debug/debug-interactive-apps","how-tos/monitoring/logging","how-tos/monitoring/prometheus","index","install-ihpc-apps","installation","installation/add-cluster-config","installation/add-ssl","installation/cluster-config-schema","installation/install-software","installation/modify-system-security","installation/resource-manager/advanced-configs","installation/resource-manager/bin-override-example","installation/resource-manager/ccq","installation/resource-manager/kubernetes","installation/resource-manager/linuxhost","installation/resource-manager/lsf","installation/resource-manager/pbspro","installation/resource-manager/sge","installation/resource-manager/slurm","installation/resource-manager/systemd","installation/resource-manager/test","installation/resource-manager/torque","reference","reference/commands/nginx-stage/commands/app","reference/commands/nginx-stage/commands/app-clean","reference/commands/nginx-stage/commands/app-list","reference/commands/nginx-stage/commands/app-reset","reference/commands/nginx-stage/commands/nginx","reference/commands/nginx-stage/commands/nginx-clean","reference/commands/nginx-stage/commands/nginx-list","reference/commands/nginx-stage/commands/nginx-show","reference/commands/nginx-stage/commands/pun","reference/commands/nginx-stage/usage","reference/commands/ood-portal-generator","reference/files/nginx-stage-yml","reference/files/ondemand-d-ymls","reference/files/ood-portal-yml","reference/files/submit-yml-erb","reference/files/submit-yml/basic-bc-options","reference/files/submit-yml/script","reference/files/submit-yml/vnc-bc-options","reference/files/submit-yml/vnc-container-bc-options","reference/pun-environment","release-notes","release-notes/v1.0-release-notes","release-notes/v1.1-release-notes","release-notes/v1.2-release-notes","release-notes/v1.3-release-notes","release-notes/v1.4-release-notes","release-notes/v1.5-release-notes","release-notes/v1.6-release-notes","release-notes/v1.7-release-notes","release-notes/v1.8-release-notes","release-notes/v2.0-release-notes","release-notes/v3.0-release-notes","release-notes/v3.1-release-notes","release-notes/v4.0-release-notes","requirements","security","security/vulnerability-management","tutorials/tutorials-dashboard-apps","tutorials/tutorials-dashboard-apps/dashboard","tutorials/tutorials-dashboard-apps/shell-app","tutorials/tutorials-interactive-apps","tutorials/tutorials-interactive-apps/add-custom-queue","tutorials/tutorials-interactive-apps/add-custom-queue/global-static-list","tutorials/tutorials-interactive-apps/add-custom-queue/local-static-list","tutorials/tutorials-interactive-apps/add-jupyter","tutorials/tutorials-interactive-apps/add-jupyter/copy-app","tutorials/tutorials-interactive-apps/add-jupyter/customize-attributes","tutorials/tutorials-interactive-apps/add-jupyter/deploy","tutorials/tutorials-interactive-apps/add-jupyter/modify-submit-parameters","tutorials/tutorials-interactive-apps/add-jupyter/software-requirements","tutorials/tutorials-interactive-apps/add-matlab","tutorials/tutorials-interactive-apps/add-matlab/copy-app","tutorials/tutorials-interactive-apps/add-matlab/deploy","tutorials/tutorials-interactive-apps/add-matlab/edit-form-js","tutorials/tutorials-interactive-apps/add-matlab/edit-form-yml","tutorials/tutorials-interactive-apps/add-matlab/edit-script-sh","tutorials/tutorials-interactive-apps/add-matlab/edit-submit-yml","tutorials/tutorials-interactive-apps/add-matlab/known-issues","tutorials/tutorials-interactive-apps/add-matlab/software-requirements","tutorials/tutorials-interactive-apps/add-rstudio","tutorials/tutorials-interactive-apps/add-rstudio/copy-app","tutorials/tutorials-interactive-apps/add-rstudio/customize-attributes","tutorials/tutorials-interactive-apps/add-rstudio/deploy","tutorials/tutorials-interactive-apps/add-rstudio/setup-singularity","tutorials/tutorials-interactive-apps/add-rstudio/software-requirements","tutorials/tutorials-interactive-apps/k8s-jupyter","tutorials/tutorials-interactive-apps/k8s-like-hpc-jupyter","tutorials/tutorials-interactive-apps/troubleshooting","tutorials/tutorials-passenger-apps","tutorials/tutorials-passenger-apps/nodejs-starter-app","tutorials/tutorials-passenger-apps/python-starter-app","tutorials/tutorials-passenger-apps/ruby-starter-app","version-policy"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":1,"sphinx.domains.index":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:56},filenames:["architecture.rst","authentication.rst","authentication/adfs-with-auth-mellon.rst","authentication/cas.rst","authentication/dex.rst","authentication/duo-2fa-with-keycloak.rst","authentication/insecure.rst","authentication/nsf-access.rst","authentication/oidc.rst","authentication/overview.rst","authentication/overview/configure-authentication.rst","authentication/overview/configure-logout.rst","authentication/overview/map-user.rst","authentication/shibboleth.rst","authentication/tutorial-oidc-keycloak-rhel7.rst","authentication/tutorial-oidc-keycloak-rhel7/add-custom-theme.rst","authentication/tutorial-oidc-keycloak-rhel7/configure-cilogon.rst","authentication/tutorial-oidc-keycloak-rhel7/configure-keycloak-webui.rst","authentication/tutorial-oidc-keycloak-rhel7/install-keycloak.rst","authentication/tutorial-oidc-keycloak-rhel7/install_mod_auth_openidc.rst","customizations.rst","enable-desktops.rst","enable-desktops/add-cluster.rst","enable-desktops/custom-job-submission.rst","enable-desktops/modify-form-attributes.rst","enable-desktops/software-requirements.rst","glossary.rst","how-tos/analytics/google-analytics.rst","how-tos/app-development.rst","how-tos/app-development/app-sharing.rst","how-tos/app-development/enabling-development-mode.rst","how-tos/app-development/interactive.rst","how-tos/app-development/interactive/additional-info.rst","how-tos/app-development/interactive/conn-params.rst","how-tos/app-development/interactive/dynamic-form-widgets.rst","how-tos/app-development/interactive/form.rst","how-tos/app-development/interactive/form-widgets.rst","how-tos/app-development/interactive/manifest.rst","how-tos/app-development/interactive/setup.rst","how-tos/app-development/interactive/setup/enable-reverse-proxy.rst","how-tos/app-development/interactive/setup/modify-cluster-configuration.rst","how-tos/app-development/interactive/setup/software-requirements.rst","how-tos/app-development/interactive/sub-apps.rst","how-tos/app-development/interactive/submit.rst","how-tos/app-development/interactive/template.rst","how-tos/app-development/interactive/view.rst","how-tos/debug.rst","how-tos/debug/debug-apache.rst","how-tos/debug/debug-interactive-apps.rst","how-tos/monitoring/logging.rst","how-tos/monitoring/prometheus.rst","index.rst","install-ihpc-apps.rst","installation.rst","installation/add-cluster-config.rst","installation/add-ssl.rst","installation/cluster-config-schema.rst","installation/install-software.rst","installation/modify-system-security.rst","installation/resource-manager/advanced-configs.rst","installation/resource-manager/bin-override-example.rst","installation/resource-manager/ccq.rst","installation/resource-manager/kubernetes.rst","installation/resource-manager/linuxhost.rst","installation/resource-manager/lsf.rst","installation/resource-manager/pbspro.rst","installation/resource-manager/sge.rst","installation/resource-manager/slurm.rst","installation/resource-manager/systemd.rst","installation/resource-manager/test.rst","installation/resource-manager/torque.rst","reference.rst","reference/commands/nginx-stage/commands/app.rst","reference/commands/nginx-stage/commands/app-clean.rst","reference/commands/nginx-stage/commands/app-list.rst","reference/commands/nginx-stage/commands/app-reset.rst","reference/commands/nginx-stage/commands/nginx.rst","reference/commands/nginx-stage/commands/nginx-clean.rst","reference/commands/nginx-stage/commands/nginx-list.rst","reference/commands/nginx-stage/commands/nginx-show.rst","reference/commands/nginx-stage/commands/pun.rst","reference/commands/nginx-stage/usage.rst","reference/commands/ood-portal-generator.rst","reference/files/nginx-stage-yml.rst","reference/files/ondemand-d-ymls.rst","reference/files/ood-portal-yml.rst","reference/files/submit-yml-erb.rst","reference/files/submit-yml/basic-bc-options.rst","reference/files/submit-yml/script.rst","reference/files/submit-yml/vnc-bc-options.rst","reference/files/submit-yml/vnc-container-bc-options.rst","reference/pun-environment.rst","release-notes.rst","release-notes/v1.0-release-notes.rst","release-notes/v1.1-release-notes.rst","release-notes/v1.2-release-notes.rst","release-notes/v1.3-release-notes.rst","release-notes/v1.4-release-notes.rst","release-notes/v1.5-release-notes.rst","release-notes/v1.6-release-notes.rst","release-notes/v1.7-release-notes.rst","release-notes/v1.8-release-notes.rst","release-notes/v2.0-release-notes.rst","release-notes/v3.0-release-notes.rst","release-notes/v3.1-release-notes.rst","release-notes/v4.0-release-notes.rst","requirements.rst","security.rst","security/vulnerability-management.rst","tutorials/tutorials-dashboard-apps.rst","tutorials/tutorials-dashboard-apps/dashboard.rst","tutorials/tutorials-dashboard-apps/shell-app.rst","tutorials/tutorials-interactive-apps.rst","tutorials/tutorials-interactive-apps/add-custom-queue.rst","tutorials/tutorials-interactive-apps/add-custom-queue/global-static-list.rst","tutorials/tutorials-interactive-apps/add-custom-queue/local-static-list.rst","tutorials/tutorials-interactive-apps/add-jupyter.rst","tutorials/tutorials-interactive-apps/add-jupyter/copy-app.rst","tutorials/tutorials-interactive-apps/add-jupyter/customize-attributes.rst","tutorials/tutorials-interactive-apps/add-jupyter/deploy.rst","tutorials/tutorials-interactive-apps/add-jupyter/modify-submit-parameters.rst","tutorials/tutorials-interactive-apps/add-jupyter/software-requirements.rst","tutorials/tutorials-interactive-apps/add-matlab.rst","tutorials/tutorials-interactive-apps/add-matlab/copy-app.rst","tutorials/tutorials-interactive-apps/add-matlab/deploy.rst","tutorials/tutorials-interactive-apps/add-matlab/edit-form-js.rst","tutorials/tutorials-interactive-apps/add-matlab/edit-form-yml.rst","tutorials/tutorials-interactive-apps/add-matlab/edit-script-sh.rst","tutorials/tutorials-interactive-apps/add-matlab/edit-submit-yml.rst","tutorials/tutorials-interactive-apps/add-matlab/known-issues.rst","tutorials/tutorials-interactive-apps/add-matlab/software-requirements.rst","tutorials/tutorials-interactive-apps/add-rstudio.rst","tutorials/tutorials-interactive-apps/add-rstudio/copy-app.rst","tutorials/tutorials-interactive-apps/add-rstudio/customize-attributes.rst","tutorials/tutorials-interactive-apps/add-rstudio/deploy.rst","tutorials/tutorials-interactive-apps/add-rstudio/setup-singularity.rst","tutorials/tutorials-interactive-apps/add-rstudio/software-requirements.rst","tutorials/tutorials-interactive-apps/k8s-jupyter.rst","tutorials/tutorials-interactive-apps/k8s-like-hpc-jupyter.rst","tutorials/tutorials-interactive-apps/troubleshooting.rst","tutorials/tutorials-passenger-apps.rst","tutorials/tutorials-passenger-apps/nodejs-starter-app.rst","tutorials/tutorials-passenger-apps/python-starter-app.rst","tutorials/tutorials-passenger-apps/ruby-starter-app.rst","version-policy.rst"],objects:{"":{"/node/(host)/(port)(path)":[45,0,1,"get--node-(host)-(port)(path)"],"/rnode/(host)/(port)(path)":[45,0,1,"get--rnode-(host)-(port)(path)"]},"nginx_stage-app":{"--skip-nginx":[72,1,1,"cmdoption-nginx-stage-app-n"],"--sub-request":[72,1,1,"cmdoption-nginx-stage-app-r"],"--sub-uri":[72,1,1,"cmdoption-nginx-stage-app-i"],"--user":[72,1,1,"cmdoption-nginx-stage-app-u"],"-N":[72,1,1,"cmdoption-nginx-stage-app-n"],"-i":[72,1,1,"cmdoption-nginx-stage-app-i"],"-r":[72,1,1,"cmdoption-nginx-stage-app-r"],"-u":[72,1,1,"cmdoption-nginx-stage-app-u"]},"nginx_stage-app_reset":{"--sub-uri":[75,1,1,"cmdoption-nginx-stage-app-reset-i"],"-i":[75,1,1,"cmdoption-nginx-stage-app-reset-i"]},"nginx_stage-nginx":{"--signal":[76,1,1,"cmdoption-nginx-stage-nginx-s"],"--skip-nginx":[76,1,1,"cmdoption-nginx-stage-nginx-n"],"--user":[76,1,1,"cmdoption-nginx-stage-nginx-u"],"-N":[76,1,1,"cmdoption-nginx-stage-nginx-n"],"-s":[76,1,1,"cmdoption-nginx-stage-nginx-s"],"-u":[76,1,1,"cmdoption-nginx-stage-nginx-u"]},"nginx_stage-nginx_clean":{"--force":[77,1,1,"cmdoption-nginx-stage-nginx-clean-f"],"--skip-nginx":[77,1,1,"cmdoption-nginx-stage-nginx-clean-n"],"-N":[77,1,1,"cmdoption-nginx-stage-nginx-clean-n"],"-f":[77,1,1,"cmdoption-nginx-stage-nginx-clean-f"]},"nginx_stage-nginx_show":{"--user":[79,1,1,"cmdoption-nginx-stage-nginx-show-u"],"-u":[79,1,1,"cmdoption-nginx-stage-nginx-show-u"]},"nginx_stage-pun":{"--app-init-url":[80,1,1,"cmdoption-nginx-stage-pun-a"],"--skip-nginx":[80,1,1,"cmdoption-nginx-stage-pun-n"],"--user":[80,1,1,"cmdoption-nginx-stage-pun-u"],"-N":[80,1,1,"cmdoption-nginx-stage-pun-n"],"-a":[80,1,1,"cmdoption-nginx-stage-pun-a"],"-u":[80,1,1,"cmdoption-nginx-stage-pun-u"]},"ood-portal-generator":{"--config":[82,1,1,"cmdoption-ood-portal-generator-c"],"--detailed-exitcodes":[82,1,1,"cmdoption-ood-portal-generator-detailed-exitcodes"],"--force":[82,1,1,"cmdoption-ood-portal-generator-f"],"--rpm":[82,1,1,"cmdoption-ood-portal-generator-r"],"--template":[82,1,1,"cmdoption-ood-portal-generator-t"],"-c":[82,1,1,"cmdoption-ood-portal-generator-c"],"-f":[82,1,1,"cmdoption-ood-portal-generator-f"],"-r":[82,1,1,"cmdoption-ood-portal-generator-r"],"-t":[82,1,1,"cmdoption-ood-portal-generator-t"]},"ood_auth_map.mapfile":{"--file":[12,1,1,"cmdoption-ood-auth-map-mapfile-f"],"-f":[12,1,1,"cmdoption-ood-auth-map-mapfile-f"]}},objnames:{"0":["http","get","HTTP get"],"1":["std","cmdoption","program option"]},objtypes:{"0":"http:get","1":"std:cmdoption"},terms:{"0000ff":[20,84],"007fff":84,"00am":20,"00pm":20,"1000m":20,"10mb":20,"1240x900":89,"150mb":106,"150px":84,"162m":100,"172m":100,"17m":100,"181m":100,"1920x1080":89,"1_all":102,"20g":20,"20gb":106,"20s":50,"24h":4,"24t10":69,"256m":100,"28800s":63,"2f58606":12,"2faccess":7,"2fbatch":[120,128],"2fbatchconnect":[120,128],"2fcilogon":12,"2fidp":[7,11,13],"2flogout":[11,13],"2fondemand":[8,11,19],"2fprofil":[11,13],"2fservera":12,"2ftemplat":[120,128],"2fuser":12,"2fwww":19,"2jhfyh7":20,"2mb":20,"2u5":97,"31m":100,"3rd":56,"40cilogon":12,"40core":138,"40harvard":12,"40osc":12,"41fa":8,"48core":138,"4gi":137,"500mi":137,"50gb":106,"53565a":83,"592m":100,"5b4d93636e0968be920cf409252292d674cc951d":60,"5mb":20,"5tb":126,"63m":100,"64g":63,"64gb":[63,106],"65kb":20,"688x":64,"68m":100,"6mb":20,"716de4ac":84,"73s0qfxc5e_s":63,"87f7":8,"88a4":8,"99m":100,"9f1fe759":84,"boolean":[4,35,36,37,58,62,84,85,88,100,102,103],"break":[10,12,60,83,88,99,100,133,144],"byte":[20,83],"case":[10,12,14,19,20,23,24,27,34,35,39,43,44,45,55,57,62,63,83,85,100,101,120,128,137,138],"class":[17,20,30,35,45,85,88,102,103,105,143],"const":141,"default":[4,11,12,14,15,16,17,18,19,21,23,25,28,29,34,35,36,37,39,43,44,45,47,49,50,51,53,54,56,57,58,60,61,62,63,65,66,67,76,82,83,84,85,87,88,89,90,91,96,98,99,100,102,104,107,110,114,115,120,128,137],"export":[2,20,33,39,40,43,44,46,59,60,63,66,67,85,88,127,133,135],"final":[10,17,18,35,43,69,95,133],"float":35,"function":[0,1,12,20,33,39,44,56,70,85,87,91,97,98,102,106,110,127,133,137,141,144],"import":[2,17,23,27,29,40,47,49,60,62,84,90,99,137,138,141,142,143],"long":[20,35,44,96,99,139],"new":[4,5,10,13,14,19,20,23,27,29,30,36,37,42,44,45,50,53,57,62,83,84,92,93,94,95,97,98,110,117,119,120,123,124,128,132,134,137,138,141,142,143,144],"null":[4,5,11,19,24,35,59,60,62,63,83,84,85,87,99,137,138,142],"public":[4,16,20,55,57,58,84,91],"return":[2,7,11,12,13,20,24,35,39,43,44,56,60,66,72,74,75,80,120,128,141,142,143],"short":[68,100,106],"static":[1,4,20,44,100,112,113],"switch":[100,101,112,127],"throw":[99,112,129],"true":[4,7,8,18,20,24,30,34,35,36,37,43,45,56,60,62,63,67,83,84,85,88,126,137,143],"try":[6,47,49,55,56,60,61,85,87,100,101,102,103,104,110,118,143],"var":[4,12,18,20,23,24,29,30,42,49,58,60,63,66,69,72,79,80,83,85,90,91,94,95,96,97,98,100,101,102,117,118,119,123,124,132,133,134,138,141,142,143],"while":[5,20,34,47,52,84,100,101,107,110,118,139,141],Added:[18,98,104],Adding:[20,28,31,46,51,53,85],And:[24,27,39,106,111],Being:62,But:[24,34,35,43,44,110,120,128],CAS:[1,53],DNS:63,For:[2,4,5,10,14,16,18,20,22,23,24,27,29,30,35,36,41,43,44,45,49,50,52,54,55,56,60,62,63,65,69,84,85,88,96,97,98,99,100,102,103,105,108,114,115,117,120,123,128,132,138,139,141,143,144],Has:100,IDE:[63,110],IDs:[35,105],IPs:85,K8s:[62,137,138],NFS:58,NOT:[20,25,41,44,45,121,130,136],Not:[20,35,83,88],OSes:104,One:[20,49,62,103,107,137,138],PBS:[21,51,54,70,88,100,116,122],QoS:35,TLS:4,That:[22,24,35,40,42,54,100,133],The:[0,1,2,4,7,8,10,11,12,13,16,17,19,20,21,22,23,24,25,26,28,30,32,33,34,35,36,37,39,41,42,43,44,45,47,49,50,51,52,53,54,55,56,57,58,60,61,62,64,65,66,67,69,70,72,75,76,79,80,81,82,83,84,85,86,87,88,89,90,93,94,95,96,97,98,99,100,101,102,103,104,105,106,108,110,111,112,114,115,116,117,118,119,120,121,122,123,124,126,127,128,129,130,131,132,133,134,136,137,142,143,144],Then:[13,17,18,19,20,30,35,40,111,117,123,132,133],There:[6,20,23,24,29,42,44,45,49,61,62,63,84,85,100,102,103,120,126,128,129,133,141,142],These:[5,9,14,17,20,29,35,37,43,44,45,46,49,51,54,62,63,84,85,86,87,88,89,91,96,102,103,105,107,108,117,120,123,128,132,138],ToS:20,Tos:51,Use:[8,13,17,20,24,43,47,62,63,82,83,84,85,88,90,106,110,112,113,122,126,139],Used:[4,56,85,91,99],Useful:[85,118],Uses:35,Using:[11,14,60,63,67,85,98],VMs:106,WILL:44,Will:56,With:[20,27,34,42,60,63,110,143],__main__:[60,142],__name__:[60,142],_access:49,_any_:20,_blank:33,_email:20,_erb:20,_err_to_out:60,_error:49,_footer:20,_html:20,_in:60,_limits_:137,_my_cluster_widget:20,_my_new_widget:20,_native_vnc_:45,_requests_:137,_shibsession_:[10,13],_theme:15,_tmux:63,_your_:7,a12ff167dd13:8,aaba6ahbauquag:[20,56],aarch64:106,ab001:39,ab100:39,abaqu:52,abc123:[42,84],abil:[16,20,56,62,63,66,96,98,103,105],abl:[4,18,19,20,21,24,29,35,42,46,49,53,54,60,62,63,84,85,93,96,99,101,102,110,116,122,131,135,139,141,142],abort:99,about:[20,27,30,39,47,48,49,50,51,55,56,66,99,101,114,115,118,120,128,137,138,142],abov:[7,11,13,20,22,23,24,25,27,32,35,39,41,44,50,62,63,67,84,85,89,91,93,94,95,100,102,103,108,110,114,115,120,121,128,130,136,137,142],abruptli:118,absolut:[20,23,45,63,85,90,133],abus:44,academ:125,acceler:[126,130],accept:[0,4,17,20,27,35,58,101],access:[1,4,11,12,14,16,17,18,19,23,30,32,33,43,44,45,51,53,54,56,57,58,62,69,80,83,84,85,93,94,96,97,100,101,102,103,107,113,117,123,132,135,141,142,143],accesslog:85,accomid:104,accommod:85,accomplish:[10,56,114,115,133,139],accord:[106,127],accordingli:[7,20,47],account:[16,20,23,24,27,34,35,42,43,57,62,69,84,85,87,88,99,126,137,138],accounting_id:[35,43,88,137,138],achiev:63,acknowledg:108,acl:[20,103,105],across:[20,35,49,84,102,114],act:[19,29,42,58,62],action:[5,20,33,45,58,102,107],activ:[1,18,20,44,50,53,54,62,77,79,84,95,97,99,101,141,142,143],activejob:[20,29,91,96],actual:[20,22,23,35,40,42,47,55,57,59,62,63,69,84,102,106,110,120,127,128,135,143],adapt:[20,21,24,39,40,51,56,58,60,61,62,63,64,65,66,67,68,70,93,94,97,120,126,128,138],adaybujeda:103,add:[1,2,4,5,9,14,18,21,23,29,32,33,34,35,37,39,43,51,52,53,54,56,60,62,63,66,80,84,85,91,93,96,102,103,104,105,107,109,112,120,128,129,140,142,143],add_line_to_configmap:137,added:[15,16,20,29,34,35,36,43,45,54,83,84,85,87,91,96,97,98,99,100,101,102,103,129],adding:[10,15,20,29,55,57,62,84,94,96,97,98,99,102,118,120,126,128,133,142],addit:[4,7,20,28,31,34,37,80,83,84,85,89,90,100,133,137,138,144],addition:[20,31,34,85,107],addr:4,address:[12,18,20,49,62,83,85,88,100],adf:[1,53],adjust:[4,17,20,50,63,84],admin:[4,15,16,17,18,19,20,29,49,62,98,109,141,142,143],administr:[2,20,35,42,45,47,49,57,67,83,92,100,101,107,141,142,143],adopt:[51,144],advanc:[9,23,51,54,56,142],advantag:[23,43,45,96,98,114,115,116,122,131],advers:129,adversli:83,advertis:[29,53],advic:20,aebruno:103,affect:[20,24,58,69,83,91,94,96,102,103,105,108],after:[1,12,15,18,19,20,22,24,29,31,33,34,35,53,54,56,57,60,62,63,69,84,87,88,96,98,100,101,102,103,104,106,110,114,115,117,118,119,123,124,132,134,138,139,141,144],after_initi:[20,30,103,105],again:[20,32,56,63,69,118],against:[12,20,23,35,102],agarw:103,agent:85,aggreg:[20,50],agnost:[43,114,115],ago:18,agreement:20,ahead:[96,110,118,126,133],aid:97,aim:109,alert:[20,96],alia:[16,20],alias:[20,85],aliv:[19,20,47,104],all:[0,4,5,7,12,18,19,20,22,23,24,27,28,29,31,34,35,39,42,43,44,45,46,49,52,53,54,56,57,58,62,63,67,69,71,73,74,75,77,78,81,83,84,85,86,87,88,89,90,91,93,94,95,96,98,99,100,101,103,104,108,110,114,117,119,120,123,124,128,132,133,134,136,137,138,140,141,142,143,144],all_app:20,all_namespac:62,alllow:104,alloc:[7,63,126],allow:[17,22,23,24,29,34,35,36,42,43,45,48,50,51,53,56,58,62,63,70,83,84,85,97,98,99,100,101,102,103,107,113,114,117,120,126,128,133],allow_embed:20,allow_origin:137,allowlist:[51,56,85,103,105,107],alma:[50,57],almalinux:[50,53,57,104,106],almost:60,alon:[20,35,133],along:[32,85,100,103],alongsid:[97,144],alpha:100,alphabet:[51,91],alphanumer:[44,83],alreadi:[7,17,18,20,35,40,43,44,45,49,86,101,114,115,127,137,138],also:[1,12,14,15,20,23,24,29,30,32,34,35,36,43,44,45,49,50,51,52,54,57,58,60,62,63,64,77,82,83,85,86,87,96,97,98,101,102,103,106,110,114,118,120,126,128,137,138,144],alter:[56,60,83],altern:[7,20,56,62,67,84,129,131],although:[20,29,43,120,128],altogeth:[20,36,103,107],alwai:[12,20,24,29,32,35,40,62,69,85,88,96,97,98,100,101,102,104],alwasi:137,amazon:[53,57,106],amd64:[50,62],among:57,amount:[35,42,88],amzn2023:57,an0047:29,analysi:[99,101],analyt:[46,51,84,85],analyticsservic:27,analyticsv3:27,ancestor:[20,85],anchor:[20,39,55],ani:[2,10,17,19,20,22,24,27,32,34,35,39,40,42,44,45,49,59,60,62,67,69,72,73,75,81,82,83,84,85,89,90,96,97,98,100,101,102,103,104,105,106,108,110,118,120,121,125,126,127,128,130,136,137,138,140,141,142],anni:[7,12],annot:62,announ:105,announc:[51,84,107],announcement_path:84,anonym:[13,17,20],anoth:[29,34,39,43,62,85,88,98,103,106,114,119,124,126,134],ansi:[52,125],ansibl:54,answer:129,anticip:47,any_file_nam:20,anymor:[24,73,102,114,115],anyon:[20,62,83,103,144],anyth:[20,26,34,35,39,42,63,83,87,88,104,114,125,139],anywher:[20,56,96,103,144],aoaklei:[7,12],apach:[0,1,2,6,8,9,11,12,13,14,20,28,38,46,49,50,51,53,57,58,80,82,83,85,96,98,101,106,107],apache2:[47,57,104],apache_hom:47,api:[4,18,27,31,33,56,62,87,89,125],apivers:62,app:[16,19,21,22,23,24,25,26,27,33,34,35,37,40,41,43,44,45,46,49,50,51,54,56,58,63,69,73,74,75,80,81,83,84,85,86,87,88,91,92,95,99,104,105,106,107,109,113,114,115,118,120,121,126,128,130,133,136],app_clean:81,app_config_path:83,app_development_en:30,app_directori:[117,123,132],app_init_url:80,app_jupyt:36,app_list:81,app_nam:[20,72],app_own:72,app_passenger_env:83,app_request_regex:83,app_request_uri:83,app_reset:81,app_root:[30,83],app_token:83,appear:[20,24,29,30,35,45,63,80,96,97,98,100,105,117,123,129,132,133,141,142,143],append:[23,24,99,120,128],append_path:133,appl:69,appli:[13,19,20,35,43,58,62,63,84,86,87,89,90,102,137],applic:[0,7,18,28,29,30,31,32,33,34,35,36,37,40,42,43,44,45,48,51,56,59,60,62,66,69,72,73,74,75,83,84,85,86,88,91,92,100,101,102,103,104,105,106,107,122,127,137,138,139,140],appnam:[29,103,141],appreci:1,approach:[11,20,29,62,97,130,138],appropri:[5,15,18,19,20,27,35,39,43,44,49,55,63,91,96,121,130,133,136,141,142],approv:16,apprun:135,apps_path:138,apptain:90,apt:[2,4,55,57,102,104],aptli:44,arbirari:[36,62],arbitrari:[20,30,63,97],architectur:[51,57,93,99,104,107],archiv:50,area:[17,36,107],aren:44,arg:[20,60,62,88,138],arguement:12,argument:[20,23,43,60,66,69,83,85,88,89,90,98,99,114,115,120,128],argv:60,arithmet:[24,43,44],arizona:51,arm64:106,around:[20,40,49,103,117,123,132],arrai:[4,23,24,35,36,43,51,83,84,85,87,88,89,101,107,114,115,120,128,137],arrang:20,arrow:101,ascii:99,asid:[120,128],ask:[30,96],aspect:[103,138],assert:62,asset:[20,44,83,91,127],assign:[20,108],assist:14,assoc:142,associ:[33,56,84,96,141,142,143],assum:[2,22,29,30,35,37,43,44,45,55,62,84,96,101,110,113,114,137,138],atkin:99,attach:[20,34,59],attack:39,attempt:[4,6,14,20,24,69,76,85,95,99,103,110,136],attribut:[18,20,21,22,23,31,33,34,42,43,44,45,51,63,86,88,96,100,101,103,112,113,116,120,122,128,131,141],audit2allow:58,audit:[58,107],aug:29,auth:[1,2,6,8,10,13,16,17,18,19,20,53,62,63,85,98,100,101,106],auth_openidc:[19,85],auth_shib:13,authent:[3,4,5,6,7,8,9,11,12,13,14,16,17,18,20,44,45,49,51,53,57,58,63,85,94,98,100,102,103,107,138],authenticated_usernam:12,authentict:104,authnam:19,author:[2,4,13,16,19,29,55,62],authtyp:[2,8,10,13,19,85],authuserfil:19,auto:[24,103,105,133],auto_account:[35,88,103],auto_group:[35,84,103],auto_groups_filt:84,auto_modul:103,auto_modules_:35,auto_modules_matlab:35,auto_modules_netcdf:35,auto_modules_netcdf_seri:35,auto_modules_r:35,auto_primary_group:[35,103],auto_qo:35,auto_queu:[35,88],auto_supplemental_group:62,autofil:20,autogroup:35,autom:[54,97],automat:[9,31,34,62,84,88,111],avail:[1,20,23,24,27,29,34,35,43,44,45,49,50,51,52,56,60,62,63,69,75,84,88,91,96,99,100,101,103,104,108,114,120,126,128,130,136,138,141,144],averag:106,avoid:[20,30,44,81,85],awai:24,awar:[12,20,35,56,125,130],awesom:45,awk:[7,39,62,87,120,128],aws:61,b972c25d:8,back:[6,16,19,24,33,34,39,44,57,58,84,87,96,99,102,103,110,118],backend:[10,13,19,45,61,85,107,114,115],background:[20,43,44,84,110,112,126,127],backport:51,backtrac:63,backup:[96,98],backward:[20,102,144],bad:60,bak:96,balanc:[51,107],balance1:20,balance2:20,balzana:100,banner:110,bar:[37,51,84,85,88,100,103,105,107],bart:100,barton:99,base64:62,base:[5,7,11,13,15,16,18,28,29,30,31,42,47,50,56,62,63,83,84,87,89,98,102,103,104,125,130,135,136,138,140,141,142,143],base_path:20,base_slurm_arg:138,base_url:[33,45,137],basearch:135,basedn:4,baselin:62,basenam:20,bash:[7,12,20,39,40,43,44,56,60,62,63,66,69,84,86,87,97,102,120,128,137,138,142],bash_help:87,bash_profil:40,bash_rematch:12,bash_sourc:142,bashrc:[40,66,111],basi:[20,35,101],basic:[6,19,24,39,40,43,44,56,66,86,89,90,99,101,103,106,107,114,115,120,138,140],basicconfig:60,batch:[22,23,25,29,31,34,37,40,41,44,45,49,51,52,53,56,59,62,63,65,66,69,70,93,95,102,103,107,113,115,116,117,118,120,121,122,123,126,128,130,131,132,133,136],batch_connect:[20,23,37,39,40,43,44,45,49,62,63,66,84,86,87,89,90,103,114,115,117,120,123,128,132,138],batch_connect_session_context_my_cool_form_item:105,batchmod:63,baverhei:100,bc_account:[23,24,35,42,88,114,115,118,120,126,128,133],bc_clean_old_dir:84,bc_clean_old_dirs_dai:84,bc_desktop:[20,22,23,24,29,42,96,97],bc_desktop_example_kd:29,bc_dynamic_j:84,bc_email_on_start:[23,24,35,88,114,115,118,120,126,128,133],bc_example_jupyt:[52,117],bc_example_rstudio:[132,133,134,136],bc_js_filepick:[104,125],bc_jupyter_dynpart:52,bc_my_center_matlab:[123,124,125,126,127,128,129],bc_num_hour:[23,24,35,44,88,114,115,118,120,126,128,133,138],bc_num_slot:[23,24,35,114,115,118,120,126,128,133],bc_osc_abaqu:52,bc_osc_ansys_workbench:52,bc_osc_codeserv:52,bc_osc_comsol:52,bc_osc_example_shini:52,bc_osc_jupyt:52,bc_osc_jupyter_spark:52,bc_osc_matlab:[52,123,127],bc_osc_paraview:52,bc_osc_qgi:52,bc_osc_rstudio_serv:52,bc_osc_stata:52,bc_osc_vmd:52,bc_queue:[23,24,35,43,88,113,114,115,118,120,128,133],bc_relion:52,bc_simple_auto_account:[35,84],bc_vnc_idl:24,bc_vnc_resolut:[24,126],bcff07264b318688c3f4272a9662b13477833373:127,becaus:[7,11,18,20,22,24,29,34,35,40,43,54,56,61,62,63,66,67,69,84,85,87,88,98,100,101,102,103,112,126,135,137,142],becom:[10,20,97,99,102],been:[2,14,16,20,33,34,35,40,43,56,63,64,69,76,96,97,98,99,100,102,104,108,127,129,130,138,139,144],befor:[2,10,19,20,21,23,24,29,31,33,35,43,50,57,59,62,67,83,85,87,90,96,97,98,99,100,101,102,103,104,110,111,116,117,118,121,122,123,130,132,136,137,138,139],before_fil:87,before_script:87,beforehand:85,begin:[2,5,12,20,24,27,110,111,117,118,123,126,132,133,138],behalf:29,behav:[20,51,62,66,103,112,137],behavior:[4,32,34,60,63,84,91,97,98,99,103],behaviour:[20,67,84],behe:4,behhavior:35,behind:[1,18,20,85],being:[4,10,13,19,20,34,35,40,42,46,49,56,60,61,85,87,88,96,98,99,100,102,103,105,106,110,129,138,144],believ:130,belong:[63,98],below:[0,1,5,16,18,19,20,24,29,30,31,35,36,43,44,45,47,56,62,63,66,67,83,84,85,87,89,90,93,94,96,97,99,101,102,103,105,112,114,120,127,128,138,142],ben:101,beneath:72,benefici:49,benefit:[29,42,96,98,133,138],best:[24,39,43,47,54,69,96,97,101,102,106],beta:100,better:[20,29,35,85,99,104],between:[4,18,20,29,35,49,55,62,63,72,84,85,97,98,99,100,101,103,112,133],beyond:103,bgohar:30,big:[47,103,138],biggest:96,bin:[4,7,8,12,18,20,29,39,40,43,44,50,56,59,60,61,62,63,64,65,66,67,69,70,82,83,84,86,87,89,90,102,103,104,110,111,129,133,137,138,142],bin_overrid:[51,54,61,64,65,66,67,70],binari:[4,53,54,61,66,67,70,83],bind:[5,17,18,23,63,90,135],binddn:4,bindir:64,bindpw:4,bio:20,biologi:[20,37,102,103],bit:20,bjob:64,bkill:64,black:20,blank:[17,23,24,43,120,126,128,141,142],blender:29,blob:[53,57,60],block:[18,44,51,103,105,107,127,138,139],block_limit:20,block_usag:20,blocklist:[56,103,105],blue:[0,35,84],bmcmichael:30,bob:[12,13,29,72,76,79,80],bodi:[20,40,83],body_bytes_s:83,bolster:107,book:20,bookworm_al:57,bool:84,boostrap:[43,62],boot:[43,89,90,140,143],bootstrap:[20,43,45,90,96,102,135],border_color:20,botani:37,both:[12,14,18,19,20,34,35,42,43,53,56,62,63,85,86,88,91,97,98,101,102,133,137,138],bottom:[17,20,87,97,140],bound:[62,135],bowdoin:51,box:[0,16,20,34,35,50,83,101,102,107,117,123,132],branch:[110,111,144],brand:[51,101,102,103,107],brand_bg_color:[20,84],brand_link_active_bg_color:[20,84],bresum:64,breviti:[27,63,66,90],bridg:7,brief:[20,60],brittl:35,broader:86,broke:[97,104],broken:[9,29],broker:16,brows:[55,84,103],browseabl:97,browser:[0,5,16,20,21,22,23,24,26,35,39,45,47,51,55,83,84,96,97,101,103,104,105,110,116,117,119,120,122,123,124,128,131,132,134],bstop:64,bsub:[43,56,64,84,100],btn:45,buechler:100,buffalo:[51,101],buffer:101,bug:[94,97,105,117,123,129,132,144],bugfix:95,build:[4,5,8,10,19,20,35,36,39,44,51,85,110,117,123,127,131,132,138,143],builder:[57,102],built:[0,20,24,43,53,57,63,66,97,102,114,117,123,132,135,138,144],builtin:12,bulk:[96,137],bunch:[103,105],bundl:[83,97,98,143],bundle_user_config:83,bundler:[57,110,143],bus:63,button:[17,20,35,36,45,84,85,97,102,117,118,123,132,141,142,143],bypass:106,c12:[43,120,128],cacert:62,cach:[31,90,103],cacheabl:35,cachetempl:18,cachethem:18,cae:52,call:[12,18,20,24,27,29,33,35,43,60,62,76,84,85,87,101,102,114,115,118,141],callback:16,campu:7,can:[1,2,4,7,9,10,12,13,15,16,17,18,20,23,24,26,27,28,30,31,32,33,34,35,36,37,39,42,43,44,45,47,49,50,51,54,55,56,58,59,60,62,63,67,68,69,81,82,83,84,85,86,87,88,89,90,91,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,114,115,117,119,120,123,124,125,126,128,132,134,137,138,141,142,143,144],canari:29,cancel:[51,84,107],cancel_session_en:[20,84],candid:144,candidate_favorite_path:[20,103,105],cannot:[12,20,24,29,39,62,63,87,88,112,126],capabl:[12,34,37,81,82,85,86],capit:84,captur:[8,13,49,85],card:[28,31,51,56,84,99,103,104,107],care:[24,29,35,43,44,56,84,87,98],carri:24,casloginurl:10,cat:[18,49,50,58,62,100,127,129],catalog:29,categori:[29,37,84,97,98,102,103,110,141,142,143],caus:[10,20,23,35,43,45,56,63,67,85,87,89,97,106,110,114,120,128,141,142,143],caution:[20,24],caveat:67,ccq:61,ccqcert:61,ccqdel:61,ccqstat:61,ccqsub:61,center:[1,3,11,13,15,20,35,43,51,52,72,80,85,96,97,98,99,100,101,102,103,104,105,107,108,117,123,132,138],cento:[63,69,97,98,100,102,103,133,135],centos7:[63,133,135],centos_7:63,central:[3,100],cert:[2,4,18,55,61,62,85],cert_authority_fil:62,certain:[20,62,63,83,84,96,97],certainli:60,certian:103,certif:[2,4,14,17,18,53,55,57,61,62],cfg:137,cgconfig:63,cgi:[33,85],cgred:63,cgroup:[0,20],cgrule:63,chain:[69,85],chanc:22,chang:[4,8,10,11,18,19,21,23,29,30,31,34,35,36,39,47,51,53,58,60,61,62,69,82,84,85,87,89,91,92,100,101,107,110,111,114,118,119,120,124,126,128,129,133,134,138,141,142,143,144],changelog:[93,94,97,98],changem:[20,62],changetarget:33,channel:55,charact:[44,51,56,66,81,83,85,87,99,100,105,107],charg:[20,23,34,35,43,88,126],charge_account:34,check:[16,20,34,35,36,43,49,50,57,58,63,84,94,96,110,117,120,123,128,132],check_box:[34,35,36,104],checkbox:[34,36,88],checked_valu:36,checkout:[110,111,141,142,143],checksum:[82,100],cherri:43,chevi:35,chgrp:[19,29],child:[20,42,63],chmod:[4,8,10,18,19,20,29,62,69,142],choic:[34,35,42,43,102,103,138],choos:[5,16,17,20,22,24,32,34,35,36,42,43,52,62,101,102,103,113,114,115,120,128,138,141],chose:[114,115,138],chosen:[34,35,42,63,83,120,128],chown:[4,18,20,49,90],chpc:52,chrome:[98,106],cidr:20,cilogon:[1,7,14,85],circumv:103,claim:[12,19],class_instruct:20,classroom:102,claus:34,clean:[5,44,56,63,73,77,84,87,90,97,98,99,100,101,102,103,104],clean_fil:87,clean_script:87,cleaner:69,cleanup:[31,60,62,87],cli:[18,67,121,130,136],click:[5,16,17,20,22,35,37,42,45,62,84,85,96,101,103,108,110,114,115,117,118,120,123,128,132,141,142,143],clickabl:99,client:[0,1,4,12,14,16,19,20,21,27,47,53,54,56,60,61,62,64,65,66,67,70,83,89,101,125,127],client_bodi:80,client_id:[4,7,62],client_nam:4,client_redirect_uri:4,client_secret:[4,62],clipboard:[101,102],clock:[20,127],clone:[4,5,29,110,111,117,123,132,136,137,138,141,142,143],close:[12,20,102,103],closer:[35,144],closest:102,cloud:[61,62],cloudcmd:102,cloudi:[51,54,101],cloudyclust:61,cluster1:[23,35,39,69,120,128],cluster2:[35,69],cluster:[20,21,23,24,26,31,32,34,38,39,42,43,44,51,52,60,64,65,66,67,69,70,84,86,98,99,103,104,105,112,115,117,118,120,123,126,128,132,133],cluster_id:[32,44],cluster_overrid:20,cluster_us:56,clusteradmin:62,cmd:[4,58,85],cmd_user:62,cmdline:50,code:[8,20,21,23,27,28,30,31,34,40,42,43,45,52,53,56,57,60,80,82,83,84,85,87,91,97,98,99,103,105,108,110,111,114,120,127,128,144],codebas:20,coderais:102,codereadi:[57,102],codeserv:49,cog:20,cold:137,collabor:[29,51],collect:[2,18,30,50,57,83,91,96,97,98,106],colleg:51,colon:[20,97],color:[20,84,89,96,102,110],column:[20,99,102],com:[2,4,5,8,19,20,35,39,50,52,53,57,60,62,85,100,101,102,104,110,111,117,123,126,127,129,132],combin:[18,47,85],come:[12,24,43,45,57,60,63,68,103,105,110,144],comfort:[47,57],comm:50,comma:[36,63,85,90,99],command:[9,18,23,29,39,43,47,49,51,53,55,56,61,62,63,64,65,66,67,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,87,88,89,90,95,100,101,102,107,118,120,128,129,137,138,139,141,142,143],comment:[7,18,20,52,84,100,107],commit:[107,118,120,128,141,142,143,144],common:[1,12,15,20,24,34,43,44,83,103,104,114,126,139],commonli:[35,133],commun:[4,20,45,52,55,61,63,85,140,144],compar:[20,102],compat:[20,56,97,102,103,104,138,144],complain:[20,66],complaint:99,complet:[20,24,27,31,44,46,66,69,87,88,89,94,96,98,99,100,106,109],complex:[102,113],compon:[0,20,35,46,92,97,98,99,108],compos:[29,49,51,54,56,60,91,95,97,98,101,107,109],composit:127,compositor:127,comprehens:99,compris:[20,86],comput:[0,20,21,25,26,28,38,39,41,45,49,51,56,62,63,68,90,101,103,106,107,112,116,120,121,122,128,130,131,135,136,139],compute_clust:138,comsol:[45,52],con:42,conbin:85,concat:20,concern:108,conclus:51,concurr:144,conda:137,condition:43,conduct:107,conf:[2,10,13,18,19,47,50,56,63,64,66,67,80,82,83,85,90,96,98,99,138],confer:97,confidenti:17,config:[2,4,5,8,10,11,13,14,16,17,18,20,22,23,24,29,30,34,35,39,40,42,43,45,51,54,55,57,61,62,63,64,65,66,67,69,70,72,73,74,75,80,82,83,84,85,86,91,95,97,98,101,102,110,114,118,120,126,127,128,133,137,140],config_fil:62,config_properti:20,config_valu:20,configmap:[62,112],configmap_data:137,configmap_filenam:137,configur:[1,3,7,8,9,13,14,15,18,22,23,24,28,30,31,33,34,38,39,42,44,45,46,47,49,51,53,55,56,57,60,61,64,65,66,67,70,72,73,74,75,80,82,86,87,91,95,97,98,100,104,105,106,107,109,118,120,126,128,133,137,138,142,144],configvers:127,confirm:[21,39,85,95,108,116,119,122,124,129,134],conflict:[40,44],confnew:102,confus:[0,24,94,110],conn_fil:[87,89],conn_param:[28,31,87,89,102,138],connect:[1,7,11,12,16,17,18,19,21,28,31,34,37,39,40,44,46,47,49,50,51,52,53,54,56,59,62,63,66,77,79,93,98,99,102,103,106,107,116,117,122,123,126,131,132,141,142,143],connector:[4,12,85],consequ:[20,24,83,97,102],conserv:20,consid:[20,29,63,100,101,144],consider:[51,56],consist:[20,35,43,45,83],consol:141,consolid:20,constitut:96,constraint:138,construct:[20,44,45],consum:33,consumpt:[50,63],contact:[14,17,20,96,108],contain:[18,20,23,28,30,33,43,44,51,52,56,62,66,83,85,86,87,97,98,99,112,118,133,135,144],container:63,container_bindpath:90,container_command:90,container_modul:90,container_path:90,container_start_arg:90,content:[5,19,20,35,43,56,60,62,85,87,88,97,103,118,137,141,142],context:[20,31,33,35,49,51,58,62,87,102,122,127],contian:90,continu:[21,34,63,85,97,98,101,103,105,108,116,117,118,122,123,129,132],contract:12,contrib:101,contribut:[1,52,100,101,103,105,106,108],contributor:[100,108],control:[20,23,35,43,45,47,56,61,62,63,64,65,66,67,70,76,84,85,96,97,101,103,105,114,120,128],conveni:139,convent:[20,28,62,96,140],convers:[20,44],convert:[2,20,24,35,43,44],convieni:12,cooki:[10,13,18,19,97],cool:[37,85],coordin:108,coorespond:62,copi:[4,5,17,20,29,44,52,55,67,83,85,88,95,96,98,102,106,112,116,119,122,124,126,127,131,134,141,142,143],copy_environ:[67,88],cor:20,core:[20,28,34,35,36,42,43,47,88,96,100,106,108,126,138],corner:[5,16,17,110],correct:[1,18,19,20,24,29,34,63,69,91,110,111,120,127,128],correctli:[12,20,27,35,48,49,103,104,142],correspond:[12,22,23,24,35,40,43,45,47,53,58,69,70,72,75,80,83,84,85,95,101,114,118,120,126,128,133],could:[1,10,20,29,30,35,39,55,59,62,63,87,97,99,102,110,133,137,144],counter:97,countri:35,coupl:20,cours:30,cover:[20,99,133,138,143],covert8:103,cpu:[20,23,35,47,56,63,101,106,120,125,128,137,138],cpu_limit:137,cpu_request:137,cpuaccount:63,cpuquota:63,crash:[20,49,99,127],crb:57,creat:[0,2,17,18,22,23,27,28,29,30,32,35,43,44,45,47,49,54,56,62,69,80,83,84,94,95,96,97,98,101,103,109,114,115,116,117,122,123,127,129,131,132,133,137,138,141,143,144],create_passwd:44,create_salt_and_sha1:137,created_at:32,creation:[62,84],cred:62,credentail:62,credenti:[16,17,19,27,57,62],criteria:[20,100],critic:[99,107,108,125],crond:63,cronjob:20,crontab:62,crop:22,crt:[4,18,55,62],crucial:108,csc:103,csrf:20,css:[84,102],cuda:34,cuda_vers:34,cuda_visible_devic:59,cumul:20,curl:50,current:[1,15,17,20,25,29,31,34,35,44,51,52,53,56,57,62,63,67,69,75,82,83,84,85,87,93,94,96,102,106,107,110,117,118,123,132,135,144],currentus:20,custom:[1,2,10,12,14,16,21,22,24,28,31,34,43,47,51,58,60,63,83,84,85,91,94,95,96,97,99,100,101,107,110,112,116,122,131],custom_app:96,custom_config:114,custom_css_fil:[20,84],custom_env:97,custom_javascript_fil:[84,104],custom_location_direct:85,custom_map:12,custom_nam:97,custom_pag:[20,84],custom_pages_guid:20,custom_queu:[114,115],custom_vhost_direct:85,customapp:29,customlog:18,cwd:[60,99],cyberinfrastructur:7,cybersecur:108,cycl:144,d3d3d3:127,daemon:[18,44,50,127],daemons_use_tti:58,dai:[27,51,84,107,108],daili:20,dalli:102,dan:99,danger:[20,96],dark:[20,84],dasbhoard:62,dashboard:[11,16,19,22,24,26,28,30,35,37,44,45,46,49,51,54,56,60,62,69,72,83,84,85,87,91,95,98,103,104,105,107,111,114,117,119,123,124,132,134,141,142,143],dashboard_header_img_logo:[20,84],dashboard_layout:[20,84],dashboard_logo:[20,84],dashboard_logo_height:[20,84],dashboard_titl:[20,84],data:[12,18,20,27,33,34,35,44,46,60,62,84,87,94,98,99,101,102,103,104,107,137],databas:[14,63,67],dataroot:104,date:[20,55,61,87,102],date_field:35,davidmonro:103,dbu:63,deb:[57,102,104,144],debian:[47,53,55,57,106],debug:[9,20,22,43,45,47,49,51,57,63,88,94,95,118,127,137,138],decid:24,declar:[83,97],decleari:83,decod:[12,60],decreas:[47,85,102],dedic:[26,28],def:[60,86,87,142],defens:5,defin:[4,17,18,20,23,24,27,31,33,42,43,44,54,59,62,63,69,82,83,84,85,88,91,97,101,105,114,115,118,120,126,128,133,135,138],definit:[20,24,43,63,84,86,100],degrad:47,degre:144,delet:[5,10,20,47,53,62,63,73,84,98,99,102],delimit:[20,63,97,99],deliveri:20,delivery_method:20,delivery_set:20,delm:7,demo:85,demonstr:[17,20,60],deni:[20,83],denial:58,denot:[72,75],depart:20,depend:[5,20,23,29,35,45,47,49,50,51,52,53,55,96,97,98,101,114,115,120,128,133,135,136,140,141,142],deploi:[8,11,13,29,31,35,43,44,45,52,73,74,75,83,91,94,97,98,112,116,122,131],deploy:[2,5,20,29,46,53,55,62,83,85,96,107,119,124,134],deprec:[20,83,102,105,130,144],depth:89,deriv:97,describ:[20,23,27,31,34,35,37,39,43,44,54,56,62,66,83,85,117,120,123,128,129,132,137,138,141,142],descript:[18,20,24,35,37,52,141,142,143],design:63,desir:[16,20,49,84,102,114,136],desk1:20,desk:20,desktop:[20,22,23,25,29,41,51,56,63,89,94,95,97,98,99,102,103,106,112,122,127,130],despit:[20,97],destin:20,destination_path:[137,138],detail:[0,1,2,7,9,11,12,27,35,44,45,54,56,58,59,62,72,79,82,83,84,85,92,93,94,107,108,117,118,120,123,128,132,137,138,139,141,142,143],detect:[63,99],determin:[4,35,43,44,56,62,83,85,87,89,108,120,128,137,138],dev:[5,14,17,19,20,29,30,35,43,44,45,59,60,62,63,72,80,83,90,95,109,114,115,117,118,119,120,123,124,125,126,127,128,129,132,133,134,136,137,138,141,142,143],dev_work:[110,111],devel:18,develop:[6,18,20,29,31,33,35,45,51,52,57,60,62,63,83,85,94,95,96,98,99,100,101,102,103,104,106,112,113,117,123,127,132,137,138,140,141,142,144],devgrp:30,dex:[1,8,9,51,53,58,85,102,104,107],dex_uri:[4,85,103],dexidp:4,diagram:[44,51],dictionari:[20,84],did:[35,43,99],didn:[35,62],dies:118,dietz:99,diff:[95,96,97,98,99],differ:[3,14,20,23,24,34,35,40,43,47,61,62,64,65,66,67,70,82,83,84,85,96,97,98,100,103,110,111,120,125,126,128],different_select_clust:35,differenti:62,difficult:[53,57,102],digit:51,dimens:[27,35],dimension1:27,dimension3:27,dimension6:27,dir:[4,20,84,137],direct:[1,10,11,17,18,19,20,34,40,47,54,55,69,85,93,100,101,108,113,138],directli:[2,4,10,12,20,23,24,32,35,36,42,43,45,47,83,91,93,97,100,101,102,103,109],directori:[1,15,18,22,23,29,30,31,33,35,36,37,43,44,45,49,51,53,54,58,61,63,64,66,69,72,80,81,83,84,85,87,88,91,95,98,99,100,101,104,105,107,109,111,117,118,119,123,124,127,132,133,134,135,137,138,139,141,142,143],dirnam:[20,142],disabeled_shel:83,disabl:[4,18,19,23,35,36,39,51,56,58,62,83,84,85,107,127,129,136],disable_bc_shel:84,disable_bundle_user_config:83,disable_check_xsrf:137,disable_dashboard_logo:84,disable_log:85,disable_safari_basic_auth_warn:101,disabled_shel:83,disablerepo:98,disclos:103,disclosur:107,discourag:[6,67],discours:[3,14,17,20,51,52,58,97,98,108],discov:[20,85,133],discoveri:85,discuss:[9,12,20,24,35,120,128],discussus:12,disk:[51,58,60,83,97,107,117,123,132],dismiss:20,dispar:7,displai:[11,16,20,24,31,32,36,43,44,45,55,56,59,62,73,76,77,79,81,82,83,84,85,89,95,97,98,99,100,101,102,104,126,127,129,139,141,142,143],disregard:100,disrupt:100,distant:61,distinct:[43,63,103],distinguish:110,distribut:[12,18,20,63],div:[20,102],dnf:[4,50,57,90,102,103,104],doc:[2,4,15,18,20,55,88,100,129],docker:[0,5,62,90,137,138],dockerfil:[53,57],documen:98,document:[4,7,8,12,13,15,17,20,23,27,30,43,45,47,51,55,56,62,69,71,84,85,88,94,96,99,101,102,105,107,108,113,114,115,137,138,141,142,143,144],dodeploi:5,doe:[1,10,20,23,27,29,30,34,35,38,44,45,55,56,58,60,61,63,84,97,99,104,110,117,123,126,127,129,130,132,135,137,143],doesn:[18,20,30,34,45,69,80,83,87,97,102,114,115],doing:[12,18,59,63,83,96,137],domain:[0,20,39,79,83,84,85,88,140],don:[14,18,19,20,23,24,27,34,35,39,52,53,57,73,82,83,84,85,93,94,100,110,137],donat:97,done:[20,22,23,29,40,44,58,60,62,66,87,96,101,102,110,115,119,120,124,125,127,128,134,137,139,142],dot:[0,12,63,89],doubl:83,down:[9,16,20,35,49,62,96,110,111,113,114,115],downgrad:98,download:[2,7,18,50,51,84,103,107,131],download_en:[20,84],downtim:20,dpi:89,dpkg:102,dport:[4,58],drastic:69,draw:0,drawback:20,drawer:106,drink:127,driven:[35,144],drmaa:66,drop:[16,20,35,113,114,115],dropdown:[5,16,20,22,30,35,84,96,97,98,99,100,101,102,110,117,119,123,124,132,134],drwx:80,drwxr:[29,80],dsun:129,due:[97,100,101],duo:[1,53],duo_java:5,duosecur:5,duoweb:5,duplic:20,durat:[20,62,89],dure:[18,20,63,82,85,87,89,96,97],dynam:[20,23,27,28,31,32,35,37,69,84,85,95,96,102,105,125],each:[0,12,15,20,22,24,27,29,31,35,42,43,45,54,62,63,67,83,84,93,94,95,96,97,98,102,104,106,110,114,117,123,126,132,138],each_pair:138,eager:99,earli:[44,51,144],earlier:[96,121],easi:102,easier:[15,16,95],easiest:[20,35],easili:[20,96],echo:[7,12,44,59,62,69,87,127],ecmascript:106,edg:[20,99,106],edit:[2,5,10,13,17,18,19,20,23,24,27,29,53,62,69,83,84,97,100,103,112,114,118,122,126,129,133,139,140],editor:[20,27,29,93,94,95,96,97,98,99,102,110,118,126,133],edt:[12,18],edu:[4,11,12,13,14,16,17,18,19,20,29,30,39,40,43,45,52,53,54,55,56,57,61,62,63,64,65,66,67,69,70,72,80,84,85,88,90,96,97,98,99,100,101,102,103,104,114,117,119,123,124,132,134,138],edu_access_ssl:18,edu_error_ssl:18,educ:51,effect:[10,19,20,29,30,39,53,96,97,102,108,110,114],effici:[20,101],effort:104,efranz:[29,30,141,142,143],eight:20,either:[4,14,20,23,33,34,35,49,56,62,63,66,85,86,97,98,100,102,103,114,115],el6:[97,98],el7:[2,96,97,98,100,103,104,106],el8:[2,57,90,103,104],el8serv:90,el9:[57,87,104],elaps:[20,99],element:[20,31,35,66,102,113,114,115,118,126,133],elev:63,elisa:99,ellips:18,els:[7,12,19,29,43,47,62,103,127,138],elsewher:20,elsif:138,email:[7,8,12,16,17,20,23,29,35,58,83,85,88,108,126],email_field:[20,35],email_on_start:[35,43,88],email_on_termin:88,emailattr:4,emb:[18,20,23,43,45,99,114,120,128],embed:[20,23,32,43,44,45,97,114,120,128],emphas:107,emploi:[62,102],empti:[10,12,24,27,35,62,84,85,87,88,99,125],emul:63,en_u:90,enabl:[2,4,10,11,16,17,18,19,23,28,34,35,38,44,45,51,53,58,62,63,64,66,69,83,84,85,93,95,98,100,101,102,103,104,107,109,110,122,130,138],enable_cuda_vers:34,enable_gpu:34,enable_native_vnc:45,enable_starttls_auto:20,encod:[12,81],encount:[20,49,55,66],encourag:107,encrypt:[55,97,107],end:[0,12,14,18,20,27,30,39,43,44,63,69,84,87,96,99,102,103,105,110,114,127,138,139,143,144],end_dat:27,endpoint:[16,62,84,104],endpoint_path:84,enforc:[20,85],engag:108,engin:[51,54,62,97,100],english:20,enhanc:[107,108],enough:[12,26,102,129],ensur:[2,5,10,20,29,33,34,40,43,49,50,55,60,62,63,66,67,69,98,100,101,103,107,108,110,111,133,135,139,142],enter:[20,61,110,117,123,132],entir:[31,35,43,86,126,142],entiti:7,entitl:100,entri:[12,20,24,35,49,62,63,85,101,104],entrypoint:[141,142],enumer:35,env:[4,16,20,29,30,35,45,60,62,83,84,85,88,91,96,97,100,101,102,109,137,138,141,142],envdir:64,enviro:84,environ:[7,8,19,20,24,25,29,30,33,35,40,44,45,50,51,56,60,62,67,69,71,80,81,83,84,85,87,88,89,90,96,99,100,101,102,103,105,106,107,110,121,127,130,133,135,136,137,138,140,141,143],environment:99,envvar:47,eof:[18,50,62],eot:127,epel:[57,90,97,98,102],equal:20,equip:109,equival:[20,24,35,120,128],erb:[18,20,22,23,24,28,31,33,45,51,62,71,82,83,84,87,88,89,96,99,101,103,114,115,118,120,125,126,127,128,129,133,137,138,139],eric:29,error:[12,39,48,49,51,55,60,61,66,69,80,83,85,87,88,89,95,100,107,112,118,122],error_path:[63,88],errorlog:[18,85],errorreturncod:60,erubi:[23,32,43,44,45,101,114,120,128],esac:62,escal:[20,22,49],escap:[19,33,81],especi:55,ess:[36,138],essenti:[62,84,107,110],est:[12,20],etc:[2,4,7,8,10,11,12,13,16,18,19,20,22,23,24,26,29,30,35,39,40,42,43,45,47,49,50,54,55,56,58,61,62,63,64,65,66,67,69,70,82,83,84,85,86,88,90,91,95,97,98,99,100,101,102,103,105,114,118,120,126,128,133,137,138],eula:20,evalu:99,even:[20,29,30,34,63,82,102,107,137,139,144],event:[20,47,102],eventu:20,ever:48,everi:[0,12,18,20,29,34,35,37,61,62,69,84,85,89,101,104,141,142,143,144],everyon:[28,29],everyth:[0,29,34,35,42],everytim:114,exact:[20,33],exactli:35,exampl:[3,4,7,8,10,11,13,14,16,18,19,20,23,24,27,30,31,34,36,40,42,44,47,49,50,51,54,55,58,59,62,63,69,81,82,83,84,85,87,88,89,90,91,93,96,97,99,100,101,102,103,105,110,114,115,117,120,123,127,128,130,132,135,136,137,138,139,141,142,144],example_clust:40,example_templ:20,excel:108,except:[20,60,88,96,99,104,129,133],exception:99,exclud:[29,100],exclus:138,exec:[20,63,65,87,135,142],execstart:18,execut:[5,12,20,28,31,44,56,60,62,63,65,72,76,77,80,82,87,98,114,135,138,142],execv:[49,69,118],exempt:97,exercis:[53,57],exhaust:106,exisit:84,exist:[16,20,42,44,69,73,80,84,85,87,91,96,97,101,102,114,115,117,123,125,132,139,143],exit:[12,44,60,62,82,99,127],exit_cod:60,exitcod:82,expand:[20,96],expect:[20,35,45,53,62,63,83,88,90,97,98,105,114,115],experi:[29,58,106,129,139],experienc:44,experiment:[20,69],expir:[4,20,61,62],expiri:[4,61],explain:[19,20,120,128],explan:[97,98],explicitli:[20,30,35,56,85,101,102,133],explor:[20,63,118,125],expos:[4,19],expr:[10,13],express:[9,10,13,20,35,39,61,83,85,102,114,141],exst:[28,31],extend:[15,20,103],extens:[18,20,23,43,44,45,51,54,56,100,120,128],extern:[4,16,29,51,96,129,141,142,143],extra:[20,35,37,88,89,96,102,142],extra_arg:89,extra_jupyter_arg:[114,115,118,120,128],extract:[27,61,62,101],eye:45,facil:[20,59],facilit:[20,63],facl:[20,29,84,103,105],facl_domain:84,fact:[27,42,44,62],factor:[1,53,62,98,100,106],fail:[12,22,39,48,49,63,69,85,100,101,120,128],failur:[20,46,49,60],fairli:20,fakeroot:90,fallback:[23,85],fals:[4,18,20,34,35,36,37,56,62,63,67,69,83,84,85,99,100,101,102,103,129],falsi:20,far:[58,101],fas:20,fashion:27,fast:20,fastcgi_temp:80,faster:[12,56,96,102],fastest:12,favicon:[15,20,84,85,91],favor:[85,104],favorit:[20,36,118,126,133],favoritepath:[20,103,105],featur:[8,20,27,34,35,36,43,44,45,54,56,62,66,69,84,85,90,92,93,97,98,99,100,101,102,110,120,128,144],feaur:20,februari:20,fed:43,feder:[1,7,16,17,53],fedorapeopl:2,fedoraproject:97,feed:20,feedback:51,feel:[20,43,53,57,84,85,96,102],fetch:87,few:[20,24,29,44,60,63,85,103,110,113],ff0000:20,fff:83,field:[16,17,20,21,23,34,35,36,43,45,62,84,88,97,98,99,102,114,115,125],field_of_sci:[20,37,102],fig:44,file:[2,4,5,7,8,9,10,13,14,15,18,19,22,23,24,26,27,28,30,31,32,33,35,36,39,40,42,43,45,49,50,51,52,53,54,56,57,58,60,61,62,63,64,65,66,67,69,70,71,72,73,74,75,79,80,81,82,83,85,86,87,88,89,91,94,95,96,97,98,105,107,109,114,115,117,118,120,123,125,126,127,128,129,130,132,133,135,137,138,140,141],file_attach:20,file_limit:20,file_upload_max:[20,101],file_usag:20,filebrows:84,fileexplor:99,filenam:[20,60,85,102,137],files_enable_shell_button:[84,102],filesystem:[20,58,84,98,133,138],fill:[5,16,24,35,42,43,44,62,103,114,115,117,118,123,132],filter:[4,20,27,35,60,84,96,102],filter_argv:60,filter_script:60,find:[6,20,24,29,30,44,63,69,99,101,102,104,108,114,115,127,142],find_host_port:137,find_port:44,fine:[20,85,98,142],finish:[69,88,112],finland:103,firefox:[98,99,106],firewal:[1,53],firewalld:[4,58],first:[4,12,13,14,16,20,23,24,27,29,35,40,43,44,48,55,62,63,85,87,95,96,97,98,99,100,101,102,103,104,109,110,114,115,117,120,123,126,128,132,137,138,141,142,143,144],firstgpu:59,fit:[20,62],five:31,fix:[51,63,69,92,94,96,101,102,107,108,117,123,129,132,144],fixm:53,flag:[36,37,50,67,84,88,96,99,100,101,129],flask:140,flexibl:[35,56,96,137],flow:[5,16,23,43,45,51,97,103,114,120,128],fluxbox:[122,130,139],fluxbox_assets_root:127,fluxbox_rc_fil:127,flybirdkh:101,focal_al:[57,104],focu:[1,126],folder:[20,32,100,129],folk:[103,105],follow:[0,1,2,4,7,8,9,10,12,13,19,20,23,24,25,28,29,31,35,39,40,41,43,44,45,50,52,55,58,61,62,63,64,65,66,67,70,83,85,96,100,101,102,103,104,106,110,113,114,115,117,119,121,123,124,129,130,132,133,134,135,136,138,140],font:[45,89],foo:[85,88],footer:[20,87,99],footnot:[93,94],forbidden:97,forc:[4,20,34,77,82,100,101,102,103,104,105,110,127],ford:[35,114,115],forego:39,foreground:20,foreign:70,forget:40,fork:[43,44,81,102,137,138],form:[5,16,21,22,23,28,31,33,42,43,44,45,51,84,88,96,97,101,102,104,112,113,117,118,120,122,123,126,128,132,133],form_id:33,format:[2,12,19,20,22,24,27,39,60,61,83,84,85,97,99,120,128],former:42,formerlei:7,formerli:51,formerlli:101,forward:[18,20,57,96],found:[7,12,20,35,43,44,45,83,91,97,98,99,101,108,137,138],foundat:7,four:[0,20],fqdn:[4,39,62],fragil:60,frame:[5,20,49,85,144],framework:[103,105,107,140,142,143],frankli:56,free:[34,43,53,55,57,85,96,125],freeli:[20,144],french:20,fresh:[20,83],friend:127,friendli:20,from:[0,1,2,7,8,10,12,13,14,16,17,18,19,20,22,24,26,27,29,32,33,35,36,39,42,43,44,46,47,48,49,51,54,56,60,61,62,63,65,67,69,72,82,83,84,85,88,90,92,103,104,105,106,108,109,110,111,113,114,115,117,119,120,123,124,126,128,132,133,134,135,136,138,139,141,142,143,144],front:[0,14,20,85],frontend:[4,20,85,97],frozen:[97,98],frozen_string_liter:143,fsgroup:62,ftl:5,ftp:20,full:[12,18,20,35,45,56,66,83,84,85,90,95,99,104,112,126,130],full_path:20,full_url:33,fullchain:55,fulli:29,fullscreen:127,fund:26,further:[20,31,60,83,102,103,107,120,128],futur:[10,17,63,69,83,95,96,97,99,101],ga_profil:27,ganglia:106,gap:20,gatewai:[29,30,72,83,117,135],gather:[20,35],gcloud:62,gcp:61,geco:4,gem:[88,99,110,120,128,143],gemfil:[101,110,143],gener:[0,1,2,4,8,10,11,12,13,14,18,22,32,33,34,35,37,39,43,44,45,49,50,51,53,58,61,62,69,71,81,83,84,87,88,94,95,96,97,98,99,102,103,104,105,114,115,118,120,126,128,133,137,144],generat:96,geometri:89,georg:51,georgiastuart:103,get:[4,7,15,17,20,24,27,29,32,35,39,42,44,45,47,51,55,56,57,60,62,63,66,85,94,99,102,104,105,110,117,118,122,123,132,138,139,141,142,143],get_ga_data:27,getelementbyid:102,getgrgid:56,getinputargu:129,getlogin:84,getpass:60,getpwnam:[84,137,138],getruntimemxbean:129,getus:60,gib:[20,101],gid:[62,137,138],gist:[18,84],git19:[97,98],git29:100,git:[4,5,29,42,96,110,111,117,118,120,123,128,132,141,142,143],github:[4,5,20,29,45,50,52,53,57,60,65,69,97,100,101,102,103,104,105,108,110,111,117,123,127,130,132,144],githubusercont:62,gitlab:52,give:[20,30,34,35,39,43,49,62,85,97,102,103,142],given:[0,7,12,20,22,23,24,27,29,35,42,43,44,45,54,62,64,76,79,80,82,83,84,85,87,88,89,97,106,118,120,126,128,133,143,144],glnxa64:129,glob:[20,35],global:[20,23,24,31,40,45,56,95,101,104,112,113,120,128],global_:35,global_bc_form_item:35,global_bc_item:35,global_queu:35,globu:84,globus_endpoint:84,glossari:51,gmail:20,gnome:[21,25],gnu:35,goal:[63,117,123,132],goe:[48,63,142],going:[63,96,102,103,104,110,117,123,132,137,138,141],good:[1,18,39,44,85,96,110],googl:[46,51,62,84,85,106],google_analytics_tag_id:[27,84],googleapi:62,goolg:62,gopath:4,got:[63,69],gpu:[34,35,43,59,126,127,130,138],gpus_per_nod:138,grab:44,gracefulli:[98,100],grafana:[46,51,56,107],grai:0,grant:17,granular:[20,29,103],graph:[20,100],gre:[59,97],great:[55,99,110],greater:[29,35],greatli:1,green:[35,55],grei:[20,110],grep:[7,20,62],grid:[7,12,20,51,54,85,97,100,102],gridengin:66,group:[4,8,18,20,29,30,35,37,49,56,60,61,62,63,69,84,85,102,103,137],groupadd:[4,18],groupattr:4,groupinstal:90,groupsearch:4,grpc:4,guarente:91,guest:[133,135],gui:[43,44,52,93,139],guid:[2,20,21,28,38,67,107,116,122,129,131],guidelin:108,guilherm:100,guimaluf:100,had:[43,77,94,99,100,104,106],hand:[20,32,35,84,100,102,142],handi:63,handl:[11,14,19,20,23,24,44,45,47,56,60,85,96,98,100,120,128],handler:[85,108],hang:60,happen:[30,49,55,106],happi:[119,120,124,128,134],harbor:62,hard:[21,31,42,103,137],hardcod:126,hardwar:[51,125,126],harvard:[12,103],has:[2,7,11,12,14,16,18,20,23,24,26,29,30,32,33,34,35,37,42,43,44,45,46,47,56,57,58,62,63,64,69,84,85,87,88,96,97,98,99,100,101,104,106,108,114,115,125,126,127,129,130,137,138,139,140,141,142,144],hash:[4,20,24,35,43,83,84,85,88,121],have:[1,3,7,8,10,14,18,20,21,22,23,24,27,29,30,34,35,39,40,42,43,44,45,46,47,49,51,52,53,54,55,56,57,59,61,62,63,67,69,76,77,80,81,83,84,85,87,88,89,93,94,97,98,99,100,101,102,104,106,108,110,111,113,114,115,116,117,118,120,122,123,124,127,128,130,132,134,135,137,138,141,142,143,144],haven:[40,63,96],hdd:[141,142,143],head:[20,59,60,63],header:[10,18,19,20,43,84,85,86,87],heart:114,heartbeat:89,heavili:62,height:[20,84],held:[20,84,142],hello:[141,142,143],helm:62,help:[12,16,21,22,29,33,35,36,44,45,46,47,51,58,59,64,81,82,84,85,94,99,100,101,107,108,110,114,115,126,129,133,135],help_bar:[20,84],help_menu:[20,84],helper:30,her:0,here:[1,7,12,15,17,20,24,27,30,33,34,35,37,42,43,45,49,52,54,56,57,62,63,66,84,86,87,88,91,100,101,102,103,104,105,107,108,109,110,114,120,127,128,135,137,138,142,143],heterogen:34,hex:[18,19,63],heymann:99,hidden:[20,34,36,45,56,63,96,101],hidden_field:[20,35,36],hide:[30,31,35,51,84,99,102,104,107,117,123,125,132],hide_app_vers:[84,103],hide_when_empti:20,hierarchi:[20,91,96,133],high:[0,39,51,103,107],higher:[20,35,85,104],highest:[87,104],highli:[6,22,44],highlight:[20,51,93,94,95,96,97,98,99,100,101,102,120,127,128],hint:18,his:29,hit:[27,44],hoffman2:97,hold:[23,43,44,84,85,88,96,137,138,142],home:[16,18,23,29,30,35,36,43,44,45,49,51,58,60,61,63,69,83,84,88,94,95,96,104,107,117,123,127,132,133,137,138],home_dir:137,homedir:117,homepag:84,hook:[31,85],hookenv:62,hooksdir:62,host:[1,4,14,27,28,39,40,43,44,45,47,50,51,53,54,56,58,60,61,62,64,65,66,67,70,82,83,85,87,89,90,96,98,99,102,104,107,114,119,120,124,128,133,134,135,137,138,141,142,143],host_based_profil:[20,84],host_cfg:137,host_port_cfg:137,host_regex:[39,85],host_typ:[137,138],hostnam:[2,18,20,27,39,44,45,47,49,84,85,87,120,128],hostport:137,hour:[19,20,23,24,35,43,62,87,88,108,126],hous:[56,84],hover:[17,37],how:[0,2,7,12,20,23,24,27,29,35,39,40,42,43,45,46,47,50,51,54,56,60,62,83,84,85,86,88,96,97,98,100,101,102,103,104,110,114,115,117,120,123,128,132,133,137,138,141,142],howev:[18,20,23,35,42,63,96,100,101,104,105],hpc:[0,3,14,16,17,18,19,20,21,29,51,52,54,56,61,62,63,64,65,66,67,70,93,101,112,137],hpctoolset:20,href:45,htcacheclean:[100,101],hterm:106,html:[2,15,18,19,20,31,33,35,36,45,55,84,85,87,95,98,101,102,105,113,114,115,118,126,129,133],html_option:34,htpasswd:19,http:[1,2,4,5,7,8,10,11,12,13,14,15,16,17,18,19,20,29,35,39,43,44,45,50,52,53,55,56,57,58,60,62,63,72,80,82,85,86,90,96,97,98,99,100,101,102,103,104,107,117,119,120,123,124,126,127,128,129,132,134,135,143],http_port:4,http_refer:83,http_user_ag:83,http_x_forwarded_escaped_uri:80,http_x_forwarded_for:83,httpd24:[2,10,18,19,82,96,98,100,101,102,103,104],httpd:[2,10,12,13,18,19,46,49,50,51,53,57,82,96,98,100,101,102,103],httpd_can_network_connect:58,httpd_enable_homedir:100,httpd_execmem:100,httpd_mod_auth_pam:58,httpd_read_user_cont:100,httpd_run_stickshift:58,httpd_setrlimit:58,httpd_unifi:100,https_port:4,hub:135,huge:126,hugemem:[126,138],human:20,hybrid:52,hyperthread:138,hyphen:[34,35],hypothet:45,i18n:20,iam:27,ico:[15,20,84],icon:[20,37,42,44,45,84,141,142,143],iconbar:127,id_:102,idattr:4,idea:[20,60,110,114,115],ideal:20,ident:[5,7,8,14,20],identifi:83,idl:[18,47,83,89],idletimeout:89,idp:[2,7,8,11,13,18,20,62],idp_issuer_url:62,idpdev:[14,16,17,18,19],idphint:7,idpmetadata:2,ids:35,idtoken:4,ifmodul:47,ifnotpres:138,ifram:20,ignor:[39,56,63,69,83,101],ihpc:45,illeg:[51,66,107],illustr:[0,27,34],imag:[20,44,61,63,84,85,87,90,91,99,101,131,133,137,138],image_pull_polici:138,image_pull_secret:62,imagin:34,img:[15,88],immedi:[29,63,139],impact:[106,129],implemen:130,implement:[20,27,63,100,107,125,127,130,141,142,143],implicitli:[39,56],impos:63,improv:[60,66,94,103,108],inaccess:[103,105],inact:[20,106],inbetween:62,inch:89,incid:106,includ:[0,2,8,10,15,18,20,23,24,29,30,35,40,45,49,51,52,54,56,58,62,63,67,77,83,84,93,96,99,100,101,102,103,107,127,133,135,142,144],incom:20,incommon:[1,17],incompat:102,incorpor:35,incorrectli:63,increas:[12,20,29,47,83,97,102,106],increment:35,inde:[42,54],indent:[20,56],index:[15,20,45,141,142],indic:[37,55,84,88,100,102,141,142,143],individu:[29,62,63,96,107,140],info:[16,18,20,31,46,60,62,69,85,96,120,128],inform:[2,7,9,13,20,23,27,28,31,33,35,44,47,48,49,51,56,63,67,84,85,93,99,100,101,102,103,104,107,120,128],infra:17,infrastructur:[2,71,92],ing:[20,99],ingest:20,inheret:42,inherit:20,ini:[20,83],init:[5,80,112,127,138,141],init_contain:137,initi:[0,14,20,30,36,44,49,61,84,85,88,91,96,99,102,120,128,137,138,140],initialzi:137,inject:103,inkei:2,input:[4,12,24,34,35,36,45,58,82,88],input_path:88,input_us:12,inquiri:108,insecur:[1,39,53],insecureskipverifi:4,insensit:20,insert:[17,20,39,102],insid:[10,20,43,58,62,90,110,133,138],instal:[1,7,8,9,10,13,14,17,20,21,24,25,28,30,38,39,41,45,46,49,51,56,58,60,61,63,65,66,67,69,76,82,83,84,85,90,93,94,95,97,98,99,101,102,103,104,106,107,110,117,121,123,130,132,136,138,139,140,141,142],install_bas:18,instanc:[0,5,7,14,18,20,26,27,45,51,55,79,96,97,98,99,100,101,102,103,104,106,107,113,140],instanti:20,instantli:112,instead:[12,14,18,19,20,23,24,35,43,45,56,60,63,67,85,88,89,91,98,99,100,101,102,103,105,110,111,120,128,139],institut:[1,16,20,26,51,52,84],instruct:[4,5,7,20,21,31,34,52,95,100,101,103,104,116,122],integ:[4,24,35,43,44,83,84,85,87,88,89,99],integr:[2,51,62,107,108,140],intel:[35,127,138],intend:[25,27,40,41,44,95,106,114,121,130,136],interact:[0,4,22,23,24,25,28,29,33,34,35,36,37,40,41,43,44,45,46,49,51,54,56,58,62,63,64,70,84,93,94,95,97,98,99,100,101,104,106,107,113,114,115,116,117,119,122,123,124,125,131,132,134,137,138],interactive_apps_menu:[20,84],interest:[14,20,53,57,110,143],interfac:[19,20,29,45,62,70,84,94,95],interfer:98,interim:129,interm:[18,55],intermedi:[35,53,55],intern:[43,44,45,49,83,85,96,103,120,128],internation:[20,98,99],interpol:[20,40,56,83],interpret:88,interv:[62,84],intervent:35,intro:20,introduc:[20,97,114,117,123,132,144],introduct:[1,43,45,51,97],intuit:97,invalid:[20,100,117,123,132],invers:20,invert:20,invoc:61,invok:122,involv:[34,53,57],ips:[103,105],iptabl:[4,58],irrespect:[77,117,123,132],isn:12,isol:[29,107],issu:[20,22,35,44,49,53,55,57,62,63,64,65,67,69,70,83,85,99,101,102,103,108,112,122,139,141,142,143],issuer:20,item:[5,24,31,42,43,62,84,86,87,89,101,103,138],its:[13,20,24,29,35,49,63,83,96,97,99,101,103,107,108,110,120,128,129,139,144],itself:[15,20,26,30,42,49,59,67,83,106,109,112,137,138],jammy_al:[57,104],jan:[12,96],januari:96,jar:5,jason:100,jasonbuechl:100,java2d:129,java:[18,112,122],java_opt:129,javas:129,javascript:[20,34,35,84,102,105,125],jboss:18,jdenni:2,jdk:18,jeff:12,jessi:12,jiao:[52,101],jim:72,jks:18,jnickla:69,job:[21,22,24,25,26,28,29,31,32,33,35,39,40,41,42,44,45,49,51,53,54,59,60,61,62,64,65,67,68,69,70,84,86,87,88,89,91,95,97,103,104,107,112,113,116,118,120,121,122,126,127,128,129,130,131,136,137,138],job_environ:[43,88],job_id:[32,61],job_info_memory_cache_s:64,job_nam:[50,88],job_script_cont:[118,138],job_script_opt:118,jobcompos:20,jobid:[20,56,60],jobid_regex:61,joel:99,johndo:100,johrstrom:[29,63],join:[20,27,44,60,127],journal:12,journalctl:12,jqueri:[34,102],json:[18,20,62,84,118,141],jul:29,jupit:20,jupyt:[0,20,28,31,36,39,45,49,51,52,54,56,85,93,94,96,97,106,107,112,113,114,115,118,120,121,128,130],jupyter_api:[33,138],jupyter_experiment:52,jupyter_group:20,jupyterlab:36,jupyterlab_switch:33,just:[20,24,27,29,30,35,43,45,56,59,62,69,83,84,85,96,100,101,102,103,105,111,117,123,132,135,137,138,143],juypter:33,juypterlab:33,k8s:[62,137],k8s_username_prefix:62,kc_restart:18,keep:[14,17,19,20,42,43,47,63,84,101,104,110],kei:[2,4,18,24,35,36,37,55,56,62,63,67,83,84,91,105,107,127],kept:20,kerbero:58,kernel:[49,56],keycloak:[1,8,15,20,53,85,94],keycloak_access_ssl:18,keycloak_duo_spi_buildbox:5,keycloak_error_ssl:18,keycloak_ident:18,keycloak_sess:18,keycloak_state_check:18,keycloakpass:18,keyfil:127,keyword:20,kib:20,kill:[44,62,63,77,81,100,106,141,142,143],kind:[1,55,62,85],know:[14,17,30,33,35,55,62,83,85,88,100,103,105,107,109,138],knowledg:[20,109],known:[7,8,19,33,45,85,97,98,106,112,122,139],known_host:63,ktrout:85,kube:[62,85],kubeconfig:[62,137,138],kubectl:62,kubernet:[51,54,58,112],l138:60,l148:60,lab:[33,36],label:[0,20,21,23,31,35,36,50,56,114,115,120,126,128,135,138],lack:63,laid:20,land:[20,103],landscap:108,lang:[90,129],languag:[23,90,102,141,142],larg:[34,43,87,101,138,144],large_clust:43,largemem:138,larger:101,largest:87,last:[20,24,35,62,103,104,139],lastli:[20,35,137],lastusedthreshold:62,later:[18,29,35,44,114,137],latest:[5,15,45,50,90,96,97,98,106,108,127],latter:42,launch:[18,21,22,24,25,29,31,33,35,40,41,44,49,51,60,61,69,80,84,85,91,93,94,97,98,99,107,110,111,112,114,115,116,117,118,120,121,122,123,128,130,131,132,133,135,136,137,138,139,141,142,143],launcher:[133,135],layout:[51,84,99,103,107,110],lc_all:90,ld_library_path:[69,83,91,133],ldap1:17,ldap2:17,ldap:[1,6,14,16,18,58,62,101,107],lead:[20,69,83],learn:[118,120,128],least:[47,144],leav:[17,20,24,35,56,126],left:[5,6,16,17,20,36,53,56,57,84,94,101,102,117,123,132],leftov:44,length:[20,44,63],less:[20,35,96,100,107],let:[12,14,17,20,24,27,30,34,35,39,42,55,60,69,100,103,107,110,129,137,138,142],letsencrypt:85,letter:35,level:[0,20,35,56,60,69,85,103],leverag:[45,114,115],lexic:10,lib64:[56,63,69],lib:[4,12,18,56,60,63,64,66,70,80,83,85,97,98,133,138],libapache2:2,libari:135,libdir:64,libdrmaa:66,libdrmaa_path:66,libexec:2,librari:[27,30,32,34,44,53,56,57,61,65,69,70,85,87,104,135,141,142],libtorqu:70,licens:[20,29,43,52,125],license_fil:43,life:[102,144],lifetim:62,light:[0,20,84],lightweight:4,like:[6,7,12,15,18,20,22,23,24,27,29,31,34,35,40,43,44,47,48,49,51,52,53,54,55,57,61,62,63,64,65,66,67,68,70,84,85,87,88,89,97,101,102,103,105,107,110,112,120,126,127,128,133,137,139,141,142,144],likelihood:52,likewis:135,limit:[35,44,51,52,56,62,67,83,88,103,105,125,137],limit_in_byt:63,line:[0,12,18,20,23,30,36,37,39,43,53,58,63,66,67,69,83,100,114,115,118,120,127,128,129,137],link:[3,6,11,15,16,22,29,30,39,45,51,52,53,56,62,83,84,85,99,101,104,107,108,117,118,123,132],linux:[12,45,50,53,56,57,58,62,63,102,103,105,106],linux_host:63,linuxhost:[21,51,54,100],linuxhost_adapt:63,linuxhost_submit:23,linuxhostadapt:63,list:[1,19,20,22,29,30,35,37,42,43,45,52,54,56,60,62,63,69,74,78,83,84,85,89,90,91,93,94,95,97,98,99,100,102,103,104,111,112,113,117,118,123,127,132,140,141,142],listen:[4,18,39,45,50,85,137,141],listen_addr_port:85,listenbacklog:47,littl:[18,35,138],live:[44,68,85],lmod:[121,126,130,133,136,138],lmod_dir:84,lmodfil:133,load:[10,17,18,20,40,44,49,50,56,60,69,84,87,90,91,97,98,99,102,104,118,121,126,127,130,133,136,142,143],load_script:60,load_serv:143,loadmodul:47,local:[7,9,12,16,23,39,40,42,55,56,58,61,62,63,64,65,66,67,70,82,84,85,96,98,109,112,113,114,117,123,132,133,137,138,143],local_usernam:12,localdomain:12,localfil:84,localhost:[4,12,18,20,44,50,63,97,101],localiz:20,locat:[2,4,10,11,18,19,20,22,23,24,35,39,43,44,45,46,49,55,60,83,84,85,95,96,98,100,102,104,108,110,114,117,118,119,120,123,124,126,128,132,133,134,137,139],lock:55,log:[5,11,12,13,16,17,18,20,22,44,45,46,51,56,58,60,62,66,69,80,83,85,95,97,98,99,102,103,104,107,118,141],log_level:137,log_me_out:85,log_out:20,logformat:85,logger:12,logic:[4,20,44,45,102,103,138,142],login01:[29,56,63],login02:63,login03:63,login:[4,5,15,16,17,18,20,24,25,26,30,39,40,45,49,53,54,61,62,63,64,65,66,67,68,70,85,88,97,100,101,102,111,114],login_url:33,loginalertmessag:20,loginalerttyp:20,loginbuttontext:20,loginlogo:20,logintitl:20,logo:[15,20,29,84,91,98],logo_img_tag:20,logout:[1,8,9,13,19,20,107],logout_redirect:[8,11,13,19,85],logout_uri:85,logroot:85,longer:[12,20,34,84,98,99,100,101,104,105,110,111],look:[4,12,18,20,24,31,35,37,44,49,54,56,61,62,63,64,65,66,67,69,70,83,84,85,96,101,102,110,117,118,120,123,126,127,128,132,137,138,143],lookup:[7,138],loop:[27,114,138],lost:102,lot:[24,27,46,47,137,138],louthan:51,lower:[12,20,35],lowercas:[12,33,35],lowest:87,lsb:64,lsb_mbd_port:64,lsb_query_enh:64,lsb_query_port:64,lsf:[43,51,53,54,56,84,88,93,94,98],lsof:[106,133],lua:[12,19,27,85,102,133],lua_log_level:[12,85],lua_root:85,luahookfixup:19,mac:45,machin:[20,26,43,53,55,63,90,119,124,134],made:[4,20,28,35,45,82,96,98,100,101,102,103,104,108,118,120,126,128,138],mah:127,mai:[4,6,10,12,17,18,20,22,24,27,29,30,32,35,38,40,42,43,44,45,46,47,49,51,53,54,55,56,57,58,59,60,61,62,63,66,67,69,83,84,85,88,91,96,97,98,99,100,101,102,103,104,105,107,110,113,121,125,126,129,130,133,135,136,137,138,141,144],mail:[4,96],mailer:20,main:[5,14,31,35,40,42,54,60,62,84,87,100,118,120,126,128,133,138,141,144],maintain:[83,93,94,95,98,102,104,107,108,117,123,132,135],mainten:[51,67,85,96,103,105,107,108],maintenance_ip_allowlist:[20,85,103,105],maintenance_ip_whitelist:[103,105],major:[45,51,99,135],make:[4,8,12,16,18,20,23,24,27,28,33,34,35,45,50,58,63,69,71,93,94,95,103,106,109,110,111,117,120,123,126,127,128,132,137,138],malic:103,malici:[20,39,44],maluf:100,man:63,manag:[1,16,22,23,29,35,43,51,53,54,56,57,58,61,63,64,65,66,67,69,70,85,96,97,100,107,114,115,116,122,129,130,138,139],managementfactori:129,mani:[7,20,27,29,47,54,56,57,62,63,83,84,103,137,139],manifest:[28,31,141,142,143],manipul:[35,43,51,62],manner:[20,103],manpath:[83,91],manual:[10,19,60,61,63,83,84,100,106,117,123,132],map:[1,2,9,13,14,18,20,56,62,83,84,85,91,97,104,107,126],map_fail_uri:85,mapfil:[7,85],mapped_us:7,mapper:62,marco:127,mark:144,markdown:[20,24,32,35,96,102],markdown_erb:20,master:[17,18,20,53,57,62,141,142,143],match:[5,12,20,22,39,49,60,62,63,82,83,85,99,114],mate:[21,24,25,122,130,139],matei:127,mathwork:129,matlab:[28,29,35,51,52,112,125,126,128,129,130],matlab_env:129,matlab_root:129,matlabcentr:129,maven:5,max:[31,35,36,63,83,126],max_item:20,max_port:[44,87],max_result:27,max_siz:20,maxim:[99,112],maximum:[20,34,35,44,83,84],maxrequestsperchild:47,maxrequestwork:47,maxsparethread:47,mayank:103,mayb:[20,63,144],mbd_refresh_tim:64,mdq:7,mean:[4,7,16,18,20,23,24,29,35,37,40,53,96,97,98,100,101,102,103,104,105,111,120,128,141,142,143],meant:[25,27,41,81,102,121,130,136],measur:27,mechan:[4,20,29,85,96,101,103],media:[23,63,133],medium:34,meet:[20,63,100],mellon:2,mellon_create_metadata:2,mellon_endpoint:2,mellon_metadata:2,mellon_user_guid:2,mellonen:2,mellonendpointpath:2,mellonidpmetadatafil:2,mellonspcertfil:2,mellonspmetadatafil:2,mellonspprivatekeyfil:2,mem:[23,88,120,128],member:[4,20,29],membership:56,memori:[20,43,47,56,63,69,88,106,125,126,137,138],memory_limit:137,memory_mb:138,memory_request:137,memoryaccount:63,memorylimit:63,memsw:63,mention:52,menu:[5,16,22,35,36,37,51,56,84,94,96,97,98,101,102,103,105,107,110,117,123,127,132,141,142,143],menufil:127,merg:[4,60,97,98,100],messag:[12,15,21,35,36,49,51,63,69,82,84,85,100,107,114,115,117,123,132],messages_en:15,metadata:[2,7,20,37,39,40,54,56,61,62,63,64,65,66,67,70,101,114],method:[24,29,33,35,44,45,56,63,91,97,107,114,115],metric:[27,50,62,106],metrics_path:50,mfa:5,micket:103,micro:101,microsoft:106,mid:99,midnight:88,might:[15,18,20,29,30,50],migrat:[20,95],miller:99,millicor:137,millisecond:20,mime:83,mime_types_path:83,mimic:[23,69,120,128],min:[31,35,36,126],min_port:[44,87],min_uid:83,mind:63,minim:[20,21,139],minimal_:20,minimum:[34,35,83,106],minor:51,minsparethread:47,minut:[20,106],mirror:135,mirrorurl:135,misbehav:44,misc:[110,111],miser:22,miss:[51,103,107],missing_home_directori:20,mistak:20,mit:52,mitig:[102,129],mix:[56,105],mjbludwig:52,mjob:99,mkdir:[4,20,22,29,30,50,54,69,96,117,123,127,132,141,142],mktemp:127,mnakao:103,mnt:[23,63,133],mod:[2,18,55],mod_auth_ca:3,mod_auth_mellon:[1,53],mod_auth_oidc:11,mod_auth_openidc:[8,14,85,104],mod_auth_openidc_sess:[7,8,19],mod_auth_openidc_session_0:[7,8,19],mod_auth_openidc_session_1:[7,8,19],mod_auth_openidc_session_chunk:[7,8,19],mod_auth_shib:11,mod_authn_:13,mod_head:18,mod_mpm_ev:47,mod_ood_proxi:[12,85,94,95,96],mod_proxi:20,mod_shib:13,mod_ssl:[2,55],modal:36,mode:[17,29,36,46,51,64,85,98,107,140],model:[0,20,29],modern:106,modif:[13,15,18,24,35,84,96,98,103],modifi:[4,10,13,15,18,19,20,21,22,23,29,30,35,38,39,51,52,62,63,82,83,85,91,94,96,97,98,99,100,101,102,103,104,105,112,116,122,133,137,138],modul:[1,2,9,11,13,19,23,35,39,40,44,47,49,54,56,57,63,84,85,87,89,90,101,102,103,104,114,115,118,120,121,126,127,128,130,133,136],module_file_dir:84,module_path:133,modulepath:84,moment:110,mon:18,mondai:20,monitor:[51,129,139],monolith:[97,98],monorepo:100,month:[27,106,144],more:[0,1,2,7,9,11,12,17,20,23,24,29,30,35,39,43,45,46,47,49,54,55,56,62,66,67,69,84,85,93,96,97,99,100,101,102,103,104,105,114,115,120,128,137,138,141,142,144],most:[1,10,12,14,15,20,22,23,34,35,43,44,47,62,63,83,84,96,98,99,102,120,128,133],mostli:[110,144],motd:[29,51,84,98,107],motd_format:20,motd_path:20,motd_render_html:84,motd_titl:20,mount:[23,58,62,63,90,112,133,135,141],mount_path:137,mountpoint:90,move:[29,46,57,95,96,97,102,112,117,123,129,132,133],mozilla:106,mpi:126,mpm:47,mpm_event_modul:47,mpm_prefork_modul:47,mrodger:29,msc:18,msg:[20,96],much:[20,47,56,62,96,102,138],multi:[18,37,64,67],multiphys:52,multipl:[17,20,24,29,35,36,83,84,85,91,100,113,126],multipli:47,multitud:[85,95],mung:[58,67,138],muse:110,must:[1,4,16,20,22,23,24,33,35,36,43,44,45,47,50,52,54,58,60,62,63,66,84,100,101,102,103,104,109,114,115,117,119,123,124,132,133,134,135,137,138],mvn:5,my_app:[31,35,42,43,44,45],my_app_imag:88,my_app_img:88,my_cent:[4,20,39,40,45,53,54,55,61,62,64,65,66,67,70,114,117,119,123,124,132,134],my_clust:[20,23,24,54,61,64,65,66,67,70,84,96,101,114,115,118,120,128,133],my_cluster_widget:20,my_conf:82,my_cool_form_item:105,my_custom_attribut:35,my_custom_script:43,my_env_var:20,my_k8s_clust:62,my_module_vers:35,my_new_widget:20,my_other_clust:101,my_pun_app:85,my_pun_control:85,my_queu:43,my_schedul:61,my_site_hook:85,my_submit:23,my_uri:85,myaccount:69,myapp:[72,96,142],mycent:20,myclust:64,mydomain:20,myfil:82,myfold:[20,84],myjob:[20,29,56,60,94,96,99],mysit:20,mysql:14,n0001:39,n0691:39,name:[4,5,7,8,13,15,16,17,18,29,30,35,37,39,42,44,45,50,51,52,53,54,55,56,61,62,63,67,69,83,84,85,87,88,89,91,94,99,102,103,105,107,110,114,117,120,123,125,126,128,129,132,135,137,138,141,142,143],nameattr:4,nameid:2,namespac:[0,20,44,56,62,63,72,75,83],namespace_prefix:62,namespacelabel:62,namespacelastusedannot:62,namespaceregexp:62,nation:7,nativ:[23,31,35,43,62,63,86,88,106,114,115,120,128,137,138],native_vnc_login_host:45,nav:20,nav_bar:[20,84],nav_categori:[20,84,103,105],nav_help_custom:[16,20],navbar:[20,83,84,96,98,102],navbar_typ:[20,84],navconfig:[97,98],navig:[16,22,35,36,37,39,51,62,84,96,97,100,102,103,104,105,107,110,111,117,119,123,124,132,134,141,142],navit:103,navlogo:20,nb_gid:[137,138],nb_uid:[137,138],nb_user:[137,138],ncat:[41,106],ncpu:[23,120,128],nearing:20,nearli:100,necessari:[4,5,20,35,44,58,62,63,99,100,101,106,130,139],necessarili:69,need:[4,7,8,10,12,13,14,15,18,19,20,22,23,24,27,29,33,34,35,37,38,40,41,42,43,44,45,47,49,50,52,53,55,56,57,60,61,62,63,66,69,70,83,85,86,87,88,90,95,96,97,98,100,101,102,103,104,105,107,110,111,114,115,117,120,123,127,128,130,132,135,137,138,139,141,142,143,144],nest:4,netbean:[23,63],netbeans_2019:[23,63],network:[18,62,85],network_policy_allow_cidr:62,never:[10,17,20,40,57,60,84,97,103,104,137],new_app:29,new_app_group:29,new_app_us:29,new_featur:110,new_tab:20,new_window:[20,37,102],newer:[8,27,100],newjob_refresh:64,newli:[17,20,75],newlin:[12,99],next:[20,23,33,51,62,88,99,103,110,114,115,118,120,128,133,137,138,144],next_url:33,nextwindow:127,nextworkspac:127,nfs:137,nfsroot:138,nginx16:[97,98],nginx:[0,12,19,20,26,28,49,50,51,60,71,72,73,74,75,77,78,79,80,81,83,91,95,96,97,100,101,102,103,104,106,107,118,140,141,142,143],nginx_bin:83,nginx_clean:[81,83,102,103,104],nginx_file_upload_max:[20,83],nginx_handl:19,nginx_list:81,nginx_show:81,nginx_sign:83,nginx_stag:[20,30,51,71,81,84,85,91,93,94,95,96,97,98,99,100,101,102,103,104],nginx_stage_exampl:[83,91,97],nginx_uri:85,night:144,nightli:51,nil:[20,27,84,87,88,89,96],ningx:96,nmap:[41,106],nmodul:56,no_good_config:63,noarch:[57,90,96,97,98,99,100,101,102,103,104],noble_al:[57,104],node01:45,node02:45,node:[0,18,20,21,23,24,25,26,28,30,34,35,38,39,41,43,45,49,52,53,54,56,57,58,60,63,67,68,83,85,88,95,97,98,101,103,104,106,111,116,120,121,122,126,127,128,130,131,136,137,138,139,140],node_modul:[97,98],node_selector:138,node_typ:[23,24,34,126,127,138],node_uri:[39,85],nodea:50,nodej:[0,51,57,98,100,103,104,140,144],nodejs010:[97,98],nodejs10:102,nodejs12:103,nodejs6:[69,83,100],nologin:[4,18],nomenclatur:0,non:[4,20,43,60,62,63,107],none:[17,34,35,60,67,88],nonetheless:143,noreset:59,normal:[20,97,106,138],nosoftwareopengl:127,notabl:[20,93,94,103,133],notat:20,note:[2,7,16,20,29,35,36,44,49,51,56,60,61,62,69,83,84,85,88,90,114,117,123,132,137],notebook:[31,36,39,45,51,85,106,116,117,118,120,121,128,130,137,138],notebookapp:[45,137],noth:[12,23,44,99,103],notic:[18,19,20,23,24,85,96,103,110,111,117,123,132],notifi:35,novnc:[21,52,100,106],now:[16,17,18,19,20,22,23,24,27,29,33,35,39,42,43,47,55,57,60,63,69,84,87,88,95,96,97,98,99,103,104,110,111,114,115,117,118,120,123,126,127,128,132,133,141,142,143],npm:[110,111,141],nsf:[1,53,108],nslookup:55,nsswitch:138,ntask:138,num:34,num_cor:[34,36,43,88,126,138],number:[20,23,24,34,35,36,39,42,43,45,47,50,51,63,77,79,83,84,85,87,88,99,102,106,120,126,128],number_field:[34,35,36,126],number_of_hour:43,nvidia:[34,126],nvm:111,oak:69,oaklei:[7,12,22,34,54,62],oauth2:16,oauth:7,obatchmod:60,object:[17,20,27,31,35,45,83,84,85,88,126],objectclass:4,objectlabel:62,observ:64,obsolet:82,obtain:55,occass:127,occur:[47,59,82,94],oci:0,odd:17,odic:62,off:[15,17,18,19,20,43,44,47,56,58,85,87,89,100,104,127],offer:[15,59,63,81,82,126],offici:[101,106,129,144],often:[61,137],ohio:[96,138],ohiosupercomput:[5,137],oidc:[1,4,8,11,17,19,85,101],oidc_access_token:85,oidc_claim:19,oidc_claim_email:85,oidc_claim_preferred_usernam:85,oidc_client_id:[7,8,85],oidc_client_secret:[7,8,85],oidc_cookie_same_sit:85,oidc_discover_root:85,oidc_discover_uri:85,oidc_provider_metadata_url:[7,8,85],oidc_remote_user_claim:[7,8,12,85],oidc_scop:[7,8,85],oidc_session_inactivity_timeout:[7,8,85],oidc_session_max_dur:[7,8,85],oidc_set:[7,8,85],oidc_state_max_number_of_cooki:[7,8,85],oidc_uri:[7,8,19,85],oidcauthrequestparam:7,oidcclientid:[10,19,85],oidcclientsecret:[19,85],oidccookiesamesit:85,oidccryptopassphras:19,oidcpassclaimsa:[7,8,19],oidcpassidtokena:[7,8,85],oidcpassrefreshtoken:[7,8,85],oidcprovidermetadataurl:[19,85],oidcredirecturi:19,oidcremoteuserclaim:[19,85],oidcresponsetyp:8,oidcscop:85,oidcsessioninactivitytimeout:[19,85],oidcsessionmaxdur:[19,85],oidcstatemaxnumberofcooki:85,oidcstripcooki:[7,8,10,19],old:[84,98,100,102],olddisplai:59,older:[84,100,101,103,104],omit:[14,20,27,84,99],onc:[7,17,20,32,33,35,45,62,96,98,110],ondemand:[0,1,3,5,6,7,8,9,11,12,13,14,15,16,18,22,25,28,29,31,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,49,50,52,53,54,56,57,58,59,60,63,64,65,66,67,68,69,70,71,72,79,80,82,83,85,87,88,90,91,94,95,96,97,103,104,105,106,107,108,109,110,111,114,115,117,118,119,120,121,123,124,125,126,127,128,129,130,132,133,134,136,138,139,140,141,142,143,144],ondemand_config:137,ondemand_export:50,ondemand_manage_user_home_dir:58,ondemand_manage_vmblock:58,ondemand_port:83,ondemand_titl:83,ondemand_tmux:63,ondemand_use_kerbero:58,ondemand_use_kubernet:[58,103],ondemand_use_ldap:58,ondemand_use_nf:58,ondemand_use_shell_app:103,ondemand_use_slurm:58,ondemand_use_smtp:58,ondemand_use_ssh:[58,103],ondemand_use_sssd:58,ondemand_use_torqu:58,ondemand_usernam:62,ondemand_version_path:83,ondemandopen:101,one:[0,7,19,20,30,34,35,42,43,49,54,56,62,63,85,87,88,91,96,97,99,100,101,102,103,109,117,123,132,138,139,141,142],ones:[20,77,99,126],onfailur:[137,138],ongo:108,onli:[0,1,4,8,12,14,16,18,20,24,25,27,29,32,33,34,35,36,41,42,43,44,45,50,53,54,58,61,62,63,66,70,72,76,77,80,83,84,85,87,89,93,94,96,97,98,100,101,102,103,104,105,106,111,117,120,121,123,128,130,132,136,141,142,144],onlin:29,onsubmit:33,onto:83,ood:[1,4,8,10,11,12,13,14,15,16,18,22,23,24,26,29,30,35,39,40,42,43,45,49,50,51,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,83,84,85,86,87,89,91,94,95,96,97,98,99,102,103,104,105,107,111,114,117,118,119,120,123,124,126,128,132,133,134,137,141,142,143],ood_:[84,85],ood_allowlist_path:[20,103,105],ood_app_catalog_url:29,ood_app_shar:[29,102],ood_auth_map:[8,12,93,94,95,96],ood_balance_path:20,ood_balance_threshold:20,ood_batch_connect_cache_attr_valu:35,ood_bc_ssh_to_compute_nod:[20,56,100],ood_brand_bg_color:[83,84,110],ood_brand_link_active_bg_color:83,ood_config_d_directori:[84,110],ood_cor:[56,60,88,120,128],ood_dashboard_dev_docs_url:20,ood_dashboard_docs_url:20,ood_dashboard_help_custom_url:[16,20],ood_dashboard_logo:20,ood_dashboard_logo_height:101,ood_dashboard_passwd_url:20,ood_dashboard_support_email:29,ood_dashboard_support_url:20,ood_dashboard_titl:83,ood_default_sshhost:20,ood_dev_ssh_host:30,ood_download_dir_max:20,ood_hide_job_arrai:20,ood_job_name_illegal_char:[20,100],ood_local:[20,101],ood_locales_root:20,ood_max_script_size_kb:[20,100],ood_mod_proxi:85,ood_native_vnc_login_host:45,ood_oidc_access_token:85,ood_port:[2,4,7,8,10,11,13,19,20,39,51,71,82,96,99,100,101,102,103,104],ood_portal_exampl:85,ood_pun_socket_root:[83,98],ood_pun_t:58,ood_quota_path:[20,97],ood_quota_threshold:20,ood_shel:[99,102],ood_shell_inactive_timeout_m:20,ood_shell_max_duration_m:20,ood_shell_origin_check:20,ood_shell_ping_pong:20,ood_show_job_options_account_field:96,ood_ssh_port:20,ood_ssh_wrapp:20,ood_sshhost_allowlist:20,ood_support:[30,56],ood_upcase_account:35,ood_xdmod_host:20,oodappkit:114,oodcor:[35,114,115,120,128],oodfilesapp:[20,103,105],oodsupport:[30,137,138],opaque_remote_usernam:12,open:[1,4,6,7,9,10,12,13,14,17,20,22,30,31,34,36,37,38,39,40,42,43,45,46,47,49,52,53,54,57,58,59,60,63,64,67,68,70,71,82,83,84,85,87,95,97,101,103,104,105,107,108,109,110,117,118,123,126,132,141,142,144],open_sess:63,open_timeout:20,openid:[1,7,11,12,16,17,18,19,20,53,62,98],openjdk:[18,130],openldap:[4,17],openondemand:[2,20,47,62,99,108],openssl:[2,18,19,121],oper:[24,43,44,51,57,69,102,104,107,135,144],opt:[5,8,10,12,13,15,18,19,20,23,29,39,56,60,61,62,63,65,69,82,83,85,87,88,89,90,91,95,96,98,99,100,101,102,103,104,129,133,137,138],optim:[20,35,129,138],optimis:52,option:[1,2,4,10,12,22,23,24,28,31,35,36,37,39,40,42,44,45,50,53,55,56,61,62,63,64,65,66,67,70,73,74,78,81,84,98,100,101,102,107,113,114,115,117,120,121,123,125,126,128,129,130,132,136,137,139,141,142,143],options_account_help:20,oracl:129,order:[10,13,16,20,24,27,35,45,49,51,52,56,62,63,91,103,129,133,139],oregon:51,org:[2,4,7,12,15,16,18,20,55,62,97,99,108,135,143],org_nam:20,org_rol:20,organ:[2,20,103],organiz:2,orgid:[20,56],origin:[20,45,60,84,100,102,107,141,142,143],orin:96,osc:[4,5,12,14,15,16,17,18,19,20,22,27,30,39,45,50,52,53,54,56,57,59,60,62,63,69,84,90,96,97,98,99,100,101,102,103,104,106,110,111,117,123,125,126,127,130,132,135,138,144],osc_test:20,osu:56,osvers:135,other:[1,2,10,12,13,15,17,20,23,24,28,29,31,32,35,42,43,45,49,50,51,53,56,57,59,61,62,63,66,81,83,84,85,87,89,90,95,96,98,99,100,102,103,106,109,110,116,121,122,130,136,137,138,142,144],other_main:87,other_users_of_the_clust:56,otherwis:[4,12,35,37,40,44,62,63,69,138],otp:15,our:[7,10,17,20,23,24,27,30,39,51,69,85,93,94,96,97,98,103,106,108,110,114,115,117,118,120,123,128,132,137,139],ourselv:[27,139],out:[2,6,7,11,12,13,16,18,19,20,27,34,35,42,43,44,50,56,60,62,63,83,85,101,103,106,107,110,111,114,115,117,123,132],outag:[67,100],outcom:18,outlin:[20,45,96,107,108,113],outliv:20,output:[12,44,45,47,48,49,56,60,61,69,84,87,88,97,99,114,118],output_cluster1_2018:69,output_path:[63,88],outsid:[0,8,10,13,20,23,62,68,98,100,138,144],over:[17,20,37,55,57,84,85,96,106,107,117,123,132,142],overid:84,overidden:88,overlai:127,overrid:[23,24,35,36,37,39,42,45,51,56,63,70,84,87,88,91,97,107,120,127,128,133],overridden:[24,37,87,89],overried:42,overview:[1,28,49,51,53,71,86,107],overwrit:96,overwritten:63,owen:[12,24,29,35,42,44,56,63,99,126,138],owens_login:[24,63],owens_login_desktop:24,own:[12,13,15,20,28,29,31,35,43,45,47,49,62,63,81,85,97,102,103,104,110,139],owner:[30,83,102,117,123,132],ownership:[18,49],p100:126,p18:138,p20:138,pack:62,packag:[1,5,20,30,53,57,58,98,100,101,102,135,138,141,144],page:[1,6,11,15,16,18,19,24,27,29,33,34,35,43,45,46,47,49,51,54,57,59,63,84,85,86,99,100,101,104,105,107,110,114,115,117,123,132,137,138,140,141,142],page_cod:20,pagepath:27,pagin:27,pair:[20,37,84,91,97,114,115],pam:[6,63],pam_exec:63,pam_keyinit:63,pam_limit:63,pam_mkhomedir:[20,97],pam_servic:63,pam_sss:63,pam_succeed_if:63,pam_systemd:63,pam_uid:63,pam_unix:63,pam_us:63,pane:93,panel:[20,31,56,102,127],panelid:20,parallel:43,param:[19,60,64],paramet:[17,20,22,28,31,35,83,87,89,102,103,112,116,118,122],paraview:[52,93],parent:[42,63,97,98],parlanc:[137,138],pars:[12,20,27,44,56,60,69,85,99],parse_uri:27,part:[0,7,12,26,27,35,46,52,100,110,129],parti:[39,56],partial:[20,93],particip:51,particular:[0,22,23,35,49,102,117,123,132],particularli:[53,57,107],partit:[35,51,83,106,112,114,115,138],pass:[4,10,12,19,20,33,34,35,60,62,67,69,83,85,87,88,89,90,91,102,126],passeng:[28,37,50,51,79,80,83,96,100,101,102,103,104,106,141,142],passenger40:[97,98],passenger_:83,passenger_base_uri:141,passenger_log_fil:83,passenger_max_preloader_idle_tim:83,passenger_nodej:83,passenger_opt:83,passenger_pool_idle_tim:83,passenger_python:83,passenger_root:83,passenger_rubi:83,passenger_statu:50,passenger_wsgi:142,passengerag:50,passwd:[44,89,137],passwd_from_secret:137,password:[4,5,18,19,20,31,44,60,61,62,63,69,87,89,121,137],password_field:35,password_fil:44,password_s:87,password_sha1:137,passwordless:63,passwordplacehold:20,past:[20,62,99,106],patch:51,path:[4,12,13,18,20,23,29,36,39,40,45,50,56,58,61,62,63,64,65,66,67,69,70,72,73,74,75,80,83,84,85,87,88,89,90,91,97,98,100,102,103,105,110,133,135,137,138,143],path_selector:[36,104],pathnam:[20,44,84],pattern:[20,35,85,102],paw0003:20,pbs:[23,65,120,128],pbs_default:69,pbspro:[43,51,65,93,98],pcp_dir:91,pdf:[95,99],peer:28,pem:[55,85],peopl:[4,17],per:[0,12,18,20,26,35,63,72,75,76,77,78,79,80,83,89,91,96,97,101,102,106,107,118,120,126,128,138],percentag:106,perfect:125,perform:[15,16,24,43,44,46,51,56,58,62,63,82,99,100,101,126,127,129,139],perhap:42,period:[20,103,106,144],perl5lib:91,perl:102,perman:[4,58],permiss:[4,8,10,18,19,20,27,44,56,60,83,97,107,114,117,123,132,142],permisson:142,permit:[56,125,144],persist:[20,127,137],person:29,personel:26,perspect:57,pfx:2,pgrep:139,phish:39,phusion:140,phusion_passeng:83,physic:26,pick:[43,110],picker:125,pid:[12,63,66,80,83,139],piec:[63,110],pin:[29,51,84,107,110],ping:[51,69,104,107],pinned_app:[20,29,84,102,110],pinned_apps_group_bi:[20,29,84,102,110],pinned_apps_menu_length:[20,84,110],pip3:[60,90],pip:[90,142],pipe:138,pirat:127,pittsburgh:51,pitzer:[56,97,99,138],pitzer_01_login:56,pixel:84,pizzazz:45,pkcs12:2,pkg_config_path:91,pki:[18,55,62],place:[10,14,20,29,42,44,45,55,56,60,62,91,96,110,130],plai:[108,110],plain:[20,45,53,57,102,142],plan:[58,107],plantuml:0,platform:[20,28,37,45,47,51,103,108],pleas:[4,14,17,20,23,35,45,51,52,55,58,69,85,93,94,96,97,98,99,100,101,102,103,104,106,108,114,115],plessing:101,plu:[133,135],plugin:[28,29,31,35,63,93,96,117,123,132],pn001:39,pn500:39,png:[15,20,37,44,84],pod:[62,137,138],point:[15,16,20,23,35,39,44,55,62,69,81,82,85,110,111,117,142,143],polici:[5,18,20,51,53,58,85,107],polish:29,poll:63,pom:5,pong:[51,104,107],pool:68,popul:[27,33,35,44,62,97,101,103],port:[4,14,18,19,39,44,45,49,50,51,58,85,87,89,103,107,137,138,141],port_cfg:137,portabl:43,portal:[4,8,9,11,12,13,14,20,30,39,51,53,71,83,85,94,95,96,98,99,102,103,104],portal_set:20,portion:[20,27,45,85,98],posit:[35,63,69],posix:[20,66],posixaccount:[4,17],posixgroup:4,possibl:[18,20,24,29,32,39,43,44,45,51,55,60,62,63,70,76,87,88,97,100,108,110,111,113,120,128,133,144],post:[16,31,33,51,52,58,90,97,98],postur:20,potenti:[63,84,99,108],power:106,powerpoint:0,powertool:[57,102],ppc64le:106,ppn:[23,120,128],practic:107,pre:[20,62,85,96,101,117,123,132,135],preced:[20,35,62,85],precis:66,predefin:[27,31,43,45,103],prefer:[4,20,35,45,60,127,130,139],preferred_usernam:[8,19,85],preferredusernameattr:4,prefix:[20,35,62,83,84,85],prehook:62,prepar:[1,87,108],prepend:[20,24,84,102],prerequisit:[8,13,27],present:[20,22,24,27,30,35,42,49,100,102,103,117,123,132,138],preserv:91,preset:[18,42],press:[17,105],prevent:[19,20,29,63,83,100,136,139,144],preview:102,previou:[20,24,35,95,96,97,98,100,101,142,144],previous:[20,96,97,98,101,102],previx:35,prevwindow:127,prevworkspac:127,primari:[0,29,35,45,63,96,108],print:[7,39,60,62,63,82,87,120,128],prior:[12,20,34,35,91,97,98,100,102,103,105,129,144],prioriti:88,privaci:10,privat:[13,18,19,55,108,138],privileg:[20,22,62,63,81,85,107],privkei:85,privleg:98,pro:[42,65],probabl:[14,17],problem:[17,20,60,69,97,106,108,129],problemat:[100,104],proc:139,procedur:[9,108],proceed:57,process:[0,23,30,43,44,45,46,63,66,72,76,77,78,79,80,81,83,85,90,91,96,99,102,106,107,108,114,115,120,128,139,140,141],process_nam:50,processor:[23,24,35,120,126,128],prod:62,produc:5,product:[14,18,20,29,50,54,56,62,69,83,85,96,97,98,99,100,101,102,103,104,110,117,123,132,138,141,142,143,144],production_profil:20,profession:[21,51,54,116,122],profil:[7,8,16,51,83,85,91,97,98,107,138],profile_link:[20,84],profile_nam:20,profiles_guid:20,program:[7,43,62,100],project1:20,project:[3,24,29,34,36,51,60,84,101,103,105,106,108,117,123,126,132,133,137,138,142],project_nam:20,project_typ:20,prolog:59,prometheu:[46,51,62],prometheusaddress:62,pronunci:127,proot:98,propag:[0,67,133,135],proper:[18,20,54,62,63,85],properli:[2,13,18,39,56,85,93,94,96,97,98,114],properti:[15,18,20,27,35,63,85,103,104,105],protect:[20,85],proto:[18,20],protocol:[17,18,20,27,55,62,107],proven:58,provid:[1,2,4,5,7,8,12,14,15,17,18,19,20,29,30,31,34,35,36,40,42,43,44,45,49,50,51,52,54,55,56,58,61,62,63,66,69,82,85,87,90,91,96,97,100,101,103,104,107,116,122,125,126,130,131,135,137,141,144],provis:14,proxi:[0,1,10,12,14,18,19,31,38,51,72,75,83,106],proxy_serv:85,proxy_temp:80,proxy_us:83,proxypass:18,proxypassrevers:18,proxypreservehost:18,proxyrequest:18,psc:51,pstree:63,ptrace:133,pub:97,public_root:85,public_uri:85,public_url:[20,84],publicli:91,publish:[7,140],pull:[62,100,108,110,111,135,144],pun:[0,11,12,19,20,26,27,29,49,50,51,58,60,62,67,71,72,75,77,78,79,81,83,85,95,96,100,102,103,104,106,107,110,111,117,118,123,132,141],pun_access_log_path:83,pun_app_config:83,pun_config_path:83,pun_custom_env:[20,83,84,91,97,99,100,101],pun_custom_env_declar:[83,91,97],pun_error_log_path:83,pun_log_format:83,pun_max_retri:85,pun_pid_path:83,pun_pre_hook_export:85,pun_pre_hook_root_cmd:85,pun_secret_key_base_path:83,pun_sendfile_root:83,pun_sendfile_uri:83,pun_socket_path:83,pun_socket_root:85,pun_stage_cmd:85,pun_tmp_root:83,pun_uri:85,punctuat:99,puppet:[54,96],purdu:99,pure:[56,111],purg:[39,40,44,121,130,136],purpos:[20,29,45,63,84,101,127,137,138,144],push:[141,142,143],put:[18,20,23,62,96,100,139],pwd:[5,29,44,127,142],pwd_cfg:137,python36:60,python3:[90,142],python:[28,44,51,83,102,103,114,115,118,120,121,128,130,137,140],python_hello_world:142,python_vers:35,pythonpath:91,pzs0001:43,pzs0002:20,pzs0562:[141,142,143],pzs0714:[29,63],qdel:[65,66],qgi:52,qhold:[65,66],qos:101,qrl:[65,66],qselect:65,qstat:[65,66,101],qsub:[23,43,49,56,65,66,69,70,99,100,120,128],qsub_wrapp:66,qualiti:[35,101],quantifi:106,queri:[7,19,20,46,62,98,102],question:[6,63,96,97,98],queu:[48,66,69],queue1:[114,115],queue2:[114,115],queue:[20,23,24,35,43,51,63,69,88,94,99,112,114,115],queue_nam:[35,43,88,114,115],quick:[21,31,38,56,67,81,82,96,116,122,131],quiet:63,quit:[6,62,76,83],quot:[84,99],quota1:20,quota2:20,quota:[51,107,141,142,143],quota_additional_messag:20,quota_reload_messag:20,r2015b:126,r2016b:126,r2017a:126,r2018a:126,r2018b:126,rack:[28,140],radio:36,radio_button:[35,36],rail:[20,30,69,91,97,98,100,103,105,140],rails_env:69,rais:[20,69],rake:[54,57,69,96],ram:[63,106,126],ran:[20,63,90],rand:[18,19],random:[19,44],randomli:4,rang:[20,44,84,106,113],range_field:35,rational:102,raw:62,rc8:144,rclone:[20,84,103],rdynam:63,reach:[17,32,62,101,103,106,144],read:[4,7,12,18,20,22,30,35,39,44,55,60,62,63,66,67,81,84,85,88,89,98,100,102,103,114,115,120,128,137],read_onli:17,read_timeout:20,readabl:[4,8,19,20,29,62],reader:[6,53,57,143],readi:[29,110],readm:[52,97],readonli:20,real:[60,83,88,144],realiz:29,realli:[6,24,42,63,103],realm:[5,14,15,16,18,19,20,62],reapaft:62,reaper:62,reapnamespac:62,rearrang:[20,84],reason:[20,29,54,63],rebuild:[63,97,98,110,111],rebuilt:[97,102,103,104],recalcul:47,receipt:108,receiv:[16,20,24,39,108],recent:20,recently_used_app:[20,103],recip:63,recogn:[20,35,142,143],recognzi:141,recom:64,recommend:[4,8,14,18,20,22,23,29,30,40,43,44,45,55,56,62,81,82,83,84,85,95,98,100,101,104,107,110,118,120,121,128,130,136],reconfigur:[20,28,31,53,61,104],record:99,red:[20,35],redcarpet:99,redefin:24,redhat:[53,57,100,102,106],redir:80,redirect:[4,11,13,14,16,17,18,19,55,60,80,102],redirecturi:4,rediscov:63,reduc:126,ref:88,refer:[1,12,20,27,34,43,45,51,56,62,81,82,84,85,86,88,93,94,103,104,127,129,137,138],referenc:[20,34,35,56,62,103,105],reflect:[20,100],refrain:43,refresh:[24,62,110,114,115],regard:[3,11,20,35],regardless:[20,32,34,35,84],regener:[11,20],regex:[8,12,35,61],regist:[7,14,85],register_root:85,register_uri:85,registr:[1,16],registri:138,registry_docker_config_json:62,registry_password:62,registry_us:62,regular:[10,12,13,20,30,35,39,61,67,83,85,100,102,144],regularis:52,regularli:[42,107],reguluar:9,reinforc:107,reinstal:[97,98],rel:[20,23,45,83,84,85],relat:[3,20,49,101,102,103,129,144],releas:[50,51,57,62,65,90,108,144],relev:[20,35,49,51,62,79,102,144],reli:[12,45,56,62,85,97,98,100,102],reliabl:[99,127],relion:52,reload:[4,18,20,50,58,76,83,141,142,143],remain:[91,100,101],remedi:[61,139],rememb:[13,15,17,20,24,97],remot:[9,51,55,58,60,63,84,107,117,123,132,141,142,143],remote_addr:83,remote_files_en:84,remote_files_valid:84,remote_us:[12,19,83,85],remov:[10,14,15,20,21,29,40,60,63,66,67,73,84,88,90,91,94,97,98,100,101,102,103,114,115,144],renam:[35,44,94,114,141],render:[20,28,29,31,33,35,43,45,49,56,59,62,82,84,101,102,138],render_template_notes_as_markdown:99,reopen:[76,83],repackag:98,repeat:[20,35],replac:[10,15,16,18,19,20,28,30,35,47,50,54,55,56,60,61,62,64,65,66,67,69,70,82,85,91,98,101,102,103,104,105,113,114,115,117,118,120,123,126,127,128,132,133],repli:20,replic:0,repo:[4,5,8,19,29,57,97,102,103,110,111,117,123,132,141,142,143],report:[20,27,66,84,99,101,106,107],repositori:[29,42,52,53,96,97,98,106,108,144],repres:36,req:[10,13,141],request:[10,12,14,18,19,20,23,27,34,35,39,42,43,44,45,47,51,59,72,75,80,83,84,85,88,96,98,102,103,108,112,120,125,126,127,128,141,142,144],requesthead:[10,13,18,19],requir:[2,4,5,8,10,12,13,19,20,21,22,24,29,31,34,35,36,37,38,44,50,51,54,55,56,58,60,61,62,63,64,67,69,81,83,85,87,90,100,101,104,110,112,114,116,117,118,122,123,125,126,127,131,132,133,135,138,139,141,142,143],require_rel:143,requiresess:[10,13],requri:142,rerun:63,rerunn:88,res:141,research:[7,51,101],reserv:[63,88],reservation_id:88,reset:[102,103,104,141,142,143],resid:[10,42,54,69,83,85],resiz:[101,112,129],resolut:[35,36,126],resolution_field:[35,36],resolv:[20,55,63,97,103,105],resourc:[0,5,7,15,18,20,22,23,26,35,43,47,50,51,53,54,56,61,62,64,65,66,67,68,69,70,84,85,96,99,100,103,107,112,114,115,116,122,131,138],resource_id:20,resource_mgr:20,respawn:127,respect:[20,23,31,43,80],respond:[34,85],respons:[12,20,24,27,45,47,56,57,94,98,108,118,120,126,128,133,142],rest:[18,30,63],restart:[2,4,10,18,19,20,29,39,46,50,53,72,96,101,102,103,104,110,114,141,142,143],restart_polici:[137,138],restor:[20,56,98,127],restrict:[10,12,18,20,29,30,62,83,85,97,113],restructur:103,result:[20,27,29,35,43,49,60,63,69,85,96,97,98,100,103],retain:[34,45,97],retriev:[2,98],reus:[18,20],reusabl:137,revers:[0,1,31,38,51,72,75],revert:[30,97,98],review:[48,53,57,107],revisit:69,revok:63,rewrit:85,rewriteengin:85,rewritten:[100,102],rex:12,rhel7:[1,53,98,138],rhel:[8,47,50,53,55,57,63,69,82,97,98,102,103,104,138],rice:100,rid:105,right:[17,20,29,35,36,40,44,60,69,84,102,110,114,115,117,123,132,135],risk:[39,85],rnode:[39,45,52,85],rnode_uri:[39,85],road:49,robin:63,robinkar:103,robust:[20,107,133],rocki:[8,47,50,57,102,103,104,106],rockylinux:[53,57,90],role:[27,37,54,62,108,138],rolebind:62,root:[4,8,10,17,18,19,20,22,23,29,34,35,37,43,44,45,49,50,57,62,63,66,69,72,80,81,83,85,90,91,96,98,100,107,110,118,119,120,124,126,127,128,133,134,141,143],root_uri:85,rotat:62,round:63,roundrobin:63,rout:[47,141,142,143],router:[20,141],row:[20,27,101,102],rpm:[8,46,57,65,82,85,90,97,98,99,100,101,102,103,104,106,136,144],rpmsave:98,rserver:[133,135],rss:[20,84],rstudio:[20,39,45,49,51,52,54,85,88,93,96,106,112,133,135,136],rstudio_contain:133,rstudio_group:20,rstudio_guid:20,rstudio_launcher_centos7:133,rstudio_server_imag:133,rubi:[0,20,23,24,27,28,30,32,34,35,43,44,45,50,51,57,83,88,91,96,98,99,100,103,104,105,114,120,128,138,140,144],rubular:35,ruby22:[97,98],ruby24:[69,100],ruby25:[83,102],ruby27:[102,103],rubydoc:[120,128],rubygem:143,rubylib:91,rule:[13,18,35,63,85],run:[0,3,4,5,7,12,14,17,18,20,21,23,25,26,28,29,30,33,35,38,39,40,41,44,45,49,50,55,56,57,58,59,61,62,63,64,66,67,69,76,78,79,80,81,82,83,85,87,89,90,91,98,101,106,107,110,111,116,117,118,120,121,123,126,128,129,130,131,132,135,136,137,138,142,143],run_as_group:137,run_as_us:137,run_fil:87,run_owens_script:44,run_remote_sbatch:60,run_script:87,runasgroup:62,runasnonroot:62,runasus:62,runscript:135,runtim:[33,126,130,133,135,142],sacrific:99,safari:106,safe:[45,98,101],safer:56,safeti:[20,108],sai:[20,34,42],salt:137,same:[14,18,20,27,29,31,35,42,45,56,62,63,64,67,96,98,100,102,103,110,127,135,137,138],saml:[1,7,53],sampl:20,sandbox:[29,35,43,44,45,95,110,111,114,115,117,118,119,123,124,132,134,141,142],sanit:[9,125],satisfi:[8,13,57],saumyabhushan:103,save:[4,5,16,17,18,20,58,62],save_passwd_as_secret:137,sbatch:[23,43,49,56,60,67,100,120,128],sbatch_wrapp:56,sbin:[4,10,13,18,19,20,39,47,50,82,83,85,91,99,100,101,102,103,104],scan:12,scancel:[56,67],scenario:[43,83,103],scgi_temp:80,schedul:[20,24,26,32,35,49,54,56,60,61,62,63,68,84,88,96,100,138],schema:[20,51,54],scheme:[20,35,42,84,100,144],scienc:[7,103],scipi:137,scl:[30,69,83,91,97,100],scl_sourc:98,scontrol:[56,67],scontrol_wrapp:56,scope:[8,13,16,18],scrape:50,scrape_interv:50,scrape_timeout:50,scratch:[20,36,137,138],screen0:127,screen:[29,94],screenshot:20,script:[23,29,31,35,40,42,51,54,56,62,63,66,67,82,83,84,86,87,89,91,97,98,99,101,102,107,110,112,114,115,118,120,122,125,126,128,129,133,135,136,137,138,139,141,142],script_dir:142,script_fil:[43,87],script_pid:66,script_wrapp:[39,40,56,66,67,87],scroll:17,scrub:87,seamless:144,search:[7,10,20,49,83,102],search_field:35,second:[20,35,43,44,62,63,69,83,87,88,89,99,104,114,115,126],secondari:[129,139],secondli:[20,27],secret:[4,10,16,17,19,62,83,137],secret_key_bas:83,section:[1,9,20,23,24,35,42,62,88,96,98,101,103,107,108,114,115,118,120,128,137,138,142],secur:[2,5,7,8,12,17,20,39,44,51,53,57,62,63,85,90,92,144],security_csp_frame_ancestor:85,security_strict_transport:85,securitycontext:62,see:[0,2,3,4,7,11,12,15,18,19,20,22,23,24,27,29,30,34,35,39,42,45,47,48,49,52,53,55,56,57,58,61,62,63,84,85,86,87,93,94,96,97,98,99,100,101,102,103,104,105,108,109,110,111,114,115,117,118,119,120,123,124,126,127,128,132,134,137,141,142],seen:[20,35,49,62,63,101,144],segment:20,select:[5,15,16,17,23,24,29,31,35,36,60,62,63,84,88,95,96,101,102,113,114,115,120,125,126,127,128,138,139],selector:36,self:[5,18,20],selinux:[51,53,57,102,104],send:[20,23,27,39,57,58,60,76,83,85,88,89,141],send_256_colors_to_remot:127,sendenv:20,sendfil:83,sens:[34,50,120,126,128],sensit:[18,35],sent:[12,13,16,20,35,45,60,83],sentenc:20,sep:18,separ:[11,12,14,20,24,34,96,99,102,104],seper:[85,90,104],septemb:20,sequenc:[0,91,97],seri:[20,103,105],serial:[7,8,35,85],serivc:62,serv:[0,1,18,20,29,47,57,83,85,96,100,102,106,138,141,142],server:[0,1,4,8,10,11,12,13,14,19,20,23,26,28,31,34,35,39,40,41,44,45,52,53,54,55,57,58,61,62,65,67,69,70,72,75,80,82,83,85,86,93,96,97,107,110,114,116,118,120,121,125,126,128,130,131,133,135,136,137,138,140,141,142,143],server_alias:85,server_develop:15,serveralia:85,serverdir:64,serverlimit:47,servernam:[4,8,18,47,50,55,57,85],serverroot:85,servic:[1,3,7,18,20,27,35,39,46,50,51,53,62,63,82,100,101,102,103,104,107,136],serviceaccount:62,serviv:19,sescur:62,session:[9,13,19,21,22,28,31,33,39,46,48,51,56,59,63,67,72,79,84,85,93,99,101,102,104,107,118,127,141,142,143],session_context:[117,123,132],session_descript:20,session_id:[20,44,102],set:[1,4,5,7,11,12,13,15,17,18,19,21,22,24,27,29,30,31,35,36,38,40,42,44,51,56,57,58,59,60,61,62,63,65,66,67,70,83,84,85,87,88,89,91,96,98,101,102,103,107,109,111,114,126,127,129,133,137,139,141,144],set_host:[39,87,120,128],setenv:[85,98,133],setsebool:[58,100],setsid:59,setup:[1,5,9,16,17,20,21,27,31,39,51,53,57,62,63,67,85,107,110,111,112,113,116,122,131,138,141,142],setup_env:133,sever:[3,20,35,58,62,63,83,98,100,102,103,108,109],sge:[51,66,101],sge_root:66,sh_jupyt:52,sh_ood:52,sh_rstudio:52,sh_tensorboard:52,sha1:137,shade:84,shanghai:[52,101],shape:[34,108],share:[4,20,28,51,55,83,127,138],shawn:100,shebang:[60,87,100],shelf:63,shell:[26,28,29,30,43,51,54,56,58,61,63,67,81,83,84,85,87,88,94,95,98,106,107,109,110,141,142,143],shell_path:88,shib:13,shibboleth:[1,10,11,53,85],shibcompatvalidus:13,shibrequestset:[10,13],shibsess:10,shift:62,shini:52,shinyusr:29,ship:[4,42,62,102,103,104],shortcut:[51,100,102,103,105,107],shorter:84,should:[7,10,12,16,18,19,20,21,22,23,24,29,34,35,37,45,46,47,49,50,52,53,55,56,57,58,60,61,62,63,65,67,72,75,83,84,85,87,88,89,91,96,97,98,100,101,102,103,105,110,111,114,117,118,123,125,126,127,132,138,141,142,144],shouldn:87,show:[14,18,20,24,29,30,34,35,36,46,49,56,60,79,82,83,84,93,94,98,102,103,111,125,137],show_all_apps_link:[20,84],show_fil:36,show_hidden:36,shown:[20,34,35,36,37,84,99,103,105,120,128],shub:135,shut:62,side:[20,84,85,97,125,126],sif:[23,63,87,90],sign:[1,18,20,53,55],signal:[76,83,85],significantli:[18,29,111],signingkei:4,simg:[133,135],similar:[20,29,30,47,50,59,63,66,96,98,101,108,137],similarli:[53,102,120,128],simpl:[12,19,20,35,39,40,44,45,84,101,137,141],simplehttpserv:44,simpler:[12,20,34,35,56,85],simplest:[12,18,20,24,35,43,45,54,62,115,120,128,143],simpli:[20,24,35,42,56,61,63,100,101,103,110,141,142],simplic:135,simplifi:[14,20,39],simul:20,simultan:47,sinatra:140,sinc:[7,12,17,18,19,20,23,24,35,39,56,62,85,91,96,97,98,104,106,120,128],singl:[1,16,20,23,35,36,45,63,66,69,84,85,101,102,120,128,137,138],singuarl:135,singular:[0,63,87,90,98,112,131,133,136],singularity_bin:63,singularity_bindpath:[23,63,133],singularity_contain:[23,63],singularity_imag:63,singularityenv_ld_library_path:133,singularityenv_path:133,singulartity_bind_path:88,sinit:63,sit:[4,103],site:[0,4,7,12,14,15,20,22,26,29,34,35,39,42,45,50,51,52,53,55,56,62,63,67,68,85,96,97,98,99,100,101,102,103,104,105,106,126,130,137,138,144],site_mapp:85,site_timeout:63,size:[24,34,35,44,51,83,89,102,106,107],sjtu:[52,101],skip:[20,72,76,77,80,82,137,138],sleep:[59,127,139],slightli:[29,84,102],slower:20,slurm:[20,21,35,43,51,53,54,56,58,59,60,88,100,112,114,115,116,122],slurm_arg:138,slurm_export_env:67,slurm_job_gr:59,slurm_localid:59,small:[27,34,43,45,102],small_clust:43,smaller:[20,94],smallest:87,smtp:[20,58],sock:[79,80,83],socket:[0,18,39,79,83,85,99,138,140],soft:137,softar:98,softwar:[0,2,4,18,21,29,30,38,51,53,83,91,96,97,98,103,104,112,116,118,122,126,131,133],solid:127,solut:[17,45,83,113,129],solv:[60,129],some:[0,1,8,18,20,22,23,24,30,32,34,35,41,42,43,44,45,48,50,55,57,58,59,62,66,83,84,85,88,95,96,97,98,100,101,102,103,104,105,107,109,110,120,126,128,137,138,139,142],someelementid:102,someth:[12,20,23,24,27,62,63,69,87,89,110,120,126,128,137,141],sometim:111,son:66,soon:[15,63,88,96,108],sophist:[20,102],sort:[27,46],sortabl:102,sourc:[1,24,29,44,46,51,52,55,66,69,85,87,91,98,99,137,142,143],space:[20,56,103,105,110,111,137],spam:20,spark:52,spassword:89,spawn:138,spec:[20,53,56,57,112],special:[20,23,35,36,37,42,43,63,81,92,98,117,123,132],specif:[0,4,7,10,17,20,24,27,29,30,35,38,42,43,44,50,52,56,58,62,83,84,85,88,89,91,96,97,98,103,104,107,108,114,115,126,137,138],specifc:127,specifi:[19,20,23,24,27,28,29,31,35,37,39,44,45,50,52,56,61,62,63,76,80,81,83,84,85,88,89,91,96,98,101,102,103,120,128,137,138,141,142,143],speed:[96,99],sperat:42,spi:[1,17,18],spider:84,spin:110,split:[100,102],sprintf:56,sqlite:4,squeue:[56,67,97,99],squeue_wrapp:56,src:[4,5,63,96],srun:[67,100],srv:[20,23,61,63,133],srw:80,ssh:[30,39,44,45,51,54,56,58,60,62,63,64,65,66,67,70,99,101,102,107],ssh_allow:[20,56,62],ssh_host:[63,102],sshd:63,ssl:[2,4,14,18,53,55,85],ssl_protocol:85,sslcacertificatepath:18,sslcertificatechainfil:[18,55,85],sslcertificatefil:[18,55,85],sslcertificatekeyfil:[18,55,85],sslengin:18,sso:[11,13,20],sss:138,sssd:[58,98,138],stabil:144,stabl:[96,144],stack:63,staff:[20,49,100],stage:[20,31,44,51,71,80,83,85,95],staged_root:[44,127,138],stale:73,standalon:[5,18],standard:[12,18,20,34,44,56,62,83,88,107,133,138],stanford:52,stanza:56,start:[0,1,4,7,14,15,20,21,22,23,33,35,38,39,43,44,48,49,50,51,53,55,59,61,62,63,67,76,83,84,85,88,89,90,91,93,94,96,97,100,101,102,110,111,114,115,116,118,122,126,127,129,131,136,137,139,140,141,142],start_dat:27,start_index:27,start_respons:142,start_tim:88,starter:[51,86,101,140],startserv:47,startup:[28,84,89,129,140],stata:[52,139],stata_pid:139,state:[16,32,51,100,110],statement:[23,30,56,87,120,128,138],static_config:50,staticcli:4,staticmaxag:18,statu:[18,20,27,50,53,66,69,80,83,94,96,101],stderr:[49,60,69,99],stdin:60,stdout:[12,49,60],step:[5,14,20,30,35,36,38,95,96,98,100,108,110,111,119,124,126,134,141,142,143],step_siz:27,stick:18,still:[15,20,24,29,30,34,36,55,56,58,90,94,97,98,100,102,103,108,110,143],stop:[18,19,20,44,76,83,88,136],storag:[4,62,84,137],storage_fil:4,store:[2,4,20,45,55,83,84,85,91,94,101,102],str:60,strategi:[11,63,102,108],stream:98,streamlin:138,strict:[63,85],strict_host_check:63,stricthostkeycheck:63,strictli:139,string:[4,10,11,12,20,23,24,34,35,39,43,44,56,63,69,81,83,84,85,87,88,89,90,96,97,98,102,114,115,141],strip:[10,13,19,44,85],structur:[20,31,80,96,138],student:102,studio:52,style:20,styleoverlai:127,stylesheet:20,stylist:45,styliz:31,sub:[7,19,28,31,45,72,75,85],sub_capt:20,sub_request:72,sub_uri:[72,75],subapp:[42,97],subcategori:[20,37,141,142,143],subdirectori:[20,142],subject:20,submenu:20,submiss:[21,22,24,28,31,33,35,49,51,56,60,61,64,65,66,67,69,70,86,118,120,128],submission_nod:60,submit:[0,20,22,23,24,26,28,29,31,32,33,40,41,42,44,45,51,52,53,54,56,60,62,63,69,70,71,84,88,95,96,97,98,99,101,102,108,112,113,114,115,116,117,118,122,123,125,126,132],submit_arg:69,submit_as_hold:88,submit_host:[63,64,65,66,67,70],submit_script:[120,128],submodul:5,subscript:[57,102],subsequ:[35,61,63,72,80,103],subset:[20,29,100,102],subshel:127,substitut:[23,43,45,49,66,114,120,128],subsystem:18,subtitl:20,success:[18,20,24,49,51,60,61,63,82,96,107],successfulli:[3,12,22,96],sudo:[4,5,8,10,13,18,19,20,29,30,39,47,50,54,55,57,58,63,69,72,73,74,75,76,77,78,79,80,81,85,96,97,98,99,100,101,102,103,104,106,117,119,124,134,141,142,143],sudoer:[50,135],suffici:[14,62,102,133],suffix:20,suggest:[20,47,103,108],suit:[102,133],sum:63,summari:[8,29],sun:[66,97],supercomput:[51,56,63,96,138],supercomputing_support:20,superior:130,supplement:[29,62],supplementalgroup:62,suppli:[1,4,12,20,23,34,35,42,43,44,62,69,83,84,85,88,103,104,114,115],support:[1,4,6,10,13,14,19,25,29,34,35,38,41,43,51,53,56,57,61,63,64,65,66,67,83,85,93,94,102,105,107,125,126,138],support_ticket:[20,84],support_url:20,suppos:[49,56,84,110],supremm:101,sure:[12,16,19,20,44,52,57,63,83,110,114,118,126,133],svc_acct_fil:62,svg:[20,37],swap:135,swester:103,symbol:20,symlink:[20,29,30,83,97,98,110,111,117,133],syntax:[35,66,120,128],sys:[11,19,20,24,27,29,30,42,44,49,60,69,72,83,84,85,91,94,96,97,98,100,103,110,111,117,119,123,124,132,134,141,142,143],sysconfig:[4,58],syslog:12,system:[2,4,7,8,12,13,18,23,28,34,35,42,43,44,45,46,50,51,53,54,55,57,58,63,69,72,73,76,82,83,84,85,88,93,94,95,96,97,98,100,102,103,104,107,110,114,117,119,120,123,124,126,128,132,133,134,135,142,144],systemat:12,systemctl:[2,4,18,19,20,47,50,57,63,100,101,102,103,104,136],systemd:[4,18,50,51,54,82,100],systemtrai:127,tab:[5,17,19,20,56,62,84,95,102,110,117,123,132,141,142],tabl:[7,62,72,93,94,95,96,97,98,99,101,102],tag:[18,20,51,84,96,97,111,114],taglin:98,tai:127,tail:[66,139],take:[1,10,12,18,20,23,24,29,35,39,43,45,53,63,82,95,96,97,98,102,110,114,115,116,122,131],taken:[24,43,98],tandi:51,tap:[20,103,105],tar:[18,50],target:[5,18,27,33,50],task:[54,69,96,100,126,139],tcp:[0,4,58],team1:[20,84],team:[20,29,85,97,100,101,103,108,139,144],technic:0,techniqu:33,technolog:51,technot:129,techsquareinc:52,tee:63,telephone_field:35,tell:[12,20,34,57,62,63,114,115,143],templat:[5,23,28,31,33,35,45,51,56,63,75,82,83,86,87,88,89,90,96,107,114,115,120,126,127,128,129,133,138,139],template_root:83,temporari:[44,97],temporarili:87,ten:[20,39,56],tensorboard:52,term:[20,26,42,96],termin:[20,61,84,102,111,122,127,130],terribl:60,tesla:126,test:[5,12,20,24,30,36,39,46,51,54,56,57,62,85,90,93,94,96,97,98,99,100,101,102,103,104,110,118,144],test_checkbox:36,test_hidden_field:36,test_job:69,test_jobs_cluster1:69,test_resolution_field:36,test_text_area:36,test_text_field:36,texa:51,text:[15,16,24,29,35,36,37,51,53,63,84,88,99,102,107,114,115,141,142],text_area:[20,35,36],text_field:[35,36],textarea:36,than:[8,12,17,20,24,35,43,47,49,67,83,84,85,95,100,101,102,111],thank:[92,97,99],the_answ:60,the_connect_api:[87,89],the_quest:60,thei:[6,7,12,16,20,24,27,29,30,32,34,35,42,43,49,54,58,62,63,85,87,89,90,91,97,98,100,101,102,103,117,123,125,126,132,137,138,144],them:[5,10,20,24,29,30,32,35,36,42,45,54,56,61,62,84,101,102,103,117,123,132],theme:[1,4,5,14,18,51,84,107],themselv:[20,29,35,62,105,117,123,132,136,139],theori:110,therebi:107,therefor:81,thi:[0,2,3,4,6,7,8,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,27,29,30,32,33,34,35,36,37,38,39,40,41,42,43,44,45,47,49,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,82,83,84,85,86,87,88,90,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,113,114,115,116,117,118,120,122,123,125,126,127,128,129,130,131,132,133,135,137,138,141,142,143,144],thing:[14,20,27,29,35,46,49,56,62,85,97,98,102,107,109,138,143],think:[23,108],thirteen:102,this_remote_username_does_not_exist:12,those:[6,17,20,29,30,35,62,63,84,91,98,100,103,110,133,142],though:[67,85,102,103,105,110,137,143,144],thought:60,thread:18,threadlimit:47,threadsperchild:47,three:[9,18,20,35,43,45,91],threshold:[20,97,100],through:[0,4,12,19,20,21,24,27,29,33,35,36,38,39,45,61,62,63,83,84,85,87,91,93,96,99,100,101,102,103,104,106,107,108,110,113,114,116,118,122,126,131,133,137,138,143],throughout:[18,37,51,88],thu:[20,29,96],thumb:35,ticket:[51,53,57,84,107,108],tid:12,tie:84,tile:20,till:20,time:[1,12,16,18,20,27,29,32,34,35,43,44,47,51,57,62,63,83,84,85,87,88,96,99,101,102,103,104,106,108,118,126,127,133,135,141,142,143],time_loc:83,timeout:[20,44,63,87,89],timeoutstartsec:18,timeoutstopsec:18,timer:68,timestamp:[20,27,62],tip:[46,51],titl:[20,22,23,24,39,40,54,56,61,62,63,64,65,66,67,70,83,84,98,99,114],tls:[18,55,62],tls_cert:4,tls_kei:4,tlscert:4,tlsclientca:4,tlskei:4,tmp:[4,50,57,60,63,80,83,88,97,98,102,104,106,133],tmux:63,tmux_bin:63,to_:87,to_i:[23,24,43,44,120,128,137,138],todo:62,togeth:[42,63],toggl:[20,34,37,103],token:[16,20,49,66,83,85],tong:[52,101],too:[63,87],tool:[24,31,43,45,62,63,82,106,109,121,127,130,136],toolbar:127,top:[17,20,22,35,56,88,100,101,114,117,123,132,141,142],topic:[3,6,107,108],torqu:[20,21,35,43,51,53,54,56,58,69,88,114,115,116,122],total:[20,29,34,100,101],total_block_usag:20,total_file_usag:20,touch:[20,110,142],toward:95,toyota:[35,114,115],track:[69,85,97,98],tradit:[24,63,137,138],traffic:[12,20,47,53,103,107],transfer:84,transit:107,translat:[20,101],transport:[20,57,85],tre:97,treat:[20,30],tree:[33,53,57,96,102,127],trigger:[20,98],trivial:135,troubl:[49,96,118],troubleshoot:[20,46,47,49,51,57,112],trust:[2,17,18,29,39,55,97,108],trustedci:99,truststor:[17,18],truststore_hostname_verification_polici:18,truststore_password:18,truststorespi:17,truthi:99,tue:12,tuesdai:96,tuft:51,tune:46,tunnel:[44,45],turbovnc:[39,40,41,89,90,106],turbovncserv:90,turn:[13,20,32,58,62,63,64,103,139],tutori:[1,14,17,18,19,51,52,57,62,98,109,110,113,116,117,122,123,131,132,137,138],tweak:85,twice:106,two:[1,8,14,15,17,20,24,29,34,35,44,49,53,56,62,63,84,93,94,96,97,98,100,101,102,103,104,117,123,132,133,141,142,143,144],txt:[7,20,83,84,142],txt_erb:20,type:[4,17,18,20,23,24,31,34,35,36,45,49,50,56,62,63,72,83,84,96,102,117,120,123,125,126,127,128,132,135,137,138,142,144],typic:[23,24,30,31,45,49,58,83,85,97,102,117,123,132,144],ubuntu:[2,47,53,55,57,102,104,106],ucla:[51,97],uge:66,uid:[4,20,30,56,62,63,83,102,137,138],ultim:20,umask:[44,127],unabl:[20,24,27,44,63,66,69],unauthor:[51,107],unavail:[20,102],unchang:[97,98],uncheck:[34,36],unchecked_valu:36,uncom:18,under:[4,10,19,20,22,24,29,35,39,43,44,45,54,58,69,72,76,80,81,83,85,86,87,91,95,97,98,104,107,108,113,114,115,117,118,120,123,126,128,132,133,141,142,143],undergradu:102,underli:[120,128],underneath:[20,22,23,24,96,114,115],underscor:[20,34,35],understand:[43,85,137,138],undertow:18,underwai:[100,107],undesir:101,unencrypt:107,unexpect:66,unicod:99,uninstal:[102,103],unintend:[20,83],uniqu:[7,20,44,83,97,106,117,123,132],unit:[4,18,20,137],univa:[66,97],univers:[51,52,101,126],unix:[0,2,20,35,79,83,84,85,89,140],unknown:[55,63],unless:[20,23,43,82,83,91,126],unlik:[12,56,110],unnecessari:85,unpack:18,unprivileg:[20,30,63],unread:20,unsaf:84,unset:[10,13,19,20,137],unshar:63,unsupport:56,unsuspect:39,untest:121,until:[16,20,33,44,63,69,96,97,98,127],untouch:45,unus:[62,100],uofu:52,updat:[4,5,16,19,20,27,29,39,42,51,53,57,62,63,75,82,83,84,90,93,94,95,96,97,99,101,107,118,120,128,135,137,141,142,143],update_ood_port:[4,10,13,19,20,39,82,98,99,100,101,102,103,104],upgrad:[10,20,39,69,92,107,144],upload:[51,83,84,102,107],upload_en:[20,84],upon:[24,108],upper:[5,12,16,110],uppercas:[35,105],uppi:102,upstream:20,upto:20,uri:[4,11,17,19,20,45,72,75,83,85,141],url:[2,11,12,16,17,19,29,37,39,45,51,52,56,63,72,80,81,83,84,85,97,102,107,110,111,117,119,123,124,132,134,141,143],url_field:35,urldecod:12,usabl:[16,102],usag:[20,27,29,56,62,64,82,85,97,99],use:[0,2,4,7,8,10,12,13,14,15,16,17,18,19,20,21,23,24,27,29,32,33,34,35,36,39,40,42,43,44,45,54,56,57,58,59,60,61,62,63,66,67,68,69,82,83,84,85,87,88,89,90,96,97,99,100,103,104,105,106,110,111,114,115,116,118,120,122,125,126,128,131,133,135,137,138,140,141,142],use_job_pod_reap:62,use_mainten:[20,85],use_nfs_home_dir:58,use_rewrit:[20,85,99],use_uid:63,useabl:56,used:[4,11,12,13,15,16,19,20,23,26,33,35,37,39,40,42,43,44,45,49,50,53,56,58,60,61,62,63,82,83,84,85,88,90,95,96,97,98,100,101,102,103,104,105,114,118,120,121,125,126,128,130,133,136,138],useful:[20,29,30,35,36,44,45,49,51,56,58,62,85,87,96,101,118,126,139],useless:84,user1:20,user:[1,2,4,5,6,8,9,10,11,13,14,17,18,19,21,22,23,24,26,27,28,29,30,31,32,34,36,39,40,42,43,44,45,49,51,53,54,56,57,58,60,66,69,72,75,76,77,78,79,80,81,82,83,84,87,88,89,91,93,95,96,97,98,99,101,102,103,105,106,107,108,113,114,115,116,117,118,120,122,123,125,126,127,128,129,131,132,133,135,137,138,139,141,142,143],user_defined_context:118,user_env:[12,85],user_map:12,user_map_cmd:[7,8,12,85,102],user_map_match:[12,13,85,102],user_nam:20,user_path:135,user_regex:83,user_set:84,user_settings_fil:84,useradd:[4,18],userattr:4,userinfo:[7,16],userknownhostsfil:63,usermatch:4,usermod:29,usernam:[4,5,7,12,20,27,50,56,61,62,83,85,89,102,103,105,117,137],username_prefix:62,usernameplacehold:20,usersearch:4,uses:[7,12,13,19,20,23,30,33,40,52,56,57,60,62,63,70,83,88,91,96,101,102,103,106,114,135,140,141],using:[0,1,3,4,7,8,12,14,17,18,20,21,23,29,31,33,34,35,39,43,44,45,47,50,53,54,55,56,58,59,60,62,63,66,75,83,84,85,88,91,94,96,97,98,100,101,103,104,106,110,111,114,117,120,123,125,127,128,132,133,137,138,140],usr:[2,4,20,23,29,30,39,40,50,55,56,59,60,61,62,63,64,65,66,67,69,70,72,80,83,89,90,102,133,137,138,142],usual:[20,60,106,110],utah:[51,52],utf:[60,90],util:[7,29,43,63,87,93,94,95,103,105,106,126,137,141,142,143,144],utility_img:137,uuid:[32,63],uuid_s:63,uuid_tmux:63,uuidgen:63,uwsgi_temp:80,v8314:[97,98],vagrant:58,valid:[2,8,10,13,17,19,20,22,60,61,62,70,83,84,85,99,100,118,120,125,126,128,133],valu:[4,5,12,16,17,18,20,21,31,33,35,36,37,39,40,42,43,45,47,56,58,60,62,63,64,65,66,84,85,87,91,99,101,114,115,117,118,120,123,125,126,128,132,133],varaibl:62,vari:[17,20,35,47,85,144],variabl:[12,20,23,29,30,32,33,35,40,43,44,45,60,62,69,83,84,85,87,88,89,91,97,99,100,101,102,103,105,110,114,120,128,133,137,138],variant:[20,34,42],variat:[12,35],varieti:29,variou:[4,20,35,45,53,54,57,83,84,85,101,107],vdi:[20,96],vector:60,vendor:[17,18,97,98,143],vendor_rubi:83,venv:142,verbatim:126,verbos:85,verheyd:100,veri:[1,24,35,39,49,61,67,84,87,103,117,123,132],verif:18,verifi:[5,14,17,18,19,20,38,53,54,62,96,97,98,100,101,102,104],version:[1,4,5,12,15,20,27,34,35,36,42,47,49,50,51,56,62,63,82,83,84,92,100,101,102,104,105,106,108,121,126,127,133,135,141,142,143],vglrun:127,via:[0,2,4,7,15,18,19,20,29,46,56,58,60,91,93,98,108,126],view:[15,17,20,28,29,31,33,54,62,87,94,95,102,103,107,117,118,120,123,128,132,141,142,143],viewer:20,vigil:107,vim:110,virtual:[85,104,140],virtualbox:58,virtualgl:[127,130],virtualhost:[18,46,57],virut:85,vis:[59,126,127],visibl:[34,101,102],visit:[20,45,108],visual:[0,52,102,126,127],vital:108,vmd:52,vnc:[28,31,35,36,39,40,41,44,47,56,63,66,85,86,87,93,126,127,128,139],vnc_arg:89,vnc_clean:89,vnc_contain:[43,90],vnc_passwd:89,vncserver:89,volum:20,volume2:20,volvo:[35,114,115],vpn:100,vuej:125,vuler:107,vulner:[20,103,107],wai:[12,20,30,35,42,43,45,57,62,63,69,96,97,98,100,101,102,103,105,110,133,137,138],wait:[44,60,89,98,118,126,139],walk:[21,27,38,113,114,116,118,122,126,131,133,137,138,143],walkthrough:[1,95],wall:[43,44,88],wall_tim:[35,43,88,137,138],walltim:[63,69,101],want:[18,19,20,22,23,24,27,30,32,34,35,36,39,42,43,44,45,47,49,54,56,57,62,83,88,96,97,98,99,100,101,102,107,110,114,115,117,120,123,126,127,128,132,137,138,141],wantedbi:18,warn:[29,39,49,51,56,69,85,96,99,102,103,107,117,123,132],weak:99,web:[0,4,10,13,15,16,17,19,20,26,27,28,29,35,40,43,44,45,47,49,50,57,58,60,63,72,73,74,83,84,85,95,96,97,98,99,100,101,102,103,104,106,110,114,115,118,120,128,140,142,143],web_2:102,web_3:[57,104],webdev07:18,webframework:101,webinar:51,webpack:125,webpag:[34,47],webserv:18,websit:[3,51,85],websocket:[51,89,106,107,141,142,143],websockfii:89,websockfiy_cmd:89,websockifi:[39,40,41,89,90,103,106],websockify_cmd:[39,40,89],websockify_heartbeat_second:89,wed:12,week:[45,144],welcom:[29,84,144],welcome_html:20,well:[4,7,8,12,15,19,20,24,43,45,46,47,49,52,57,62,76,81,83,84,85,95,96,97,98,101,103,113,122,126,138],went:96,were:[12,18,20,27,35,51,73,82,84,96,97,98,99,100,101,102],wget:[2,18,50,57,62,102,104],what:[7,8,12,17,20,34,35,39,43,49,52,53,56,57,62,63,66,83,84,85,89,90,100,102,103,105,107,110,114,115,126,137,143],whatev:[20,22,47,97,110,126,127],whati:133,when:[1,4,11,12,13,16,18,19,20,22,23,24,26,29,32,33,34,35,36,37,43,44,45,47,49,55,56,58,60,61,62,63,64,67,80,82,83,84,85,87,88,91,94,95,96,97,98,100,101,103,104,106,110,111,112,114,115,117,118,120,123,126,127,128,129,132,133,137,138,141,142],whenev:[24,96,99],where:[10,12,18,20,26,29,30,34,35,36,44,45,49,54,55,62,63,66,79,83,84,85,88,97,99,100,101,103,106,114,115,117,118,120,123,126,128,132,133,135,137,138,140,141,142,143,144],whether:[18,35,49,56,63,84,88,96,99,117,123,125,132],which:[4,7,11,14,15,18,19,20,22,23,24,27,30,31,33,34,43,47,49,52,56,58,60,62,63,84,88,91,96,97,98,100,101,102,103,104,106,107,109,110,114,115,120,126,127,128,133,135,136,137,138,139,141,142,143,144],whichev:20,white:20,whitelist:98,whitelist_path:[97,103,105],who:[30,51,77,99,101,103,104],whoami:62,whoever:29,whole:[84,101,110,126,138],whom:29,whorka:103,whose:[20,35,97],why:[27,29,129],wide:[35,62,96],widest:106,widet:104,widget:[20,28,31,35,84,88,105,114,115,126],width:20,widthperc:127,wildcard:[20,83,85],wildfli:18,willing:[101,106],window:[20,37,45,112,122,129,130],wipe:10,wish:[20,27,29,35,45,62,84,90,101,103,104],within:[10,12,20,21,25,33,35,37,41,44,45,63,83,84,85,104,107,108,109,114,115,116,118,120,121,122,128,129,130,131,136,142,144],without:[1,5,20,35,42,46,51,54,56,57,60,63,83,84,85,96,97,98,100,101,102,103,122,133,135],won:[19,35,54,80,85,102,114,115,142,143],word:[34,99,110,111],work:[1,4,9,14,15,18,20,22,27,29,30,33,35,38,42,43,45,49,50,51,52,54,56,57,59,62,63,83,85,87,88,96,97,98,99,100,101,102,104,109,110,111,113,117,118,121,123,126,127,129,132,133,135,137,138,139],work_dir:87,workaround:67,workbench:52,workdir:88,worker:[56,62,138],workflow:[20,44,102],working_dir:137,workspac:44,workspacenam:127,world:[19,85,141,142,143],worth:12,would:[1,10,12,18,19,20,22,23,24,27,29,34,35,39,42,43,44,49,51,52,53,57,58,62,76,84,99,100,102,120,128,138,139,144],wouldn:[120,128],wrap:[35,40,43,60,87,99,103,105,138],wrapper:[43,51,54,56,60,61,63,64,65,66,67,70,83,87,102,107,142],writabl:69,write:[12,18,27,35,49,56,81,83,102,103,104,137,138,140],written:[4,24,33,35,63,87,89,97,99,100,103,105,143],wrong:[47,110],wrote:103,wsgi:[28,140,142],wss:20,www:[15,18,20,24,29,30,42,56,63,69,72,83,85,91,94,96,100,117,119,120,123,124,126,128,129,132,134,141,142,143],x11:[59,89,90],x86_64:[57,90,100,102,106],x_scl:[83,91],xalt:127,xauth:90,xdg_cache_hom:127,xdg_config_hom:[104,127],xdg_data_dir:91,xdg_data_hom:127,xdmod:[51,107],xdmod_url_warning_messag:20,xdmod_url_warning_message_seconds_after_job_complet:20,xdmod_widget_job:20,xdmod_widget_job_effici:20,xfce4:127,xfce:[21,25,63,90,122,130,139],xfsettingsd:127,xfwm4:127,xhr:98,xml:[2,5,7,17,18,101],xorg:90,xrender:129,xsede:7,xsetroot:127,xstartup:89,xstata:139,xxx:144,xxxx:84,xxxxxxxxxxxx:84,xy001:39,xy125:39,xzf:18,yaml:[4,10,19,20,22,23,24,34,35,39,43,54,56,61,62,63,64,65,66,67,70,82,83,84,91,95,96,100,114,120,128,138],yes:[35,36,52,60],yet:[52,143],yml:[2,4,7,8,10,11,13,16,19,20,22,23,24,28,29,30,31,33,39,40,42,44,51,54,56,61,62,63,64,65,66,67,69,70,71,82,87,88,91,95,96,97,99,100,101,102,103,104,110,112,114,115,118,120,125,126,128,133,141,142,143],you:[1,4,5,6,7,10,12,13,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,61,62,63,64,66,67,69,76,81,82,83,84,85,86,87,88,90,91,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,113,114,115,116,117,118,119,120,121,122,123,124,126,127,128,130,131,132,133,134,136,137,138,139,141,142,143],your:[1,2,4,5,7,10,13,14,15,17,20,21,22,23,24,27,28,29,31,35,36,38,39,43,44,45,46,47,48,52,53,54,55,57,61,62,63,66,67,68,69,84,85,86,91,95,96,97,98,99,100,101,102,103,104,105,110,111,113,114,116,117,118,119,120,122,123,124,126,127,128,131,132,133,134,137,138,141,142,143],yum:[2,4,5,18,19,50,55,57,58,90,96,97,98,99,100,101,102,103,104,135],yyi:144,zip:29,zone:[4,58],zoolei:100,zzz:144},titles:["Architecture","2. Authentication","SAML Authentication with Active Directory Federated Services (ADFS) and mod_auth_mellon","CAS","OpenID Connect with Dex","Two Factor Auth using Duo with Keycloak","Other Insecure Options","NSF ACCESS","OpenID Connect","Overview","1. Configure Apache Authentication","3. Configure Logout","2. Setup User Mapping","Shibboleth","OpenID Connect with KeyCloak on RHEL7","4. Add Custom Theme","5. Configure Keycloak with CILogon","2. Configure Keycloak","1. Install Keycloak","3. Configure OnDemand to authenticate with Keycloak","Customizations","Enable Interactive Desktop","2. Add a Cluster","4. Custom Job Submission","3. Modify Form Attributes","1. Software Requirements","Glossary","Adding Google Analytics","App Development","App Sharing","Enabling App Development","Interactive Apps","Adding Additional Information to the session cards","Connection Parameters conn_params","Dynamic Form Widgets","User Form (form.yml.erb)","Form Widgets","Manifest yml files","Setup Interactive Apps","3. Enable Reverse Proxy","2. Modify Cluster Configuration","1. Software Requirements","Sub-Apps and Reconfiguring exsting apps","Job Submission (submit.yml.erb)","Render Template","Connection View","Debugging and Monitoring","Apache httpd tips","Debugging Interactive Apps","Logging","Prometheus Monitoring","Open OnDemand","Install Other Interactive Apps","Installation","Cluster Configuration","3. Secure Apache httpd","Cluster Config Schema v2","1. Install Software","4. Add SELinux","Advanced Resource Manager Configurations","A Working Example of a bin_overrides Script","Cloudy Cluster","Kubernetes","LinuxHost","LSF","PBS Professional","Grid Engine","Slurm","Systemd","Test Configuration","Torque","Configuration Reference","nginx_stage app","nginx_stage app_clean","nginx_stage app_list","nginx_stage app_reset","nginx_stage nginx","nginx_stage nginx_clean","nginx_stage nginx_list","nginx_stage nginx_show","nginx_stage pun","Usage","ood-portal-generator","nginx_stage.yml","ondemand.d/*.yml files","ood_portal.yml","submit.yml.erb","Basic Batch Connect Options","Batch Connect Script Options","Batch Connect VNC Options","Batch Connect VNC Container Options","PUN environment","Release Notes","v1.0 Release Notes","v1.1 Release Notes","v1.2 Release Notes","v1.3 Release Notes","v1.4 Release Notes","v1.5 Release Notes","v1.6 Release Notes","v1.7 Release Notes","v1.8 Release Notes","v2.0 Release Notes","v3.0 Release Notes","v3.1 Release Notes","v4.0 Release Notes","Requirements","Security","Vulnerability Management","Developing The OOD Dashboard","Developing the Dashboard App","Developing the Shell App","Tutorials: Interactive Apps","Add Custom Queues/Partitions","Use a Global Static List","Use a Local Static List","Add a Jupyter App","2. Copy Jupyter App","3. Customize Attributes","5. Deploy Jupyter App","4. Modify Submit Parameters","1. Software Requirements","Add a MATLAB App","2. Copy MATLAB App","7. Deploy MATLAB App","6. Edit Form.js","3. Customize Attributes","4. Edit Launch Script","5. Modify Submit Parameters","8. Known Issues","1. Software Requirements","Add an RStudio App","1. Copy RStudio App","4. Customize Attributes","5. Deploy RStudio App","3. Setup Singularity","2. Software Requirements","Add a Jupyter App on a Kubernetes Cluster","Add a Jupyter App on a Kubernetes Cluster that behaves like HPC compute","Troubleshooting Interactive Apps","Tutorials: Passenger Apps","Starter NodeJS Application","Starter Python Application","Starter Ruby Application","Versioning Policy"],titleterms:{"2fa":100,"break":[56,102,103,104,105],"default":[20,24,30,72,80,97,101,103,105],"export":50,"new":[17,96,100,101,102,103,104,105],"public":85,"static":[114,115],"switch":138,"throw":139,"while":63,Added:[99,100,101],Adding:[27,32,45,102],Bus:63,CAS:3,PBS:[23,65,120,128],QoS:101,The:[29,63,109,135,138,139],UGE:97,Use:[114,115,127],Used:103,Using:[20,29,62,142],aarch64:104,abil:[97,99,100,101],abl:48,access:[0,7,20,29],account:[96,100],acl:56,activ:[2,93,94,96,98,100,102],activejob:[100,102],adapt:[0,23,99,100],add:[10,15,16,17,19,20,22,24,57,58,97,98,99,100,101,110,113,114,115,116,122,131,137,138,141],added:[93,104],addit:[32,101],adf:2,administr:[103,104,105],advanc:[12,59,64,104],advantag:107,after:[44,58,99],alert:100,all:[97,102],allow:20,allowlist:[20,101],altern:135,alwai:99,amazon:104,analyt:[27,104],ani:63,announc:[20,96,105],apach:[4,10,18,19,39,47,55,99,100,102,103,104],app:[0,20,28,29,30,31,38,42,48,52,62,72,93,94,96,97,98,100,101,102,103,110,111,112,116,117,119,122,123,124,131,132,134,137,138,139,140,141,142,143],app_clean:73,app_list:74,app_reset:75,applic:[20,63,93,94,95,96,97,98,99,141,142,143],approach:63,architectur:[0,106],arm64:104,arrai:[20,98,99],asset:85,attribut:[24,35,102,114,115,118,126,133],audienc:62,audit:[99,108],auth:5,authent:[0,1,2,10,19,62,101],auto:20,autogener:97,autoload:[103,105],automat:[12,20,35,103],avail:102,background:139,backport:144,balanc:[20,100],bar:20,base:[20,34,96,97],basic:[87,98,142],batch:[20,35,43,86,87,88,89,90,97,100,101,105],batch_connect:56,batchconnect:99,becaus:139,been:[103,105],befor:44,behav:138,behind:[4,101,103],being:48,beta:101,better:[96,97,101],between:[102,138],bin_overrid:[56,60],blacklist:[103,105],block:20,boot:[141,142],bootstrap:62,brand:[20,100],broker:100,browser:106,bug:99,build:[53,57,111,135],bundler:102,button:99,cach:[35,101],can:29,cancel:20,cannot:139,card:[20,32,35,100,102],categori:20,ccq:101,cento:104,cgroup:63,chang:[20,24,43,55,93,94,96,97,98,99,102,103,104,105],charact:20,checkbox:104,chines:101,chrome:101,cilogon:[16,100],cleanup:44,client:[7,17],cloudi:61,cluster:[22,35,40,54,56,61,62,63,96,100,101,114,137,138],code:[24,29,35],command:[12,20,96],comment:108,common:[61,66],commun:[51,62],complet:[32,48,101,104],compon:[93,94,95,96],compos:[20,94,96,99,100],compress:99,comput:[99,100,138],conclus:[107,108],conf:100,config:[19,56,96,99,100,103,105,143],configmap:137,configur:[2,4,5,10,11,12,16,17,19,20,27,35,40,43,50,54,59,62,63,69,71,83,84,85,96,101,102,103,110,114],conn_param:33,connect:[4,8,14,20,33,35,43,45,48,85,86,87,88,89,90,97,100,101,104,105],consider:107,contain:[0,63,90,137,138],context:[0,44,103],contribut:51,control:[29,99,102,107],copi:[97,101,117,123,132],core:97,creat:[20,110,111,142],css:20,custom:[4,15,20,23,35,56,98,102,103,104,113,114,115,118,126,133],customiz:97,dai:[20,102],dashboard:[0,20,29,50,93,94,96,97,99,100,101,102,109,110],data:49,debian:104,debug:[12,46,48,96,101],dedic:30,def:90,defin:35,delet:103,depend:[57,100,102,103,104,105,143,144],deploi:[62,119,124,134],deprec:[103,104],desktop:[0,21,24,93,96,139],detail:[20,96,97,98,99,100,101,102,103,104,105],dev:[110,111],develop:[28,30,97,109,110,111],dex:[4,12,20,55,101,103],diagram:0,differ:18,dir:97,direct:[102,103,104,105],directori:[2,20,96,97,102,103,110],disabl:[20,97,99,100,101,103,104],disclosur:108,discover:97,disk:20,dismiss:105,displai:[35,96,103],document:[98,100,103],down:56,download:[20,104,135],drop:[100,101,103],duo:[5,98,100],dure:[103,105],dynam:[34,43,104],easier:98,edit:[55,125,127,141],effect:55,el6:100,el8:100,el9:103,element:34,embed:96,enabl:[20,21,29,30,39,57,96,97,99],enforc:[62,63],engin:[66,99],enhanc:[97,102],entir:34,entri:100,env:110,environ:[66,91,97,142],environmet:142,erb:[32,35,43,44,86,102,104],error:[20,63,97,99,111,129,139],etc:96,everi:100,everyon:30,exampl:[12,29,33,35,43,45,56,60,72,73,74,75,76,77,78,79,80,86],exchang:62,execut:[29,43],exist:63,experiment:97,express:12,exst:42,extend:101,factor:5,featur:[103,104,105],feder:2,fetch:99,field:[24,96,101],file:[12,20,29,37,44,55,84,90,93,99,100,101,102,103,104,110,142,143],fileset:20,finish:139,firefox:97,firewal:[4,58],first:56,fix:[20,97,99,103],flask:142,flow:0,fluxbox:127,form:[20,24,34,35,36,99,103,105,114,115,125],format:102,formerli:94,framework:141,from:[4,50,53,57,93,94,95,96,97,98,99,100,101,102],front:18,full:[137,138],fulli:20,gem:[100,101,102],gener:[19,20,52,72,75,76,77,80,82,85,93,100,101],get:129,gke:62,global:[35,43,86,105,114],globu:104,glossari:26,googl:[27,104],grafana:[20,50,100],grid:[66,99],gridengin:101,handl:[101,114,115],hard:[24,35],hardwar:106,has:[102,103,105],have:[96,103,105],help:[20,24,96,103],hide:[20,34,96],home:[20,97,98],hook:[44,62],host:[0,2,18,20,30,63,97,100,101],hpc:138,html:[32,96,99,104],httpd:[47,55,104],icon:102,ident:[16,100],ids:105,ignor:96,illeg:20,imag:[62,135],improv:[97,98,99,100,104],includ:97,incommon:7,individu:20,info:[27,32,101],inform:[10,32,45],infrastructur:[93,94,95,96,97,98,99],init:137,initi:[18,103,105,141],input:61,insecur:6,instal:[2,4,5,18,19,29,50,52,53,57,72,80,96,100,143],instanc:16,instantli:139,instead:96,instruct:45,integr:[20,101,102,104],interact:[20,21,31,38,48,52,96,102,103,112,139],interfac:102,introduct:[107,108],invalid:66,invok:127,issu:[61,66,97,111,129],item:[20,35,96,105],itself:139,java:[129,139],javascript:[97,104],job:[0,20,23,43,56,63,66,93,94,96,98,99,100,101,102,114,115,139],json:103,jupyt:[33,116,117,119,137,138],just:63,kei:[20,97],keycloak:[5,14,16,17,18,19,62,98,100],know:110,known:129,kuberenet:62,kubernet:[62,137,138],kyverno:62,label:[24,34],land:102,larg:102,launch:[20,42,63,102,103,127],layout:[20,102],ldap:[4,17],level:96,libcgroup:63,librari:63,like:138,limit:[20,63,107],link:[20,96,100,102],linux:[0,100,104],linuxhost:[23,24,63],list:[96,114,115],load:63,local:[20,99,101,110,115],locat:[47,48,103],log:[47,48,49,96],login:56,logo:101,logout:[11,85],longer:[96,102],lowercas:105,lsf:[64,99],main:[19,43,44],mainten:[20,100],major:[102,144],make:[30,96],malform:100,manag:[4,59,62,102,108,120,127,128],mani:99,manifest:[20,37,99,102],manual:20,map:[7,12,16,72],mapfil:12,markdown:99,match:100,mate:127,matlab:[122,123,124,127,139],max:[34,101],maxim:139,memcach:102,menu:[20,100],messag:[20,24,102],meta:56,metadata:102,min:34,minim:24,minor:144,miss:[20,97],mod_auth_mellon:2,mod_auth_openidc:[19,101],mod_ood_proxi:93,mode:[20,97,100],modifi:[24,40,114,120,128],modul:10,monitor:[46,50],more:27,motd:20,mount:[137,138],move:139,multipl:[96,99,101],name:[20,66,96,100],nativ:[45,101],navbar:[97,103],navconfig:[103,105],navig:20,nginx:[76,85,98],nginx_clean:[77,100],nginx_list:78,nginx_show:79,nginx_stag:[72,73,74,75,76,77,78,79,80,83],ngnix_stag:99,nightli:144,node:[59,62,96,99,100],nodej:[97,102,141],none:97,note:[92,93,94,95,96,97,98,99,100,101,102,103,104,105],notebook:33,novnc:101,now:[100,101,102,105],nsf:7,number:144,object:44,offer:99,oidc:[7,62],old:[103,111],ondemand:[4,10,17,19,20,27,30,51,55,62,84,98,99,100,101,102],onli:[55,56],ood:[2,19,20,82,93,100,101,109,110],ood_auth_map:102,ood_port:[55,85],ood_ssh_host:99,open:[27,51,55,62,96,99,102],openid:[4,8,14,85],oper:106,option:[6,20,30,34,43,72,75,76,77,79,80,82,83,85,86,87,88,89,90,96,97,99,103,104],other:[0,6,34,52,101,120,128],overrid:20,overview:[0,9,20,29],own:34,packag:[4,103,104],page:[20,97,98,102,103],panel:[45,101],paramet:[33,43,120,128],partit:113,pass:99,passeng:[0,97,98,140],password:45,past:[97,101],patch:144,path:104,pbspro:99,peer:[29,98],per:[62,85],percent:100,perform:[47,64,98],period:96,permiss:29,pid:99,pin:[20,102],ping:20,place:18,polici:[62,108,144],pong:20,port:20,portal:[10,19,55,82,93,100,101],post:45,ppc64le:104,predefin:[20,35],prepar:2,privat:62,process:50,profession:[23,65,120,128],profil:[20,84,103],project:[20,100],prometheu:50,prompt:61,properti:84,protect:101,provid:[16,102],proxi:[4,39,45,85,103],publish:[141,142,143],pun:[80,91,97],python:142,qualiti:99,queri:27,queue:113,quick:[42,103],quota:[20,97,99],rail:143,rais:99,realm:17,rebuild:96,recent:103,reconfigur:42,redhat:104,redirect:85,reduc:100,refer:[4,71,107],regener:100,regex:102,regist:16,registr:[7,85],registri:62,reguluar:12,releas:[92,93,94,95,96,97,98,99,100,101,102,103,104,105],relev:107,remot:[12,20,103],remov:[16,24,99,105],render:[44,99],report:108,repositori:57,request:[0,137],requir:[25,39,41,72,76,79,80,96,97,102,106,121,130,136],resiz:139,resourc:[59,63,120,128,137],restart:[47,55,100],retain:101,revers:[4,39,45,85,103],rewriteengin:99,rhel7:14,rpm:[50,96],rstudio:[0,98,131,132,134],rubi:[97,101,102,143],run:[96,99,100,103],saml:2,sanit:[10,100],schedul:101,schema:56,scl:[98,102],script:[12,20,43,44,60,88,96,100,127],secret:97,secur:[55,97,99,103,107,108],select:[20,34],selector:104,selinux:[58,100,103,105],separ:18,server:[18,43],servic:[2,4,47,55,57],session:[0,10,20,32,35,44,45,49,96,100,103],set:[20,34,43,64,86,97,99,100,104,110],setup:[12,38,135],sever:97,sge:[97,98],share:[0,29,63,98,100,102],shell:[0,20,66,93,96,97,99,100,101,102,104,111],shibboleth:[7,13],shortcut:20,show:[47,100],signific:103,simpl:86,sinatra:[101,143],singular:135,size:[20,100],slice:63,slurm:[23,67,97,98,99,101,120,128,138],softwar:[25,41,57,63,106,121,130,136],sourc:[4,50,53,57],spec:[137,138],special:[51,100,101],specif:[63,100],specifi:[30,43],spi:5,ssh:[20,97,100],stale:99,start:[18,57],starter:[90,141,142,143],state:63,step:[18,39],store:96,streamlin:101,string:99,styliz:45,sub:42,submiss:[23,43,99,114,115],submit:[35,43,86,103,120,128,137,138],suggest:100,support:[16,20,84,96,97,98,99,100,101,103,104,106,144],svg:101,system:[0,20,29,49,106],systemd:[63,68],tag:144,taglin:20,take:55,target:63,templat:[20,43,44,52,99],termin:99,test:[50,69],text:[20,98],thank:[51,100,101,103,105],thei:96,theme:[15,20,102],thing:110,ticket:[20,103],tighter:102,time:144,tip:47,titl:100,token:62,top:96,torqu:[23,70,98,101,120,128],troubleshoot:[63,139],tune:47,tutori:[112,140],two:5,type:43,ubuntu:103,unauthor:20,under:96,understand:20,undetermin:63,updat:[55,58,98,100,102,103,104,105,144],upgrad:[93,94,95,96,97,98,99,100,101,102,103,104,105],upload:[20,101,104],url:[20,99],usag:81,use:[98,101,102],user:[0,7,12,16,20,35,55,62,63,85,100,104],using:[5,19,102,142],valu:[24,34],vari:98,verif:96,verifi:[39,57],version:[93,94,95,96,97,98,99,103,111,144],via:[50,101],view:[45,101],virtual:142,virtualhost:47,visual:59,vnc:[0,43,45,89,90,99,101],vulner:108,walltim:62,warn:[20,97,100],web:[62,141],websocket:20,when:[99,139],whether:102,which:35,whitelist:[97,103,105],who:29,widget:[34,36,102,103,104],window:[96,102,127,139],without:[48,127],work:[39,60],wrapper:[20,100],write:143,xdmod:[20,101],xfce:[24,96,127],yml:[35,37,43,55,83,84,85,86,137,138],you:129,your:[16,34]}}) \ No newline at end of file diff --git a/auto-modules-filtering/security.html b/auto-modules-filtering/security.html new file mode 100644 index 000000000..d6431206c --- /dev/null +++ b/auto-modules-filtering/security.html @@ -0,0 +1,428 @@ + + + + + + + + + + + Security — Open OnDemand 3.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + + + +
        + + + + + +
        + +
        + + + + + + + + + + + + + + + + + +
        + + + + +
        +
        +
        +
        + +
        +

        Security

        +
        +

        Introduction

        +

        This document details the security framework for Open OnDemand, providing essential information that administrators need to know for secure deployment and operation.

        +
        +

        Note

        +

        If you’re here to report a vulerability, you may refer to Vulnerability Management.

        +
        +
        +
        +

        Considerations

        +

        This section outlines key security advantages and areas for vigilance within the Open OnDemand environment.

        +
        +

        Advantages

        +
          +
        • Per-user Nginx (PUN) Architecture: By running individual Nginx instances per user, Open OnDemand ensures that actions such as file access are conducted under user-specific non-root privileges, which isolates processes and enhances security.

        • +
        • Robust Authentication: Open OnDemand supports various authentication methods. It particularly emphasizes secure protocols over less secure options like Basic or LDAP authentication, reinforcing its commitment to high security standards.

        • +
        +
        +
        +

        Limitations

        +
          +
        • HTTP Traffic to Origin Servers: Traffic to backend services, including computational resources like Jupyter servers, is currently over HTTP, which is unencrypted. Plans are underway to upgrade this to HTTPS to ensure encryption of data in transit, thereby bolstering security.

        • +
        +
        +
        +

        Controls

        +

        These are things the the out of the box OnDemand installation will provide +that some centers may want to change or disable altogether.

        +
          +
        • File Access: OnDemand lets users navigate the file system. While file permissions +limit what a user can view and navigate to, some centers may want to limit this even further. +One option is to Block or Allow Directory Access to limit what directories users may navigate to. +Additionally, you may want to disable or limit access to the application. You can do this +through Disabling applications.

        • +
        +
        +
        +
        +

        Conclusion

        +

        Maintaining a secure and robust operational environment is critical for the success of Open OnDemand. Administrators are encouraged to implement the security practices recommended in this guide and to regularly review security settings and updates.

        +
        + +
        + + +
        + +
        +
        + + + + +
        + +
        +

        + © Copyright 2017-2024, Ohio Supercomputer Center + +

        +
        + +
        + +
        +
        + +
        + +
        +
        + + Documentation Versions + v: + + +
        +
        +
        Versions
        + +
        latest
        + +
        3.0
        + +
        2.0
        + +
        1.8
        + +
        1.7
        + +
        1.6
        + +
        1.5
        + +
        1.4
        + +
        1.3
        + +
        1.2
        + +
        1.1
        + +
        1.0
        + +
        develop
        + +
        +
        +
        On GitHub
        +
        + Website +
        +
        + Main Repo +
        +
        +
        + Theme provided by Read the Docs. +
        +
        + + + + + + + + + + \ No newline at end of file diff --git a/auto-modules-filtering/security/vulnerability-management.html b/auto-modules-filtering/security/vulnerability-management.html new file mode 100644 index 000000000..c2d86f8e1 --- /dev/null +++ b/auto-modules-filtering/security/vulnerability-management.html @@ -0,0 +1,356 @@ + + + + + + + + + + + Vulnerability Management — Open OnDemand 3.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + + + +
        + + + + + +
        + +
        + + + + + + + + + + + + + + + + + +
        + + + + +
        +
        +
        +
        + +
        +

        Vulnerability Management

        +
        +

        Introduction

        +

        Vulnerability management is a critical component of the security strategy for Open OnDemand. This document outlines the procedures for reporting and managing vulnerabilities.

        +
        +
        +

        Reporting a Vulnerability

        +

        If you have security concerns or think you have found a vulnerability, please submit a private report by visiting the ‘Security’ section of our GitHub located at GitHub Open OnDemand Security and clicking ‘Report a vulnerability’.

        +

        For direct inquiries or issues in submitting a report, contact the core project team via email at security@openondemand.org.

        +
        +
        +

        Disclosure Policy

        +
          +
        • Upon reporting, you will receive a response within hours, acknowledging the receipt of the report.

        • +
        • A primary handler from the team will be assigned to coordinate the fix and release process:

        • +
        • Confirm the problem and determine the affected versions (1-2 days).

        • +
        • Audit code to find any potential similar problems.

        • +
        • Prepare fixes for all releases still under maintenance and release as soon as possible.

        • +
        +
        +
        +

        Comments on Policy

        +

        Suggestions to improve this process can be made via submitting a ticket, opening a Discourse topic, or a pull request.

        +
        +
        +

        Security Audits

        +

        Open OnDemand has been audited several times by Trusted CI, the NSF Cybersecurity Center of Excellence. The latest engagement report is available here. These audits have helped shape the security landscape of the platform and contribute to its ongoing security enhancements.

        +
        +
        +

        Conclusion

        +

        Effective vulnerability management is crucial for maintaining the security and integrity of Open OnDemand. Users and contributors play a vital role in this process by reporting potential security vulnerabilities through GitHub, ensuring the platform’s continued safety.

        +
        +

        Note

        +

        For details on the specific vulnerability management steps, please see the GitHub repository guidelines or the security policies linked above.

        +
        +
        +
        + + +
        + +
        +
        + + + + +
        + +
        +

        + © Copyright 2017-2024, Ohio Supercomputer Center + +

        +
        + +
        + +
        +
        + +
        + +
        +
        + + Documentation Versions + v: + + +
        +
        +
        Versions
        + +
        latest
        + +
        3.0
        + +
        2.0
        + +
        1.8
        + +
        1.7
        + +
        1.6
        + +
        1.5
        + +
        1.4
        + +
        1.3
        + +
        1.2
        + +
        1.1
        + +
        1.0
        + +
        develop
        + +
        +
        +
        On GitHub
        +
        + Website +
        +
        + Main Repo +
        +
        +
        + Theme provided by Read the Docs. +
        +
        + + + + + + + + + + \ No newline at end of file diff --git a/auto-modules-filtering/tutorials/tutorials-dashboard-apps.html b/auto-modules-filtering/tutorials/tutorials-dashboard-apps.html index 24337a8d0..6cb1515cf 100644 --- a/auto-modules-filtering/tutorials/tutorials-dashboard-apps.html +++ b/auto-modules-filtering/tutorials/tutorials-dashboard-apps.html @@ -40,7 +40,7 @@ - + @@ -120,7 +120,9 @@
      • Install Other Interactive Apps
      • Tutorials: Interactive Apps
      • Tutorials: Passenger Apps
      • Developing The OOD Dashboard
      • @@ -129,10 +131,10 @@ @@ -206,12 +208,27 @@

        Tutorials

          -
        • Creating a Status App @@ -226,7 +243,7 @@
        Table 10 Mapping of apps for a default installationTable 8 Mapping of apps for a default installation

        RedHat/CentOS 7

        RedHat/Rocky Linux/AlmaLinux 8

        RedHat/Rocky Linux/AlmaLinux 8

        RedHat/Rocky Linux/AlmaLinux 9

        RedHat/Rocky Linux/AlmaLinux 9

        Ubuntu 20.04

        Ubuntu 20.04

        Ubuntu 22.04

        Ubuntu 22.04

        Ubuntu 24.04

        Debian 12

        - ---- - - - - - - - - - - - - - - - - - - - - - - - - - -
        Table 8 Main files

        File

        Description

        config.ru

        entry point of the Passenger Ruby app

        app.rb

        Sinatra app config and routes; this in a separate file from config.ru so -that code reloading will work

        command.rb

        class that defines an AppProcess struct, executes ps, and parses the -output of the ps command producing an array of structs

        test/test_command.rb

        a unit test of the parsing code

        views/index.html

        the main section of the html page template using an implementation of ERB -called erubi -which auto-escapes output of ERB tags by default (for security)

        views/layout.html

        the rendered HTML from views/index.html is inserted into this layout, -where css and javascript files are included

        - - ---- - - - - - - - - - - - - - - - - - - - - - - - - - -
        Table 9 Other files

        File

        Description

        Gemfile, Gemfile.lock

        defines gem dependencies for the app (see Bundler’s Rationale)

        tmp/

        tmp directory is kept so its easier to touch tmp/restart.txt when you -want to force Passenger to restart an app

        public/

        serve up static assets like Bootstrap css; in OnDemand, NGINX auto-serves -all files under public/ directly, without going through the Passenger -process, which makes this much faster; as a result, each static file is -in a directory with an explicit version number, so if these files ever -change we change the version, which is one cache busting strategy

        Rakefile

        this provides a default rake task for running the automated tests under -test/, so you can run the tests by running the command rake

        test/minitest_helper.rb

        contains setup code common between all tests

        vendor/bundle

        This directory is added if you execute bin/bundle install --path vendor/bundle to store app specific gems. This is necessary if you want to add gems or specify specific gem versions used by the app that deviate from those provided by system gemset, or if you are using OnDemand 1.7 or earlier.

        -
        -

        -
        -

        Clone and Setup

        -
          -
        1. Login to Open OnDemand, click “Develop” dropdown menu and click the “My Sandbox Apps (Development)” option.

        2. -
        3. Click “New App” and “Clone Existing App”.

        4. -
        5. Fill out the form:

          -
            -
          1. Directory name: quota

          2. -
          3. Git remote: https://github.com/OSC/ood-example-ps

          4. -
          5. Check “Create new Git Project from this?”

          6. -
          7. Click Submit

          8. -
          -
        6. -
        7. Launch the app by clicking the large blue Launch button. In a new browser -window/tab you will see the output of a ps command filtered using grep.

        8. -
        9. Switch browser tab/windows back to the dashboard Details view of the app and -click the Files button on the right to open the app’s directory in the File -Explorer.

        10. -
        -
        -
        -

        Edit to Run and Parse Quota

        -

        The app runs and parses this command:

        -
        ps aux | grep '[A]pp'
        -
        -
        -

        We will change it to run and parse this command:

        -
        quota -spw
        -
        -
        -
        -

        Update test/test_command.rb

        -

        Run the command to get example data. Copy and paste the output into the test, and -update the assertions to expect an array of “quotas” instead of “processes” -with appropriate attributes.

        -

        Diff:

        -
          def test_command_output_parsing
        -    output = <<-EOF
        --
        --efranz    30328  0.1  0.1 462148 28128 ?        Sl   20:28   0:00 Passenger RackApp: /users/PZS0562/efranz/ondemand/dev/quota
        --
        -+Disk quotas for user efranz (uid 10851):
        -+     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
        -+10.11.200.32:/PZS0562/  99616M    500G    500G       0    933k   1000k   1000k       0
        -EOF
        --    processes = Command.new.parse(output)
        -+    quotas = Command.new.parse(output)
        -
        --    assert_equal 1, processes.count
        -+    assert_equal 1, quotas.count, "number of structs parsed should equal 1"
        -
        --    p = processes.first
        -+    q = quotas.first
        -
        --    assert_equal "efranz", p.user
        --    assert_equal "462148", p.vsz
        --    assert_equal "28128", p.rss
        --    assert_equal "0:00", p.time
        --    assert_equal "Passenger RackApp: /users/PZS0562/efranz/ondemand/dev/quota", p.command
        -+    assert_equal "10.11.200.32:/PZS0562/", q.filesystem, "expected filesystem value not correct"
        -+    assert_equal "99616M", q.blocks, "expected blocks value not correct"
        -+    assert_equal "500G", q.blocks_limit, "expected blocks_limit value not correct"
        -+    assert_equal "933k", q.files, "expected files value not correct"
        -+    assert_equal "0", q.files_grace, "expected files_grace value not correct"
        -  end
        -
        -
        -

        Resulting test method:

        -
        class TestCommand < Minitest::Test
        -
        -  def test_command_output_parsing
        -    output = <<-EOF
        -Disk quotas for user efranz (uid 10851):
        -    Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
        -10.11.200.32:/PZS0562/  99616M    500G    500G       0    933k   1000k   1000k       0
        -EOF
        -    quotas = Command.new.parse(output)
        -
        -    assert_equal 1, quotas.count, "number of structs parsed should equal 1"
        -
        -    q = quotas.first
        -
        -    assert_equal "10.11.200.32:/PZS0562/", q.filesystem, "expected filesystem value not correct"
        -    assert_equal "99616M", q.blocks, "expected blocks value not correct"
        -    assert_equal "500G", q.blocks_limit, "expected blocks_limit value not correct"
        -    assert_equal "933k", q.files, "expected files value not correct"
        -    assert_equal "0", q.files_grace, "expected files_grace value not correct"
        -  end
        -end
        -
        -
        -
        -
        -

        Update command.rb

        -

        Run the test by running the rake command and you will see it fail:

        -
        $ rake
        -Run options: --seed 58990
        -
        -# Running:
        -
        -F
        -
        -Finished in 0.000943s, 1060.4569 runs/s, 1060.4569 assertions/s.
        -
        -  1) Failure:
        -TestCommand#test_command_output_parsing [/users/PZS0562/efranz/ondemand/dev/quota/test/test_command.rb:14]:
        -number of structs parsed should equal 1.
        -Expected: 1
        -  Actual: 3
        -
        -1 runs, 1 assertions, 1 failures, 0 errors, 0 skips
        -rake aborted!
        -Command failed with status (1)
        -
        -Tasks: TOP => default => test
        -(See full trace by running task with --trace)
        -
        -
        -
        -

        Warning

        -

        To run commands like rake through the shell you need to make sure you are on -a host that has the correct version of Ruby installed. For OnDemand that likely -means using Software Collections with the same packages used to install OnDemand.

        -

        With SCL, running rake with ondemand SCL package looks like:

        -

        scl enable ondemand -- rake

        -

        You can avoid this by loading the SCL packages in your .bashrc or .bash_profile file. -For example, in my .bash_profile I have:

        -
        if [[ ${HOSTNAME%%.*} == webtest04*  ]]
        -then
        -  scl enable ondemand -- bash
        -fi
        -
        -
        -

        This means when I login to the host webtest04.osc.edu the SCL packages will be enabled -in a new bash session. If you did the same you would replace webtest04 with the hostname -of the node you are developing on.

        -
        -

        To get the unit test to pass we need to:

        -
          -
        1. Change the command we are using.

        2. -
        3. Fix the command output parsing.

        4. -
        5. Fix the struct definition.

        6. -
        -
        class Command
        -  def to_s
        --    "ps aux | grep '[A]pp'"
        -+    "quota -spw"
        -  end
        -
        --  AppProcess = Struct.new(:user, :pid, :pct_cpu, :pct_mem, :vsz, :rss, :tty, :stat, :start, :time, :command)
        -+  Quota = Struct.new(:filesystem, :blocks, :blocks_quota, :blocks_limit, :blocks_grace, :files, :files_quota, :files_limit, :fil
        -
        -  # Parse a string output from the `ps aux` command and return an array of
        -  # AppProcess objects, one per process
        -  def parse(output)
        -    lines = output.strip.split("\n")
        --    lines.map do |line|
        --      AppProcess.new(*(line.split(" ", 11)))
        -+    lines.drop(2).map do |line|
        -+      Quota.new(*(line.split))
        -    end
        -  end
        -
        -
        -

        After the changes part of the command.rb will look like this:

        -
        class Command
        -  def to_s
        -    "quota -spw"
        -  end
        -
        -  Quota = Struct.new(:filesystem, :blocks, :blocks_quota, :blocks_limit, :blocks_grace, :files, :files_quota, :files_limit, :files_grace)
        -
        -  # Parse a string output from the `ps aux` command and return an array of
        -  # AppProcess objects, one per process
        -  def parse(output)
        -    lines = output.strip.split("\n")
        -    lines.drop(2).map do |line|
        -      Quota.new(*(line.split))
        -    end
        -  end
        -
        -
        -

        Now when we run the test they pass:

        -
        $ rake
        -Run options: --seed 60317
        -
        -# Running:
        -
        -.
        -
        -Finished in 0.000966s, 1035.1494 runs/s, 6210.8963 assertions/s.
        -
        -1 runs, 6 assertions, 0 failures, 0 errors, 0 skips
        -
        -
        -
        -
        -

        Update app.rb and view/index.html

        -

        Update app.rb:

        -
        helpers do
        -  def title
        --    "Passenger App Processes"
        -+    "Quota"
        -  end
        -end
        -
        -# Define a route at the root '/' of the app.
        -get '/' do
        -  @command = Command.new
        --  @processes, @error = @command.exec
        -+  @quotas, @error = @command.exec
        -
        -  # Render the view
        -  erb :index
        -end
        -
        -
        -

        In views/index.erb, replace the table with this:

        -
        <table class="table table-bordered">
        -  <tr>
        -    <th>Filesystem</th>
        -    <th>Blocks</th>
        -    <th>Blocks Quota</th>
        -    <th>Blocks Limit</th>
        -    <th>Blocks Grace</th>
        -    <th>Files</th>
        -    <th>Files Quota</th>
        -    <th>Files Limit</th>
        -    <th>Files Grace</th>
        -  </tr>
        -  <% @quotas.each do |quota| %>
        -  <tr>
        -    <td><%= quota.filesystem %></td>
        -    <td><%= quota.blocks %></td>
        -    <td><%= quota.blocks_quota %></td>
        -    <td><%= quota.blocks_limit %></td>
        -    <td><%= quota.blocks_grace %></td>
        -    <td><%= quota.files %></td>
        -    <td><%= quota.files_quota %></td>
        -    <td><%= quota.files_limit %></td>
        -    <td><%= quota.files_grace %></td>
        -  </tr>
        -  <% end %>
        -</table>
        -
        -
        -

        These changes should not require an app restart. Go to the launched app and reload the page -to see the changes.

        -
        -
        -
        -

        Brand App

        -

        The app is looking good, but the details page still shows the app title “Passenger App -Processes”. To change this and the icon, edit the manifest.yml:

        -
        -name: Passenger App Processes
        --description: Display your running Passenger app processes in a table
        -+name: Quota
        -+description: Display quotas
        -+icon: fa://hdd-o
        -
        -
        - -
        -
        -

        Publish App

        -

        Publishing an app requires two steps:

        -
          -
        1. Updating the manifest.yml to specify the category and optionally subcategory, which indicates where in the dashboard menu the app appears.

        2. -
        3. Having an administrator checkout a copy of the production version to a directory under /var/www/ood/apps/sys.

        4. -
        -

        Steps:

        -
          -
        1. Add category to manifest so the app appears in the Files menu:

          -
          -
          name: Quota
          -description: Display quotas
          -icon: fa://hdd-o
          -+category: Files
          -+subcategory: Utilities
          -
          -
          -
          -
        2. -
        3. Version these changes. Click Shell button on app details view, and then commit the changes:

          -
          -
          git add .
          -git commit -m "update manifest for production"
          -
          -# if there is an external remote associated with this, push to that
          -git push origin master
          -
          -
          -
          -
        4. -
        5. As the admin, sudo copy or git clone this repo to production

          -
          -
          # as sudo on OnDemand host:
          -cd /var/www/ood/apps/sys
          -git clone /users/PZS0562/efranz/ondemand/dev/quota
          -
          -
          -
          -
        6. -
        7. Reload the dashboard.

        8. -
        -
        -../../_images/app-dev-tutorial-ps-to-quota-published.png -

        Fig. 9 Every user can now launch the Quota from the Files menu.

        -
        -
        -

        Warning

        -

        Accessing this new app for the first time will cause your NGINX server to restart, -killing all websocket connections, which means resetting your active web-based OnDemand Shell sessions.

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

        - © Copyright 2017-2024, Ohio Supercomputer Center - -

        -
        - -
        - - - - - - - -
        - - Documentation Versions - v: - - -
        -
        -
        Versions
        - -
        latest
        - -
        3.0
        - -
        2.0
        - -
        1.8
        - -
        1.7
        - -
        1.6
        - -
        1.5
        - -
        1.4
        - -
        1.3
        - -
        1.2
        - -
        1.1
        - -
        1.0
        - -
        develop
        - -
        -
        -
        On GitHub
        -
        - Website -
        -
        - Main Repo -
        -
        -
        - Theme provided by Read the Docs. -
        -
        - - - - - - - - - - \ No newline at end of file diff --git a/auto-modules-filtering/tutorials/tutorials-passenger-apps/python-starter-app.html b/auto-modules-filtering/tutorials/tutorials-passenger-apps/python-starter-app.html new file mode 100644 index 000000000..8c6aa4d37 --- /dev/null +++ b/auto-modules-filtering/tutorials/tutorials-passenger-apps/python-starter-app.html @@ -0,0 +1,479 @@ + + + + + + + + + + + Starter Python Application — Open OnDemand 3.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + + + +
        + + + + + +
        + +
        + + + + + + + + + + + + + + + + + +
        + + + + +
        +
        +
        +
        + +
        +

        Starter Python Application

        +

        This document describes how to start a Passenger application +in Python language.

        +
        +

        Basic application

        +

        passenger_wsgi.py is the entrypoint for any python application.

        +
        cd ~/ondemand/dev
        +mkdir python-hello-world
        +cd python-hello-world
        +touch passenger_wsgi.py
        +
        +
        +

        Now with the passenger_wsgi.py file created, we can add this content to +serve a response to a request.

        +
        # passenger_wsgi.py
        +import sys
        +
        +def application(environ, start_response):
        +    start_response('200 OK', [('Content-type', 'text/plain')])
        +    return ["Hello World from Open OnDemand (Python WSGI)!\n\n" + sys.version]
        +
        +
        +
        +
        +

        Boot the application

        +

        Now that the app’s all setup and implemented, you should be able to +boot it up. To do so, simply navigate to My Sandbox Apps (Development) +in the Develop menu of your OnDemand installation.

        +

        There you should see this application at the top of the list. Clicking +Launch Python Hello World will launch this application in a new tab.

        +

        When the new tab opens you should see a blank page with the text Hello World +with some extra text about the system. This is your new Python application!

        +
        +
        +

        Application using Flask and a virtual environment

        +

        The basic application above is fine, but you’ll likely need to add +more dependencies and load those dependencies at runtime.

        +

        So this section goes over adding the Flask web framework and having +the application load the virtual environment that has your dependencies in +it.

        +
        +

        Create the virtual environmet

        +

        First, we need to create the virtual environment. Issue this command below +to create one. This will create a subdirectory python-hello-world with a +bin/activate file you can use to activate the environment.

        +
        python3 -m venv python-hello-world
        +
        +
        +

        Now, let’s create the requriements.txt file where we’ll add the application’s +required libraries. Here, we’re only adding flask of any version.

        +
        # requirements.txt
        +flask
        +
        +
        +
        source python-hello-world/bin/activate
        +python3 -m pip install -r requirements.txt
        +
        +
        +
        +
        +

        Create the python files

        +

        In the basic example above, the entire implementation is held within a passenger_wsgi.py. +This project is more advanced, so it will include two files. passenger_wsgi.py and +app.py. app.py will hold the logic for the application.

        +

        passenger_wsgi.py simply imports the app from the app.py file. This is all that’s required +for this file.

        +
        # passenger_wsgi.py
        +from app import MyApp as application
        +
        +
        +

        app.py on the other hand, has logic associcated with the web application in it. +It imports the Flask libraries, configures the routes and starts the flask server.

        +
        # app.py
        +from flask import Flask
        +import sys
        +
        +MyApp = Flask('python_hello_world')
        +
        +@MyApp.route("/")
        +def index():
        +  return 'Hello World!<br>' + sys.version
        +
        +if __name__ == "__main__":
        +  MyApp.run()
        +
        +
        +
        +
        +

        Using the virtual environment

        +

        At this point, the app is basically done, but won’t boot up because it +can’t find Flask libraries. We created a virtual environment in a previous +step, now we have to get OnDemand to recognize this environment.

        +

        To do this, we need to create a bin/python wrapper file to load the appropriate +virtual environment.

        +
        #!/usr/bin/env bash
        +
        +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
        +source $SCRIPT_DIR/../python-hello-world/bin/activate
        +
        +exec /bin/env python3 "$@"
        +
        +
        +
        +

        Warning

        +

        Ensure that this bin/python file has executable permissons on it. +Issue the command chmod +x bin.python to give it executable permissions.

        +
        +

        Now, with the python wrapper script to load the environment for your application, +it should boot up correctly.

        +
        +
        +
        +

        Publish App

        +

        Publishing an app requires two steps:

        +
          +
        1. Updating the manifest.yml to specify the category and optionally subcategory, which indicates where in the dashboard menu the app appears.

        2. +
        3. Having an administrator checkout a copy of the production version to a directory under /var/www/ood/apps/sys.

        4. +
        +

        Steps:

        +
          +
        1. Add category to manifest so the app appears in the Files menu:

          +
          +
          name: Quota
          +description: Display quotas
          +icon: fa://hdd-o
          ++category: Files
          ++subcategory: Utilities
          +
          +
          +
          +
        2. +
        3. Version these changes. Click Shell button on app details view, and then commit the changes:

          +
          +
          git add .
          +git commit -m "update manifest for production"
          +
          +# if there is an external remote associated with this, push to that
          +git push origin master
          +
          +
          +
          +
        4. +
        5. As the admin, sudo copy or git clone this repo to production

          +
          +
          # as sudo on OnDemand host:
          +cd /var/www/ood/apps/sys
          +git clone /users/PZS0562/efranz/ondemand/dev/quota
          +
          +
          +
          +
        6. +
        7. Reload the dashboard.

        8. +
        +
        +../../_images/app-dev-tutorial-ps-to-quota-published.png +

        Fig. 9 Every user can now launch the Quota from the Files menu.

        +
        +
        +

        Warning

        +

        Accessing this new app for the first time will cause your NGINX server to restart, +killing all websocket connections, which means resetting your active web-based OnDemand Shell sessions.

        +
        +
        +
        + + +
        + +
        +
        + + + + +
        + +
        +

        + © Copyright 2017-2024, Ohio Supercomputer Center + +

        +
        + +
        + +
        +
        + +
        + +
        +
        + + Documentation Versions + v: + + +
        +
        +
        Versions
        + +
        latest
        + +
        3.0
        + +
        2.0
        + +
        1.8
        + +
        1.7
        + +
        1.6
        + +
        1.5
        + +
        1.4
        + +
        1.3
        + +
        1.2
        + +
        1.1
        + +
        1.0
        + +
        develop
        + +
        +
        +
        On GitHub
        +
        + Website +
        +
        + Main Repo +
        +
        +
        + Theme provided by Read the Docs. +
        +
        + + + + + + + + + + \ No newline at end of file diff --git a/auto-modules-filtering/tutorials/tutorials-passenger-apps/ruby-starter-app.html b/auto-modules-filtering/tutorials/tutorials-passenger-apps/ruby-starter-app.html new file mode 100644 index 000000000..e08a59c4d --- /dev/null +++ b/auto-modules-filtering/tutorials/tutorials-passenger-apps/ruby-starter-app.html @@ -0,0 +1,428 @@ + + + + + + + + + + + Starter Ruby Application — Open OnDemand 3.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + + + +
        + + + + + +
        + +
        + + + + + + + + + + + + + + + + + +
        + + + + +
        +
        +
        +
        + +
        +

        Starter Ruby Application

        +

        This document walks through creating a hello world application in Ruby +with the Sinatra web framework.

        +
        +

        config.ru for Sinatra

        +

        The first thing we need for OnDemand to recognize this directory is a config.ru file. +For Sinatra this is the config.ru that you need.

        +
        # frozen_string_literal: true
        +
        +require_relative 'app'
        +run App
        +
        +
        +
        +
        +

        config.ru for Ruby on Rails

        +

        This document does not cover Ruby on Rails, but +this config.ru is given nonetheless for readers interested +in building Ruby apps based on Ruby on Rails.

        +
        # frozen_string_literal: true
        +
        +require_relative 'config/environment'
        +
        +run Rails.application
        +Rails.application.load_server
        +
        +
        +
        +
        +

        Install dependencies

        +

        The application won’t boot with just the config.ru, though it will try. +What you need now is to install the gems (the ruby dependencies).

        +

        We need a Gemfile to tell bundler (Ruby’s application for dependencies) +what gems to install. Here’s that file.

        +
        # frozen_string_literal: true
        +
        +source 'https://rubygems.org'
        +
        +gem 'sinatra'
        +
        +
        +

        With the Gemfile written, we can now install the dependencies +into vendor/bundle. Issue these commands to do that.

        +
        bundle config path --local vendor/bundle
        +bundle install
        +
        +
        +
        +
        +

        Write the app.rb file

        +

        Still, the app will not boot at this point. The config.ru is looking +to load the app.rb file which does not exist yet.

        +

        The app.rb file that will actually import Sinatra and implement your routes. +Here’s the simplest version of this file returning Hello World on the root URL.

        +
        require 'sinatra/base'
        +
        +class App < Sinatra::Base
        +  get '/' do
        +    'Hello World'
        +  end
        +end
        +
        +
        +
        +
        +

        Publish App

        +

        Publishing an app requires two steps:

        +
          +
        1. Updating the manifest.yml to specify the category and optionally subcategory, which indicates where in the dashboard menu the app appears.

        2. +
        3. Having an administrator checkout a copy of the production version to a directory under /var/www/ood/apps/sys.

        4. +
        +

        Steps:

        +
          +
        1. Add category to manifest so the app appears in the Files menu:

          +
          +
          name: Quota
          +description: Display quotas
          +icon: fa://hdd-o
          ++category: Files
          ++subcategory: Utilities
          +
          +
          +
          +
        2. +
        3. Version these changes. Click Shell button on app details view, and then commit the changes:

          +
          +
          git add .
          +git commit -m "update manifest for production"
          +
          +# if there is an external remote associated with this, push to that
          +git push origin master
          +
          +
          +
          +
        4. +
        5. As the admin, sudo copy or git clone this repo to production

          +
          +
          # as sudo on OnDemand host:
          +cd /var/www/ood/apps/sys
          +git clone /users/PZS0562/efranz/ondemand/dev/quota
          +
          +
          +
          +
        6. +
        7. Reload the dashboard.

        8. +
        +
        +../../_images/app-dev-tutorial-ps-to-quota-published.png +

        Fig. 7 Every user can now launch the Quota from the Files menu.

        +
        +
        +

        Warning

        +

        Accessing this new app for the first time will cause your NGINX server to restart, +killing all websocket connections, which means resetting your active web-based OnDemand Shell sessions.

        +
        +
        +
        + + +
        + +
        +
        + + + + +
        + +
        +

        + © Copyright 2017-2024, Ohio Supercomputer Center + +

        +
        + +
        + +
        +
        + +
        + +
        +
        + + Documentation Versions + v: + + +
        +
        +
        Versions
        + +
        latest
        + +
        3.0
        + +
        2.0
        + +
        1.8
        + +
        1.7
        + +
        1.6
        + +
        1.5
        + +
        1.4
        + +
        1.3
        + +
        1.2
        + +
        1.1
        + +
        1.0
        + +
        develop
        + +
        +
        +
        On GitHub
        +
        + Website +
        +
        + Main Repo +
        +
        +
        + Theme provided by Read the Docs. +
        +
        + + + + + + + + + + \ No newline at end of file diff --git a/auto-modules-filtering/version-policy.html b/auto-modules-filtering/version-policy.html index a7babb820..f59cf1923 100644 --- a/auto-modules-filtering/version-policy.html +++ b/auto-modules-filtering/version-policy.html @@ -126,6 +126,7 @@

    a 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 A **Ruby Partial Downtime** for 4 hours on Monday, September 24 from 8:00am to 12:00pm - will prevent SSH login to Ruby nodes and and Ruby VDI sessions. + will prevent SSH login to Ruby nodes and Ruby VDI sessions. <% end %> .. note:: Warnings about the announcement file being missing may be present in users' nginx logs. Despite the warning the Dashboard will still function normally without those files being present. @@ -74,7 +117,7 @@ To display a MOTD file on the Dashboard ensure that the environment variables `` The ``_erb`` formats support ERB rendering to generate more dynamic messages. .. warning:: - Some MOTD formats like ``rss``, ``markdown`` and ``markdown_erb`` can contain malicous + Some MOTD formats like ``rss``, ``markdown`` and ``markdown_erb`` can contain malicious HTML content. For your safety, by default, the Open OnDemand system will not render HTML. We provide :ref:`a configuration to enable HTML rendering in MOTD ` should you need to render HTML. @@ -277,10 +320,57 @@ Start by creating the file - Additionally project scratch directories have a 'title' attribute and will with in the dropdown with both the title and the path. -On each request, the Dashboard will check for the existence of the directories -in ``OodFilesApp.candidate_favorite_paths`` array and whichever directories -exist and the user has access to will appear as links in the Files menu under -the Home Directory link. +The following example adds all directories within the specified base directories to the favorite paths. This approach is ideal when there is no specific directory naming logic to follow. It also appropriately handles Access Control Lists (ACLs). If a directory does not exist, no error is raised, making this configuration easily exportable to different clusters. + + +.. code-block:: ruby + + # /etc/ood/config/apps/dashboard/initializers/ood.rb + + Rails.application.config.after_initialize do + OodFilesApp.candidate_favorite_paths.tap do |paths| + + # Hash of base paths to check for additional directories with titles + # location => Title + base_paths = { + '/home/share/' => 'Shared home', + '/srv/scratch/shares/' => 'Shared scratch', + '/srv/scratch/groups/' => 'Group scratch', + '/srv/fast/users/' => 'Fast user' + # Add more paths and titles here if needed + } + + base_paths.each do |base_path, title| + # Check if the base path exists and is a directory, to avoid error + next unless Dir.exist?(base_path) + + # Get all entries in the current base path + Dir.entries(base_path).each do |entry| + # Construct the full path for the current entry + full_path = File.join(base_path, entry) + + # Skip if it's not a directory or if it's a special entry like '.' or '..' + next unless File.directory?(full_path) && !['.', '..'].include?(entry) + + # Check if the directory is readable and executable + if File.readable?(full_path) && File.executable?(full_path) + # Access the value of the current base_path using the `title` variable + paths << FavoritePath.new(full_path, title: "#{title}: #{File.basename(full_path)}") + end + end + end + end + end + + # The variable ``base_paths`` is an hash (``dirname`` => ``Title``) of all directories you want to parse. For the directory ``OSC_test`` in ``/srv/scratch/groups/``; the favorite path will be displayed as following + + | Group scratch: OSC_test | /srv/scratch/groups/OSC_test | + + On each request, the Dashboard will check for the existence of the directories + in ``OodFilesApp.candidate_favorite_paths`` array and whichever directories + exist and the user has access to will appear as links in the Files menu under + the Home Directory link. + .. figure:: /images/files_menu_shortcuts_osc.png :align: center @@ -300,6 +390,20 @@ app. .. include:: customizations/main-navigation.inc .. include:: customizations/interactive-apps-menu.inc + +Disable uploads or downloads +---------------------------- + +By default, Open OnDemand will allow users to upload and download files. +Both can be disabled through configuration. + +Use :ref:`download_enabled for disabling downloads ` +and :ref:`upload_enabled for disabling uploads `. + +.. tip:: + Use File Access Controls (FACLs) on the ondemand.d files to enable + or disable uploads or downloads based on group permissions. + .. _set-upload-limits: Set Upload Limits @@ -348,6 +452,8 @@ Note that this will limit the download size for all users of the Open OnDemand i Values like ``1000M`` or ``20G`` will not be accepted and may cause errors. +.. _set-file-allowlist: + Block or Allow Directory Access ------------------------------- @@ -426,6 +532,48 @@ access into any compute node in our three clusters. # /etc/ood/config/apps/shell/env OOD_SSHHOST_ALLOWLIST="r[0-1][0-9][0-9][0-9].ten.osc.edu:o[0-1][0-9][0-9][0-9].ten.osc.edu:p[0-1][0-9][0-9][0-9].ten.osc.edu" +.. _enable-shell-ping-pong: + +Enable and configure Shell Ping Pong +------------------------------------ + +Version 3.1 added the ability for the shell application to send and receive ping pong +messages to keep the connection alive, and thus the terminal session alive. + +The drawback to this is that these persistant connections can actually outlive your +authentication timeout settings. Meaning users can have active shell sessions for much +longer than your authentication systems would normally allow. This is because the +connection was made while you were authenticated and it persists after your session +has expired. + +So, to keep a conservative security posture, Open OnDemand disables ping pongs by +default letting apache timeout these connections more freely. + +In addition to enabling or disabling ping pongs, there are other settings you may wish +to change. + +All of these configurations are environment variables are to be placed in +``/etc/ood/config/apps/shell/env``. + +Setting ``OOD_SHELL_PING_PONG`` to anything will enable ping pongs. Removing it or +commenting it out will disable ping pongs (it's disabled by default). + +``OOD_SHELL_INACTIVE_TIMEOUT_MS`` controls how long a connection can be inactive +for (in milliseconds) before being closed. It defaults to 300000 milliseconds (5 minutes). + +``OOD_SHELL_MAX_DURATION_MS`` controls how long a connection can exist regardless +of activity (in milliseconds). After this duration, the connection will be closed +regardless of activity. It's default is 3600000 milliseconds (1 hour). + +.. code:: shell + + # /etc/ood/config/apps/shell/env + + OOD_SHELL_INACTIVE_TIMEOUT_MS=300000 + OOD_SHELL_MAX_DURATION_MS=3600000 + # OOD_SHELL_PING_PONG=false + + Set OOD SSH Port ----------------- @@ -661,7 +809,7 @@ Full examples are below: # pin any app with an exact match on the metadata field_of_science of biology - field_of_science: 'biology' - # pin any app with an glob match *bio* on the metadata field_of_science + # pin any app with a glob match *bio* on the metadata field_of_science - field_of_science: '*bio*' @@ -713,7 +861,7 @@ Custom layouts in the dashboard ------------------------------- Administrators can now customize what widgets appear on the dashboard and how they're -layed out on the page. +laid out on the page. In it's simplest form this feature allows for a rearrangement of existing widgets. As of 2.1 the existing widgets are: @@ -1079,7 +1227,7 @@ Grafana support It's possible to display Grafana graphs within the ActiveJobs app when a user expands a given job. -Grafana must be configured to support embedded panels and at this time it is also required to have a anonymous organization. Below are configuration options are needed to support displaying Grafana panels in ActiveJobs. Adjust `org_name` to match whatever organization you wish to be anonymous. +Grafana must be configured to support embedded panels and at this time it is also required to have an anonymous organization. Below are configuration options are needed to support displaying Grafana panels in ActiveJobs. Adjust `org_name` to match whatever organization you wish to be anonymous. .. warning:: @@ -1342,4 +1490,4 @@ For completed sessions, the system will only show the delete button. .. include:: customizations/support-ticket.inc .. _OSC's rclone documentation: https://www.osc.edu/resources/getting_started/howto/howto_use_rclone_to_upload_data -.. _2.0 documentation for controling the navbar: https://osc.github.io/ood-documentation/release-2.0/customization.html#control-which-apps-appear-in-the-dashboard-navbar +.. _2.0 documentation for controlling the navbar: https://osc.github.io/ood-documentation/release-2.0/customization.html#control-which-apps-appear-in-the-dashboard-navbar diff --git a/auto-modules-filtering/_sources/how-tos/app-development/interactive/conn-params.rst.txt b/auto-modules-filtering/_sources/how-tos/app-development/interactive/conn-params.rst.txt index b04a94c99..aa3e6f410 100644 --- a/auto-modules-filtering/_sources/how-tos/app-development/interactive/conn-params.rst.txt +++ b/auto-modules-filtering/_sources/how-tos/app-development/interactive/conn-params.rst.txt @@ -11,69 +11,45 @@ This is helpful for: * Data that is only known **after** the job submits and starts running. * Data that needs to be used to connect to the application. -This technique will generate a file in the app's root called ``connection.yml`` when the app launches -which will contain the defined variables and their associated values. - -Configuration -------------- - -The files which must be adjusted are:: - - my_app/ - ├── submit.html.erb - ├── templates/ - │ ├── before.sh.erb - └── view.html.erb - -The files which can be adjusted to:: - - my_app/ - ├── submit.html.erb - ├── templates/ - │ ├── before.sh.erb - │ └── dir - │ └── another_script.sh.erb - └── view.html.erb - -And the ``submit.yml.erb`` will use ``conn_params`` to set the custom variables to pass back to the ``view`` to -be rendered:: - - --- - batch_connect: - template: "basic" - conn_params: - - custom_variable_one - - custom_variable_two - ... - ... - -.. warning:: +This technique will generate a file in the jobs working directory called ``connection.yml`` +when the app launches which will contain the defined variables and their associated values. - The variables in ``before.sh.erb`` *must* be made available to the environment - by using ``export``. Jupyter Notebook Example ------------------------ -Here's an example using the ``bc_osc_jupypter`` app which needs -information from the server to then pass on to the submission before it renders -in the browser for the app's launch card. +Here's an example using a Jupyter application which needs +needs to know the exact API to connect to. We can either connect to +JuypterLab at ``/lab`` or Juypter Notebook at ``/tree``, but this +information is not known until the job has been submitted. -Within the ``template/before.sh.erb``, observe the following lines:: +So once the job is submitted, we need to export the ``jupyter_api`` +environment variable that can then be written to ``connection.yml`` +which OnDemand will consume and use in the ``view.html.erb``. - JUPYTER_API="<%= context.jupyterlab_switch == "1" ? "lab" : "tree" %>" - ... - export jupyter_api="$JUPYTER_API" +.. warning:: -Now take this exported variable and include it in the ``submit.html.erb``. -Ensure that the syntax aligns with the following:: + The environment variables in ``before.sh.erb`` *must* be lowercase and + exported through the *export* function. - --- - batch_connect: - template: "basic" - conn_params: - - jupyter_api - ... +.. code:: shell + + # within template/before.sh.erb + + JUPYTER_API="<%= context.jupyterlab_switch == "1" ? "lab" : "tree" %>" + + export jupyter_api="$JUPYTER_API" + + +Now with that variable exported, you need to add it to ``conn_params`` in +``submit.html.erb`` to ensure that OnDemand makes use of it. + +.. code::yaml + + batch_connect: + template: "basic" + conn_params: + - jupyter_api In the ``view.html.erb``, which renders after the submission in the interactive apps page, you can access the value of this variable with:: diff --git a/auto-modules-filtering/_sources/how-tos/app-development/interactive/dynamic-form-widgets.rst.txt b/auto-modules-filtering/_sources/how-tos/app-development/interactive/dynamic-form-widgets.rst.txt index 9d094e486..b797f849d 100644 --- a/auto-modules-filtering/_sources/how-tos/app-development/interactive/dynamic-form-widgets.rst.txt +++ b/auto-modules-filtering/_sources/how-tos/app-development/interactive/dynamic-form-widgets.rst.txt @@ -55,7 +55,7 @@ for the ``ruby`` cluster. It will then hide it every time the cluster ``ruby`` widget: select options: - 'standard' - - [ + - [ 'gpu', 'gpu', data-option-for-cluster-ruby: false ] @@ -78,9 +78,18 @@ But using Nvidia's `CUDA`_ libraries only makes sense when the user is requestin So, we want to hide the ``cuda_version`` element when a users chooses standard ``node_type``. Here's the example YAML for this app with two select widgets. This -instructs the webpage to hide the ``cuda_version`` when the ``standard`` +instructs the webpage to hide the ``cuda_version`` when the ``standard`` ``node_type`` is selected. +.. warning:: + In addition to hiding form fields like this example shows, one should + also use a ``data-set`` directive to set the value because the field + is no longer visible to the user. While it's hidden, it will still retain + the current value, if any has been supplied. + + By forcing a value after hiding it you can ensure that the correct values + are being passed to the server. + .. code-block:: yaml :emphasize-lines: 7 @@ -88,9 +97,10 @@ instructs the webpage to hide the ``cuda_version`` when the ``standard`` node_type: widget: select options: - - [ + - [ 'standard', 'standard', - data-hide-cuda-version: true + data-hide-cuda-version: true, + data-set-cuda-version: 'none' ] - 'gpu' @@ -100,7 +110,7 @@ Here we have a checkbox ``enable_cuda_version`` that will show ``cuda_version`` when checked and hide it when it's not checked. .. tip:: - Checkboxes respond to ``when-checked: true`` and ``when-unchecked: true`` + Checkboxes respond to ``when-checked: true`` and ``when-un-checked: true`` for hiding elements when checked or unchecked. .. code-block:: yaml @@ -111,7 +121,31 @@ Here we have a checkbox ``enable_cuda_version`` that will show widget: 'check_box' html_options: data: - hide-cuda-version-when-unchecked: true + hide-cuda-version-when-un-checked: true + +Dynamic Element Labels +********************** + +The ``data-label-*`` directive allows you to change the label of another +form element based on the selected option in a select widget. + +.. code-block:: yaml + + attributes: + node_type: + widget: select + options: + - [ 'small', 'small', data-label-cores: 'Number of Cores (1-4)' ] + - [ 'medium', 'medium', data-label-cores: 'Number of Cores (1-8)' ] + - [ 'large', 'large', data-label-cores: 'Number of Cores (1-16)' ] + + cores: + widget: "number_field" + required: true + value: 1 + +In this case, selecting Node Type 'small' will change the label of Cores to +'Number of Cores (1-4)'. Dynamic Min and Maxes ********************* @@ -130,7 +164,7 @@ different sizes. In the ``oakley`` cluster nodes have a total 28 cores and in th ``ruby`` cluster they have 40. In this example ``data-max-num-cores-for-cluster-oakley`` is attached to the standard -node type. This config is saying, when the ``node_type`` is ``standard`` +node type. This config is saying, when the ``node_type`` is ``standard`` and the ``cluster`` is ``oakley`` set maximum ``num_cores`` to 28. .. code-block:: yaml @@ -139,7 +173,7 @@ and the ``cluster`` is ``oakley`` set maximum ``num_cores`` to 28. node_type: widget: select options: - - [ + - [ 'standard', 'standard', data-max-num-cores-for-cluster-oakley: 28, data-max-num-cores-for-cluster-ruby: 40, @@ -150,7 +184,7 @@ and the ``cluster`` is ``oakley`` set maximum ``num_cores`` to 28. data-min-num-cores: 1, ] -This example also illustrates a simpler variant of this directive attached to ``gpu``. +This example also illustrates a simpler variant of this directive attached to ``gpu``. This configuration doesn't have a for clause, so it will set the minimum and maximum values for ``num_cores`` when ``gpu`` is selected, regardless of which cluster is selected. @@ -183,7 +217,7 @@ the ``enable_gpu`` check box will either be checked or unchecked. node_type: widget: select options: - - [ + - [ 'standard', 'standard', data-set-charge-account: 'standard-charge-code', data-set-enable-gpu: 0 diff --git a/auto-modules-filtering/_sources/how-tos/app-development/interactive/form.rst.txt b/auto-modules-filtering/_sources/how-tos/app-development/interactive/form.rst.txt index 7451432a2..081c41e43 100644 --- a/auto-modules-filtering/_sources/how-tos/app-development/interactive/form.rst.txt +++ b/auto-modules-filtering/_sources/how-tos/app-development/interactive/form.rst.txt @@ -51,6 +51,17 @@ My App* from the list of sandbox apps. You should now see the HTML form used to gather the user-defined attributes for building and launching the ``my_app`` Interactive App session. +.. warning:: + + Since 4.0 HTML IDs of the form items are always lowercase. The examples above + show lowercase configurations of ``account``. Specifying ``Account``, + or ``ACCOUNT`` or any variation of uppercase and lowercase will result in + the same behhavior as specifying ``account`` (all lower case). + + If you write your own ``form.js`` take care to note that HTML IDs of these + form items will **always** be lowercase regardless of how they're defined in + the YAML file. + .. tip:: You can include dynamically generated content in the form by renaming the @@ -97,6 +108,8 @@ This is the full list of items with details, you may supply to this yaml file to whether or not the application is cacheable or not. Defaults to true. +.. _bc_form_attributes: + Attributes ---------- @@ -227,6 +240,7 @@ auto_modules_ (without the wrapping `//`) or a string: Regex: + .. code-block:: yaml attributes: @@ -818,5 +832,47 @@ The last option is to :ref:`configure the cluster in the submit file ` +:ref:`Information about interactive app log location. ` App completes without being able to connect to it. diff --git a/auto-modules-filtering/_sources/how-tos/monitoring/logging.rst.txt b/auto-modules-filtering/_sources/how-tos/monitoring/logging.rst.txt index 497c167cf..89c4120cc 100644 --- a/auto-modules-filtering/_sources/how-tos/monitoring/logging.rst.txt +++ b/auto-modules-filtering/_sources/how-tos/monitoring/logging.rst.txt @@ -35,7 +35,7 @@ There are two locations to check depending on what information is needed: :file:`/var/log/httpd/_access.log` -- Where OnDemand will log succsseful logins. +- Where OnDemand will log successful logins. .. warning:: @@ -46,7 +46,7 @@ There are two locations to check depending on what information is needed: The NGINX logs are the output of the user :ref:`PUN `. These logs will capture things relevant to a *particular user* such as: -- Debuggin issues related to job submissions for a user. For example, commands being issued to the scheduler +- Debugging issues related to job submissions for a user. For example, commands being issued to the scheduler (``sbatch``, ``qsub``, etc) can be seen here by searching for ``execve``. - Issues related to PUNs crashing and/or pages not rendering correctly. @@ -72,7 +72,7 @@ information they may need there as well for connections and errors. .. note:: The files will be *owned by the user* and so admins will need to ensure they are either - able to substitue user or escalate to root in order to see these files. + able to substitute user or escalate to root in order to see these files. In general the session data or job submission files for apps across the dashboard, such as the Job Composer, Batch Connect, or Frame-renderer, all start from the root of: diff --git a/auto-modules-filtering/_sources/how-tos/monitoring/prometheus.rst.txt b/auto-modules-filtering/_sources/how-tos/monitoring/prometheus.rst.txt index 05d53b049..65192e448 100644 --- a/auto-modules-filtering/_sources/how-tos/monitoring/prometheus.rst.txt +++ b/auto-modules-filtering/_sources/how-tos/monitoring/prometheus.rst.txt @@ -33,7 +33,6 @@ For yum/dnf based systems the `ondemand_exporter`_ can be installed via RPM. The RPM will install the following files that should work out of the box: -- **RHEL/CentOS 7 only**: /opt/rh/httpd24/root/etc/httpd/conf.d/ondemand_exporter.conf - **RHEL/Rocky/AlmaLinux 8 & 9 only**: /etc/httpd/conf.d/ondemand_exporter.conf - /etc/sudoers.d/ondemand_exporter @@ -41,12 +40,6 @@ Ensure that the new Apache configuration is loaded by restarting Apache .. tabs:: - .. tab:: RHEL/CentOS 7 - - .. code-block:: sh - - sudo systemctl restart httpd24-httpd - .. tab:: RHEL/Rocky/Alma Linux 8 & 9 .. code-block:: sh @@ -82,13 +75,6 @@ Check for the `ondemand_exporter Latest Release`_ version number. Replace ``VER .. tabs:: - .. tab:: RHEL/CentOS 7 - - .. code-block:: sh - - sudo install -o root -g root -m 0440 /tmp/${ARCHIVE}/files/apache.conf /opt/rh/httpd24/root/etc/httpd/conf.d/ondemand_exporter.conf - sudo systemctl restart httpd24-httpd - .. tab:: RHEL/Rocky/Alma Linux 8 & 9 .. code-block:: sh diff --git a/auto-modules-filtering/_sources/index.rst.txt b/auto-modules-filtering/_sources/index.rst.txt index cb76b64b7..4c62a6c75 100644 --- a/auto-modules-filtering/_sources/index.rst.txt +++ b/auto-modules-filtering/_sources/index.rst.txt @@ -81,10 +81,10 @@ These are institutions who were early adopters or provided HPC resources for dev architecture reference + security release-notes version-policy - glossary - issues/overview + glossary .. _website: https://openondemand.org/ .. _bowdoin: https://www.bowdoin.edu/it/resources/high-performance-computing.html diff --git a/auto-modules-filtering/_sources/installation.rst.txt b/auto-modules-filtering/_sources/installation.rst.txt index 050853fcb..8db441c1c 100644 --- a/auto-modules-filtering/_sources/installation.rst.txt +++ b/auto-modules-filtering/_sources/installation.rst.txt @@ -6,7 +6,7 @@ Installation The OnDemand host machine needs to be setup *similarly* to a login node. This means that it will need: -- RedHat/CentOS 7+ or Ubuntu 20.04-22.04 or Debian 12 or Amazon Linux 2023 +- RedHat/RockyLinux/AlmaLinux 8+ or Ubuntu 20.04-24.04 or Debian 12 or Amazon Linux 2023 - the resource manager (e.g., Torque, Slurm, or LSF) client binaries and libraries used by the batch servers installed - configuration on both OnDemand node **and batch servers** to be able to diff --git a/auto-modules-filtering/_sources/installation/cluster-config-schema.rst.txt b/auto-modules-filtering/_sources/installation/cluster-config-schema.rst.txt index f1908642d..1d2fa332e 100644 --- a/auto-modules-filtering/_sources/installation/cluster-config-schema.rst.txt +++ b/auto-modules-filtering/_sources/installation/cluster-config-schema.rst.txt @@ -112,7 +112,7 @@ The job mapping is specific to a cluster's resource manager. bin_overrides: -------------- -`bin_overrides` adds the ability for a site to specify full paths to alternatives to the configured resource manager's client executables. This advanced feature allows a site considerable flexibilty to write wrappers to handle logging, environment or default setting, or use 3rd party API compatible alternative clients without having to alter the resource manager installation. +`bin_overrides` adds the ability for a site to specify full paths to alternatives to the configured resource manager's client executables. This advanced feature allows a site considerable flexibility to write wrappers to handle logging, environment or default setting, or use 3rd party API compatible alternative clients without having to alter the resource manager installation. .. warning :: `bin_overrides` is an advanced feature. OOD relies both on return codes from clients, and on parsing the standard output in order to get information about submitted jobs. Care and testing is recommended. @@ -210,4 +210,4 @@ An example config file in ``ondemand.d/pitzer_01_login.yml``: host: "pitzer-login01.hpc.osu.edu" Again, the thing to note here is we've left off the ``v2.job`` which renders the cluster useable only for logins, i.e. -*no jobs will be scheduleable on this cluster.* \ No newline at end of file +*no jobs will be scheduleable on this cluster.* diff --git a/auto-modules-filtering/_sources/installation/install-software.rst.txt b/auto-modules-filtering/_sources/installation/install-software.rst.txt index 0c7152687..8e228e7f2 100644 --- a/auto-modules-filtering/_sources/installation/install-software.rst.txt +++ b/auto-modules-filtering/_sources/installation/install-software.rst.txt @@ -33,13 +33,6 @@ Some operating systems use `Software Collections`_ to satisfy these. .. tabs:: - .. tab:: CentOS 7 - - .. code-block:: sh - - sudo yum install centos-release-scl epel-release - - .. tab:: RockyLinux/Alma Linux 8 .. code-block:: sh @@ -79,14 +72,6 @@ Some operating systems use `Software Collections`_ to satisfy these. .. tabs:: - .. tab:: RedHat/CentOS 7 - - .. code-block:: sh - - sudo yum install https://yum.osc.edu/ondemand/{{ ondemand_version }}/ondemand-release-web-{{ ondemand_version }}-1.el7.noarch.rpm - - sudo yum install ondemand - .. tab:: RedHat/Rocky Linux/AlmaLinux 8 .. code-block:: sh @@ -125,6 +110,17 @@ Some operating systems use `Software Collections`_ to satisfy these. sudo apt install ondemand + .. tab:: Ubuntu 24.04 + + .. code-block:: sh + + sudo apt install apt-transport-https ca-certificates + wget -O /tmp/ondemand-release-web_{{ ondemand_version }}.2-noble_all.deb https://apt.osc.edu/ondemand/{{ ondemand_version }}/ondemand-release-web_{{ ondemand_version }}.2-noble_all.deb + sudo apt install /tmp/ondemand-release-web_{{ ondemand_version }}.2-noble_all.deb + sudo apt update + + sudo apt install ondemand + .. tab:: Debian 12 .. code-block:: sh @@ -149,14 +145,6 @@ Some operating systems use `Software Collections`_ to satisfy these. .. tabs:: - .. tab:: RHEL/CentOS 7 - - .. code-block:: sh - - sudo systemctl start httpd24-httpd - sudo systemctl enable httpd24-httpd - - .. tab:: RHEL/Rocky 8 & 9 .. code-block:: sh diff --git a/auto-modules-filtering/_sources/installation/resource-manager/advanced-configs.rst.txt b/auto-modules-filtering/_sources/installation/resource-manager/advanced-configs.rst.txt index d616b36ac..25c7879c5 100644 --- a/auto-modules-filtering/_sources/installation/resource-manager/advanced-configs.rst.txt +++ b/auto-modules-filtering/_sources/installation/resource-manager/advanced-configs.rst.txt @@ -1,7 +1,7 @@ .. _advanced-resource-manager-configs: -Advanced Resource Manager Configrations -======================================= +Advanced Resource Manager Configurations +======================================== This page details advanced settings for any resource manager that could be helpful in using Open OnDemand. diff --git a/auto-modules-filtering/_sources/installation/resource-manager/slurm.rst.txt b/auto-modules-filtering/_sources/installation/resource-manager/slurm.rst.txt index 56d8b0c06..0c4de157c 100644 --- a/auto-modules-filtering/_sources/installation/resource-manager/slurm.rst.txt +++ b/auto-modules-filtering/_sources/installation/resource-manager/slurm.rst.txt @@ -8,10 +8,10 @@ cluster looks like: .. warning:: Open OnDemand's Slurm support defaults to issuing CLI commands with - the ``--export`` flag set to ``NONE``, when Slurms default is ``ALL``. + the ``--export`` flag set to ``NONE``, when Slurm's default is ``ALL``. This can cause issues with jobs that require ``srun``. - Work arounds are currently to ``export SLURM_EXPORT_ENV=ALL`` + Workarounds are currently to ``export SLURM_EXPORT_ENV=ALL`` in a :ref:`script_wrapper ` before any job scripts run. Alternatively, you can use ``copy_environment`` below with the caveat @@ -48,7 +48,7 @@ cluster .. warning:: Using the ``cluster`` option is discouraged. This is because maintenance - outages on the Slurm database will propogate to Open OnDemand. Instead sites + outages on the Slurm database will propagate to Open OnDemand. Instead sites should use different ``conf`` files for each cluster to limit maintenance outages. bin The path to the Slurm client installation binaries. @@ -67,7 +67,7 @@ bin_overrides - `scancel` copy_environment - Copies the enviornment of the PUN when issuing CLI commands. Default behaviour + Copies the environment of the PUN when issuing CLI commands. Default behaviour for Open OnDemand is to use ``--export=NONE`` flag. Setting this to true will cause Open OnDemand to issue CLI commands with ``--export=ALL``. Though this may cause issues as the PUN's environment is very different than a regular shell session. diff --git a/auto-modules-filtering/_sources/installation/resource-manager/test.rst.txt b/auto-modules-filtering/_sources/installation/resource-manager/test.rst.txt index d223c7209..65d1d9d8c 100644 --- a/auto-modules-filtering/_sources/installation/resource-manager/test.rst.txt +++ b/auto-modules-filtering/_sources/installation/resource-manager/test.rst.txt @@ -22,18 +22,6 @@ configuration files. #. We will now list all available tasks that we can run: - .. rubric:: If your operating system is CentOS 7 or RHEL 7, run this command: - - .. code-block:: sh - - scl enable ondemand -- bin/rake -T test:jobs - # rake test:jobs # Test all clusters - # rake test:jobs:cluster1 # Test the cluster: cluster1 - # rake test:jobs:cluster2 # Test the cluster: cluster2 - - - .. rubric:: Otherwise, run this command: - .. code-block:: sh source /opt/ood/ondemand/enable diff --git a/auto-modules-filtering/_sources/issues/overview.rst.txt b/auto-modules-filtering/_sources/issues/overview.rst.txt deleted file mode 100644 index 9e2e6e9ec..000000000 --- a/auto-modules-filtering/_sources/issues/overview.rst.txt +++ /dev/null @@ -1,184 +0,0 @@ -.. _overview.rst: - -OnDemand's Known Issues -======================= - -.. note:: - We take community requests and troubleshoot as well on our Discourse at https://discourse.osc.edu/. - -.. File explorer - -- `File names with XML or HTML break display`_ -- `Problems uploading files`_ -- `Downloading forbidden directories fails silently`_ -- `Viewing large files causes problems`_ -- `Incorrect link in tree root`_ - -.. Dashboard - -- `NoMethodError when using a custom translation file`_ -- `Dashboard may be slow due to logic in ERB templates`_ -- `Batch Connect sessions do not contain much debugging info`_ -- `noVNC does not work with Safari and Apache Basic auth`_ - -.. Shell - -- `Multiline select does not work in MS Edge`_ -- `High output programs may freeze the shell`_ -- `Paste does not work in older versions of Safari`_ - -.. Other - -- `RStudio and Upgrading Singularity 3 to minor version 5`_ - -File names with XML or HTML break display ------------------------------------------ - -Files whose names that contain XML or HTML special characters (``<, >, &``) break the File Explorer's display. While this does not introduce corrupt the file system it does render the application unusable. - - .. raw:: html - - OSC/ood-fileexplorer#198 - -Work arounds: to be able to manipulate files that break the Files app users can use a graphical SFTP client like `Cyberduck`_ or `FileZilla`_ or the command line. - - -Problems uploading files ------------------------- - -The File Explorer uses HTTP PUT and the NGINX temporary directory to upload files. For most usage this arrangement is adequate, but large files (which may exceed the capacity of the temp dir), shakey network connections (which may cause a transfer to stop partway through) can result in an unsatisfactory experience. - -If the NGINX temporary directory is on a small partition it is possible to overload it when attempting an upload. In the case that an upload is too large to fit in the upload temp directory the application may send the partially uploaded file to the destination without reporting an error. - - .. raw:: html - - OSC/ood-fileexplorer#187 - -Work arounds: to be able to upload larger files that fail with the Files app users can use a graphical SFTP client like `Cyberduck`_, `Globus Connect Personal`_, or the command line. Admins should check to ensure that the partition containing the upload temp dir (``/var/run/ondemand-nginx``) is adequate. - -Downloading forbidden directories fails silently ------------------------------------------------- - -When a user attempts to download a directory for which they do not have adequate file system permissions the download action will fail without notifying the user of the error. - - .. raw:: html - - OSC/ood-fileexplorer#185 - -Workarounds: No work arounds are available. - -Viewing large files causes problems ------------------------------------ - -When attempting to view large files (multi-megabyte) the File Explorer has been observed to cause right click to stop working in FireFox. - - .. raw:: html - - OSC/ood-fileexplorer#196 - -Work arounds: if graphical desktops are installed, then use the recommended file viewer / editor for the desired file type. If the correct viewer is not known to the user, but is installed on the system it may be discoverable using the command line program ``xdg-open [file-name]``. - -Incorrect link in tree root ---------------------------- - -In the File Explorer attempting to open the tree menu's root link in a new tab causes an error. - - .. raw:: html - - OSC/ood-fileexplorer#173 - -Workarounds: No work arounds are available at this time. - -NoMethodError when using a custom translation file --------------------------------------------------- - -When attempting to use a custom translation file if the directory pointed to by the environment variable ``OOD_LOCALES_ROOT`` does not exist then attempting to load the application will cause an unhandled ``NoMethodError`` to be throw in the application controller. - - .. raw:: html - - OSC/ood-dashboard#465 - -Workarounds: Admins are encouraged to first test all changes to their OnDemand instances in a test environment before applying changes to production services. - -Dashboard may be slow due to logic in ERB templates ---------------------------------------------------- - -The Dashboard may be slow as a result of how the menu is built if custom Batch Connect applications have complicated logic in their ``form.yml.erb``. - -An example where this may occur is if the ERB templates contain commands that query the cluster's status. - - .. raw:: html - - OSC/ood-dashboard#417 - -Workarounds: Reducing the amount of logic inside ERBs is the near-term solution. In the longer term the OnDemand team will be re-evaluating how the Dashboard menu is constructed so that this will no longer be an issue. - -Batch Connect sessions do not contain much debugging info ---------------------------------------------------------- - -When troubleshooting a failed Batch Connect job it may be difficult to diagnose certain errors because the adapter error interface is generic and does not contain a stack trace of what has gone wrong. - - .. raw:: html - - OSC/ood-dashboard#397 - -Workarounds: no work around is available to the user; admins may find examples of what went wrong in the NGINX logs for the troubled user. - -When a Batch Connect session fails inside of the ``script.sh.erb`` section of its execution the session information is removed from the view and no error message is shown to the user. - - .. raw:: html - - OSC/ood-dashboard#171 - -Workarounds: Users or support staff may find logs for failed Batch Connect sessions located in the output directory ``$HOME/ondemand/data/(sys|dev|usr)/dashboard/batch_connect/(sys|dev|usr)/$APP_NAME/output/$UUID/output.log``. - -noVNC does not work with Safari and Apache Basic auth ------------------------------------------------------ - -OnDemand's Cluster and Interactive Apps do not work with Safari when OnDemand is protected using Basic authentication. This is due to a bug in Safari with using websockets through servers protected using "Basic" auth. - -Workarounds: OnDemand can be installed with another authentication mechanism such as Shibboleth or OpenID Connect. If "Basic" auth is required, Mac users can connect with other browsers like Chrome or Firefox. - -Multiline select does not work in MS Edge ------------------------------------------ - -Multi-line select does not work in Microsoft Edge (pre-Chromium). - - .. raw:: html - - OSC/ood-shell#57 - -Workarounds: Using another web browser such as FireFox or Chrome. - -High output programs may freeze the shell ------------------------------------------ - -The Shell may freeze when attempting to display a large amount of content. This error was initially reported by a user running Python Spark from the Shell app, and has been duplicated by simply running ``cat`` against hundreds-of-megabyte files. - - .. raw:: html - - OSC/ood-shell#28 - -Workarounds: When attempting to view the contents of a file using the commands ``less``, ``head`` or ``tail`` instead of ``cat`` will prevent this error. When running a program that may rapidly produce megabytes of output using a native SSH terminal may be preferable, either from the user's personal machine, or from within a graphical session on the cluster. Alternatively redirecting application output to a file or files (stdout/stderr) and then using ``less`` or ``tail`` to view those files can also solve this problem. - -Paste does not work in older versions of Safari ------------------------------------------------ - -Pasting from the system clipboard is not supported in Safari 8 or 9. - -.. raw:: html - - OSC/ood-shell#16 - -Workarounds: At the time of writing the current version of Safari is version 12. Users experiencing this error are highly recommended to upgrade their web browser. - -RStudio and Upgrading Singularity 3 to minor version 5 ------------------------------------------------------- - -OnDemand RStudio implementations using Singularity may break when upgrading to Singularity version 3.5 or above. There is an undocumented breaking change where ``LD_LIBRARY_PATH`` is no longer exported to the container by default. Instead the container will default to having ``LD_LIBRARY_PATH=/.singularity.d/libs``. - -Workarounds: Explicitly exporting the variable by using ``SINGULARITYENV_LD_LIBRARY_PATH="$LD_LIBRARY_PATH" singularity ...`` appears sufficient to fix the issue. - -.. _Cyberduck: https://cyberduck.io -.. _FileZilla: https://filezilla-project.org/ -.. _Globus Connect Personal: https://www.globus.org/globus-connect-personal diff --git a/auto-modules-filtering/_sources/reference/files/nginx-stage-yml.rst.txt b/auto-modules-filtering/_sources/reference/files/nginx-stage-yml.rst.txt index 0ec04f0d3..37d189c5b 100644 --- a/auto-modules-filtering/_sources/reference/files/nginx-stage-yml.rst.txt +++ b/auto-modules-filtering/_sources/reference/files/nginx-stage-yml.rst.txt @@ -788,16 +788,12 @@ Configuration Options min_uid: 1000 Example - Using CentOS 6 + Define new minimum UID .. code-block:: yaml min_uid: 500 - .. note:: - - For RHEL6 and CentOS 6 the user id's begin at ``500``. - .. _disabled_shell: .. describe:: disabled_shell (String) diff --git a/auto-modules-filtering/_sources/reference/files/ondemand-d-ymls.rst.txt b/auto-modules-filtering/_sources/reference/files/ondemand-d-ymls.rst.txt index b9e3f1087..b962de57c 100644 --- a/auto-modules-filtering/_sources/reference/files/ondemand-d-ymls.rst.txt +++ b/auto-modules-filtering/_sources/reference/files/ondemand-d-ymls.rst.txt @@ -760,6 +760,8 @@ Configuration Properties .. _upload_enabled: .. describe:: upload_enabled (Boolean, true) + .. versionadded:: 3.1 + Enable uploading files. Default @@ -777,9 +779,11 @@ Configuration Properties upload_enabled: false -.. _downlad_enabled: +.. _download_enabled: .. describe:: download_enabled (Boolean, true) + .. versionadded:: 3.1 + Enable downloading files. Default diff --git a/auto-modules-filtering/_sources/reference/files/ood-portal-yml.rst.txt b/auto-modules-filtering/_sources/reference/files/ood-portal-yml.rst.txt index 0180a2a5d..6b29157fe 100644 --- a/auto-modules-filtering/_sources/reference/files/ood-portal-yml.rst.txt +++ b/auto-modules-filtering/_sources/reference/files/ood-portal-yml.rst.txt @@ -73,7 +73,8 @@ Configure General Options .. code-block:: yaml - servername: "class.my-cool-site.example.edu" + server_aliases: + - "class.my-cool-site.example.edu" .. describe:: proxy_server (String, null) @@ -1262,4 +1263,4 @@ to ``null`` will disable this feature. dex: false .. _auth_openidc.conf: https://github.com/zmartzone/mod_auth_openidc/blob/master/auth_openidc.conf -.. _documentation on lua patterns: https://www.lua.org/manual/5.1/manual.html#5.4.1 \ No newline at end of file +.. _documentation on lua patterns: https://www.lua.org/manual/5.1/manual.html#5.4.1 diff --git a/auto-modules-filtering/_sources/reference/files/submit-yml/basic-bc-options.rst.txt b/auto-modules-filtering/_sources/reference/files/submit-yml/basic-bc-options.rst.txt index 6cfc4bdfc..9832409c5 100644 --- a/auto-modules-filtering/_sources/reference/files/submit-yml/basic-bc-options.rst.txt +++ b/auto-modules-filtering/_sources/reference/files/submit-yml/basic-bc-options.rst.txt @@ -235,7 +235,7 @@ Basic Batch Connect Options # careful now, we can't override run_file or we have to # change it here too! This also doesn't account for timeout, # if it's provided. - IMAGE=/opt/images/centos7.sif + IMAGE=/opt/images/el9.sif singularity exec -p $IMAGE /bin/bash script.sh .. describe:: script_file (String, "./script.sh") diff --git a/auto-modules-filtering/_sources/release-notes.rst.txt b/auto-modules-filtering/_sources/release-notes.rst.txt index a645b7e8a..0c577055e 100644 --- a/auto-modules-filtering/_sources/release-notes.rst.txt +++ b/auto-modules-filtering/_sources/release-notes.rst.txt @@ -6,6 +6,7 @@ Release Notes .. toctree:: :maxdepth: 2 + release-notes/v4.0-release-notes release-notes/v3.1-release-notes release-notes/v3.0-release-notes release-notes/v2.0-release-notes diff --git a/auto-modules-filtering/_sources/release-notes/v1.8-release-notes.rst.txt b/auto-modules-filtering/_sources/release-notes/v1.8-release-notes.rst.txt index 6cac24fde..773494f93 100644 --- a/auto-modules-filtering/_sources/release-notes/v1.8-release-notes.rst.txt +++ b/auto-modules-filtering/_sources/release-notes/v1.8-release-notes.rst.txt @@ -268,7 +268,7 @@ Added Sinatra Ruby Gems into ondemand-gems for other apps to use ................................................................ Related Ruby gems for the micro-webframework "Sinatra" were added to the Dashboard Gemfile to ensure they are included in the ``ondemand-gems`` RPM. -Simple applications like the Passenger status app featured in the :ref:`Passenger app development tutorial ` can now be run without needing to install gem dependencies into the application directory. The following gems were added for this purpose: +Simple applications like the Passenger status app featured in the :ref:`Ruby Starter application ` can now be run without needing to install gem dependencies into the application directory. The following gems were added for this purpose: .. code-block:: ruby diff --git a/auto-modules-filtering/_sources/release-notes/v3.0-release-notes.rst.txt b/auto-modules-filtering/_sources/release-notes/v3.0-release-notes.rst.txt index 15c3ecda5..55bd9bebd 100644 --- a/auto-modules-filtering/_sources/release-notes/v3.0-release-notes.rst.txt +++ b/auto-modules-filtering/_sources/release-notes/v3.0-release-notes.rst.txt @@ -110,60 +110,17 @@ Deprecations Autoloading during initialization is deprecated. ************************************************ -This comes from the Ruby on Rails framework that Open OnDemand utilizes. -It affects initializers you may have written, for example to :ref:`add-shortcuts-to-files-menu`. - -To resolve this, wrap your code in a ``Rails.application.config.after_initialize`` block. - -For example, if you have: - -.. code-block:: ruby - - # /etc/ood/config/apps/dashboard/initializers/ood.rb - - OodFilesApp.candidate_favorite_paths.tap do |paths| - # add User project space directory - paths << FavoritePath.new("/fs/project/#{User.new.name}") - end - -You will need to modify that file like so: - -.. code-block:: ruby - - # /etc/ood/config/apps/dashboard/initializers/ood.rb - - Rails.application.config.after_initialize do - OodFilesApp.candidate_favorite_paths.tap do |paths| - # add User project space directory - paths << FavoritePath.new("/fs/project/#{User.new.name}") - end - end +.. include:: autoload.inc NavConfig is deprecated *********************** -The initializers used to modify the navigation bar and the class -``NavConfig`` is deprecated. The 2.x series will continue to support -this, but sites should use the ``nav_categories`` property instead. - -See :ref:`limit-auto-generated-menu-bars` and the -:ref:`nav_categories configuration property ` for more details. +.. include:: navconfig.inc whitelist & blacklist configs are deprecated ******************************************** -These configurations that have whitelist in the name have been deprecated -and replaced with allowlist or blocklist. - -The configurations ``maintenance_ip_whitelist`` for configuring maintenance ips -has been replaced by ``maintenance_ip_allowlist``. - -The ``WHITELIST_PATH`` environment variable for configuring inaccessible paths -in the file browser has been replaced by ``OOD_ALLOWLIST_PATH``. - -ACL configurations in ``cluster.d`` files now use ``allowlist`` and ``blocklist`` -instead of ``whitelist`` and ``blacklist``, though sites should just use -Linux FACLs to control these files instead of these configurations. +.. include:: allowlist.inc Dependency updates .................. diff --git a/auto-modules-filtering/_sources/release-notes/v3.1-release-notes.rst.txt b/auto-modules-filtering/_sources/release-notes/v3.1-release-notes.rst.txt index 7ca2a790f..7cc1e4082 100644 --- a/auto-modules-filtering/_sources/release-notes/v3.1-release-notes.rst.txt +++ b/auto-modules-filtering/_sources/release-notes/v3.1-release-notes.rst.txt @@ -32,6 +32,17 @@ Details of administrative changes Breaking Changes ................ +Advanced httpd support +********************** + +In an effort to support higher versions of ``apache httpd`` an +update was made in ``3.1.9`` that broke some older versions of ``apache httpd``. + +RHEL compatible systems specifically need the highest version available +to work correctly with OnDemand 3.1.9 or higher. At the time of writing +the required version of ``apache httpd`` is ``2.4.37-65`` for EL8 and +``2.4.57-11`` for EL9. + User Settings File Change ************************* @@ -126,6 +137,14 @@ Upgrade directions sudo apt install /tmp/ondemand-release-web_3.1.0-jammy_all.deb sudo apt update + .. tab:: Ubuntu 24.04 + + .. code-block:: sh + + wget -O /tmp/ondemand-release-web_3.1.2-noble_all.deb https://apt.osc.edu/ondemand/3.1/ondemand-release-web_3.1.2-noble_all.deb + sudo apt install /tmp/ondemand-release-web_3.1.2-noble_all.deb + sudo apt update + #. Enable dependencies **RHEL/Rocky/AlmaLinux 8 & 9 only** @@ -255,7 +274,7 @@ Disabling uploads and downloads ............................... Sites can now disable uploads and downloads through the file -browser. See the configuration for :ref:`disabling downloads ` +browser. See the configuration for :ref:`disabling downloads ` and :ref:`disabling uploads ` for how to configure this. Custom Javascript files @@ -294,6 +313,9 @@ The shell app has been updated so that shell sessions can last longer. The app is better at keeping the connection alive, meaning users will maintain shell sessions for longer. +This, however, is disabled by default since `3.1.9`. You can see more +details in :ref:`enable-shell-ping-pong`. + aarch64/arm64 and ppc64le packages .................................. diff --git a/auto-modules-filtering/_sources/release-notes/v4.0-release-notes.rst.txt b/auto-modules-filtering/_sources/release-notes/v4.0-release-notes.rst.txt new file mode 100644 index 000000000..5c88c2b48 --- /dev/null +++ b/auto-modules-filtering/_sources/release-notes/v4.0-release-notes.rst.txt @@ -0,0 +1,105 @@ +.. _v4.0-release-notes: + +v4.0 Release Notes +================== + +Administrative changes +---------------------- + +- `Breaking Changes`_ + +New Features +------------ + +- `Global Batch Connect items`_ + +Thanks! +------- + +We'd like to thank a bunch of folks' for contributing to this release. +As we only know the github username, that's what's being referenced here. + + + +Details of administrative changes +--------------------------------- + +Breaking Changes +................ + +Autoloading during initialization has been removed. +*************************************************** + +.. include:: autoload.inc + +NavConfig has been removed. +*************************** + +.. include:: navconfig.inc + +whitelist & blacklist configs have been removed. +************************************************ + +.. include:: allowlist.inc + +Announcements are dismissable by default. +***************************************** + +In 4.0 :ref:`configure_announcements` now have the ability to be ``dismissable``. +Meaning users can press ``OK`` on the announment and it will no longer appear +on the pages. + +In prior versions of Open OnDemand there was no way to dismiss or get rid of announcements. +Now in version 4.0, not only is there a way to dismiss announcements, announcements +themselves are ``dismissable`` by default. + +The documentation for :ref:`configure_announcements` has been updated with this new feature. + +Batch connect form ids are now lowercase. +***************************************** + +To resolve some bugs with :ref:`dynamic-bc-apps`, batch connect form +items will now force lowercase HTML IDs. This may break some javascript +at centers expecting the HTML id of the form item to be a mix of uppercase +and lowercase. + +This is an example of defining a form item with uppercase keys like ``My_Cool_Form_Item``. + +.. code-block:: yaml + + --- + form: + My_Cool_Form_Item + +In this example ``My_Cool_Form_Item`` has uppercase characters, however the HTML +id of the form item will be lowercase as shown below. + +.. code-block:: html + + id="batch_connect_session_context_my_cool_form_item" + +Dependency updates +.................. + + + +SELinux changes +............... + + +Upgrade directions +.................. + + + +Details of new features +----------------------- + +Global Batch Connect items +.......................... + +In 4.0 you can now define batch connect form items +in ondemand.d files to be used in any batch connect +application. + +See :ref:`global_bc_form_items` for more details. diff --git a/auto-modules-filtering/_sources/requirements.rst.txt b/auto-modules-filtering/_sources/requirements.rst.txt index bd2a85997..4a62a535b 100644 --- a/auto-modules-filtering/_sources/requirements.rst.txt +++ b/auto-modules-filtering/_sources/requirements.rst.txt @@ -17,11 +17,11 @@ At this time OnDemand only supports the following operating systems and architec :header: "","x86_64","aarch64/arm64","ppc64le" :stub-columns: 1 - "RedHat/CentOS 7",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`✅` "RedHat/Rocky Linux/AlmaLinux 8",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`✅` "RedHat/Rocky Linux/AlmaLinux 9",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`✅` "Ubuntu 20.04",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`❌` "Ubuntu 22.04",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`❌` + "Ubuntu 24.04",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`✅` "Debian 12",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`✅` "Amazon Linux 2023",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`❌` @@ -86,4 +86,4 @@ Sites have reported problems with Safari when using the shell application or ``n .. _`Google Chrome`: https://www.google.com/chrome/ .. _`Mozilla Firefox`: https://www.mozilla.org/en-US/firefox/new/ -.. _`Microsoft Edge`: https://www.microsoft.com/en-us/edge \ No newline at end of file +.. _`Microsoft Edge`: https://www.microsoft.com/en-us/edge diff --git a/auto-modules-filtering/_sources/security.rst.txt b/auto-modules-filtering/_sources/security.rst.txt new file mode 100644 index 000000000..b225c5228 --- /dev/null +++ b/auto-modules-filtering/_sources/security.rst.txt @@ -0,0 +1,56 @@ +.. _security: + +Security +======== + +Introduction +------------ +This document details the security framework for Open OnDemand, providing essential information that administrators need to know for secure deployment and operation. + +.. note:: + If you're here to report a vulerability, you may refer to :ref:`vulnerability-management`. + +Considerations +-------------- +This section outlines key security advantages and areas for vigilance within the Open OnDemand environment. + +Advantages +^^^^^^^^^^ + +- **Per-user Nginx (PUN) Architecture**: By running individual Nginx instances per user, Open OnDemand ensures that actions such as file access are conducted under user-specific non-root privileges, which isolates processes and enhances security. + +- **Robust Authentication**: Open OnDemand supports various authentication methods. It particularly emphasizes secure protocols over less secure options like Basic or LDAP authentication, reinforcing its commitment to high security standards. + +Limitations +^^^^^^^^^^^ + +- **HTTP Traffic to Origin Servers**: Traffic to backend services, including computational resources like Jupyter servers, is currently over HTTP, which is unencrypted. Plans are underway to upgrade this to HTTPS to ensure encryption of data in transit, thereby bolstering security. + +Controls +^^^^^^^^ + +These are things the the out of the box OnDemand installation will provide +that some centers may want to change or disable altogether. + +- **File Access**: OnDemand lets users navigate the file system. While file permissions + limit what a user can view and navigate to, some centers may want to limit this even further. + One option is to :ref:`set-file-allowlist` to limit what directories users may navigate to. + Additionally, you may want to disable or limit access to the application. You can do this + through :ref:`disabling_applications`. + +Conclusion +---------- +Maintaining a secure and robust operational environment is critical for the success of Open OnDemand. Administrators are encouraged to implement the security practices recommended in this guide and to regularly review security settings and updates. + + +Relevant References +------------------- + +.. toctree:: + :maxdepth: 2 + :caption: Security Topics + + security/vulnerability-management + authentication/overview + how-tos/monitoring/logging + customizations diff --git a/auto-modules-filtering/_sources/security/vulnerability-management.rst.txt b/auto-modules-filtering/_sources/security/vulnerability-management.rst.txt new file mode 100644 index 000000000..b23168dea --- /dev/null +++ b/auto-modules-filtering/_sources/security/vulnerability-management.rst.txt @@ -0,0 +1,42 @@ +.. _vulnerability-management: + +Vulnerability Management +======================== + +Introduction +------------ + +Vulnerability management is a critical component of the security strategy for Open OnDemand. This document outlines the procedures for reporting and managing vulnerabilities. + +Reporting a Vulnerability +------------------------- + +If you have security concerns or think you have found a vulnerability, please submit a private report by visiting the 'Security' section of our GitHub located at `GitHub Open OnDemand Security `_ and clicking 'Report a vulnerability'. + +For direct inquiries or issues in submitting a report, contact the core project team via email at security@openondemand.org. + +Disclosure Policy +----------------- + +- Upon reporting, you will receive a response within hours, acknowledging the receipt of the report. +- A primary handler from the team will be assigned to coordinate the fix and release process: +- Confirm the problem and determine the affected versions (1-2 days). +- Audit code to find any potential similar problems. +- Prepare fixes for all releases still under maintenance and release as soon as possible. + +Comments on Policy +------------------ + +Suggestions to improve this process can be made via submitting a ticket, opening a Discourse topic, or a pull request. + +Security Audits +--------------- + +Open OnDemand has been audited several times by Trusted CI, the NSF Cybersecurity Center of Excellence. The latest engagement report is available `here `__. These audits have helped shape the security landscape of the platform and contribute to its ongoing security enhancements. + +Conclusion +---------- + +Effective vulnerability management is crucial for maintaining the security and integrity of Open OnDemand. Users and contributors play a vital role in this process by reporting potential security vulnerabilities through GitHub, ensuring the platform's continued safety. + +.. note:: For details on the specific vulnerability management steps, please see the GitHub repository guidelines or the security policies linked above. diff --git a/auto-modules-filtering/_sources/tutorials/tutorials-passenger-apps.rst.txt b/auto-modules-filtering/_sources/tutorials/tutorials-passenger-apps.rst.txt index 0c6266f6d..e5c80897d 100644 --- a/auto-modules-filtering/_sources/tutorials/tutorials-passenger-apps.rst.txt +++ b/auto-modules-filtering/_sources/tutorials/tutorials-passenger-apps.rst.txt @@ -11,4 +11,6 @@ At the bottom of the page is a list of tutorials for developing Passenger apps f :maxdepth: 2 :caption: Tutorials - tutorials-passenger-apps/ps-to-quota + tutorials-passenger-apps/ruby-starter-app + tutorials-passenger-apps/nodejs-starter-app + tutorials-passenger-apps/python-starter-app \ No newline at end of file diff --git a/auto-modules-filtering/_sources/tutorials/tutorials-passenger-apps/nodejs-starter-app.rst.txt b/auto-modules-filtering/_sources/tutorials/tutorials-passenger-apps/nodejs-starter-app.rst.txt new file mode 100644 index 000000000..3f4999883 --- /dev/null +++ b/auto-modules-filtering/_sources/tutorials/tutorials-passenger-apps/nodejs-starter-app.rst.txt @@ -0,0 +1,97 @@ +.. _app-development-tutorials-node-js: + +Starter NodeJS Application +========================== + +This document describes how to start a Passenger application +in `NodeJs`_ language. + + +Initialize the application +-------------------------- + +In this example we're going to initialize an application called ``nodejs-hello-world``. +You may want to rename this directory to something more appropriate. + +.. code:: shell + + cd ~/ondemand/dev + mkdir nodejs-hello-world + cd nodejs-hello-world + npm init + +.. warning:: + ``npm init`` will initialize the ``main`` script as ``index.js``. For OnDemand to recognzie + this application, the ``main`` attribute in ``package.json`` should be ``app.js`` not + ``index.js``. + +Add Web Framework +----------------- + +First we need to add `Express`_ web framework. Like all web frameworks, this +library will route requests to the appropriate pages. + +Issue these commands to add and install the package. + +.. code:: shell + + npm add express + npm install + +.. tip:: + + While this example uses `Express`_, you can choose any `NodeJs`_ web framework + available. + +Add and edit app.js +------------------- + +Now we need the ``app.js`` file that's the entrypoint for this application. +After creating this file, we've provided this starter content for you add +to the file. + +This ``app.js`` imports the `Express`_ framework and sets up the ``router`` +to route requests to the functions that can serve that request. This starter +file only has one route to the root url ``/`` and returns a simple ``Hello World`` +string. + +.. code:: javascript + + // app.js + + const express = require('express'); + const app = express(); + const port = 3000; + + // have to use a Router to mount the `PASSENGER_BASE_URI` + // base uri that's /pun/dev/appname or /pun/sys/appname depending + // on the environment. + const router = express.Router(); + app.use(process.env.PASSENGER_BASE_URI || '/', router); + + router.get('/', (req, res) => { + res.send('Hello World!'); + }) + + app.listen(port, () => { + console.log(`Example app listening on port ${port}`); + }) + + +Boot the application +-------------------- + +Now that the app's all setup and implemented, you should be able to +boot it up. To do so, simply navigate to ``My Sandbox Apps (Development)`` +in the ``Develop`` menu of your OnDemand installation. + +There you should see this application at the top of the list. Clicking +``Launch Nodejs Hello World`` will launch this application in a new tab. + +When the new tab opens you should see a blank page with the text ``Hello World``. +This is your new `NodeJs`_ application! + +.. include:: deploy-to-production.inc + +.. _NodeJs: https://nodejs.org/en +.. _Express: https://expressjs.com/ diff --git a/auto-modules-filtering/_sources/tutorials/tutorials-passenger-apps/ps-to-quota.rst.txt b/auto-modules-filtering/_sources/tutorials/tutorials-passenger-apps/ps-to-quota.rst.txt deleted file mode 100644 index db570cfc4..000000000 --- a/auto-modules-filtering/_sources/tutorials/tutorials-passenger-apps/ps-to-quota.rst.txt +++ /dev/null @@ -1,482 +0,0 @@ -.. _app-development-tutorials-passenger-apps-ps-to-quota: - -Creating a Status App -===================== - -Overview of App ---------------- - -We will make a copy of a status app that displays the running Passenger -processes on the OnDemand host. We will use this as a starting point to -create a new status app that displays quota information in a table. - -The app we will be copying is: https://github.com/OSC/ood-example-ps. Running -this app looks like: - -.. figure:: /images/app-dev-tutorial-ps-to-quota-1.png - :align: center - - What app looks like after cloning and launching. - -After this tutorial the resulting app will be: - -.. figure:: /images/app-dev-tutorial-ps-to-quota-2.png - :align: center - - What app looks like after modifying in this tutorial. - -This assumes you have followed the directions to :ref:`enabling-development-mode` on the -Dashboard. - -#. The app uses the custom branded Bootstrap 3 that Job Composer and Active Jobs apps - use. -#. The navbar contains a link back to the dashboard. -#. On a request, the app runs a shell command, parses the output, and displays - the result in a table. -#. It is built in Ruby using the `Sinatra framework `__, a lightweight web framework - similar to `Python's Flask `__ and `Node.js's Express `__ - - -Benefits -........ - -This serves as a good starting point for any status app to build for OnDemand, -because - -#. the app has the branding matching other OnDemand apps -#. all status apps will do something similar on a request to the app: - - #. get raw data from a shell command or http request - #. parse the raw data into an intermediate object representation - #. use that intermediate object representation to display the data formatted - as a table or graph - -#. the app can be deployed without requiring a build step because gem - dependencies (specified in ``Gemfile`` and ``Gemfile.lock``) are pure ruby and - match those that are provided by the ondemand-gems rpm -#. most of the app can be modified without requiring a restart due to proper use - of Sinatra reloader extension -#. app has a built in scaffold for unit testing using minitest - - -OnDemand System Gems -.................... - -This app is able to run in OnDemand 1.8+ without installing the gems specified in the ``Gemfile``. - -All pre-installed Ruby gems used by OnDemand are available to make it easier to develop simple apps. -These include gems used by this example app: - -- ``sinatra`` -- ``sinatra-contrib`` -- ``erubi`` - -On the OnDemand web host, you can execute the command ``source scl_source enable ondemand`` and then ``gem list`` to -see all available gems. These gems are provided by a separate ``ondemand-gems`` rpm that is installed when -you do ``yum install ondemand``. The name of the RPM includes the OnDemand release version, such -as ``ondemand-gems-1.7.12-1.7.12-1.el7.x86_64.rpm``. This ensures that if you do ``yum update`` this gem will -not be removed - so apps can depend on the presence of these gems. - - - -Files and Their Purpose -....................... - -.. list-table:: Main files - :header-rows: 1 - - * - File - - Description - * - ``config.ru`` - - entry point of the Passenger Ruby app - * - ``app.rb`` - - Sinatra app config and routes; this in a separate file from ``config.ru`` so - that code reloading will work - * - ``command.rb`` - - class that defines an AppProcess struct, executes ``ps``, and parses the - output of the ps command producing an array of structs - * - ``test/test_command.rb`` - - a unit test of the parsing code - * - ``views/index.html`` - - the main section of the html page template using an implementation of `ERB `__ - called `erubi `__ - which auto-escapes output of ERB tags by default (for security) - * - ``views/layout.html`` - - the rendered HTML from ``views/index.html`` is inserted into this layout, - where css and javascript files are included - -.. list-table:: Other files - :header-rows: 1 - - * - File - - Description - * - ``Gemfile``, ``Gemfile.lock`` - - defines gem dependencies for the app (see `Bundler's Rationale `__) - * - ``tmp/`` - - tmp directory is kept so its easier to ``touch tmp/restart.txt`` when you - want to force Passenger to restart an app - * - ``public/`` - - serve up static assets like Bootstrap css; in OnDemand, NGINX auto-serves - all files under public/ directly, without going through the Passenger - process, which makes this much faster; as a result, each static file is - in a directory with an explicit version number, so if these files ever - change we change the version, which is one cache busting strategy - * - ``Rakefile`` - - this provides a default ``rake`` task for running the automated tests under - ``test/``, so you can run the tests by running the command ``rake`` - * - ``test/minitest_helper.rb`` - - contains setup code common between all tests - * - ``vendor/bundle`` - - This directory is added if you execute ``bin/bundle install --path vendor/bundle`` to store app specific gems. This is necessary if you want to add gems or specify specific gem versions used by the app that deviate from those provided by system gemset, or if you are using OnDemand 1.7 or earlier. - -Clone and Setup ---------------- - -#. Login to Open OnDemand, click "Develop" dropdown menu and click the "My Sandbox Apps (Development)" option. -#. Click "New App" and "Clone Existing App". -#. Fill out the form: - - #. Directory name: ``quota`` - #. Git remote: ``https://github.com/OSC/ood-example-ps`` - #. Check *"Create new Git Project from this?"* - #. Click **Submit** - -#. Launch the app by clicking the large blue **Launch** button. In a new browser - window/tab you will see the output of a ``ps`` command filtered using ``grep``. - -#. Switch browser tab/windows back to the dashboard Details view of the app and - click the **Files** button on the right to open the app's directory in the File - Explorer. - - -Edit to Run and Parse Quota ---------------------------- - -The app runs and parses this command: - -.. code-block:: sh - - ps aux | grep '[A]pp' - -We will change it to run and parse this command: - -.. code-block:: sh - - quota -spw - -Update ``test/test_command.rb`` -............................... - -Run the command to get example data. Copy and paste the output into the test, and -update the assertions to expect an array of "quotas" instead of "processes" -with appropriate attributes. - -Diff: - -.. code-block:: diff - - def test_command_output_parsing - output = <<-EOF - - - -efranz 30328 0.1 0.1 462148 28128 ? Sl 20:28 0:00 Passenger RackApp: /users/PZS0562/efranz/ondemand/dev/quota - - - +Disk quotas for user efranz (uid 10851): - + Filesystem blocks quota limit grace files quota limit grace - +10.11.200.32:/PZS0562/ 99616M 500G 500G 0 933k 1000k 1000k 0 - EOF - - processes = Command.new.parse(output) - + quotas = Command.new.parse(output) - - - assert_equal 1, processes.count - + assert_equal 1, quotas.count, "number of structs parsed should equal 1" - - - p = processes.first - + q = quotas.first - - - assert_equal "efranz", p.user - - assert_equal "462148", p.vsz - - assert_equal "28128", p.rss - - assert_equal "0:00", p.time - - assert_equal "Passenger RackApp: /users/PZS0562/efranz/ondemand/dev/quota", p.command - + assert_equal "10.11.200.32:/PZS0562/", q.filesystem, "expected filesystem value not correct" - + assert_equal "99616M", q.blocks, "expected blocks value not correct" - + assert_equal "500G", q.blocks_limit, "expected blocks_limit value not correct" - + assert_equal "933k", q.files, "expected files value not correct" - + assert_equal "0", q.files_grace, "expected files_grace value not correct" - end - - -Resulting test method: - -.. code-block:: ruby - - class TestCommand < Minitest::Test - - def test_command_output_parsing - output = <<-EOF - Disk quotas for user efranz (uid 10851): - Filesystem blocks quota limit grace files quota limit grace - 10.11.200.32:/PZS0562/ 99616M 500G 500G 0 933k 1000k 1000k 0 - EOF - quotas = Command.new.parse(output) - - assert_equal 1, quotas.count, "number of structs parsed should equal 1" - - q = quotas.first - - assert_equal "10.11.200.32:/PZS0562/", q.filesystem, "expected filesystem value not correct" - assert_equal "99616M", q.blocks, "expected blocks value not correct" - assert_equal "500G", q.blocks_limit, "expected blocks_limit value not correct" - assert_equal "933k", q.files, "expected files value not correct" - assert_equal "0", q.files_grace, "expected files_grace value not correct" - end - end - -Update ``command.rb`` -..................... - -Run the test by running the ``rake`` command and you will see it fail: - -.. code-block:: sh - - $ rake - Run options: --seed 58990 - - # Running: - - F - - Finished in 0.000943s, 1060.4569 runs/s, 1060.4569 assertions/s. - - 1) Failure: - TestCommand#test_command_output_parsing [/users/PZS0562/efranz/ondemand/dev/quota/test/test_command.rb:14]: - number of structs parsed should equal 1. - Expected: 1 - Actual: 3 - - 1 runs, 1 assertions, 1 failures, 0 errors, 0 skips - rake aborted! - Command failed with status (1) - - Tasks: TOP => default => test - (See full trace by running task with --trace) - -.. warning:: - - To run commands like ``rake`` through the shell you need to make sure you are on - a host that has the correct version of Ruby installed. For OnDemand that likely - means using Software Collections with the same packages used to install OnDemand. - - With SCL, running ``rake`` with ondemand SCL package looks like: - - ``scl enable ondemand -- rake`` - - You can avoid this by loading the SCL packages in your ``.bashrc`` or ``.bash_profile`` file. - For example, in my ``.bash_profile`` I have: - - .. code-block:: sh - - if [[ ${HOSTNAME%%.*} == webtest04* ]] - then - scl enable ondemand -- bash - fi - - This means when I login to the host ``webtest04.osc.edu`` the SCL packages will be enabled - in a new bash session. If you did the same you would replace ``webtest04`` with the hostname - of the node you are developing on. - -To get the unit test to pass we need to: - -#. Change the command we are using. - -#. Fix the command output parsing. - -#. Fix the struct definition. - -.. code-block:: diff - - class Command - def to_s - - "ps aux | grep '[A]pp'" - + "quota -spw" - end - - - AppProcess = Struct.new(:user, :pid, :pct_cpu, :pct_mem, :vsz, :rss, :tty, :stat, :start, :time, :command) - + Quota = Struct.new(:filesystem, :blocks, :blocks_quota, :blocks_limit, :blocks_grace, :files, :files_quota, :files_limit, :fil - - # Parse a string output from the `ps aux` command and return an array of - # AppProcess objects, one per process - def parse(output) - lines = output.strip.split("\n") - - lines.map do |line| - - AppProcess.new(*(line.split(" ", 11))) - + lines.drop(2).map do |line| - + Quota.new(*(line.split)) - end - end - -After the changes part of the ``command.rb`` will look like this: - -.. code-block:: ruby - - class Command - def to_s - "quota -spw" - end - - Quota = Struct.new(:filesystem, :blocks, :blocks_quota, :blocks_limit, :blocks_grace, :files, :files_quota, :files_limit, :files_grace) - - # Parse a string output from the `ps aux` command and return an array of - # AppProcess objects, one per process - def parse(output) - lines = output.strip.split("\n") - lines.drop(2).map do |line| - Quota.new(*(line.split)) - end - end - -Now when we run the test they pass: - -.. code-block:: sh - - $ rake - Run options: --seed 60317 - - # Running: - - . - - Finished in 0.000966s, 1035.1494 runs/s, 6210.8963 assertions/s. - - 1 runs, 6 assertions, 0 failures, 0 errors, 0 skips - -Update ``app.rb`` and ``view/index.html`` -......................................... - -Update ``app.rb``: - -.. code-block:: diff - - helpers do - def title - - "Passenger App Processes" - + "Quota" - end - end - - # Define a route at the root '/' of the app. - get '/' do - @command = Command.new - - @processes, @error = @command.exec - + @quotas, @error = @command.exec - - # Render the view - erb :index - end - - -In ``views/index.erb``, replace the table with this: - -.. code-block:: erb - - - - - - - - - - - - - - <% @quotas.each do |quota| %> - - - - - - - - - - - - <% end %> -
    FilesystemBlocksBlocks QuotaBlocks LimitBlocks GraceFilesFiles QuotaFiles LimitFiles Grace
    <%= quota.filesystem %><%= quota.blocks %><%= quota.blocks_quota %><%= quota.blocks_limit %><%= quota.blocks_grace %><%= quota.files %><%= quota.files_quota %><%= quota.files_limit %><%= quota.files_grace %>
    - -These changes *should not require an app restart.* Go to the launched app and **reload the page** -to see the changes. - -Brand App ---------- - -The app is looking good, but the details page still shows the app title "Passenger App -Processes". To change this and the icon, edit the ``manifest.yml``: - -.. code-block:: diff - - -name: Passenger App Processes - -description: Display your running Passenger app processes in a table - +name: Quota - +description: Display quotas - +icon: fa://hdd-o - -* The icon follows format of ``fa://{FONTAWESOMENAME}`` where you replace ``{FONTAWESOMENAME}`` with an icon from https://fontawesome.com/icons/. - In this case we are using ``fa-hdd-o`` which we write in the manifest as ``fa://hdd-o``. - You can see details on this icon at https://fontawesome.com/icons/hdd?style=regular - -Publish App ------------ - -Publishing an app requires two steps: - -#. Updating the ``manifest.yml`` to specify the category and optionally subcategory, which indicates where in the dashboard menu the app appears. - -#. Having an administrator checkout a copy of the production version to a directory under ``/var/www/ood/apps/sys``. - - -Steps: - -#. Add category to manifest so the app appears in the Files menu: - - .. code-block:: diff - - name: Quota - description: Display quotas - icon: fa://hdd-o - +category: Files - +subcategory: Utilities - -#. Version these changes. Click **Shell** button on app details view, and then ``commit`` the changes: - - .. code-block:: sh - - git add . - git commit -m "update manifest for production" - - # if there is an external remote associated with this, push to that - git push origin master - -#. As the admin, ``sudo copy`` or ``git clone`` this repo to production - - .. code-block:: sh - - # as sudo on OnDemand host: - cd /var/www/ood/apps/sys - git clone /users/PZS0562/efranz/ondemand/dev/quota - - -#. **Reload** the dashboard. - -.. figure:: /images/app-dev-tutorial-ps-to-quota-published.png - :align: center - - Every user can now launch the Quota from the Files menu. - -.. warning:: - - Accessing this new app for the first time will cause your NGINX server to restart, - killing all websocket connections, which means resetting your active web-based OnDemand Shell sessions. - diff --git a/auto-modules-filtering/_sources/tutorials/tutorials-passenger-apps/python-starter-app.rst.txt b/auto-modules-filtering/_sources/tutorials/tutorials-passenger-apps/python-starter-app.rst.txt new file mode 100644 index 000000000..4e318f9e8 --- /dev/null +++ b/auto-modules-filtering/_sources/tutorials/tutorials-passenger-apps/python-starter-app.rst.txt @@ -0,0 +1,144 @@ +.. _app-development-tutorials-python: + +Starter Python Application +========================== + + +This document describes how to start a Passenger application +in `Python`_ language. + +Basic application +----------------- + +``passenger_wsgi.py`` is the entrypoint for any python application. + +.. code:: shell + + cd ~/ondemand/dev + mkdir python-hello-world + cd python-hello-world + touch passenger_wsgi.py + +Now with the ``passenger_wsgi.py`` file created, we can add this content to +serve a response to a request. + +.. code:: python + + # passenger_wsgi.py + import sys + + def application(environ, start_response): + start_response('200 OK', [('Content-type', 'text/plain')]) + return ["Hello World from Open OnDemand (Python WSGI)!\n\n" + sys.version] + +Boot the application +-------------------- + +Now that the app's all setup and implemented, you should be able to +boot it up. To do so, simply navigate to ``My Sandbox Apps (Development)`` +in the ``Develop`` menu of your OnDemand installation. + +There you should see this application at the top of the list. Clicking +``Launch Python Hello World`` will launch this application in a new tab. + +When the new tab opens you should see a blank page with the text ``Hello World`` +with some extra text about the system. This is your new `Python`_ application! + + +Application using Flask and a virtual environment +------------------------------------------------- + +The basic application above is fine, but you'll likely need to add +more dependencies and load those dependencies at runtime. + +So this section goes over adding the `Flask`_ web framework and having +the application load the virtual environment that has your dependencies in +it. + +Create the virtual environmet +````````````````````````````` + +First, we need to create the virtual environment. Issue this command below +to create one. This will create a subdirectory ``python-hello-world`` with a +``bin/activate`` file you can use to activate the environment. + +.. code:: shell + + python3 -m venv python-hello-world + +Now, let's create the ``requriements.txt`` file where we'll add the application's +required libraries. Here, we're only adding ``flask`` of any version. + +.. code:: text + + # requirements.txt + flask + +.. code:: shell + + source python-hello-world/bin/activate + python3 -m pip install -r requirements.txt + +Create the python files +``````````````````````` + +In the basic example above, the entire implementation is held within a ``passenger_wsgi.py``. +This project is more advanced, so it will include two files. ``passenger_wsgi.py`` and +``app.py``. ``app.py`` will hold the logic for the application. + +``passenger_wsgi.py`` simply imports the app from the ``app.py`` file. This is all that's required +for this file. + +.. code:: python + + # passenger_wsgi.py + from app import MyApp as application + +``app.py`` on the other hand, has logic associcated with the web application in it. +It imports the `Flask`_ libraries, configures the routes and starts the flask server. + +.. code:: python + + # app.py + from flask import Flask + import sys + + MyApp = Flask('python_hello_world') + + @MyApp.route("/") + def index(): + return 'Hello World!
    ' + sys.version + + if __name__ == "__main__": + MyApp.run() + +Using the virtual environment +````````````````````````````` + +At this point, the app is basically done, but won't boot up because it +can't find `Flask`_ libraries. We created a virtual environment in a previous +step, now we have to get OnDemand to recognize this environment. + +To do this, we need to create a `bin/python` wrapper file to load the appropriate +virtual environment. + +.. code:: shell + + #!/usr/bin/env bash + + SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + source $SCRIPT_DIR/../python-hello-world/bin/activate + + exec /bin/env python3 "$@" + +.. warning:: + Ensure that this ``bin/python`` file has executable permissons on it. + Issue the command ``chmod +x bin.python`` to give it executable permissions. + +Now, with the python wrapper script to load the environment for your application, +it should boot up correctly. + +.. include:: deploy-to-production.inc + +.. _Python: https://www.python.org/ +.. _Flask: https://flask.palletsprojects.com/en/3.0.x/ diff --git a/auto-modules-filtering/_sources/tutorials/tutorials-passenger-apps/ruby-starter-app.rst.txt b/auto-modules-filtering/_sources/tutorials/tutorials-passenger-apps/ruby-starter-app.rst.txt new file mode 100644 index 000000000..da095f3f7 --- /dev/null +++ b/auto-modules-filtering/_sources/tutorials/tutorials-passenger-apps/ruby-starter-app.rst.txt @@ -0,0 +1,87 @@ +.. _app-development-tutorials-passenger-apps-starter-ruby-app: + +Starter Ruby Application +======================== + +This document walks through creating a hello world application in Ruby +with the `Sinatra`_ web framework. + +config.ru for Sinatra +--------------------- + +The first thing we need for OnDemand to recognize this directory is a ``config.ru`` file. +For `Sinatra`_ this is the ``config.ru`` that you need. + +.. code:: ruby + + # frozen_string_literal: true + + require_relative 'app' + run App + +config.ru for Ruby on Rails +--------------------------- + +This document does not cover `Ruby on Rails`_, but +this ``config.ru`` is given nonetheless for readers interested +in building Ruby apps based on `Ruby on Rails`_. + +.. code:: ruby + + # frozen_string_literal: true + + require_relative 'config/environment' + + run Rails.application + Rails.application.load_server + +Install dependencies +-------------------- + +The application won't boot with just the ``config.ru``, though it will try. +What you need now is to install the gems (the ruby dependencies). + +We need a ``Gemfile`` to tell ``bundler`` (Ruby's application for dependencies) +what gems to install. Here's that file. + +.. code:: ruby + + # frozen_string_literal: true + + source 'https://rubygems.org' + + gem 'sinatra' + +With the ``Gemfile`` written, we can now install the dependencies +into ``vendor/bundle``. Issue these commands to do that. + +.. code:: shell + + bundle config path --local vendor/bundle + bundle install + + +Write the app.rb file +--------------------- + +Still, the app will not boot at this point. The ``config.ru`` is looking +to load the ``app.rb`` file which does not exist yet. + +The ``app.rb`` file that will actually import `Sinatra`_ and implement your routes. +Here's the simplest version of this file returning Hello World on the root URL. + +.. code:: ruby + + require 'sinatra/base' + + class App < Sinatra::Base + get '/' do + 'Hello World' + end + end + + +.. include:: deploy-to-production.inc + +.. _Sinatra: https://sinatrarb.com/ +.. _Ruby on Rails: https://rubyonrails.org/ \ No newline at end of file diff --git a/auto-modules-filtering/architecture.html b/auto-modules-filtering/architecture.html index 90a8ccf4c..f636be63e 100644 --- a/auto-modules-filtering/architecture.html +++ b/auto-modules-filtering/architecture.html @@ -143,10 +143,10 @@