ChangeLogs

Last Updated: Apr 7, 2022
documentation for the dotCMS Content Management System
            Older Versions →

LTS dotCMS releases

dotCMS will periodically specify specific product releases as Long-Term Supported (LTS) releases, which will be maintained for a longer period than other dotCMS releases, and which will provide a number of advantages for customers that choose to install them.

Please see the Long Term Supported Releases page for more information and Current Releases for downloads.

Version Release Date End of Life Date
v22.03.3 LTS Nov 14, 2022 Oct 11, 2023
v5.3.8.14 LTS Sep 30, 2022 Sep 30, 2022
v21.06.11 LTS Sep 8, 2022 Jan 13, 2023

Agile dotCMS Releases

Rows with the icon: are Breaking Change Releases. This means that upgrading to this version will require extra testing and possible architecture updates.

Please see Current Releases for downloads.

Version Release Date End of Life Date
v22.10 Oct 26, 2022 Oct 26, 2023
v22.09 Sep 15, 2022 Sep 15, 2023
v22.08 Aug 10, 2022 Aug 10, 2023
v22.06 Jun 27, 2022 Jun 27, 2023
v22.05 May 5, 2022 May 5, 2023
v22.03 Mar 14, 2022 Mar 14, 2023

dotCMS 22.03.3 LTS

Available: Nov 14, 2022

