# What If we combined Job Templates and Interactive App Forms?

**URL:** <https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749>\
**Category:** Feature Requests and Roadmap Discussion\
**Tags:** feature-request\
**Created:** [October 22, 2021, 9:51pm UTC](https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749 "2021-10-22T21:51:38Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![rarensu](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/rarensu/32/867_2.png) [@rarensu](https://discourse.openondemand.org/u/rarensu)\
**Post date:** [October 22, 2021, 9:51pm UTC](https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749/1 "2021-10-22T21:51:38Z")

</div>

Howdy! I’m Richard.

I have been quietly learning OOD for about a year and joined discourse today to ask this question.

> **Rant**
>
> I am a user support specialist for a research university. I try to bridge the gap between the clueless Users and the overworked Administrators.
> 
> I want the Users to adopt the new, better ways of doing things, but they won’t do it unless I can make it very easy. They don’t want to learn how the cluster works, and they shouldn’t have to. You can open up a Jupyter Notebook in about two clicks on Google Colab with _zero_ understanding of Google Cloud services. That’s what we are competing with now. Every time I open up the Jupyter Notebook interactive app on our OnDemand instance and see how many form elements I have to scroll past (without reading) to find the the submit button, it makes me sad. And the cluster hardware sits idle. We can do better than this!
> 
> On the other hand, the Administrators don’t have time to keep updating each and every App form whenever a new software update is available. All the Apps work differently, and all the users want different environments, so the workload grows exponentially. Developing these Apps can get really hard because the more things we try to support the more complex the Apps become. Another university was impressed with something I built and it was just one feature for just one app. And we can’t even share it with them! Because no two sites are doing things the same way. We find ourselves re-developing the same things over and over while other people do the same. It’s madness.
> 
> So I’m basically trying to solve all the world’s problems. Thank you for attending my TED talk.

…

> **Two Problems**
>
> I noticed that Open OnDemand has a “Job Composer” feature. I think it’s really neat that we can interact with our scheduler without using the command line. The problem with Job Composer that it doesn’t actually succeed at reducing the user’s workload. In order to make the Job Composer do anything, you have to first write a functional batch script by hand. Doesn’t that kind of defeat the purpose? The user still has to learn how to use the scheduler and the module system, and they still have to type code by hand. Yes, this solution reduces the amount of manual labor - but it does nothing to reduce the barrier to entry for a beginner user. The New Template form in the Job Composer should have form fields for selecting scheduler options and modules. We already know this is possible, because our Interactive Apps do it that way.
> 
> I noticed that Interactive Apps have forms that allow the user to select their scheduler options and modules. I think it’s really neat that the user can select curated default values for quickly getting a functional job started. The problem is that this type of interface isn’t scalable. There’s no way for the User to save their combination of choices, if they want to switch back and forth between two combinations, between two apps, across clusters, or share with other Users. And every time the User wants something new that the current form field doesn’t support, they have to wait around until the administrators feel like updating the form. Yes, this solution reduces the barrier to entry - but it does nothing to reduce the manual labor. The Interactive Apps should have a consistent method of saving and loading scheduler and module options. We already know this is possible, because our Job Composer does it that way.

…

> **One Stone**
>
> What if… ? We could “Factor Out” the **common** scheduler and module form fields from the Interactive Apps, replacing them with a uniform “select a template” field. We then collect all of that logic and put it in the New Template form in the Job Composer. Maybe there are multiple New Template forms to help distribute the logic. In this paradigm, the Administrators would provide their Useful Preset Combinations for the Interactive Apps in the form of Default Templates. Each App would allow the User to choose from the list of default templates and user templates, perhaps filtered to show the relevant ones. The App Form wouldn’t function much differently for a casual user (who doesn’t read anyway).

…

> **Graphically**
>
> ![On Demand app notes](https://us1.discourse-cdn.com/flex015/uploads/osc/original/1X/a0313179faaecc0a8697be50167ac8fb2aa03149.png)

…

TLDR: What if we insert “Job Template” way of doing things _between_ the “select your options” and “submit interactive app”? This would unify lots of apps and help on-ramp users.

I understand that there are both technical and conceptual difficulties, but I do not fear them. My questions are:

1. Is there a planned change to the core engine that will render this discussion obsolete?

2. Is anybody already working on a similar solution to these problems?

3. Does anybody have a better idea?

---

<div class="post-metadata">

**Author:** ![alanc](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/alanc/32/2524_2.png) [@alanc](https://discourse.openondemand.org/u/alanc)\
**Post date:** [October 22, 2021, 11:29pm UTC](https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749/2 "2021-10-22T23:29:41Z")

</div>

Richard:

Thanks for the very interesting post and proposal. I’ll leave it to my colleagues @travert and @jeff.ohrstrom to chime in on the technical details. In reading through it, a few things popped to mind that I wondered if you are aware of or not (we know we have a big issue with having a lot of undocumented features / configs / etc).

1. At OSC we have ‘system templates’ available for ALL our software packages in job composer. If you watch the live demo videos we have here I think I show this ([Open OnDemand Walkthrough 200117 - YouTube](https://www.youtube.com/watch?v=4-w-4wjlnPk&list=PLiHVyvLHAIcw2sM_MYNVX9B1vBmJgEmW3)). These are essentially ‘hello world’ versions of every software package that a client can click on and will run successfully with no modification. Then they can tweak them as their needs dictate.

2. At OSC, we also deploy specialized versions of interactive apps that are ‘stripped down’. For example, we have our generic RStudio app that has a form where you can pick cores / runtime / etc. But we also have a ‘classroom’ RStudio app that doesn’t have those features, rather it’s hard coded to 1 core for 2 hours runtime (the needs for a typical classroom student). This app shows up automatically for clients based upon group permissions.

3. We also have multiple OOD production instances at OSC. Our general (somewhat knowledgeable) clients log on to ondemand.osc.edu. But we point all our classroom students to class.osc.edu, which has very limited number of menus / buttons / etc they can click on, to give them more like the Google Colab experience you refer to.

4. For some of our interactive apps we have ‘free form’ text fields that allow for certain arbitrary parameters to be passed to it. For example, in our Visual Code Server app there is a field for ‘working directory’ and in our Ansys app there is a field that allows you to point to a different license server.

---

<div class="post-metadata">

**Author:** ![rsettlag](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/rsettlag/32/78_2.png) [@rsettlag](https://discourse.openondemand.org/u/rsettlag)\
**Post date:** [October 25, 2021, 12:22pm UTC](https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749/3 "2021-10-25T12:22:09Z")

</div>

Richard, I would love to set up a zoom to discuss this and bounce some ideas around. Would you be willing and have some time on Wednesday?

---

<div class="post-metadata">

**Author:** ![bennet](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/bennet/32/333_2.png) [@bennet](https://discourse.openondemand.org/u/bennet)\
**Post date:** [October 25, 2021, 12:48pm UTC](https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749/4 "2021-10-25T12:48:22Z")

</div>

Would this be a candidate for discussion at the ‘office hours’? I’d be interested to either listen in or participate. I’m sure some others would like to follow the discussions as well.

---

<div class="post-metadata">

**Author:** ![rsettlag](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/rsettlag/32/78_2.png) [@rsettlag](https://discourse.openondemand.org/u/rsettlag)\
**Post date:** [October 25, 2021, 1:16pm UTC](https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749/5 "2021-10-25T13:16:16Z")

</div>

Sure, we may want to be prepared to dedicate some time to this topic outside of the office hour if there are others in the office hour with current issues looking for help vs this which may be a more forward looking topic.

---

<div class="post-metadata">

**Author:** ![bennet](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/bennet/32/333_2.png) [@bennet](https://discourse.openondemand.org/u/bennet)\
**Post date:** [October 25, 2021, 1:36pm UTC](https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749/6 "2021-10-25T13:36:55Z")

</div>

Thanks, Robert. Wherever and whenever is fine. I thought it might be worth indicating an interest in the topic and in participating/hearing/seeing discussion. If there is a way I could get my name added to the list of attendees for those discussions for which a broader group might be appropriate, I would like to participate.

---

<div class="post-metadata">

**Author:** ![rarensu](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/rarensu/32/867_2.png) [@rarensu](https://discourse.openondemand.org/u/rarensu)\
**Post date:** [October 25, 2021, 1:47pm UTC](https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749/7 "2021-10-25T13:47:23Z")

</div>

Hi Alan,

Re: 1. Nice video! Cool stuff in there. Some of it could become part of my solution.

Re: 2, 3, 4. These features clearly work well for their specific use cases. If we had just a handful of use cases, we would probably want to do it like that.

The strategies you described are not quite what I think we need. I would still like to pursue a new development.

---

<div class="post-metadata">

**Author:** ![rarensu](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/rarensu/32/867_2.png) [@rarensu](https://discourse.openondemand.org/u/rarensu)\
**Post date:** [October 25, 2021, 1:51pm UTC](https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749/8 "2021-10-25T13:51:19Z")

</div>

Hi Robert,

Yes, I can chat on Wednesday. What’s your time zone?

Richard

---

<div class="post-metadata">

**Author:** ![rarensu](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/rarensu/32/867_2.png) [@rarensu](https://discourse.openondemand.org/u/rarensu)\
**Post date:** [October 25, 2021, 1:53pm UTC](https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749/9 "2021-10-25T13:53:23Z")

</div>

Hi Bennet,

I would love to include you in the discussion. But the second Tuesday is so far away! Perhaps I could record the discussion for later review.

Richard

---

<div class="post-metadata">

**Author:** ![bennet](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/bennet/32/333_2.png) [@bennet](https://discourse.openondemand.org/u/bennet)\
**Post date:** [October 25, 2021, 2:08pm UTC](https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749/10 "2021-10-25T14:08:45Z")

</div>

I am available any Wed.

---

<div class="post-metadata">

**Author:** ![jeff.ohrstrom](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/jeff.ohrstrom/32/136_2.png) [@jeff.ohrstrom](https://discourse.openondemand.org/u/jeff.ohrstrom)\
**Post date:** [October 25, 2021, 2:37pm UTC](https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749/11 "2021-10-25T14:37:57Z")

</div>

There are ideas around this, although that’s about it. We haven’t really started to work on the next version of the job composer, but I’d say file feature requests and I’ll put them in this project to track.

Option profiles - that is, profiles for all the form options - I don’t think we’ve thought of yet, so I’ll file that ticket too.

Honestly, we get a lot of discourse topics and for us, the maintainers, it’s much easier to keep track of Github tickets. Especially when they’re in projects and labeled and so on.

> **Links**
>
> Thanks for the heads up on the collapsible text!
> 
> [job composer form builder · Issue #859 · OSC/ondemand · GitHub](https://github.com/OSC/ondemand/issues/859)  
> [New Job Composer Alpha · GitHub](https://github.com/OSC/ondemand/projects/6)

---

<div class="post-metadata">

**Author:** ![rsettlag](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/rsettlag/32/78_2.png) [@rsettlag](https://discourse.openondemand.org/u/rsettlag)\
**Post date:** [October 25, 2021, 6:01pm UTC](https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749/12 "2021-10-25T18:01:55Z")

</div>

This Wed at 1pm? Send me a pm if you are interested and I will send the zoom coords.

This is open to all, I just don’t want a zoom bomb.

---

<div class="post-metadata">

**Author:** ![rarensu](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/rarensu/32/867_2.png) [@rarensu](https://discourse.openondemand.org/u/rarensu)\
**Post date:** [October 25, 2021, 6:14pm UTC](https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749/13 "2021-10-25T18:14:50Z")

</div>

1pm in `<time zone>`?

---

<div class="post-metadata">

**Author:** ![rsettlag](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/rsettlag/32/78_2.png) [@rsettlag](https://discourse.openondemand.org/u/rsettlag)\
**Post date:** [October 27, 2021, 6:39pm UTC](https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749/14 "2021-10-27T18:39:32Z")

</div>

Hi,  
just to confirm, Bennet and I are in a zoom?

> **[Join our Cloud HD Video Meeting](https://virginiatech.zoom.us/j/84536241724)**
>
> Zoom is the leader in modern enterprise video communications, with an easy, reliable cloud platform for video and audio conferencing, chat, and webinars across mobile, desktop, and room systems. Zoom Rooms is the original software-based conference...

---

<div class="post-metadata">

**Author:** ![rarensu](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/rarensu/32/867_2.png) [@rarensu](https://discourse.openondemand.org/u/rarensu)\
**Post date:** [October 28, 2021, 1:26pm UTC](https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749/15 "2021-10-28T13:26:36Z")

</div>

Howdy @rsettlag @bennet, I am sorry I missed our planned meeting yesterday. I was sick at home and forgot to check in.

Richard

---

<div class="post-metadata">

**Author:** ![rsettlag](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/rsettlag/32/78_2.png) [@rsettlag](https://discourse.openondemand.org/u/rsettlag)\
**Post date:** [October 28, 2021, 2:11pm UTC](https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749/16 "2021-10-28T14:11:54Z")

</div>

Hi, no issues. Would you be available same time next week? 2:30 PM EST?

---

<div class="post-metadata">

**Author:** ![rarensu](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/rarensu/32/867_2.png) [@rarensu](https://discourse.openondemand.org/u/rarensu)\
**Post date:** [October 28, 2021, 2:58pm UTC](https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749/17 "2021-10-28T14:58:46Z")

</div>

Yes, that will work.

Wednesday Nov 3, 2:30 PM EST

---

<div class="post-metadata">

**Author:** ![dkhosla](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/dkhosla/32/870_2.png) [@dkhosla](https://discourse.openondemand.org/u/dkhosla)\
**Post date:** [November 1, 2021, 10:00pm UTC](https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749/18 "2021-11-01T22:00:51Z")

</div>

Look forward to the zoom invite! (as we have interest in the job composer and have discussed it with Jeff & Alan in the past.)

---

<div class="post-metadata">

**Author:** ![bennet](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/bennet/32/333_2.png) [@bennet](https://discourse.openondemand.org/u/bennet)\
**Post date:** [November 1, 2021, 10:15pm UTC](https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749/19 "2021-11-01T22:15:34Z")

</div>

Will the Zoom link from last week be used again? If not, please include me in this week’s meeting.

---

<div class="post-metadata">

**Author:** ![rsettlag](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/rsettlag/32/78_2.png) [@rsettlag](https://discourse.openondemand.org/u/rsettlag)\
**Post date:** [November 3, 2021, 6:23pm UTC](https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749/20 "2021-11-03T18:23:24Z")

</div>

I think I sent you a different zoom link, but Richard just joined this one:

> **[Join our Cloud HD Video Meeting](https://virginiatech.zoom.us/j/84536241724)**
>
> Zoom is the leader in modern enterprise video communications, with an easy, reliable cloud platform for video and audio conferencing, chat, and webinars across mobile, desktop, and room systems. Zoom Rooms is the original software-based conference...

[Next page](https://discourse.openondemand.org/t/what-if-we-combined-job-templates-and-interactive-app-forms/1749.md?page=2)
