Orbeon Forms 2024.1
Last updated
Last updated
Tuesday, December 31, 2024
Today we released Orbeon Forms 2024.1! This release is absolutely packed with new features and bug-fixes!
With Orbeon Forms 2024.1, we are introducing a number of major new features. Several of them contribute to improving usability, navigability, and visibility of forms and form data.
In addition, some features improve the deployment of Orbeon Forms, including cloud deployment, and deployment with JavaScript embedding.
In previous versions, creating an entirely new form with Form Builder always started with a default blank template.
The "New Form" dialog now starts with a series of form templates that you can choose from. There are built-in form templates, but you can make your own form templates.
In addition, providing a form application name and form name is now optional when you start. You can provide them later, after you've started working on the form. This makes getting started on a new form more straightforward. Finally, when you pick an application name and form name, Form Builder checks the in-progress and published forms for a match to tell you whether that combination is already in use.
You can mark any form you create as a template, and that form will then show in the list of available templates.
You can associate a thumbnail with each form, which will be used in the Form Builder New page as well as on the Landing page (see below). That thumbnail can be a screenshot of the form, or any other graphic you choose.
The Form Runner Summary page already allowed you to search, but it now allows you to sort by metadata or field as well.
In addition, search has been improved to search and sort by the following metadata information (when present):
Created Date
Last Modified Date
Created by Username
Last Modified by Username
Workflow Stage
The format allows you to control the following:
the order of the fields: Month first, Day first, Year first
the separator to use
pad the months and days with zeros or not
If you are configuring this at the form control or form level, you can do this in the Form Builder UI, so you don’t have to figure out a textual syntax (but you still use such a syntax in Orbeon Forms configuration properties).
In addition, we have fixed other issues with the Date control, and we have brought a couple of existing configurations to the Form Builder UI:
Use browser date picker
First day of the week
The following shows examples of Date and Time controls at runtime:
The Forms/Admin and Forms/Published pages now allow you to sort as well.
You can also search by metadata or field.
You now have a choice of several form density settings:
Compact: This is the current default with Orbeon Forms until 2023.1.
Comfortable: This is the default for forms created with Orbeon Forms 2024.1 and later.
Roomy: Choose this for even more spacing between controls.
This setting can be set globally, per app, or per form, with a setting in Form Builder as well.
Like in a spreadsheet, a formula can reference other form control values. Formulas now provide completion of control names: simply type the $
character, and a completion menu appears. It shows not only the name of the field, but also its label.
The Orbeon Forms Landing page, introduced with Orbeon Forms 2022.1, now allows you to show cards showing the latest data for specific forms that you configure. This gives you quick access to your important data.
In addition, we have split the Orbeon Demo Forms and Demo Features. These, of course, are just examples, and can easily be removed with a simple configuration for your dev, test, or production environments.
We have added two new components for form embedding:
These components allow you to embed forms in Angular or React applications. They add to our existing embedding APIs:
Form Builder supports reusable section templates, which can be present in two separate libraries:
A global library, usable from any form in the system.
An application-specific library, usable from forms in the same application.
Previously, the global library was named orbeon/library
, while an application acme
's library was named acme/library
. We didn't like that the global library was named orbeon/library
, as:
It wasn't clear that this was a global library rather than a library for forms in the orbeon
application.
Some users who do white-labeling might not want to see the name orbeon
appear.
With this Orbeon Forms version, we have moved the global library to an anonymous application called _
(which stands for "global" or "placeholder" or "wildcard"), and the global library is now named _/library
. This is not truly meant to be seen by form authors or end users, but rather it is an internal name.
For backward compatibility, the orbeon/library
library is still available. A new global library should be created with the new name. If both libraries are present, both are shown by Form Builder.
With this release, we have added more keyboard shortcuts, including shortcuts to enter specific form controls. This can greatly accelerate how power users create forms.
Orbeon Forms 2024.1 also includes many other new features and enhancements, including:
Platform updates:
We have upgraded to Scala 2.13, with some uses of Scala 3 as well.
We use native browser dialogs using the <dialog>
HTML element.
We have upgraded many third-party open-source dependencies.
The following enhancements are part of 2024.1, but have also been backported to 2023.1.x maintenance releases:
2023.1.3
2023.1.4
2023.1.5
2023.1.6
You need to make sure that your main Orbeon Forms configuration file, properties-local.xml
, features xmlns:fr
and xmlns:xxf
attributes at the top. Your existing file might start with:
Make sure to include the xmlns:fr
and xmlns:xxf
attributes as well, for example:
Failing to have these configuration attributes might prevent Orbeon Forms from starting. These attributes are present on the template file, properties-local.xml.template
, provided with Orbeon Forms.
The default oxf.fr.summary.buttons
configuration property now includes excel-export-with-search
by default. This means that, by default, a user can export the Summary page content in Excel format. If you do not wish this, you can set your own oxf.fr.summary.buttons
configuration property.
Previously, the oxf.fr.detail.captcha
or oxf.fr.detail.captcha.component
supported tokens, including:
reCAPTCHA
SimpleCaptcha
OnPremiseCaptcha
With this version, component names should be used instead, as follows:
fr:recaptcha
fr:friendly-captcha
fr:on-premise-captcha
Orbeon Forms now supports reCAPTCHA v3. For this reason, the configuration properties have changed.
The default is changed from disabled
to enabled
for new forms, with the following built-in property:
Although we do not recommend it, you can revert to the older behavior with:
We previously had a typo in the names of some indexes for SQL Server, PostgreSQL, Oracle, and MySQL: some indices began with orbeon_from
instead of orbeon_form
. Although this typo doesn't cause any issues, you may want to check for it during your upgrade and rename the affected indices for consistency. We corrected this typo in the DDL we provided in November 2024, so if you created your indices before that date, you likely have this typo.
With this release, for Date controls, the oxf.xforms.format.output.date
property is no longer used in readonly modes. Instead, the output-format
parameter of the time field is used, which defaults to the value of the global oxf.xforms.format.input.time
property.
See also which covers the topic.
The Orbeon Forms Date control got improved in a couple of ways. Like for the , we have made the format a configuration of the Date control. This means that you can specify the date format for each Date control individually, at the form level, or in configuration properties, as is the case for all other form control configurations in Orbeon Forms.
See also which covers the topic.
For more, see also the blog post.
For more, see also the blog post.
Angular component. For details, see blog post.
React component. For details, see blog post.
When using WildFly's built-in support for OIDC, Orbeon Forms can now extract roles from the provided OIDC token. For details, see the section .
Previously, a was only supported for published forms. With this version, leases are supported for Form Builder itself. This allows to better control how multiple form authors can edit a form in Form Builder without conflicts.
With Orbeon Forms 2023.1.3, we had already added a number of keyboard shortcuts in Form Builder (see ).
For details, see .
We have simplified our internal router. This can improve performance for page loads and service calls. This is noticeable in particular with the , where exports can be 30% faster.
Support repeats in relational flat views ()
Add support for flat views in MySQL ()
Form author with access to two apps only sees forms in the first one, in the Form Builder summary page ()
Copy section settings when inserting section template ()
Form metadata API: support paging ()
Ability to customize, in Form Builder, the "add another line" link, for minimal repeated grids ()
Ability to use variable references in service URL AVT ()
Improve US Address section template ()
Dynamic dropdown ability to auto-selecting only choice returned by the service ()
Bulk update to be able to trigger process ()
Maximum Aggregate Attachment Size constraint for Multiple File Attachments control ()
Form Builder UI for enabling the attachment of the XML to the email sent ()
Document, clarify, and extend process success, failure ()
Background API: provide ability to run a process by name ()
reCAPTCHA v3 support ()
Ability to configure the plain dropdown with search with a minimum input length ()
Improvements to configuration warning banner ()
Unify edit and view TOC appearances ()
Support autofocus attribute ()
Bulk update not to lose selection ()
"US State" control: also add territories ()
Allow Cmd-Enter or Ctrl-Enter to be used to "apply" dialogs ()
Redis support for replication, through Redisson as JCache implementation ()
Forms/Admin page: support URL parameters for search ()
Summary: improve look when no data ()
Form Runner resources for Hungarian ()
Date picker configuration to highlight current date ()
Tell user if selected app/form exists in-progress/published ()
New property to control if the wizard validates on page change ()
Error Summary: support showing only messages down to a given level ()
Ability to set the relevant and readonly of iterations in repeated grids and repeated sections ()
XForms support for multiple labels ()
Add service provider to help with connection context passing ()
Support serving files with the xml extension ()
Services to use the Cache-Control: no-store
header ()
Persistence proxy to log reasons for 400 Bad Request ()
Allow hiding the title of a section () (also on 2023.1.3)
Show label/name of current control in Control Settings dialog title ()
Don't show upload metadata if readonly and missing ()
Show hints for keyboard shortcuts ()
Excel table export from Summary page ()
fr:dropdown-select1
to support minimal label ()
Refactor persistence layer permissions ()
ProcessorService: log HTTP method and URL parameters ()
Reflow/responsive repeated grids on devices with narrow screens ()
Process action to create a new document id ()
Support Friendly Captcha ()
Add captcha-reset process action ()
Add getNativeSession
on Session
instances ()
Support xxf:itemset()
with Dynamic dropdown with search (databound-select1-search.xbl
) ()
Date control placeholder to be localized in Spanish, Czech, and Turkish ()
Option not to show the "Require token" row ()
Dropdowns "please select" to be localized in Czech and Turkish ()
Allow custom model variables references in formulas ()
Form Builder Export: consider not saving before ()
Property to disable the keyboard shortcuts hints ()
Revision History: button to add older revisions ()
Orbeon Forms comes with an embedded SQLite database in order to show demo forms, and also to allow to quickly get started with Orbeon Forms. This maps to a provider called sqlite
. To disable access to the embedded database after you have , make sure to also .
There is backward compatibility support for tokens. For details see .
For details see .
See component for more information.