Setting Up Pipeline Web Start
You can set up a web page hosting links to launch Pipeline Web Start that submits workflows by randomly generated anonymous users, such as this one. There are 3 components you need to set up, a Pipeline server that’s running on your server, a set of Pipeline workflows you would like to host for others to use, and a php script that generates customized Java Web Start files (JNLP files). Follow the following steps:
- A Pipeline server configured* and running. [server installation guide]
*You need to add/modify a few of elements to your server’s preferences.xml file:<GuestsEnabled>true</GuestsEnabled>
This will enable guest login on the server.
<UsePrivilegeEscalation>true</UsePrivilegeEscalation>
<MappedGuestUser>joe</MappedGuestUser>
These will keep privilege escalation for regular users, and map guest users to username joe on the system. This is recommended configuration as it provides more security. For a trusted/testing environment, you may set UsePrivilegeEscalation false and omit MappedGuestUser, i.e.:
<UsePrivilegeEscalation>false</UsePrivilegeEscalation>
This will make all jobs submitted to run as the user that launched the server process. - Prepare all of the workflows you want to distribute and run. Put them on your web server.
- Download this PHP script (.zip file 2KB) and put it on your web server. If your server is running the latest version, the script is ready to go. If your server is running an old version that is incompatible with the latest client, you need to specify an earlier version that’s compatible with the server. Follow the instructions on top of the script to modify the $codebase variable.
- You are done. Create a web pages to include a list of links of these workflows by this format:
Where[URL_TO_JNLP_WRITER.PHP]
is the URL of the PHP file in step 3,[URL_TO_WORKFLOW]
is the URL of the workflow (.pipe file) you prepared in step 2, and[SERVER_NAME]
is the Pipeline server name you set up in step 1. For example:
Additional Features
When <GuestsEnabled> tag on server’s preferences.xml is set to true, it will allow system generated guest users to submit workflows. Guest usernames are generated randomly at initial launch of the PWS client, and remembered on the client so that previously submitted workflows can be retrieved.
If you want disable the random generation of guests on PWS clients, for example, the server doesn’t allow guests (<GuestsEnabled> is set to false), you can modify the PHP script so that the generated JNLP file will have the following:
<property name="pipeline.guestsEnabled" value="false"/>
If you want a given user (e.g. john) to run workflows automatically, you can add the following line above the line “<argument>-execute</argument>”
<argument>-username=john</argument>
When the user opens the JNLP file, Pipeline will pop a credential dialog asking for john’s password, once it’s given and verified, the workflow will be started automatically.