2024.9.10

Released on: 2026.8.25

  • Added full OpenID Connect support to the authentication server, so other applications can look up its settings and read the signed in user’s details on their own (d7a635f).

  • Added headers and footers to rendered documents, set up in the template editor and chosen when a workflow renders a document (0ad0ed2, f54c18e, fc8094e).

  • Added support for Gotenberg 7 and 8, used to turn templates into PDF documents (8e4f4e4).

  • Added a safeHTML template function, for when a value should be rendered as HTML instead of shown as plain text (22cb71a).

  • Added a rich text editor for notification messages in the workflow builder, so notifications can be sent with formatting (c63275d, 244b0ee).

  • Added readable names for workflow function and prompt parameters, in place of their internal identifiers (861f43a, 778c3af).

  • Added a red asterisk marking which workflow parameters are required (2285b9b).

  • Added an option to return the total number of matching reminders when a workflow searches or iterates them (649d949, ee36e04).

  • Changed the workflow parameter list to show each name once, in bold, next to its type (8d652ca).

  • Changed the template editor to keep the header, footer and content settings together, show the content while a new template is being created, and only offer the preview once the template is saved (28a5a34, e446a5a).

  • Changed bulk editing to ignore record field prefilters, which otherwise left those fields with nothing to choose from (7254eb1).

  • Changed the duplicate detection settings to spell out that a record only counts as a duplicate when every selected field matches (11f1baa).

  • Changed the KV and KVV expression types to keep a key exactly as written, so keys containing dots are no longer split into nested values (42dcf81).

  • Changed the API Gateway proxy timeout to be taken from the server configuration, so it can then be adjusted in settings (ed5e12a).

  • Changed Corredor script results to be logged as readable text instead of base64 (3b56260).

  • Changed the webapp to track records by module as well as by ID, so records sharing an ID across modules no longer overwrite one another (2c5169a).

  • Changed reminders so that users who may assign reminders to others can also open, dismiss, undismiss and snooze them (8a3ae0c, 76cffd5).

  • Changed searches to count their results in the database instead of loading every matching record, which keeps large lists responsive (5f6af6e).

  • Changed workflows to skip collecting execution trace data when tracing is turned off, which makes them run faster (49fb332).

  • Changed the workflow step dependency error to name every step that could not be resolved and the steps it is waiting for, in place of a single error reported against an arbitrary step (eaaf715).

  • Changed WORKFLOW_STACK_TRACE_FULL to be off by default, so a workflow keeps only the most recent part of its execution trace instead of a copy of every step it has run (4564cd8).

  • Changed workflows to keep a copy of the step variables only where they are actually read back — a run that asked to be traced, or the step a run failed on — which lowers memory use on every other run (75d9b6b).

  • Fixed the server crashing when a browser connection dropped, for example while a visitor was being sent to the login page (5d2c307, 54dbca5, c9d6080).

  • Fixed duplicate detection flagging records when only some of the configured fields matched, comparing a value against the wrong field, and tripping over fields that had been removed from the module (e71c1a6, 4a25c21, b1a0de3).

  • Fixed the API Gateway crashing when a proxy route had no settings of its own (3add1b8).

  • Fixed external authentication provider buttons missing from the login form until the settings were saved twice (615080d).

  • Fixed provisioning failing after the default user group was deleted (890684f).

  • Fixed namespace import failing with a not unique error when the same translation appeared twice (f69c508).

  • Fixed template meta fields being silently ignored when set from a workflow (78cab0f).

  • Fixed Corredor script arguments being dropped when the script did not return them (d9fd1c2).

  • Fixed the shorten expression function returning nothing when the text was already shorter than the requested length (35df8e3).

  • Fixed CSV import of user and multi value location fields (5f5d7cd).

  • Fixed a record list prefilter being bypassed when the filter contained a top level OR (dc260b9).

  • Fixed the record export date range not including the current date (6198834).

  • Fixed import and export buttons not showing when the inline record editor is enabled (c185dfb).

  • Fixed the record selector showing a blank value when the selected record was not among the loaded options (554b885).

  • Fixed the record organizer position field having no selectable options (625c995).

  • Fixed record revisions not being shown for deleted records (d0533fe).

  • Fixed calendar reminders not appearing until the page was refreshed (fdb5e0f).

  • Fixed the reminder sidebar buttons being hidden behind the record toolbar (1863dd6).

  • Fixed lists showing repeated or empty pages when some of the records were hidden by permissions (0e16099).

  • Fixed workflows failing when a page cursor was passed to the user, role, template or reminder search and iterate steps (1c22e27).

  • Fixed the total count reported by the user, role and template search and iterate workflow steps (5c03218, 482f440).

  • Fixed the workflow execution trace not being shown after a dry run (5f89c35).

  • Fixed select field options not showing when their label was left empty (7939ad1).

  • Fixed workflows refusing to save or run, reporting a step dependency error, when an iterator was placed inside a parallel branch and its exit path led to the join (5df0bfd).

  • Fixed error handler variables, such as the error message, being unavailable to later steps once any other step had run between the error handler and the step that failed (3ff830f).

  • Fixed variables changed inside a parallel branch being lost where the branches merge, leaving the value they held before the branches split (ec04eee).

  • Fixed workflows using more and more memory the longer they ran, because a copy of every variable was kept for each step that had been executed, which could exhaust the server before a workflow holding a few thousand records finished (4564cd8).

  • Fixed a workflow run with tracing turned on occasionally returning no execution trace at all, because the run was reported as finished a moment before its trace had been recorded (b999367).

  • Fixed the server log reporting every waiting workflow session as just started, because each session’s age was measured backwards, which hid sessions that had been stuck for hours or days (db8123e).

  • Rejected search filter keys containing quotes, which could otherwise be used to interfere with the underlying database query (380404b).

  • Corrected how quotes and backslashes are handled when building database queries on MySQL, MSSQL, PostgreSQL and SQLite, addressing CVE-2026-6093 (848963d, 861055f, 64b58b9).