The Form Runner Home page is a start page for accessing forms deployed in Form Runner.
You access the Form Runner Home page by adding fr/ to the path on which you deployed Orbeon Forms. If you deployed Orbeon Forms on http://www.example.com/orbeon/, then you can access the From Runner home page at http://www.example.com/orbeon/fr/.
User and admin views
[SINCE Orbeon Forms 4.3]
If the user doesn't have any permissions set via form-builder-permissions.xml, as documented here, a simple user view is presented:
If the user has permissions set in form-builder-permissions.xml, a view with admin privileges is presented:
The list of forms listed depends on the roles set in form-builder-permissions.xml. For example, with:
the user can perform any admin operation on any form. But with:
the user can perform admin operations on acme forms only.
In this view:
Each line shows only forms that are published and available.
For each form, the app name, form name and title in the current language are shown.
The form version is also shown. [SINCE Orbeon Forms 2020.1]
You can navigate to the form's Summary, New or View page, depending on permissions, by clicking on a line.
Forms are sorted by last modification time.
Libraries are never shown in this view.
NOTE: Only deployed forms are visible. Forms that have been created with Form Builder and which have been just saved but never deployed are not visible.
Admin operations on forms
When the user has access to admin operations, new information is shown:
whether the form is available or unavailable
whether the form is a library form
Unavailable forms remain on the server, but any user access to an unavailable form behaves as if the form definition had never been published. Data associated with the form definition is not touched, but cannot be read or updated via the form definition when it is unavailable.
Administrators can select forms in two ways:
by using the checkboxes next to the form
by using the Select menu to automatically select all forms matching a certain condition
The operations listed in the Operations menu are then available depending on the current selection:
Controlling form definitions availability
Make available local forms: make an unavailable form definition available again.
Make unavailable local forms: make a published form definition unavailable.
Initially, when publishing a form definition with Form Builder, the form definition is made available, unless you choose the option "Make published form available" to "No".
[SINCE Orbeon Forms 2020.1]
Making a form definition available or unavailable also takes into account the version of the form definition(s) selected.
Upgrading form definitions
[SINCE Orbeon Forms 4.6]
Upgrade local form definitions: upgrade the selected form definitions, including using the latest published section templates.
Specifically, this operation, for each selected form definition:
Reads the latest version (or selected version [SINCE Orbeon Forms 2020.1]) of the published form definition, whether it is available or unavailable.
Loads the latest versions of the published section templates that might be associated with that form definition.
TODO: this needs fixing, see #3885
Upgrades the form definition markup to the latest format, as if loading it in Form Builder and saving it again.
Includes the latest section templates loaded above into the form definition.
Saves back the form definition, either as a new version or as the same version (see below for details).
From Orbeon Forms 4.6 (included) to 2016.1 (excluded): a new form definition version is created when the form definition is upgraded.
From Orbeon Forms 2016.1 (included): the upgraded form definition overrides the previously-published form definition.
When form definition versioning is used section templates are in use, you have to be very careful because the format of the data covered by section templates might have changed and might make the upgraded form incompatible with existing data. See also Publishing.
We advise that you only republish form definitions which use both form definition versioning and section templates if you know that the format of the data covered by the section templates remains compatible.
Upgrading section templates
Here is how you can use this operation to update your form definitions' section template to the latest published section templates:
The format is a JSON array containing any number of JSON objects. Each object must have a non-empty label property indicating the label to display to the user when selecting a remote server, and a non-empty url property indicating the location of the remote server.
With Orbeon Forms 4.4 to 4.6, use the oxf.fr.production-server-uri property:
NOTE: Since Orbeon Forms 4.7, the oxf.fr.production-server-uri is deprecated. Since Orbeon Forms 4.7 and newer, if the oxf.fr.production-server-uri is set and not empty, it takes precedence over the new oxf.fr.home.remote-servers property, for backward compatibility.
Configuration on the remote server
You also need to authorize the remote server to accept incoming connections for services. One way of doing this is to use the Orbeon Forms delegating orbeon-auth.war, documented here.
You deploy this WAR file alongside orbeon.war on the remote server, and you add this property to the remote server's properties-local.xml:
This tells the remote server to use the orbeon-auth webapp to authenticate requests for services or pages which are not public.
By default, orbeon-auth requires that all external requests to Form Runner services are authenticated with BASIC authentication and have the orbeon-service role. It blocks any other request.
If you are using Tomcat, you can then configure a user with role orbeon-service. For example, in tomcat-users.xml:
Then, on the local server, you would use username orbeon-admin and password changeme when prompted.
With this configuration, the local Orbeon Forms connects to services on the remote Orbeon Forms, which calls up orbeon-auth to authenticate the connection. orbeon-auth requires that the username/password provided authenticate as a valid Tomcat user with the orbeon-service role. If that's successful, then the service proceeds, otherwise it fails.
When the remote server is configured as above, the first time you go to the Form Runner Home page you are prompted for credentials:
Once the credentials are correct, the Home page retrieves the remote server's list of deployed forms and metadata, which appears in a new Remote column group. You then have access to new operations:
Make available remote form: make an unavailable form available again on the remote server.
Make unavailable remote form: make a previously published form unavailable on the remote server.
Push to remote: copy a form definition and its attachments from the local to the remote server.
Pull from remote: copy a form definition and its attachments from the remote to the local server.
Currently, re-encryption is only supported in the built-in implementation of the persistence API for relational databases. The built-in implementation of the persistence API for eXist doesn't support re-encryption, and custom implementations can't yet support re-encryption.
Creating a database backup before re-encryption
Unlike typical update and delete operations that are performed at the database level by adding a new row, thus keeping the old data, re-encryption is done in-place. All data is being re-encrypted, including historical data that is part of the "journal". This means that you could loose data if something were to go wrong during re-encryption. As such, we strongly recommend you create a backup of your data before re-encryption.
To re-encrypt all the data for certain forms, from the Form Runner home page in admin view:
Mark the checkboxes corresponding to the relevant forms.
Click on the "Operations" button, and in the menu click on "Re-encrypt form definitions". If that entry is greyed out, make sure that you haven't selected a form for which data is stored with a persistence layer that doesn't support re-encryption.
After you confirm you desire to go ahead with the re-encryption, you will see, in the "Status" column:
"Re-encryption started," right after you triggered the re-encryption.
"Re-encrypting 392/2401," while the re-encryption is in progress, here assuming it has already re-encrypted 391 documents out of 2401 it needs to re-encrypt.
"Re-encryption finished," when the re-encryption is done for that form.
[SINCE Orbeon Forms 2019.2]
Because Orbeon Forms caches form resources, if you override resources with the oxf.fr.resource properties, those resources are not updated until the server restarts.
Using the "Reload resources" action will invalidate the cached resources of all the selected forms immediately. The next time the form is loaded, it will use up to date resources including those overridden in properties.
[SINCE Orbeon Forms 2016.2]
Upgrading to 2016.2
Orbeon Forms 2016.2 adds two index tables: orbeon_i_current and orbeon_i_control_text, so when upgrading to 2016.2, for Form Runner to work properly, you'll need to initially populate those tables in an operation referred to as reindexing. After you've upgraded and done the initial reindexing, you shouldn't need to reindex the database manually, as Form Runner will incrementally update the index when needed.
Depending on how much data you have, the reindexing operation can take a while, and during reindexing some features of Orbeon Forms 2016.2, like Form Runner summary pages and the search API, won't work as expected. Because of this, upgrading requires some additional steps if you're using those features. If end users don't access Form Runner summary pages on your production system, and you don't have custom code calling the search API (which is rare), then go to point 1 below; otherwise, go with point 2 below.
If you're not relying on those features in production, you can upgrade Orbeon Forms as you normally would when you need to make changes to the database: take the previous version of Orbeon Forms offline, run the relevant DDL to upgrade your database schema, and take the new version of Orbeon Forms online. This requires Orbeon Forms to be offline, but this, typically, only for a matter of a few minutes.
If you're relying on those features in production, since reindexing can take a while and you can't run Orbeon Forms 2016.2 while reindexing, we suggest you start by cloning your database, run the relevant DDL to upgrade your database schema on that cloned database, run 2016.2 on another server, and have it reindex the cloned database. This will give you an idea of how long reindexing takes, and how long of an offline window you need. With this information in mind, schedule an offline window of the appropriate length, and at that time, do the upgrade procedure again, but this time on the production database.
In admin view, the Form Runner home page shows a reindex button:
After you click it, and confirm you want to go ahead, if this is indeed the what you want to do (see above paragraph for more information about what happens during reindexing), the home page shows the reindexing status:
If, for some reason, you want to stop reindexing, you can do so by clicking on the Stop reindexing button. When doing so, the index is left in an incoherent state, and you should restart indexing at a latter time. While reindexing stops, you'll see the following message:
Finally, once reindexing is done, you'll see:
While reindexing happens, the indexer writes to the log:
When indexing starts and ends.
Which providers it will reindex.
For each provider how many document it will reindex.
A "progress message" for each document being reindexed.
The last message is logged at the debug level, to avoid your log growing unnecessarily in case you have lots of documents, while all the other messages are logged at the info level. For instance, you'll see something along those lines in your orbeon.log:
INFO - Reindex status - Starting, will index [oracle_dev, oracle_staging]
INFO - Reindex status - Indexing oracle_dev 1/2
INFO - Reindex status - Indexing oracle_dev 1/2, 8475 documents
DEBUG - Reindex status - Indexing oracle_dev 1/2, document 1/8475
DEBUG - Reindex status - Indexing oracle_dev 1/2, document 2/8475
INFO - Reindex status - Stopped
If you'd like to enable logging at the debug level, add the following to your log4j.xml:
The number of forms shown on a given page can be set with the following property:
Link to the summary or new page
The table listing the forms links, for each form, either to the summary or the new page, based on which page the user has access to. If the user has access to both, then it links to the summary page, in essence giving the priority to the summary page. [SINCE Orbeon Forms 2017.2] You can also change this priority by setting the value of the following property, of which the default is shown below.
For instance, if you set it to new summary, the priority will be given to the new instead of the summary page. If you list only one page, say new, then entries in the table will only link to the new page, of course if the user has access to it. If you leave the value blank, the forms will only be listed, with no link.
Orbeon Forms 4.0 to 4.2
For each form definition the current user has access to, the following links are shown if allowed:
Link to the summary page: shown if the current user can perform either one of the read, update, or delete operations on the form.
Link to the new page: shown if the current user can perform the create operation on the form.