7.22
Clarive 7.22 Release Notes¶
Release date: September 29, 2026
We're pleased to present our new release of Clarive 7.22 with some important features and bugfixes:
Improvements and issues resolved¶
[ENH] #4022 Migrate frontend build system from Webpack 4 to Vite (jQuery removal + tooling upgrades)¶
The web interface is now built with Vite instead of Webpack 4. Builds are much faster, and during development changes show up in the browser almost immediately. The whole frontend was moved over, and every screen was checked under the new build.
jQuery has been removed from the interface. All the code that used it was rewritten with native browser functions: the topic grids and reports, the job monitor and its pipeline and timeline views, the static analysis view, the tab navigation, and the field, dashlet and component scripts served by the server. The old Bootstrap 2 script is gone as well, and a small built-in replacement keeps its dropdowns and tooltips working. Two libraries were upgraded to versions that do not need jQuery: DataTables (1.10 to 3.x), which keeps the same look in the topic list dashlets, and FullCalendar (3.9 to 6), which drives the calendars.
Several existing problems were fixed along the way, such as a crash when exporting all topics to CSV, and a few errors in the rule tree, the topic preview and the dashboards.
Note: custom scripts that used jQuery ($ or jQuery), for example in custom fields, dashlets or HTML templates, must be updated to use native browser functions, since jQuery is no longer loaded.
[ENH] #4026 Clarive docs rule ops in depth¶
The documentation pages for the rule operations have been rewritten in depth. Each operation page now describes all of its fields, explains how the operation behaves, and includes diagrams where they help. All the pages are also available in Spanish, and the Spanish terms (for example "tópico") are now used consistently.
The cla docs command now exports one site per language, with a language selector that works in every page. A new cla docs-serve command builds the documentation and serves it locally, so it can be browsed without a web server.
[ENH] #4029 Clarive objects in HCL for import and export¶
Clarive configuration can now be written as text in HCL, a readable format that can be kept under version control, reviewed and moved between installations. Resources (CIs) and their variables per environment, rules, roles, users and user groups can all be written in HCL. Objects refer to each other by name, not by internal database ids, so the same file can be imported into a different installation.
New commands handle a whole configuration from the command line:
cla exportwrites the configuration to HCL files, in one file or one file per object.cla import-planshows what an import would create, change or delete, without touching anything.cla importapplies HCL files to the installation.cla diffcompares HCL files with the current configuration.cla fmtformats HCL files in the standard layout.cla rule-checkchecks that rules keep all their content when written to HCL and read back.
Passwords are never written to the files, and a password left out of a file is kept as it is in the installation. Permission grants that point to objects not created yet are held back until those objects exist.
The HCL format is also available in the web interface. The Rule Designer has an HCL view, opened from the toolbar or from MORE > HCL. It can fold the text one level at a time, and it can hide or show disabled blocks. The operation dialog in the Rule Designer has an HCL tab to edit a single step, and each rule in the rule list has an HCL action. Resources and roles have an HCL tab, and the user group and user lists have an HCL action for each row (read only for users). All these views use the same checks and save process as the command line.
A new HCL section in the documentation describes the syntax, the objects, the commands, the views in the interface and all the error messages.
[ENH] #4033 Makefile¶
Added a Makefile for development tasks with the new Vite build. It gives short commands for the usual jobs: make run starts the web server together with the Vite development server, and there are also targets to build the frontend, start and stop the web server and the dispatcher, run lint and tests, update translations, and build or serve the documentation. make status shows which services are running and which frontend build is being served. Running make with no arguments prints the help.
[FIX] #4027 Error while generating API Key from user profile¶
Fixed an error when generating an API key from the user's Preferences. The key was not created, and the process failed with the message "CI must exist for update to work". The key is now generated and saved on the user correctly. If a problem does happen, the actual error from the server is now shown in the message on screen.
[FIX] #4028 Error Retryable write is prohibited on session¶
Fixed an intermittent MongoDB error, "Retryable write with txnNumber N is prohibited on session ...", that could appear when the load was high. Server processes started as children of another process kept using the database session of the process that started them, so the database sometimes rejected their writes. Each child process now opens its own connection to the database. The MongoDB setup documentation now explains this error and how to fix it.
[FIX] #4030 Rollbackable is not boolean for js¶
Fixed the rollback button in the job monitor, which was enabled on purged jobs. The purge process saved the rollback flag of a job as the text "0", and the interface read it as true. The flag is now saved as a real number, and the monitor also reads the old values correctly.
Also fixed a problem in rules where a job loaded in the stash without its full data made the rule fail on its first operation. Because of this, operations such as "Set rollbackable" never ran. The job is now loaded again when needed, so the rule runs normally.
[FIX] #4034 TinyMCE url build error¶
Fixed the rich text editor for users who use a language other than English. Every screen with the rich text editor showed the error "Failed to load plugin url", for example when creating a delivery, because the editor looked for its translation files in the wrong place after the move to Vite. The editor now finds its translation files, so it loads and shows its menus in the user's language.
[FIX] #4035 Job pid leftover files from tests¶
Fixed job runs leaving cla-job-*.pid files in the directory where the command was run, such as the installation root. When no pid directory is set, job pid files are now written to the installation's pid directory ($CLARIVE_PIDDIR, or the logs folder of the installation). This is the same place used by the web server, the dispatcher and the other Clarive servers, and it is never a shared temporary folder.
[FIX] #4036 Purge daemon not rotating properly¶
Fixed log rotation in the purge daemon. The purge daemon now keeps exactly the number of rotated log files set in keep_rotation_level. Before, it always kept three, whatever the setting was. Old rotated files left by earlier versions are removed on the next rotation. The nginx access and error logs that include the host name in their file name (nginx-<host>-access.log and nginx-<host>-error.log) are now rotated too, using the nginx size settings. The purge daemon documentation now describes log rotation.
[FIX] #4037 PRE started twice if created with service.job.create¶
Fixed jobs whose PRE step ran twice when the job was created with service.job.create, for example by a push to a repository. After creating the job, the service saved an old copy of it, and that copy could put a job that was already running back to READY. The job daemon then started the same step again. Now the service only saves the estimated duration of the job. The job daemon also checks that no other process is still running the step, and it takes the job only if its step and status have not changed in the meantime. The job daemon documentation describes this behavior.
[FIX] #4039 Job live streams can't use JQuery anymore¶
Fixed the live log stream of a running job, which showed nothing after jQuery was removed from the interface. The stream now works without jQuery and shows the log as the job runs. The loading indicator is now hidden correctly when the stream ends.
[FIX] #4040 Combos without arrow in firefox¶
Fixed combo boxes that showed no dropdown arrow in some Firefox browsers, while the clear (x) icon was shown normally. The arrow icon was redrawn as a simple image and is now built into the interface theme, so the browser no longer loads it as a separate file. Combo boxes, superbox fields and combos with the label on top now always show the arrow.
This change also fixes an error for English users, "Failed to load plugin url: /static/dist/langs/en.js", in the rich text editor. English is built into the editor, so no translation file is loaded for it anymore.
[FIX] #4041 Topic lists show stale content or a blank page when loading topics fails¶
Fixed topic lists when the request that loads the topics fails. Before, the list kept showing the previous page, or showed a blank page in the "All Projects" topic list. An error page is now shown in both cases, so it is clear that the topics could not be loaded.
[FIX] #4042 Declarative ACL checks ignore the simulated user (Simulate Navigation)¶
Fixed Simulate Navigation for screens and services that check permissions before the request is handled. These checks used the real user instead of the simulated one, so an administrator could see or use things the simulated user is not allowed to. The simulated user is now used for these checks too, so Simulate Navigation shows exactly what that user can do.
[FIX] #4043 web-start -r (restarter) doesn't watch feature lib directories¶
Fixed cla web-start -r, which restarts the web server when a file changes. It did not watch the lib folders of the installed features, so changes to feature code did not restart the server. It now watches the lib folder of every enabled feature, wherever the feature is installed.
Ready to upgrade?¶
Just follow the standard procedure for installing the new version. Click here to get it from our Install page.
Acknowledgements¶
Join us in our Community to make suggestions and report bugs.
Thanks to everyone who participated there.