Bugfixes

  • SAML redirects now forward properly after authentication. [#22156]
  • Added a way to avoid cases where hashed IDs are referenced against non-hashed data in the creation of SAML users: Created hash.userid property (boolean) to SAML configuration to control whether the UserID is hashed or not. [#22692]
  • Bulk adjustment of large quantities of permissions can no longer deadlock the database. [#19358]
  • Updating a Binary field via REST API no longer removes the value from other Binary fields in the same contentlet. [#21482]
  • Fixed WebP filter: no longer adds white background in Safari, and default quality no longer ruins perfectly good images. [#21694] [#21652]
  • Fixed issue with database export streams that caused connection closure before file generation in instances behind a load balancer. [#22116]
  • Users with Back-End User and Front-End User roles who sign into the front end are no longer delivered to the back-end Edit Mode version of the page after manual URL entry. [#22124]
  • When upgrading from version 5.1.6 (or older), database migration tasks now run smoothly, without errors due to differences in DB column counts. [#22349]
  • Restored missing locales for Velocity localization operations. [#22603]
  • Fixed a MSSQL DB error on upgrade. [#22605]
  • Time zone data updates properly on upgrade to 22.03 or later. [#22771]
  • Workflow changes save properly for all users, including new users or users with special characters in their name. [#22696]
  • Fixed issue causing some navigation items to fail to display after upgrade to 22.03 or later. [#22809]
  • Fixed the Show Archive checkbox in the Templates section. [#21885]
  • Revamped push-publishing of users: It is now possible to push an individual user instead of all users, and interface labeling is clearer throughout. [#22149]
  • NavTool's getNav() method no longer returns unpublished pages; published pages only! [#22425]
  • Copy Site copies all content; previously, the process encountered a silent cap at 10,000 items due to limits on indexes and Elasticsearch queries. [#22520]
  • Copying a folder containing a page no longer copies the content displayed in that page's containers. [#22763]

Visual Fixes

  • When changing a password, verbose error message now displays when new password does not meet security requirements. [#22204]
  • Content Palette displays larger numbers of Content Types more reliably. [#22338]
  • The “What's Changed?” checkbox in Edit Mode now displays as checked when enabled, and correctly switches between states. [#22673]
  • Pagination now displays properly when querying related content by REST API. [#22236]
  • Displayed date updates correctly on menu after changing time zone. [#23128]
  • Push publishing queue displays all bundles, even when one or more fail to publish. [#23062]

Enhancements and Adjustments

  • Switched to using Tomcat's RemoteIpValve for DNS resolution. [#19569]
  • Removed performance drag from supporting on-the-fly configuration changes via file watchers and other blocking patterns, which are unsuited to a containerized paradigm. [#21619]
  • Reinstated Publishing options in Template editor. [#21612]
  • Various improvements have been implemented in upgrade routines. [#22916]
  • Submit button disabled immediately after Form submission to prevent duplicate submissions. [#22951]
  • Implemented storage of content info as JSON for MSSQL databases — as previously implemented for PostgreSQL. [#21219]
  • Removed various system fields — tags, categories, relationships, constants, host, and folder — from the immutable JSON object storage in the database. Folder and host are passed in during the construction of a contentlet; the rest are loaded lazily. [#21858]
  • Related content spanning multiple locales has been made more performant, shortening load times. [#22910]
  • Queued jobs have received additional failsafes against long waits for dependencies. [#23041]
  • Improved ContentMap category lookups to be quicker and less expensive. [#22864]

Dependencies & Components

  • Minor version update to Java on Docker image. [#22852]
  • Updated Tomcat to subsequent minor version. [#21849]

dotCMS 22.10

Available: Oct 26, 2022

dotCMS 22.10 showcases a few new features, starter updates, some UI cleanup, and more. Want to get started with the Block Editor, but all of your rich content is bound up in WYSIWYG fields? We now offer a way to convert WYSIWYG fields into Block Editor fields within an existing content type. We're also introducing the JSON Field — a new way to wrangle semi-structured data within your content.

Content

  • Introducing the new JSON Field, an easy way to store and access JSON data. [#22829]
  • You can now transform WYSIWYG fields into Block Editor fields at the push of a button. [#22488]
  • Contentlets placed in a Block Editor field now remain updated if the referenced content changes. This feature syncs the contentlet stored in a block with both the database and the cache. This comes with a slight performance cost — in most cases statistically insignificant — that can be offset by disabling the cache-synchronization: Just set the environment variable DOT_REFRESH_BLOCK_EDITOR_REFERENCES=false. [#22857][#22990]

Enhancements & Adjustments

Visual Fixes

  • Updated labeling to more clearly distinguishing between a “key” and a “token” in the user interface — a subtle but “key” difference! [#23007]
  • Fixed bug that inverted the display of parent and child in many-to-one Relationship fields.[#22549]
  • The “What's Changed?” checkbox in Edit Mode now displays as checked when enabled, and correctly switches between states. [#22673]
  • Improved the system for default icon assignment to tool groups during upgrades. [#22861]

Bugfixes

  • Contentlets can now be added to the Block Editor field before the content containing the field has been saved. [#23163]
  • Copy Site copies all content; previously, the process encountered a silent cap at 10,000 items due to limits on indexes and Elasticsearch queries. [#22520]
  • NavTool's getNav() method no longer returns unpublished pages; published pages only! [#22425]
  • Copying a folder containing a page no longer copies the content displayed in that page's containers. [#22763]
  • Remote-URL access tools like $json or $import now run in a thread pool to avoid blocking, backups and crashes in the event of high traffic to a non-responsive external API. [#22522]
  • Key/Value fields once again properly escape special characters, thereby squashing a recent and noisome bug. [#22754]
  • Key/Value fields properly record item order after sorting. [#22975]
  • Fixed issue causing some navigation items to fail to display after upgrade to 22.03 or later. [#22809]
  • Time zone data updates properly on upgrade to 22.03 or later. [#22771]
  • The breadcrumb-trail links at the top of the admin panel open in the same tab. [#22843]
  • Additional error handling has been added to the PublisherJobQueue to improve logging and resilience. Now nigh unkillable, it may be observed in the wild eating boulders and arm-wrestling jabberwocks. [#22850]
    • Queued jobs themselves have likewise received additional failsafes. [#23041]
  • Multiple Block Editors in the same content type will all save their respective content properly. [#23216]

dotCMS 5.3.8.14 LTS

Available: Sep 30, 2022

Bugfixes

  • Copy Site copies all content; previously, the process encountered a silent cap at 10,000 items due to limits on indexes and Elasticsearch queries. [#22520]
  • Copying a folder containing a page no longer copies the content displayed in that page's containers. [#22763]
  • Workflow changes save properly for all users, including new users or users with special characters in their name. [#22696]
  • Static Push Publishing no longer fails when pushing certain Base Content Types when a default language other than English is set. [#22266]
  • Corrected issue that prevented limited users with sitewide viewing permissions from viewing content not explicitly permitted for their role. [#22237]
  • Revamped push-publishing of users: It is now possible to push an individual user instead of all users, and interface labeling is clearer throughout. [#22149]
  • Users with Front-End and Back-End permissions logged in to the front end are no longer redirected automatically to the same page in (Back-End) Edit Mode after manual URL entry. [#22124]
  • Pushing a single piece of archived content no longer directly affects — i.e., unpublishes — other versions of the same content. [#21624]
  • Removed performance drag from supporting on-the-fly configuration changes via file watchers and other blocking patterns, which are unsuited to a containerized paradigm. [#21619]
  • Updating a Binary field via REST API no longer removes the value from other Binary fields in the same contentlet. [#21482]
  • Switched to using Tomcat's RemoteIpValve for DNS resolution. [#19569]
  • A Content Type having a many-to-many relationship to itself will no longer cause contentlets to lose their many-to-many relationships under certain conditions. [#20491]
  • $dotcontent viewtool respects the passed languageID and no longer returns the wrong language in certain situations. [#19774]

dotCMS 22.09

Available: Sep 15, 2022

dotCMS 22.09 features continued Block Editor improvements, Velocity-level access to field variables, dependency upgrades, performance optimizations, a smattering of squashings in the bug district, and more.

As of this build, LDAP support is now considered a deprecated feature.

Content

  • You can now easily link to other dotCMS content within the Block Editor. [#21866]
  • Base font size inside Block Editor has been increased slightly for readability. [#22165]
  • It is now possible to read field variable key-value pairs from within Velocity, allowing evaluation at load time from your Velocity template files — and giving user-defined field variables more utility. [#22618]

Enhancements & Adjustments

  • Expanding on an improvement in 22.08, the Enter key now performs the primary action (e.g., “Next,” “OK,” “Accept,” etc.) in a wider array of dialogs. [#22566]
  • “Suggestion” components — the clickable items that populate under a search bar, such as when linking content in the Block Editor — have been refactored to be more reusable and maintainable. [#22671]
  • Added a Docker compose example running dotCMS with MSSQL in ARM architecture (e.g., for users of Apple M1 processors). [#22639]
  • Refactored block-editor library to include folder structure. [#22517]
  • Tomcat no longer performs scans for Tag Library Descriptor files at startup, speeding up initialization. [#22716]
  • General library-driven improvements to paste behavior across a variety of fields and data types. [#22019]

Visual Fixes

  • Fixed pagination errors on the UI site selector; now displays a maximum of 15 results at a time, with live text filtering of choices. [#22734]
  • Pagination now displays properly when querying related content by REST API. [#22236]

Dependencies & Components

  • Minor version update to Java on Docker image. [#22852]
  • Upgraded Nx and Angular. [#22337]
  • Updated Dojo. [#22132] (Note: Also listed under Breaking Changes.)
    • Smoke-tested Dojo update. [#22885]
  • Moved from Libsass to Dart Sass for SASS/CSS compilation. [#22196]

GitHub Environmental Improvements

  • Migrated Actions to monorepo. [#21761]
  • Improved test times. [#22495]
  • Consolidated build jobs. [#21755]
  • Migrated Postman tests to GitHub Actions. [#21758]

Bugfixes

  • Locales have been added back at the level of the Java seed. [#22722]
  • Workflow changes save properly for all users, including new users or users with special characters in their name. [#22696]
  • Fixed the removal of categories through API calls, which no longer throws an error. [#22756]
  • Bad requests, such as malformed URIs, no longer result in Tomcat errors in advance of reaching custom dotCMS error pages. [#21742]
  • Creating language variables from the Content search allows the translation of tokens containing blank spaces. [#22607]
  • Image fields containing dotAssets now play well with Velocity. [#22704]
  • When upgrading from version 5.1.6 (or older), database migration tasks now run smoothly, without errors due to differences in DB column counts. [#22349]
  • Resolved conflicts between ByteBuddy and NewRelic agents, speeding up initialization and preventing errors. [#22635]
  • GraphQL introspection queries have been disabled for non-authenticated users. [#22825]
  • Fixed redirect issue that emerged with the update to Angular 14. [#22608]
  • Fixed browser console error when moving to Edit Mode from Site Browser. [#22617]
  • Fixed issue preventing Host variable from rendering headlessly via the Page API. [#21244]
  • SAML redirects now forward properly after authentication. [#22156]
  • Created a way to avoid cases where hashed IDs are referenced against non-hashed data in the creation of SAML users: Added hash.userid property (boolean) to SAML configuration to control whether the UserID is hashed or not. [#22692]

Breaking Changes


dotCMS 21.06.11 LTS

Available: Sep 8, 2022

Enhancements

  • Minor version update to Java on Docker image. [#22852]
  • Updating permissions is now faster, and no longer deadlocks the database when repermissioning structures containing large quantities of content. [#19358]

Bugfixes

  • When upgrading from version 5.1.6 (or older), database migration tasks now run smoothly, without errors due to differences in DB column counts. [#22349]
  • Workflow changes save properly for all users, including new users or users with special characters in their name. [#22696]
  • Restored missing locales for Velocity localization operations. [#22603]
  • Static Push Publishing no longer fails when pushing certain Base Content Types when a default language other than English is set. [#22266]
  • Corrected issue that prevented limited users with sitewide viewing permissions from viewing content not explicitly permitted for their role. [#22237]
  • Revamped push-publishing of users: It is now possible to push an individual user instead of all users, and interface labeling is clearer throughout. [#22149]
  • Users with Front-End and Back-End permissions logged in to the front end are no longer redirected automatically to the same page in (Back-End) Edit Mode after manual URL entry. [#22124]
  • Pushing a single piece of archived content no longer directly affects — i.e., unpublishes — other versions of the same content. [#21624]
  • Removed performance drag from supporting on-the-fly configuration changes via file watchers and other blocking patterns, which are unsuited to a containerized paradigm. [#21619]
  • Updating a Binary field via REST API no longer removes the value from other Binary fields in the same contentlet. [#21482]
  • Switched to using Tomcat's RemoteIpValve for DNS resolution. [#19569]
  • A Content Type having a many-to-many relationship to itself will no longer cause contentlets to lose their many-to-many relationships under certain conditions. [#20491]

Visual Fixes

  • When changing a password, verbose error message now displays when new password does not meet security requirements. [#22204]

dotCMS 22.08

Available: Aug 10, 2022

dotCMS 22.08 features new API endpoints and visualization tools; new field variable options; a brand new, performant OSGi system framework; a number of squashed bugs; and some quality-of-life improvements.

The largest change may be less obvious, centering on our own internal workflows: We've consolidated tools and procedures, moving toward monorepo status — folding the core-web repo into core — and improving various testing and build automations. We're pleased to report that these changes have made our work of improving dotCMS both simpler and quicker.

Content

  • Users can now define whitelists for which blocks should be usable in a given Block Editor Field, through the allowedBlocks field variable. [#22164]
  • The Block Editor field is no longer marked as a “Beta” feature — it's just a regular part of the gang, now. [#22489]
  • Image paths can now be copied from Site Browser context (right-click) menus, using the new Copy Path item. [#22146]
  • Unveiling $dotContentMap, a built-in Velocity content object that lets you access content in a container without performing a pull.

Enhancements & Adjustments

  • Added a new API Playground tool to the Dev Tools, built using Swagger. [#22298]
  • Added new API endpoints for creating, reading, updating, or deleting containers. [#21626]
  • Enter key now activates the primary action — e.g., Next, Submit, etc. — for all dialogs in the system. [#19158]
  • It is now possible to retrieve parent content through a child contentlet's Relationship Field by using Lucene queries.[#22319]
  • Image filter scale has been mapped to the resize filter that replaced it, improving backwards compatibility. [#22463]
  • The Edit Mode Anywhere URL Override plugin's functionality is now part of the core, available out of the box. [#21713]
  • Versions of the same content across different languages can now display publishing dates distinct from one another. [#21518]
  • The version of Java used in docker images has been updated. [#22426]
  • The import and export format of starters has been changed to JSON. [#19400]

Bugfixes

  • In the Site Browser, the “View Statistics” data now displays correctly; the button is removed from the menu entirely when the ENABLE_CLICKSTREAM_TRACKING property is set to false. [#22131]
  • dotParse now properly respects all parameters of the config property. [#22288]
  • Corrected issue that prevented limited users with sitewide viewing permissions from viewing content not explicitly permitted for their role. [#22237]
  • CookiesFilter can now reinitialize cleanly, allowing the dynamic addition of new filters via OSGi. [#22312]
  • Browser page title now updates correctly when switching between contentlets in Edit Mode. [#22320]
  • Bad results on ShortyIdentifier database calls are no longer cached. This prevents a condition in which a database error could result in persistent 404 status for “shorty” IDs until their region is flushed. [#22430]
  • Adding a user to a bundle no longer causes errors. [#22508]
  • Fixed 404 redirect routine. [#22559]
  • Page API calls through GraphQL now work properly with anonymous permissions. [#22615]
  • Resolved errors preventing users with MSSQL databases from successfully executing upgrade procedures. [#22613]
  • Selecting a different site from the admin panel's header dropdown correctly updates the panel while viewing tools built using Angular. [#16754]
  • Drag-and-drop navigation reordering now saves properly. [#22501]
  • Saving a contentlet before its related content loads will no longer result in a clearing of the Relationships field. [#22323]
  • Static Push Publishing no longer fails when attempting to push a bundle containing only a single file asset. [#22073]
  • Static Push Publishing no longer fails when pushing certain Base Content Types when a default language other than English is set. [#22266]
  • Revamped push-publishing of users: It is now possible to push an individual user instead of all users, and interface labeling is clearer throughout. [#22149]
  • Temporarily rolling back the log-file filter feature introduced in 22.06 for performance reasons; it will be retooled and reintroduced soon. [#22691]
  • Page caches have been made more attentive to servlet forwarding attributes, to prevent cases where a Vanity URL pointing to a URL-mapped detail pages could result in the wrong content being cached. [#22083]
  • It is no longer possible to create a folder with an empty title. [#21129]
  • On initialization, NextJS Edit Mode Anywhere environments generate a unique token, saved to the ENV file and appended to the EMA URL on requests; in the absence of this token, requests fail. [#21959]
  • When performing inline editing on a page that displays related content, edits to related content are also saved and published. [#22173]
  • XMLTool has been fixed; the Jaxen exception has been rectified. [#22307]
  • Corrected errors with Show Query search URL generation. [#22168]
  • Fixed a MSSQL DB error on upgrade. [#22605]

Visual fixes

  • Removed some noisy and unhelpful metadata messages from the logs on initialization. [#22144]
  • Rules now display properly when specifying a condition that checks for a custom request header that not on the header list. [#22186]
  • Replaced browser-native alert() message box after user account changes data in the My Account dialog. [#22276]
  • When changing a password, verbose error message now displays when new password does not meet security requirements. [#22204]
  • Content Palette displays larger numbers of Content Types more reliably. [#22338]

Plugins

  • Created new OSGi system framework for loading system bundles — minimal, speedy, and stable. [#22184]
  • Override plugin now starts correctly in certain prior versions. [#22043]

Breaking Changes

  • By default, dotCMS no longer follows redirects when accessing remote URLs programmatically. This change is configurable, and can be reversed by setting the REMOTE_CALL_ALLOW_REDIRECTS property to true. [#22512]

dotCMS 22.03.2 LTS

Available: Aug 2, 2022

Enhancements

  • It is now possible to retrieve parent content through a child contentlet's Relationship Field by using Lucene queries.
  • Date and time fields have been modified in MSSQL databases to include time zone data.

Bugfixes

  • An error that could cause OSGi import procedures to fail has been corrected.
  • No HTML field-validation regular expression no longer invalidates an entry if it detects a period.
  • Pages with the show_on_menu option enabled no longer create exceptions in procedures that reorder navigation elements.
  • Corrected issue that prevented limited users with sitewide viewing permissions from viewing content not explicitly permitted for their role.
  • Static Push Publishing no longer fails when pushing certain Base Content Types when a default language other than English is set.
  • Resolved an error that could cause OSGi import procedures to fail when a version range is specified.
  • dotParse now properly respects all parameters of the config property.
  • Date and time data are now updated before timezone is factored in, to prevent date and time errors during upgrades.
  • Bad results on ShortyIdentifier database calls are no longer cached. This prevents a condition in which a database error could result in persistent 404 status for “shorty” IDs until their region is flushed.
  • Updated SSL configuration to resolve an inactive port in the Docker image.

Visual Fixes

  • Corrected a display issue where relationship fields, on editing, sometimes appeared to change the type selection, such that a many-to-many relationship would display as a one-to-many relationship.
  • Improved logo displays on back-end menus.

Plugins

  • Fragments now only load when forced. On uploading, dotCMS reads the Export-Package from the fragment manifest, adds this to the OSGi-extras file, then moves the fragment to the undeployed folder and restarts the OSGi framework. This prevents interference with other plugins.
  • Improved OSGi plugin loading in server-cluster context.

dotCMS 21.06.10 LTS

Available: Jul 5, 2022

Bugfixes

  • Dispatcher now correctly sets servlet URI request parameter, preventing errors in certain Velocity calls.
  • New URI normalization filter has been made less aggressive, and now plays nicely with slashes and equals signs.

dotCMS 5.3.8.13 LTS

Available: Jul 5, 2022

Bugfixes

  • Dispatcher now correctly sets servlet URI request parameter, preventing errors in certain Velocity calls.
  • New URI normalization filter has been made less aggressive, and now plays nicely with slashes and equals signs.

dotCMS 21.06.9 LTS

Available: Jun 29, 2022

Bugfixes

  • Bad results on ShortyIdentifier database calls are no longer cached. This prevents a condition in which a database error could result in persistent 404 status for ShortyIDs until their region is flushed.

dotCMS 5.3.8.12 LTS

Available: Jun 29, 2022

Bugfixes

  • Bad results on ShortyIdentifier database calls are no longer cached. This prevents a condition in which a database error could result in persistent 404 status for ShortyIDs until their region is flushed.

dotCMS 22.06

Available: Jun 27, 2022

This enormous release in fact represents a development period closer to two months than one — and it shows! The entries below include significant additions to the Block Editor field, a flotilla of bugfixes, a bushel of efficiency improvements, some dependency updates, and more!

Content

  • Block Editor can parse a wider array of blocks, with permissive handling of custom block types, and is simpler to render. #22074
  • When inserting contentlets into a Block Editor field, you can now filter the selections by language or Content Type. #22159 #22045
  • The Block Editor permits limiting which Content Types can be added as contentlet blocks. #22039
  • From the Block Editor, it is now possible to import an external image as a dotAsset with a single click. #22194
  • In addition to drag and drop, images can now be added to the Block Editor by pasting. #22018
  • Block Editor can now be styled through the use of a field variable: Just set the key styles to value of the the desired CSS string. #22037
  • A Push Remove Now action has been created to facilitate push-removal within a workflow. #22021
  • Added a block-deletion button to bubble menus in the Block Editor. #22017

Enhancements & Adjustments

  • Improved implementation of the unique-per-site field quality; instead of a config property, this is now handled via the uniquePerSite field variable, which defaults to false. #22250
  • Refactored and improved the Block Editor's .toHtml() method, making it more lightweight, comprehensive and maintainable. #22128
  • Refactored HostAPI: Improved caching and respect for permissions; now reliant on the database instead of ElasticSearch, and on variable names instead of Content Type names. #21476
  • Implemented lazy loading for workflow histories to improve load times for history-rich content. #22068
  • Example content makes more consistent use of <PostBody> tag. #22063
  • Updated dependency packages, including ProseMirror, TipTap, and Tomcat. #22058 #21849
  • Edit Mode Anywhere now works in AWS Amplify and other hosting platforms. #21877
  • Now compatible with Husky. #21857
  • All references to calendar_reminder table have been removed from databases and code base. #21917
  • Removed various system fields — tags, categories, relationships, constants, host, and folder — from the immutable JSON object storage in the database. Folder and host are passed in during the construction of a contentlet; the rest are loaded lazily. #21858
  • The Multipart Web Interceptor plugin, which scans multipart or form requests that use PUT or POST to upload files, has been fully integrated into the core product. #21854
  • Search and filter functionalities have been added to the log viewer. #21848
  • Push Publishing filters can now be added or updated via a REST API call. #21823
  • Add custom content tools to traditional navigation through a simple menu option in the Content Type list, or through API calls. #21797
  • Removed performance drag from supporting on-the-fly configuration changes via file watchers and other blocking patterns, which are unsuited to a containerized paradigm. #21619
  • Moved the System Template and System Containers to velocity's static WEB-INF/velocity/application path. #21265
  • Date and time fields have been modified in MSSQL databases to take into account time zones. #21169
  • Added an app that implements the prerender.io filter as a WebIntercepter and allows a user to configure prerender via Settings > Apps > dotCMS prerender App. #20903
  • Switched to using Tomcat's RemoteIpValve for DNS resolution. #19569
  • Updated dot-binary-file web component to support the maxFileLength attribute. #18019

Bugfixes

  • GraphQL queries no longer throw errors when fetching Block Editor content. #22391
  • Resolved an error that could cause OSGi import procedures to fail when a version range is specified. #22287
  • Creating new content from Edit Mode now properly adds it to the Page when saved. #22210
  • Changed default path of images within WYSIWYG fields to be based on ID rather than iNode, to prevent the path from breaking on file update. #22207
  • Fixed errors with processing and saving of inline HTML on the WYSIWYG editor. #22179
  • Improved handling of unrecognized properties in JSON to restore backwards compatibility with versions prior to 22.03. #22174
  • Fixed error that caused content to disappear from a page after altering its template or layout. #22140
  • Pages with the show_on_menu option enabled no longer create exceptions in procedures that reorder navigation elements. #22137
  • Users with Back-End User and Front-End User roles who sign into the front end are no longer delivered to the back-end Edit Mode version of the page after manual URL entry. #22124
  • Fixed issue with database export streams that caused connection closure before file generation in instances behind a load balancer. #22116
  • Enter key in the dialog to create or copy a Content Type now executes the operation, instead of moving focus to the icon selector. #22104
  • No HTML field-validation regular expression no longer invalidates an entry if it detects a period. #22094
  • Velocity rendering of Block Editor correctly displays all nested nodes. #22092
  • Bundled content not assigned to a workflow will no longer fail to push publish. #22087
  • Fixed error preventing Override plugin from functioning. #22043
  • PageCache now only caches with response codes of 200. #22014
  • Importing a contentlet containing a binary field with a null value no longer generates an error. #22004
  • Pulling related content with no sorting parameter set now returns related content in the order it was added. #21929)
  • Tags considered to be stored under specific sites rather than All Sites no longer fail to display. #21904
  • Push Removal of a Static Pushed page no longer removes any other files required for that page to render. #21832
  • Flag icons now display properly next to languages in the content list. #21827
  • Static Push Publishing no longer sets an incorrect response type for content generated on a dynamic page. #21720
  • Fixed bug that caused failures when copying a site. #21718
  • User interface no longer displays an erroneous Type Error when uploading files via image fields. #21715
  • Fixed WebP filter: no longer adds white background in Safari, and default quality no longer ruins perfectly good images. #21694 #21652
  • Push publishing plugins no longer results in error. #21568
  • Updating a Binary field via REST API no longer removes the value from other Binary fields in the same contentlet. #21482
  • When saving content via REST and using the WAIT_FOR index policy, the call will now properly pass down the parameter instead of defaulting to DEFER. #21469
  • Fixed license requirement message in the Personas tool on the community edition. #21307
  • Container removed from Advanced Template Designer now correctly disassociates from the template, and can be deleted. #21099
  • Using Select All on categories before deleting no longer deletes even deselected items. #20400
  • Fixed bug preventing content from exporting when all languages are selected. #19734
  • Form submissions send files correctly. #18312
  • Date and time data are now updated before timezone is factored in, to prevent date and time errors during upgrades. [#22381]

Visual fixes

  • The read-only system container and system template are now more visually clear as to this status, with a greyed-out color scheme and contextual buttons removed. #22216 #22217
  • Corrected a display issue where relationship fields, on editing, sometimes appeared to change the type selection, such that a many-to-many relationship would display as a one-to-many relationship. #22198
  • Context menus, such as those behind the “hamburger” buttons in the Content Type menu, now display one at a time. #21996
  • Minor improvements to the Edit Content Type window in the admin panel.
  • Fixed pop-up that appears when dragging and dropping the Form Content Type to a container. #21747
  • Content Types with two Relationship fields of the same type no longer display list of crossed-out unavailable languages. #21735
  • Toggling the Code view in a WYSIWYG field on Content Type that requires scrolling no longer causes the scroll position to jump. #21492
  • Improved logo displays on back-end menus. #22410

Plugins

  • Fragments now only load when forced. On uploading, dotCMS reads the Export-Package from the fragment manifest, adds this to the OSGi-extras file, then moves the fragment to the undeployed folder and restarts the OSGi framework. This prevents interference with other plugins and allows OSGI to be cleanly started. #22055

Breaking Changes

  • Replaced repackaged JSON-handling classes with more tractable code. #22118
  • Updated several default configuration values, such as disallowing HTTP by default. #22006
  • Removed unnecessary Spring jars for better parsimony and tidiness. #21944
  • Initial admin password is now an automatically generated, non-guessable password recorded in the logs. Setting the configuration option INITIAL_ADMIN_PASSWORD can allow for overriding the generated password with a preset one. #21916
  • Moved to use Gradle 7.3.3 in the build scripts.
  • AspectJ has been removed. Instead, Bytebuddy is now inited at runtime and rewrites the bytecode to weave the annotations into the classes. Additionally, ByteBuddy does not need to be included as a java agent.

dotCMS 21.06.8 LTS

Available: Jun 10, 2022

Bugfixes:

  • Pages built with URL Mapped content are now correctly created on a full-site Static Push.
    • URL Mapped content likewise shows up properly in site search indices when including folders.
  • Fixed a case where specific conditions could cause drafted content to fail to Push Publish.
  • Changes to SCSS files are now recognized and processed immediately, without any delays from caching behavior.
  • Fixed navigation error affecting users with both Back-End User and Front-End User roles; URLs now update correctly when editing multiple page assets sequentially.
  • When a Site/Folder field is removed from a Content Type, content of that type will continue to live where it was originally placed, rather than move to SYSTEM_HOST.
  • Fixed issue in which dotAsset titles would display as their identifiers on certain admin panel searches.
  • Can now load extremely large images — whether vast in dimensions or file size — without issue.

Content:

  • Removed limit on number of widgets or forms displayed in Content Selector popup.

Enhancements:


dotCMS 5.3.8.11 LTS

Available: Jun 10, 2022

As a late-stage LTS build, dotCMS 5.3.8.11 consists chiefly of bugfixes and corrections. One such correction concerns its end-of-life (EOL) date. While longstanding policy holds that LTS releases are supported for 18 months, several recent releases had listed an EOL date 24 months out from original launch. This error was recently corrected; the 18-month EOL mark for 5.3.8 was June 3, 2022, which has now passed.

We realize that some users may have made plans around the erroneous EOL, and we apologize for this oversight. Accordingly, we have elected to extend support for 5.3.8 until at least September 30, 2022, with a possible further extension pending review. dotCMS always reserves the right to extend the EOL date for any release if we believe that we can continue to apply updates without affecting its stability.

Please note that “end of life” does not mean “end of service”; customers with access to the dotCMS Helpdesk can always ask for support on any dotCMS release, including those past their EOL.

Bugfixes:

  • Pages built with URL Mapped content are now correctly created on a full-site Static Push.
    • URL Mapped content likewise shows up properly in site search indices when including folders.
  • Fixed a case where specific conditions could cause drafted content to fail to Push Publish.
  • Changes to SCSS files are now recognized and processed immediately, without any delays from caching behavior.
  • Fixed navigation error affecting users with both Back-End User and Front-End User roles; URLs now update correctly when editing multiple page assets sequentially.
  • When a Site/Folder field is removed from a Content Type, content of that type will continue to live where it was originally placed, rather than move to SYSTEM_HOST.
  • Fixed issue in which dotAsset titles would display as their identifiers on certain admin panel searches.
  • When creating rules, users can now choose the session attribute keys to use to evaluate conditions, such as whether a session attribute exists.
  • Contentlet buttons no longer fail to display on Edit Mode with an Edit Mode Anywhere page.

Content:

  • Removed limit on number of widgets or forms displayed in Content Selector popup.

Enhancements:

  • In Edit Mode, added lazy loading for buttons when editing contentlets within a page.
    • Minor style improvements to Edit Mode.

dotCMS 22.03.1 LTS

Available: May 11, 2022

22.03.1 updates the recent 22.03.0 LTS release. Its changes are primarily backports from this month's 22.05 agile release.

Bugfixes:

  • Database connections now release properly in accordance with DB_MIN_IDLE environmental variable.
  • Fixed error preventing undeployment of OSGi plugins.
  • Pages built with URL Mapped content are now correctly created on a full-site Static Push.
    • URL Mapped content likewise shows up properly in site search indices when including folders.
  • Fixed a case where specific conditions could cause drafted content to fail to Push Publish.

Content:

  • Removed limit on number of widgets or forms displayed in Content Selector popup.
  • Unique fields on global Content Types can now be specified as unique globally or unique per site.

dotCMS 22.05

Available: May 5, 2022

As the flagship feature of version 22.05, we unveil our new Block Editor, a JSON-based WYSIWYG editor.

Inspired by such interfaces as WordPress's Gutenberg Editor, the Block Editor is an easy-to-use, feature-rich interface for creating and editing content — whether text, images, or any other custom content defined through dotCMS. We hope you'll enjoy it!

Our demo site has been updated to feature the Block Editor on blog posts. Test it out for yourself with email address admin@dotcms.com, password admin.

Bugfixes:

  • Resolved Javascript console errors that resulted from adding a pre-existing widget to a page.
  • Fixed Enterprise Edition license check misfiring on some page edits.
  • Fixed bundle errors when reimporting a previously imported folder that has been renamed.
  • Fixed the Show Archive checkbox in the Templates section.
  • Pages built with URL Mapped content are now correctly created on a full-site Static Push.
  • Fixed a case where specific conditions could cause drafted content to fail to Push Publish.

Visual fixes:

  • Fixed cases of contextual menus cutting off at the bottom of their parent display pane.
  • Improved display for “Add Row” button in the Content Type creation interface.
  • License info renders more cleanly on Create Content modal dialog.

Content:

  • New Block Editor (see above).
  • Added ability to copy Content Types.
  • Replaced Vanity URL base content type's Site field with a Host Folder field.
  • Removed limit on number of widgets or forms displayed in Content Selector popup.
  • Page titles now update to display the name of content being edited; multitab without fear!
  • Unique fields on global Content Types can now be specified as unique globally or unique per site.
  • Optimized saving procedures to improve performance.
  • Improved clickability when relating content — click anywhere in the list's rows to toggle!
  • Implemented storage of content info as JSON for MSSQL databases — as previously implemented for PostgreSQL.

Plugins:

  • Improved OSGi plugin loading in server-cluster context.
  • Fixed error preventing OSGi plugin undeployment.
  • Fixed ability to upload multiple OSGi assets at once.

Enhancements & Adjustments:

  • Changed folder handling to enforce knowable & consistent folder ID behavior.
  • Added ability to create a whitelist of acceptable keys for Key/Value fields.
  • Reinstated Publishing options in Template editor.
  • JSON handling: Removed GSON dependency in favor of Jackson.
  • Added integration tests for Integrity Checker.
  • Edit Mode Anywhere app no longer sends the page.rendered property on POST unless enabled in the app.
  • Optimized routines for bulk adjustment of permissions.

dotCMS 22.03.0 LTS

Available: Apr 11, 2022

(This changelog represents all changes since 21.06, spanning nine months of agile builds.)

Content Management

  • Content now stored as JSON, removing limits on the number of fields.
  • All dates in the system are now stored with time zone information.
  • Enabled search and aggregation on key-value pairs.
  • Added “bulk move” workflow action.
  • Added a library of icons for Content Types.
  • Added a tool for visually comparing different versions of content; access it via the History tab.
  • Added a new “what's changed” library in support of the comparison tool.
  • Introduced Headless Widgets: A single widget can now produce HTML or JSON depending on the rendering context.
  • Added default paths for image or file fields, helping editors quickly find files without digging through a file tree.
  • Bulk actions now display job progress.
  • Added thumbnails to content search listings.
  • Improved SVG handling.
  • Rules can now be used to rewrite URLs.

Page Building

  • Added a slick new Template designer; building a layout has never been simpler.
  • Content palette now allows for simple, click-and-drag content reuse.
  • You can now drag and drop local images or files into pages.

System Management

  • Added support for Bash scripts for CI/CD. You can bootstrap environments with:
    • Sites
    • Languages
    • Content Types
    • Folders
    • Files
    • Templates
    • Containers
  • Consistent identifiers: Most dotCMS unique identifiers are now assigned based on their paths or unique values. For example, if you create the file demo.dotcms.com/my-first-image.jpg on any dotCMS instance, it will have the same identifier.
  • dotCMS can now generate secure passwords for back-end users.
  • You can now download your entire installation — including assets and a full SQL dump — from the back end. Access this feature on the admin panel under System > Maintenance > Tools.
  • Default Language can now be changed from the back end
  • Enabled users to configure most aspects of dotCMS via environment variables, including database configuration, mail configuration, and more.
  • Updated Docker image and configuration.

Apps / Integrations

  • dotCDN is now built in; view usage stats and manage your cache under the admin panel's Dev Tools.
  • App secrets can now be imported and exported.
  • New app available for Prerender integration.

Performance

  • Reimplemented Redis Cache and Redis Pub/Sub.
  • Garbage collection is now in the capable and “pauseless” hands of Shenandoah GC. This change can be overridden by passing other options to the JVM.
  • Image filters are more performant — especially with large images.
  • Sped things up by removing Sync Block from BlockPageCache.
  • GZIP now enabled by default.
  • $dotcontent.find($identifier) now relies on cache rather than elasticsearch.
  • Velocity rendering now uses cached binary metadata, requiring fewer file system calls.

Push Publishing and Bundles

  • Added Bundle Manifests: See exactly what was pushed and why in any given bundle!
  • Added a push-publishing listener, which fires from the receiver when push publishing is complete.
  • Enabled bundle delete and cleanup.
  • Large bundles are more performant: faster and more stable!

OSGi Plugins

  • Reconfigured to rely on OSGi Extras; fragments are no longer needed, though still supported.
  • SAML startup does not conflict with other OSGi plugins.

GraphQL

  • Static GraphQL cache can rebuild lazily and will return stale data as the cache is refreshed in the background.
  • Now supports dotAssets for file or image fields.

Breaking Changes

  • Requires Java 11 to run.
  • Only PostgreSQL and MSSQL are supported; support for Oracle has been discontinued.
  • Hazelcast cache transport layer has been removed by default. We recommend relying on a PubSub provider — either Redis or PostgreSQL — to wire your clusters. If you are running with PostgreSQL as your primary DB, there is no need to do anything. If you are running against MSSQL, we suggest running a lightweight PostgreSQL or Redis instance to provide network cache invalidations. If required, Hazelcast cache transport can be re-enabled by mounting a custom hazelcast-config into your docker image. This is the last major LTS version that will support Hazelcast as a cache transport.
  • Installations using Docker will need to update their configuration options, as they have changed.
  • Docker now runs dotCMS with the user:group 65001:65001. You will need to chown any file shares that you have mounted in in order for docker to be able to read/write assets.
  • $jsontool and $xmltool calls to localhost will be blocked by default. This behavior can be changed through a config variable.
  • Hostnames for sites are now supposed to be immutable and should not be changed once set. The hostname field for sites will now only accept DNS-valid characters.
  • /api/v2/users was incorporated into /api/v1/users. Any calls to /api/v2/users should be redirected to /api/v1/users.

dotCMS 22.03

Available: Mar 14, 2022

dotCMS 22.03 is made up of 44 fixes, improvements and new features. For more detail, the whole list of issues included in dotCMS 22.03 can be found on GitHub.

New Features and Enhancements

  • Moved to Shenandoah Garbage Collector. Shenandoah is a “pauseless” garbage collector that also has the benifit of quickly returing unused memory back to the underlying operating system, rather than greedly holding on to it. Operationally, this results in dotCMS needing/using less memory over time, which is very important for density when running dotCMS in orchestrators. This change in the default garbage collection can be overridden by passing other options to the JVM.
  • Better FS Caching. Binary file properties that are referenced in Velocity, e.g. $content.image1.width now rely on the assetMetadataCache to return things like size and image dimensions, rather than relying on slower operations that use the filesystem and often traverse the network with NFS.
  • Legacy Data Model Improvements. Folders no longer rely on hiberate object mapping to persist data.
  • Docker Image now uses Amazon's Corretto OpenJDK 11 under the covers. This change was made because Amazon's OpenJDK is supported over a long term and also contains a backported version of the Shenandoah Garbage Collector, which dotCMS (docker) now uses by default. This change should not affect how dotCMS is launched or run.
  • It is now possible to disable drag and drop image upload from the WYSIWYG field. To do this, you need to add a field variable dragAndDrop with the value set to false.

Security

  • When writing tmp files for newly uploaded files, the filenames are now scanned and rejected if they contain directory escaping characters, e.g. ../.

Changes/Improvements

  • Ticked up our versions of Angular to 13.1.3 and PrimeNg to v13.1.0.
  • CalendarEvents content type can now be deleted without causing a system error.
  • Elasticsearch Client was upgraded to v7.10.2.
  • Users with both backend and frontend roles can now preview/edit pages.
  • Langauge Keys for backend i18n are now stored using the dotCMS version as the key, and will be automatically refreshed when the dotCMS version updates.
  • The background is pleasingly blurred when a modal window is popped up in the backend.

Breaking Change


dotCMS 21.06.7 LTS

Available: Mar 9, 2022

dotCMS 21.06.7 is a LTS release which includes several improvements, and fixes for several issues in previous releases.

Fixes

The 21.06.7 release includes fixes for the following reported issues.
For a list of issues addressed in dotCMS 21.06.7, please visit the dotCMS Github Repository.

Issue Github Link
[Site Copy] : Copying a Site randomly fails #21204
db passwords with characters (specifically @ and possibly others) will break pub/sub due to the connection string #21363
Add the ability to stop/abort a workflow on velocity script actionlet #21252
Past Time Machine not working #21097
SAML - Allow expression substitution from SAML roles mapped to dotCMS roles by role key #20773
Unable to push publish user #20805
We need to obfuscate some environmental variables #20757
Sanitizing file name #21791
Large Bundles make the viewing publishing queue slow #20971
[Push Publishing] : Single quote in content's title breaks JavaScript code in the portlet #21699

dotCMS 5.3.8.10 LTS

Available: Mar 8, 2022

dotCMS 5.3.8.10 is a LTS release which includes several improvements, and fixes for several issues in previous releases.

Fixes

The 5.3.8.10 release includes fixes for the following reported issues.
For a list of issues addressed in dotCMS 5.3.8.10, please visit the dotCMS Github Repository.

Issue Github Link
Obfuscate Environmental Variables System Info Portlet #20757
SAML - Allow expression substitution from SAML roles mapped to dotCMS roles by role key #20773
Unable to push publish user #20805
Past Time Machine not working #21097
[Site Copy] : Copying a Site randomly fails #21204
Add the ability to stop/abort a workflow on velocity script actionlet #21252
[Push Publishing] : Single quote in content's title breaks JavaScript code in the portlet #21699
Sanitizing file name #21791

            Older Versions →

On this page