Changelogs

Last Updated: Sep 8, 2023
documentation for the dotCMS Content Management System

Agile dotCMS Releases

Below, you'll find dotCMS's regularly scheduled Agile releases. To instead find a Long-Term Supported (LTS) release, please use the tab above.

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
v24.04.24 Apr 24, 2024 Apr 24, 2025
v24.04.23 Apr 23, 2024 Apr 23, 2025
v24.04.16 Apr 17, 2024 Apr 17, 2025
v24.04.05 Apr 5, 2024 Apr 5, 2025
v24.03.22 Mar 25, 2024 Mar 25, 2025
v24.03.11 Mar 12, 2024 Mar 12, 2025
v24.03.01 Mar 1, 2024 Mar 1, 2025
v24.02.20 Feb 22, 2024 Feb 22, 2025
v24.01.26 Jan 31, 2024 Jan 31, 2025
v23.12.22 Dec 22, 2023 Dec 22, 2024
v23.12.21 Dec 21, 2023 Dec 21, 2024
v23.10.24 Oct 27, 2023 Oct 27, 2024
v23.09.7 Sep 15, 2023 Sep 15, 2024
v23.08.16 Aug 24, 2023 Aug 24, 2024
v23.07 Jul 19, 2023 Jul 19, 2024
v23.06 Jun 14, 2023 Jun 14, 2024
v23.05 May 1, 2023 May 1, 2024
v23.03 Mar 31, 2023 Mar 31, 2024
v23.02 Feb 21, 2023 Feb 21, 2024
v23.01 Jan 12, 2023 Jan 12, 2024

dotCMS 24.04.24

Available: Apr 24, 2024 Demo starter image: 20230712

dotCMS 24.04.24 is a next-day quickie. It has a minor tweak behind the scenes, but otherwise just the one tangible shift:

Interface & UX

  • The Page Editor's “Open in New Tab” link now reads “Open Published Version” — clarifying that the user will view a live, rather than draft, version. [#28347]

dotCMS 24.04.23

Available: Apr 23, 2024 Demo starter image: 20230712

dotCMS 24.04.23 is back from the code mines, hauling a rich new vein of improvements. A new endpoint can provide content reports that can better inform deletion decisions, streamlining licensing and JSON both, and friendly modals give AI-generated content a tidy staging area.

And as for the rest, you know us: Stuff gets fixed.

Enhancements & Adjustments

  • Added /api/v1/contentReport endpoint, capable of providing a list of Content Types and any existing contentlets of each type that live under a given Site or folder entity. This is helpful when making structural decisions, such as the placement or deletion of those entities. [#27755]
  • Language JSON files used by dotCLI now only require dotCMSObjectType and isoCode properties; other pertinent data is generated on the fly. [#27448]
  • In line with changes in license distribution methods, we've removed the ability to copy and paste licenses into dotCMS from Settings -> Configuration -> Licensing; licenses are now applied exclusively via the Upload option. [#27891]

Interface & UX

  • AI Blocks in the Block Editor initially generate their content in a modal dialog, for added clarity and conceptual separation of generated content. The modal likewise includes previews of generated images. [#27633] [#27632]
    • A “Cancel” button has been added to AI content modals, because humanity ought to have veto power over our synthetic-brained scions for at least a little while longer. [#28172]

Fixes

  • “Open in New Tab” option in Page Editor now correctly displays the published version of of the page. [#28278]
  • Restored file hyperlinks to the Binary Field info modal. [#28115]
  • Updating a template that uses the same container in multiple boxes will no longer result in displaced content among pages using that template. [#27816]
  • Fixed “Download DB Dump” functionality under Settings -> Maintenance -> Tools. [#27537]
  • Deleting the parent page of an experiment no longer causes certain underlying Experiments API calls to fail. [#28238]
  • Fixed a conflict in the analytics infrastructure causing errors at startup. [#28305]
  • Binary field now correctly shows thumbnail previews of uploaded PDF files. [#28105]

dotCMS 24.04.16

Available: Apr 17, 2024 Demo starter image: 20230712

dotCMS 24.04.16 boasts new options for Apps configurations, a few fixes, and quite a few other changes that it simply won't do to discuss here, yet — mainly work on new features in development, still awaiting release. Rowdy ones, at that: Some already demand to be seen!

“If patience were easy,” we remind them, “it wouldn't be a virtue.” That buys us a short reprieve, always briefer than the last.

Enhancements & Adjustments

  • Apps configurations can now be overridden via environment variable, with options to show or hide altogether any values so overridden. This presents a clean, hierarchical method of App configuration in cloud or multitenant settings. [#25953]

Fixes

  • Resolved discrepancies in representations of limited permissions with the dotCMS CLI; dotCLI now throws the correct errors (i.e., the authorization sort) on file pull operations for limited users. [#27386]
  • dotAI tools now insert content into Block Editor interfaces in a more natural manner: as a set of separate blocks, as if pasting from another source, rather than a single, condensed block. [#28201]
  • When duplicating content with certain relationship types — one-to-one, many-to-one — the copy will be created without duplicating those relationships, to prevent cardinality violations. [#26283]

dotCMS 24.04.05

Available: Apr 5, 2024 Demo starter image: 20230712

As you may have noticed, dotCMS releases have had a faster cadence recently. While the typical agile release might not stretch into the mammoth manifests of yesteryear, there's still always something exciting in the works; dotCMS 24.04.05 is no exception.

Today, we're pleased to announce the official release of the dotCMS Command Line Interface, or dotCLI for short. This tool opens up new horizons for CI/CD operations and general automation of dotCMS instances or clusters. Everybody loves a good command line, and you can bet that we're already using this little wonder for our own sites.

Aside from that, we've begun the work of folding the dotAI Plugin into our main codebase, leaving the work of integration testing and activation. We also added new handholds to edit custom content tools, and bopped a solid bouquet of bugs — a little spate of spring cleaning.

Features

Enhancements & Adjustments

  • The dotAI Plugin code has been migrated into the dotCMS core, the first step toward turning it into a permanent core feature. [#27972]

    Important Note: If the dotAI Plugin was already deployed and running, some actions need to be performed both before and after upgrading:

    • Before upgrading to this version the plugin needs to be stopped and undeployed from the Plugins portlet.
    • After upgrading to this version the dotAI portlet needs to be added back via Roles and tools. There is a GitHub card to add the portlet automatically after the migration so this would not be needed in the future.
  • Added API methods to update and fetch custom content tools. [#27920]

Fixes

  • Pages with an active Experiment now also refer to the Site, and not just the path, when determining whether a redirect is necessary. [#27906]
  • Thumbnails now display correctly in the Block Editor's Contentlet blocks. [#28055]
  • Deleting a Site that contains Content Types and content items no longer silently fails, and now provides an extra prompt to warn of the deletion of such items. [#27862]
  • The Secrets Viewtool can now properly parse the inode from URLs. This is important to ensure that it can properly check code's last editor to ensure they have permission to call on the secret. [#27516]
  • Fixed error where, when push-publishing to two different environments — one static, one dynamic — the normally untracked entry for the static push would appear in the pushed assets table with a null endpoint. [#27928]
  • Fixed Google Maps feature when setting rules related to visitor location. [#27531]
  • Key/Value fields no longer perform HTML encodings on inappropriate characters (commas and colons) when returning HTML-encoded values. [#25903]

dotCMS 24.03.22

Available: Mar 25, 2024 Demo starter image: 20230712

We've had dotCMS up on the lift for the last couple of weeks; it comes back down as dotCMS 24.03.22. After some work under the hood, she's purring like a kitten — with some new API functionality, more Page and Template editing horsepower, cleaner log exhaust, and more. We even threw in some routine maintenance and tire rotations at no charge.

Fuzzy dice mirror ornaments cost extra, though; sorry, we have to draw the line somewhere.

Enhancements & Adjustments

  • Templates now also accept Themes specified as paths, rather than only via its folder identifier. [#27803]
  • Added cluster prefixes to facilitate serving multiple dotCMS instances from one Redis database. [#26932]
  • Page API additionally returns content related to the Page asset itself, on calls with a depth of 2. [#27775]
  • Content Type API now accepts a sites query parameter to filter results by one or more Sites. [#27731]
  • Added the ability to trigger Workflow actions while editing a headless page via the Universal Visual Editor. [#27159]

Fixes

  • Scaled back some excessively verbose log entries. [#27910]
  • Corrected role checks when requiring multiple roles to access a resource. [#27909]
  • dotCMS dev container no longer fails to start without a license. [#27759]
  • Variants can no longer render after an Experiment has been ended; attempts to do so will only render the default variant. [#27748]
  • Updated docker compose examples with new flag configuration to prevent possible startup interruptions. [#27740]
  • Left offsets in the Template are now correctly respected by the headless rendering behavior. [#27406]
  • Fixed import behavior on content with Site/Folder fields, which was incorrectly expecting an inode instead of an identifier. [#27361]

Dependencies, Components, Etc.

  • Updated Postgres JDBC driver. The vulnerability this update resolves did not affect dotCMS, as we do not use the setting in question. Still, automated scans that don't know any better were very noisy about this. So… we may as well. [#27894]

dotCMS 24.03.11

Available: Mar 12, 2024 Demo starter image: 20230712

After some of the hulks we've seen on our old, monthly release schedule, dotCMS 24.03.11 is a humbler affair, mostly focused on fixes and adjustments to recently released features, plus our usual assortment of general fixes.

It's kind of cute, in its way.

Enhancements & Adjustments

  • Clicking a link in the Announcements menu will mark all announcements as read. [#27795]
  • Improved usefulness of error messages on the /v1/users endpoint. [#27742]
  • System table loading has been shifted from a purely lazy strategy to an eager preload on startup, plus caching. [#27020]
  • Set Response Headers Rule Action now accepts double quote characters in the value field. [#26987]

Interface

  • The Announcements menu now opens in the same spot as the Notifications menu. [#27685]
  • Fixed link text on the License Needed screen. [#27672]

Fixes

  • Fixed issue related to new Announcements menu that caused Community Edition to be unable to edit Pages or load the content palette. [#27773]
  • Making layout changes in the Template Designer and directly to the Page content no longer causes inconsistencies in content placement within the Template. [#27689]
  • Adjusted $UtilMethods.isImage() method to prevent it from blocking and thereby bogging down a system. [#27883]
  • Fixed error that prevented the system from returning identity provider IDs instead of the Site identifier as part of the ACS URL in a SAML response, even if the properties are configured to behave that way. [#27832]
  • The Site or Folder field was no longer visible in the Relate Content dialog, so we sawed a panel out of its wall, then slid the field in place behind, allowing its light to filter through. It really opens up the room. [#27563]
  • Image fields now correctly receive headers in CSV exports of contentlets. [#26004]
  • Fixed static push publishing to S3 buckets in the us-east-2 region. [#24698]

Development Improvements

  • Altered handling of feature flags to simplify feature rollouts. [#27708]

dotCMS 24.03.01

Available: Mar 1, 2024 Demo starter image: 20230712

dotCMS 24.03.01 bursts through the gate hot on the heels of 24.02.20. How much could have happened in just over a week? Quite a bit — especially when some of those things have been brewing alongside other features.

This one heralds our new Announcements menu, with no small relish; indeed, announcing announcements is the starkest form of metannouncery. So, hark: At the upper right corner of the admin panel, one may espy a small “megaphone” button. Click thee hence, and be informèd on the variety of topics we share — features, events, handy links, and more.

And above all, we promise we will not use this to jangle keys at you at all hours. We know the score; it's a once-in-a-while thing.

Also on deck: Experiments is now enabled by default. It still requires some setup for its back-end architecture; you can contact your customer success manager to get that process started. Either way: Experiments has graduated from its “beta” phase.

We've also included a smattering of fixes, because maintenance is a duty we take seriously enough to perform in perpetuity, hearts aglow with fortitude, humility, and fidelity. Possibly honor, as well, though further testing is needed to confirm.

Enjoy!

Features

  • New Announcements menu shares important information from dotCMS, plus a friendly set of links. [#25733] [#25737]
  • Experiments are now enabled by default. [#27671]

Enhancements & Adjustments

  • The local.dotcms.site certificate has been updated for 2024. [#27384]

Interface

  • Fixed responsive qualities of autocomplete in cases such as Tag fields. [#27421]
  • Notifications dropdown now displays message indicating clearly when there are no new notifications. [#27368]
  • The dropdown menu in the content comparison tool will now display more than 20 versions at a time for comparison. [#26815]

Fixes

  • REST API sets language ID correctly when a new user is created via v1/users endpoint. [#27319]
  • Bundles now display the user who created them to appropriately permissioned users. [#26224]
  • Fixed errors when deleting unpublished bundles via REST API calls. [#26201]
  • Bundles now properly display contents in excess of 20 items when expanded in the Publishing Queue. [#26170]
  • Fixed unresponsive Import button when importing categories via CSV. [#25653]
  • Limited users with appropriate permissions can now create Content Types on the System Host. [#25296]
  • Custom Layouts now always push with their associated Page, even if selecting a Push Publishing filter that does not include Templates. [#22385]

dotCMS 24.02.20

Available: Feb 22, 2024 Demo starter image: 20230712

dotCMS 24.02.20 arrives with another of the many promised features underway: Our dotAI plugin is here to allow you to integrate OpenAI tools in your dotCMS instance. Tired of tagging your own content? Let a machine do it! Generate images, text, and even dotCMS contentlets through a host of new methods — a Velocity viewtool, Workflow Sub-Actions, new API endpoints, and a new developer tool in the admin panel.

In the future, expect to see these tools natively integrated into the core of dotCMS — along with the possibility of using AI providers other than OpenAI. It's

This edition also includes new and improved systems for handling file metadata under the hood, new options for controlling your landing point after signing in, a smarter site selector, dependency updates, and the usual panoply of bug and design fixes.

But mostly we're excited about this plugin, here to remind everyone that it's no longer humanity's world, but a world of cold, algorithmic intellect — inscrutable, unstoppable, and often extremely useful!

Features

  • Announcing our new dotAI plugin, a way to incorporate OpenAI tools into your dotCMS workflows, create semantic searches, and generate tags, content, and more. [#26495] [#27437] [#26505] [#26506]

Enhancements & Adjustments

  • Implemented a chainable metadata provider that incorporates both file system and database elements that allows better performance, better file asset storage routines, and tidier S3 file asset storage. [#24307]
  • Added DOT_REDIRECT_AFTER_LOGIN system property that allows overriding the default redirect after signing in to dotCMS; if you would rather it not send you straight to the admin panel, your wish is this property's command. [#27344]
  • The Site selector's sorting criteria has been altered, now favoring the shortest match first; this avoids the behavior where many subdomains might top the list when you search for the parent domain. [#27447]

Interface

  • Apps list now scrolls properly on small screens. [#26834]
  • Helper dialogs providing information about fields have been updated to prevent content from overflowing their boundaries. [#26602]
  • Fixed several cases where some menu items would overlap in improper ways due to absolute positioning. [#26603]
  • Hid the download button for bundles pushed to static environment, as these are not downloadable. [#26542]
  • In the Content Type editor, the Field list now scrolls all the way to the bottom, instead of bottoming out the scroll bar with a short ways to go. [#27399]
  • Fixed Apps card styles such that the App integration icons aren't covered with a blue circle. [#27445]
  • Changed checkboxes' transparent backgrounds to white. [#27486]

Fixes

  • Updated starter image: The Language Variable Content Type has been flagged in the starter as not being a system type, enabling user creation of this content. [#25891]
  • Corrected typo in a server-side validation error message. [#26729]
  • Fixed an issue with the Template Designer that caused content to be added or removed when removing or adding Containers. [#26413]
  • An Experiment can no longer continue to register events for a time after its scheduled ending date. [#27451]
  • Content Search tool correctly displays checks in checkboxes beside results. [#27503]
  • Fixed issue where contentlets can be uneditable when accessing through Card view in the Content Search. [#27522]
  • Binary Field once again autocompletes the title and file name fields on upload. [#27389]
  • Adding multiple Binary Fields no longer results in error prompts about their respective asset names. [#27523]
  • Repaired uncaught Failed to Fetch exceptions when previewing a Page in Edit Mode with the SEO feature enabled. [#27601]

Dependencies, Components, Etc.

  • Updated XStream library. We did so recently, but we've given it another bump — from 1.4.8 to 1.4.20. [#21060]
  • Upgraded Tomcat from 9.0.60 to 9.0.85. [#26722]

dotCMS 24.01.26

Available: Jan 31, 2024 Demo starter image: 20230712

dotCMS 24.01.26 has been principally discussed internally as a “bugfix” build. However, it's also quite a bit more than this suggests, containing significant groundwork for features not yet released. Some of these are so close, you can hear them scratching at the door in a quiet moment. Soon, they seem to whisper, but in a non-ominous way — more as if to say, “soon you shall have this very lovely treat.” But it is hard to convey so complete a thought through prophetic intuition.

One of these — and a big one, at that — is sort of included in this very release, but in a limited, “beta” way: Experiments, while already present in a recent patch to the current LTS release, is fully present in Agile releases from here on, as well. It's currently locked behind a feature flag, and requires a bit of extra configuration to get started, but Agile customers on dotCMS Cloud should talk to a customer success representative if they want to get it up and running!

Even in its humility, as a moment of quiet before a deluge, it manages to work in several notable optimizations, including faster lookups in large content databases, build and versioning information, and more.

Features

  • New Experiments are available in limited, beta release: Perform A/B testing right on your Pages, see detailed visualizations of the outcomes, and promote the better candidate at a click. Contact a customer success manager to get started!

Enhancements & Adjustments

  • Added indexes to the databases responsible for inode and identifier lookups, improving lookup performance by a factor of as much as 4600x on large sites. [#26926]
  • More detailed build information now visible in System -> Maintenance -> System Info. [#25571]
  • Task detail comments now display in reverse chronological order. [#25729]
  • Implemented a caching mechanism for retrieving content version information. [#26931]
  • Added concurrency control and error handling to API storage classes, as well as safeguards against possible null or runtime exceptions when accessing certain binary or metadata properties. [#26915]
  • editableAsText property now surfaces in metadata for appropriate file types. [#26910]
  • Reserved names are now evaluated in case-insensitive fashion, for improved consistency. [#26796]
  • Changed order of precedence for system properties; environment variables take highest precedence, followed by the system-table database, and lastly the file-based and mostly default dotmarketing-config.properties entries. [#26825]
  • Content-editor dialog now opens in the current language in which the parent Page is being displayed. [#27297]
  • Added a new method to the Page API to retrieve the set of languages in which a Page is available. [#27185]

Fixes

  • Fixed reserved-name protection for identifier and inode. [#22372]
  • All edits to the System Template will create an offshoot layout instead of modifying the template itself. [#26415]
  • Relationship fields' maximum variable lengths have been extended from 35 to 255 characters. [#26605]
  • GraphQL now returns Date & Time fields in the correct, system-standard format. [#26890]
  • Fixed reserved-name protection for identifier and inode. [#22372]
  • Changed default Pub/Sub provider value in line with recently built Pub/Sub architecture. [#26706]
  • Creating new, different-language versions of existing content via API now completes successfully and without error. [#26861]
  • The endpoint to fire Workflows now accepts several date formats as input successfully. [#26704]
  • Fixed improper encoding of Cyrillic URLs via Vanity URL redirect. [#26640]
  • Fixed discrepancy that caused the live version of a binary field to appear as a preview in the contentlet editor instead of the current working version. [#27390]
  • Selecting “All” on the Content Search language filter now correctly shows all language versions of displayed content, rather than only the first language in which a given contentlet was created. [#27039]
  • Publish Date parameter no longer prevents the scheduled content from being exported. [#27007]
    • Also fixes a related issue that prevents export while filtering by a large number of categories.
  • Removing all Content Types from a Container no longer creates difficulties for associating new Content Types to that Container. [#26686]
  • Better error handling, clarity, and resolution when attempting to navigate to the default-language version of a Page, when the Page only exists in a non-default language. [#27281]

Dependencies, Components, Etc.

  • Removed Jetty Server dependencies. [#24847]
  • RedisSessionManager added to Maven build. [#26991]
  • Updated JSON Small and Fast Parser to 2.4.9. [#24849]

Development Improvements

  • Automated procedure of replacing Next Release label with the appropriate version label on release process. [#26547]

dotCMS 23.12.22

Available: Dec 22, 2023 Demo starter image: 20230712

A quickie! Hot on the heels of dotCMS 23.12.21 is dotCMS 23.12.22 — a day later and a dollop wiser. There's only one change: a fix determined to be of crucial importance.

For all other details worth noting, please refer to the release notes of its elder twin.

Fixes

  • A bug was causing the Block Editor to crash when Table blocks were added to the Allowed Blocks list in the field settings. This bug has been summarily squashed, with statistically negligible remorse! [#27101]

dotCMS 23.12.21

Available: Dec 21, 2023 Demo starter image: 20230712

Just in time for the holidays: dotCMS 23.12.21 scrambled down the proverbial chimney and into our Docker base.

The big story this time: A set of modest improvements to the Page Edit Mode interface, complete with new tools for Pages. The Page Viewing Modes of old have been reorganized around Preview and Edit Modes, while Live Mode now exists as a link to preview the published version of the Page — exactly as it would appear in the browser, rather than within the scaffolding of the viewing mode.

The new editor now features updated device type selections, integrated social media card editing, inline links to useful guides, and a set of tools on the right-hand menu to help you evaluate accessibility, security, and more at a glance.

In addition to this, dotCMS 23.12.21 comes with several under-the-hood performance boosts, additional configurability, a trove of fixes, and more.

Oh, and Happy New Year!

Content

  • New tools accessible through the Page editor. [#24862]
  • Added a justified alignment to the Block Editor's bubble menu. [#26421]

Enhancements & Adjustments

  • Debug logging has been added to the SASS compiler's execution process, to better reflect and diagnose any problems it encounters. [#27008]
  • Storage providers have been reconfigured to load lazily to improve system performance. [#26933]
  • Removed the system's behavior of refreshing properties before fetching — a useful tactic for binary installs, but an unnecessary performance drag in the era of containerized instances. [#26896]
  • When uploading a file by URL through the Temp API, the response now includes the MIME type and file extension. [#26340] [#26791]
  • Users can now configure database connection timeouts by way of a new DB_CONNECTION_TIMEOUT configuration property. [#26897]
  • The Template Designer's auto-publish behavior has been toned down to mere auto-save. [#26349]

Interface

  • Refurbished Edit Mode. [#24862]
  • The contentlet editor now shows previews of a variety of uploaded files — images, videos, text files, PDFs, and more — along with dimensions and size. [#26105]
  • Updated styling on User and Sign In As menus. [#25742] [#25743]
  • Page lock switch now has the correct default state when one admin is viewing a page locked by another admin. [#26221]
  • Workflow Actions menus have improved wrapping behaviors. [#26740]
  • Dojo buttons now click appropriately over their whole area, rather than just their text. [#26621]
  • Restored ability to drag and drop rows to the renovated Content Type editor. [#26680]
  • Site Browser now sorts folders by name, even if different from title, and even after a renaming occurs; what's the point of having alphabetical order, otherwise? [#24482]
  • Improved the styling of Date & Time field selectors. [#26408]
  • The Site Browser now correctly remembers which folders had been expanded or collapsed after returning from elsewhere in the admin panel. [#26582]
  • Textarea field height has been corrected; now displays as several times the size of a Text field by default. [#26597]

Fixes

  • PNG filter no longer returns a 404 when acceessing an image. [#26374]
  • Global CORS header now respect configuration changes made through environment variables. [#26391]
  • Pub/Sub architecture now defaults to SSL connections, preventing failures when interfacing with PostgreSQL instances that only accept SSL. [#26481]
  • Removed a bad reference preventing Pages from push publishing correctly from the Pages Tool. [#26451]
  • Pages with a scheduled future date for either publishing or expiration are no longer excluded from Page API responses. [#26480]
  • API link button displays properly in Edit Mode. [#26982]
  • File inclusions updated in Docker images to ensure forms function in Edit Mode. [#26957]
  • Fixed a messaging service error that was preventing proper translation key resolution, affecting multilingual control labels. [#26894]
    • Likewise, better default fallthrough behavior has been implemented for cases in which no translation key is found. [#26660]
  • If you arrive at the content editor from the list provided by the Content Type editor's “View” link, closing that editor will no longer take you to a blank page. [#26787]
  • Adding a contentlet to a Page in Edit Mode will no longer reset the Site Browser's filter to “All Languages.” [#26758]
  • The Block Editor dropdown that allows changing block types now accepts scroll input from the mouse wheel and keyboard, in line with other Block Editor menu scrolling behaviors. [#26694]
  • Fixed issue preventing Edit Mode from locking Pages properly. [#26585]
  • Users with limited permissions can edit Pages and content within their purview, even if they do not have access to the Content Search tool. [#22698]
  • The Workflow API can now archive content successfully. [#22921]
  • Languages API no longer throws 400 errors when duplicates of non-unique keys exist. [#24082]
  • The sysPublishDate field has been restored to the ElasticSearch object; it now indexes and queries properly. [#25233]
  • Relationship fields now respect and reflect the order in which related contentlets are received via Workflow Action. [#26439]
  • The presence of a non-required Site/Folder field in a Content Type no longer causes duplication of contentlets of that type to fail. [#26459]
  • Fixed Content Search filtering behavior with images; now they are found and filtered properly, with no duplicate entries. [#26477]
  • Folder permissions are now properly editable on an individual basis, even if the folder uses a legacy inode. [#26693]
  • Removed the 255-character limit on the validation of text fields; this was likely to affect, for instance, Vanity URLs with very long addresses. [#26774]
  • Restored the catalina.out Velocity log, once again visible in the Log Viewer. [#26934]
  • Fixed GraphQL caching, which now behaves in the expected manner. [#26970]
  • Resolved a bug capping the number of sites the site selector would display to limited-permissions users. [#26980]

Development Improvements

  • New release-candidate automation handles generating and publishing Docker images. [#26296]
  • Improved procedure for downgrading from current trunk build to the latest LTS patch. [#27002]

dotCMS 23.10.24

Available: Oct 27, 2023 Demo starter image: 20230712

Once upon October eerie, as one generates some queries amid the bounteous autumnal cheer and sweet décor, a new release comes tapping, gently rapping at your chamber door: dotCMS 23.10.24.

Nestled within lies a vast trove of adjustments, from new homegrown Pub/Sub infrastructure to improved export options and more informative menus and intuitive sizings — plenty to weigh down your basket. This harvest includes a fresh crop of user interface improvements, and a great many bugs exorcised.

But this treat comes with a slight trick: Beneath its vintage werewolf mask, this update's eyes are fixed on the horizon. That is to say, the list below, though voluminous, only represents about half of the total issues cleared in the last six weeks of development. And the rest? Big things are coming, their howls nearing with each passing night…

Enjoy!

Content

  • On an export, users now have the option to exclude old versions of dotCMS content, outputting only live and working/draft versions. [#25510]

Enhancements & Adjustments

  • To improve security, utilizing the Secrets Viewtool in scripts requires the Scripting User role when saving the relevant VTL file. [#25587]
  • Built new PostgreSQL Pub/Sub listener to replace the impossibl Postgres driver with a vanilla one. This gives us a better diagnostic view of the process, and helps rule out some factors in rare but difficult-to-diagnose cases where the driver fails to connect. [#26019]
  • The Template Designer list view now includes a column listing the Theme associated with the Template. [#25860]
    • This information has also been added to responses to API calls listing Templates. [#26106]
  • By default, the Edit Mode button will always open in “Standard” view, rather than one of the Preview Devices. [#25278]
  • Added support for RelayState parameter in SAML. [#22533]
  • Block Editor fields, WYSIWYG fields, textarea and other fields now fill the editing pane when they are the sole item in a tab. [#26222]

Visual Fixes

  • Fixed styles for the Template dropdown used in creating new pages. [#25918]
  • Whereupon a laundry list of small user interface fixes was attended to in an orderly fashion, fostering pleasant regard. [#25862]
    • And still further tweaks: font sizing, button sizing, capitalization, etc. [#26063]
  • Implemented new designs to input, textarea, and autocomplete components of PrimeNG library. [#25759] [#26056]
  • Sort icons on UI table headings no longer wrap to the next line. [#26366]
  • Removed some unintended wraps in Dojo dropdown searches, as well. [#26435]
  • Fixed form fields for creating a new persona. [#25791]
  • Preview Device visualizations accessible through Page Viewing Modes no longer statically clip in an unhelpful fashion out of view on a smaller window; now they helpfully permit scrolling as appropriate. [#25276]
    • Preview screens, likewise, render the intended sizes, unmodified by any margins created by an unnecessary device representation. [#25815]
    • (Incidentally, we removed those unnecessary device representations, too.)
  • Tag chips no longer jump in place due when you hover over them. “Chips that jump?” you ask, thinking: why, this behavior sounds downright cute and festive. We assure you, it was in fact mildly disconcerting. [#26235]
  • User-defined Block Editor input styles are now properly applied to the field. [#26370]
  • Added a max-height style to Content Types lists in the Containers editor. [#26422]
  • Personas no longer appear in Tag lists with a separate and distinct icon than other tags; a tag is a tag is a tag. [#26159]

Fixes

  • Removed an unnecessary remote call from lib.js. [#25972]
  • Fixed an error preventing hidden secrets from saving properly in the Dot Velocity Secrets App used by the Secrets Viewtool. [#25855]
  • Updated WebP decoding, solving problem whereby some WebP images would not be resizable. [#25861]
  • Corrected a mistyped variable in the Block Editor — chartCount becomes charCount; the Block Editor JSON Schema page has been updated to reflect this. [#25591]
  • The Containers tool now properly lists only Containers from the current site. [#25805]
  • Filtering for Containers and finding none will now display the correct “No results found” message instead of a smooth, featureless expanse of blank white page, like some inverse void — an unfolding pause on the threshold of an answer, stretching unto eternity. Nay, friends; we abjure this blankness with heroic gusto: “No results found”! [#25809]
  • The Container editor interface's list of Content Types no longer includes unintended entries for rows and columns. [#26180]
  • Fixed menu generation of variables within Containers via built-in content objects. [#26348]
  • Velocity2 cache no longer stores empty containers from non-existent language-versions of the content in question, leading to existent language-versions showing up as blank. [#22534]
  • Content API and Elasticsearch queries now properly return metadata keywords. [#25618]
  • Relationship fields now properly update via Workflow API calls. [#24167]
  • Creating a version of content in a second language no longer removes all related content from all language versions of that contentlet. [#25896]
  • MonitorResource no longer throws exceptions if DOT_SYSTEM_STATUS_API_IP_ACL is not set. [#25613]
  • The proxyEditModeURL query parameter now correctly overrides the Edit Mode Anywhere URL — both in the core and the plugin (for older versions). [#26111]
  • Fixed issue causing Push Publishing from the Pages Tool to result in an empty bundle being sent. [#26451]
  • Implemented automatic pruning of filesystem hard links for many-versioned File Assets, following similar rules to our Drop Old Asset Versions routine. This avoids limits to per-file hard links enforced by some filesystems. [#26188]
    • This change additionally includes a new Quartz job that deletes old versions of content on a regular basis — whether contentlets or file assets — by default, according to a number of configurable values. (By default, this only affects past versions more than a year old, in excess of 100 content versions ago.)
  • Suggestion lists for Tag fields now properly collate tags from content deeper in the folder structure, rather than just the site root. [#26131]
  • CMS Admin role can view all bundles, regardless of who created them. [#25127]
  • Uploading multiple files will now respect the language filter when assigning the files a system language, instead of defaulting to English. [#25797]
  • Radio-button fields with the Data Type set to True/False now correctly evaluate values of 0 or 1 as valid boolean values in Elasticsearch queries. [#26046]
  • Elasticsearch queries no longer add :persona to a Tag field that also happens to be a Persona. Whereas the :persona appendage had been stripped of its meaning and function in release 22.03, this is mostly a bit of tidying up. [#26158]
  • Default Site Search index should always be on top of the index list. [#26173]
  • Large numbers of Site Search indexes no longer cause errors when loading the index list. [#24816]
  • Creating a new field with the same name, but different type, than a previously deleted field now correctly generates a new identifier for the field instead of incorrectly reusing the previous one. [#25827]
  • On a Relationship field with the showFields field variable set, Binary and Image fields now properly display thumbnails instead of paths. [#25411]
    • Likewise, if one included field is the title field, the correct value for each title will be displayed, instead of displaying the value of the first in the list across each. [#25870]

Dependencies, Components, Etc.

  • Updated XStream library for XML serialization. [#24845]

dotCMS 23.09.7

Available: Sep 15, 2023 Demo starter image: 20230712

The last few agile releases have hinted at important features being built behind the scenes; now, dotCMS 23.09.7 raises the curtain on one of these, with a completely overhauled Template Designer.

The new and improved designer leans hard into the drag-and-drop paradigm, with easy placement, addition, or removal of elements. Swapping rows is as simple as grabbing and scooting. As before, you can apply CSS classes by rows or columns; better than before, you can define a dropdown list of classes for easy selection. And, perhaps most of all, it just plain feels good.

We could keep going, or we could point you to the Demo Site (admin@dotcms.com:admin), where you can try it out for yourself; an experience is probably worth some arbitrarily large number of words, anyway!

Other changes in 23.09.7 include some improvements to the Block Editor, WYSIWYG fields, the Pages Tool, the JSON viewtool, dependency tweaks, and more. But mostly? It's those glorious, gleaming Templates.

Content

Enhancements & Adjustments

  • Added a feature to map legacy SAML configuration IDs to site IDs, storing this as an App secret on a host, and using it to facilitate login URL routing. [#25636]

Visual Fixes

  • Added on-hover tooltip to the Rules interface's toggle switches. [#21374]

Fixes

  • Fixed an issue that would cause the Block Editor, on Chromium-based browsers, to represent content pasted from a Word document as an image rather than a sequence of blocks. [#25726]
  • The Pages Tool no longer displays erroneous readings on the Last Edited column. [#25626]
  • Pages Tool now scrolls to the top when browsing the list pagination. [#25633]
  • Specified tag_inode table column insert order on an upgrade task to prevent an issue when upgrading between certain patch releases. [#25720]
  • OPTIONS requests to REST APIs no longer generate a 500 error status, and now return proper CORS headers. [#25775]
  • The JSON viewtool now supports all JSON data types, rather than just strings. [#21529]
  • Fixed issue that could newly created content to be “rejected” by a Page not using the default language due to the new content's failure to inherit the correct language value. [#18575]
  • WYSIWYG fields are now once again able to reference images via their virtual path. [#24894]

Dependencies, Components, Etc.

  • Completed initial proof-of-concept testing MS Java 11 for the possibility of upgrade. [#25584]
  • Removed unused dependencies from the JGroups library. [#24852]
  • Superseded by newer Redis and Postgres cache tools, we've removed some Hazelcast jars. [#24851]

dotCMS 23.08.16

Available: Aug 24, 2023 Demo starter image: 20230712

23.08 makes its august presence known with a cluster of features, features for clusters, performant procedures, and sweetening lusters.

Belowdecks, enhancements ranging from database optimizations to better generators continue to tighten the ship, and new session-sharing rigging makes clustering a smoother sail. Meanwhile, above board, interfaces improve, styles sharpen, and barrels of quality-of-life morsels boost morale. (The FDA has not evaluated the claim that they also fight scurvy.)

Yet this sonorous, ponderous phenomenon serves also as harbinger — which is to say, still greater things lie ahead on our course. Stay tuned: Our planned plankwork may yet leave ol' Theseus breathless.

Content

  • Image processor now accepts specified maxima for width and height. [#24900]
  • The Block Editor gains a bit more vertical perspective, now accepting superscript and subscript marks. [#25489]
  • Image Blocks now more clearly display their status as selected elements within the editor, and display a delete button in the properties menu. [#25580]

Enhancements & Adjustments

  • Implemented new session-sharing library; now sessions can be serialized and replicated as needed across servers in a cluster. [#24291] [#24294] [#24990] [#25541]
  • Added the ability to restart not only a dotCMS instance, but an entire cluster. [#22507]
  • Added indexes to Workflow database tables, significantly improving query performance. [#24086]
  • Edit Mode Anywhere now accepts path specifications that allow it to be enabled for one or more sections of a site, rather than the entire site. [#24581]
  • The thumbnail generation process has been made more consistent and efficient across the entire system, with less redundancy. [#23600]
  • The Preview Device Content Type is now defined by default, even in an empty starter. [#24250]
  • A set of probes — for startup, readiness, and liveness — has been defined for dotCMS instances running on Kubernetes. [#24885]
  • A variety of minor changes to the Pages Tool ensue, including:
    • Adding an x icon to clear the search
    • Mouseover visual behavior for bookmarks
    • More fixed and constant page order from queries
    • Et cetera! [#25251]

Visual Fixes

  • Restyled the Publish and Expire date fields to match recent contentlet editor style updates. [#23836]
  • Implemented new designs for button components throughout the user interface. [#25356]
  • Material icons load absolutely instead of relatively in Edit Mode, preventing a rendering error. [#25472]
  • The Content Type editor's header scales better to smaller displays. [#23836]
  • The window for relating content reopens after closure without size or position distortions. [#24954]
  • The Site Search Job Scheduler has been cured of a subtle malady causing rendering failure — some kind of update-induced vitamin deficiency, we might call it. [#25542]
  • Dividing lines have been fixed in the Pages Tool's Create Page modal dialog. [#25635]
  • Visual elements have been improved when using a Move workflow action in the Pages Tool, spacing out icons — a minor de-jumbling. [#25630] [#25632]

Fixes

  • The Pages Tool now allows removal of an arbitrary number of bookmarks without needing to reload the pane. [#25240]
  • Images imported to the Block Editor via external URLs now properly update their internal reference to the dotAsset created in the importation process. [#24629]
  • Improved display for languages included without country codes. [#24988]
  • Narrowed the drag & drop capabilities of Edit Mode to widgets, forms, or contentlets, instead of “literally anything you drag from anywhere, even when it spits out a console error.” [#24727]
  • Updated starter image to classify all URL fields as unique. [#24673]
  • Minor quality-of-life tweak: The + button in the Block Editor no longer adds a / character, and any / character left incomplete at the beginning of a block will likewise be removed when Esc is pressed to exit the menu. [#24674]
  • A corridor of unnecessary calls to the appconfiguration endpoint has been removed. [#25552]
  • Resolved an issue that caused the “preview” action in the content editor to fail for URL-mapped content in languages other than the default. [#25624]
  • The Block Editor's hyperlink search feature now respects non-default languages. [#25567]
  • Mending conflicts with the Integrity Checker will no longer result in null values on contentlet_as_json database fields. [#25229]
  • When changing the language of a piece of content, it will likewise alter its relationships to point to versions of subordinate contentlets in the same language, where available. [#24415]
  • Added a user limitation to the admin panel's nav update event, to limit calls to the menu endpoint and prevent usability issues. [#25556]
  • The date-format mismatch identified in [#25008] had been fixed in API responses, but persisted in Velocity contexts; this fixes it there, too. [#25293]
  • Widgets with WYSIWYG fields set to Code view no longer encounter value length errors when saving. [#21855]
  • Filtering in the site selector dropdown will always prioritize exact matches. [#24921]
  • Pushing a newly created folder as a limited user with appropriate permissions no longer fails. [#25371]
  • When performing a “Publish (all)” on its contents, a folder will no longer flop and bellyache to draw sympathy from the referee. [#25440]
  • Fixed issue preventing operations on Advanced Templates within the Templates tool. [#25490]
  • Removed redundant upgrade task. [#25502]
  • Modified date no longer overrides other Site Browser sorting criteria. [#25680]
  • Fixed pagination when fetching related content via REST endpoint. [#25666]

Development Improvements

  • CICD tests have been adapted to Maven transition, and optimized for storage. [#25320]
  • Improved SonarQube coverage of tests for core-web applications and libraries. [#25360]
  • Added trunk-based release automation. [#25497]

Dependencies, Components, Etc.

  • ReloadableServletContainer has been removed; its functionality has been encapsulated elsewhere. [#24970]
  • Updated H2 database engine. [#24846]
  • Updated Java to 11.0.17 in Docker. [#25551]

dotCMS 23.07

Available: Jul 19, 2023 Demo starter image: 20230518

dotCMS 23.07 arrives with a tune in its heart — a rhythm and a vision. The first version of dotCMS to be cut from a trunk-based development model, this release marks an important change in the way we do things behind the scenes. It also includes groundwork for several new major features, warming up for their turn on the stage.

But this one is not just an opening act: We're continuing to refine look and feel of dotCMS, with quality-of-life gains, updated layouts, better graphics handling, tuned-up styling, and the steady beat of fixes.

And the show wouldn't be complete without at least one blazing solo: The new Secrets Viewtool allows you to pass sensitive data, such as a token, to Velocity — without ever including that data in the VTL file.

With 23.07, as with any good jazz: “It's the notes you don't play.”

Enhancements & Adjustments

Visual Fixes

  • Shifted the search input field to the left in the Content Search, placing it closer to the filter options. [#24834]
  • We have taken our young Content Palette to task on its responsive scaling behavior; it has written a rote-but-sincere letter of apology, and now minds its manners on smaller screens. [#24260]
  • Updated the content field labeling style, and ensured consistent application throughout the admin panel. [#23635]
  • Added a default row to new Templates within the Template Builder. [#25392]
  • Restored white-label color selectors to the user interface. [#24830]
  • Theme is no longer labeled as a required field in the Template builder. [#25381]
  • Improved WebP support for m1 Macs. [#25172]
  • Improved SVG handling; we can now generate thumbnails and image size data for SVG files, in line with the treatment of other graphics. [#25247]

Fixes

  • For those who prefer Podman over Docker: File assets now upload properly to dotCMS containers managed via Podman. [#24937]
  • Tightened up the Block Editor's default rendering behavior, preventing the addition of a trailing space after marks and hyperlinks. [#24406]
  • The Block Editor's content & asset search is no longer intimidated into silence by certain non-alphanumeric character inputs. Dash all you want; it won't flinch. [#25230]
  • The current contentlet no longer appears in the Block Editor's contentlet searches, to prevent embedding recursive embedding. (This can be thought of as a finishing touch to safeguards added in 23.06, which had already safely disarmed Russell's Paradox.) [#24797]
  • Fixed an error preventing the display of a contentlet containing an empty Block Editor field. [#25121]
  • The presence or absence of a trailing slash in URLs no longer yields a different result, such as a 404 response code. [#23276]
  • Template and Layout API will now observe the system theme as its fallback value where no theme is specified. [#25379]
  • In the Job Scheduler, the default Site Search index is specified with (Default) appended to its alias. This caused the Job Scheduler to throw an error when adding a new reindex to the schedule, until that additional text was manually cleared. Well, that snag has been fixed. [#24176]
  • Corrected a Javascript console error preventing the contextual menu from functioning when right-clicking a role name in the Roles & Tools tool. [#24424]

    Note: If you are using a version affected by this bug, you can still use the operations of that menu through the + button's dropdown menu while the role is selected.

  • The Copy URL button at the top of the page viewing mode interfaces now copies the whole URL, and not just the path. [#24683]
  • Restored behavior whereby the file browser dialog shows files in the default language as a fallback if they do not exist in the requested language. [#24444]
  • When using the tasks page's “hamburger” button (⋮) menu, the Publish action now fires directly — i.e., the expected behavior — instead of opening the Push Publish dialog. [#23395]
  • Creating content in more than two successive languages without leaving the content editor no longer throws an error. [#24286]
  • Folders no longer fail to push publish if they contain archived content. [#24705]
  • Push publishing will now properly respect timezone selections made from the dialog in the Publishing Queue's Bundles tab. [#25037]
  • Resolved an issue that caused content to push publish to a working (draft) state instead of a live state in the specific case where an alternate-language version of that same content exists in an archived state. (That sentence went through like eight drafts; you need to take a deep breath before summarizing a bug this particular.) [#25044]
  • getResizeUri method now returns valid URLS for a resized binary image — no more double-slash shenanigans. [#25203]
  • NavTool's getNav method now returns only published links. [#24829]
  • Stopped Sites now correctly display on the Site Selector; only archived Sites are hidden. [#25120]
  • Fixed Site Browser sorting; the default pattern is to show folders first, alphabetically, and then all other items in the current folder by descending modified date. [#25136]
  • The image processor now retains and respects a certain user-specified resampling parameter (resize_ro) through the entire method call, rather than reverting to a default due to a missing link in the chain. [#25193]
  • Hammered out some quirks in the handling of editing Page-specific layouts when a Template is already in use, which was causing Templates to be overwritten by layouts. Now:
    • Changing the layout of a Page that is the sole user of a Template will edit that Template;
    • Changing the layout of a Page that is one of several users of a given Template will create a copy and treat it as an anonymous layout. [#25227]
  • WYSIWYG fields now accept images regardless of whether the content is in the default language; after all, even with language barriers, it's not hard to convey that you want to have your picture taken. [#25258]
  • Mending conflicts with the Integrity Checker will no longer result in null values on certain database fields. [#25224]
  • The presence of language query parameters was interfering with attempts to correctly render images when performing a static Push Publish. We've added a workaround to ensure all images render statically in a multilingual context. [#25217]

Development Improvements

  • Production model shifted to trunk-based development.

Dependencies, Components, Etc.

  • Removing old Dojo resources from packaging. [#24840]
  • Removing old jaxws libraries no longer in use. [#24843]
  • We continue to shift away from Gradle, toward Maven. [#25030]

dotCMS 23.06

Available: Jun 14, 2023 Demo starter image: 20230518

Whether you're pushing more pages than Tolstoy, or you mainly focus on a few high-value entries, dotCMS 23.06 has a new major feature for you: the Pages Tool. This new synoptic hub for all things pagèd — whether traditional singletons or vast volumes of URL-Mapped content — lets you create, sort, and filter pages; quickly view them in one of the standard viewing modes; or even bookmark the ones you'll be using regularly. Either way, you've got a whole new handhold — if not a desk — for your daily page-slinging experience.

While you're here scanning the jacket: 23.06 also introduces useful new API features, stylistic improvements, a battery of fixes, and more.

Finally, ⚠️ MSSQL database support is deprecated ⚠️; from 23.06 onward, all active development will assume a PostgreSQL database. Accordingly, the 23.01.x series will be the last LTS releases to support MSSQL.

Come turn a page with us!

Content

  • Pages & Favorites: A new tool under Site → Pages allows you to sort, filter, bookmark, and manage all of your site's pages. [#22343]
  • The Page API now accepts a depth parameter, permitting access to related content through contentlets embedded on a Page. [#18123]
  • When editing a contentlet in Edit Mode, 22.05 introduced the ability to choose to save changes for that piece of content across all Pages on which it appears, or just on the current one. This functionality has been extended; the same prompt will also surface when performing inline edits, rather than just via the content-editing dialog. [#24297]
  • Using the Workflow API, it is now possible to send a string as the content of a Binary Field, allowing the creation of a text file in a single call without requiring an upload. [#24301]

Enhancements & Adjustments

  • Improved the design of the user menu in the upper-right corner of the user interface. [#23678]
  • Removed the “User Searchable” checkbox from the Host field; as of 23.05, Host fields are always indexed and searchable in the back end. Parsimony and elegance, like. [#24290]
  • Continued the renovation of the Content Type designer, further improving its look and feel. [#23816]
  • Created new category of data upgrade tasks to solve data issues using existing APIs; these will run late in the startup process to avoid conflicts. [#24681]
  • Rewrote ThreadUtils to trim methods with no use. Like I was saying: parsimony and elegance. [#24714]

Fixes

  • Fixed issue preventing content with double quotes in its title from displaying properly in a Relationship field. [#23396]
  • Block Editor now no longer allows recursively adding a contentlet to itself, which could render the content unrecoverable. [#23846]
  • WYSIWYG Editor no longer throws errors when inserting an image with a different default site language than the editor. [#24285]
  • Fixed bug preventing a user with an ID length of more than 36 characters from locking content. [#24133]
  • Updated the version of pg_dump used in the Docker images to prevent a version mismatch error when exporting the database. [#24689]
  • Removed a wide assortment of unnecessary cache invalidations when saving and/or updating content. This also counts as a performance optimization, though we shall list it as a fix for reasons of honor. [#24781]
    • On the other hand, a slightly more assertive cache invalidation was implemented to ensure newly inserted contentlets are more readily available on searches. [#25076]
  • Rooted out a bug preventing permissions-limited users from firing certain Workflow actions, even if their individual permissions were adequate to the task and Content Type. We both see and cosign that adequacy; flex it freely! [#24801]
  • Fixed a date-format mismatch between an old format used in some places and a new one in others. [#25008]
  • Deleting a Content Type with large troves of content — or performing bulk actions on same — should now proceed more swiftly, and with no chance of a timeout. [#19101]
  • Created a background task to ensure the proper conversion of legacy content to the contentlet_as_JSON schema for those upgrading from years-old versions. [#24093] [#24969]
  • Added check to prevent Date fields from being deleted while they're in use as the Publish or Expire Date for a Content Type; this prevents misbehavior related to lingering references to a nonexistent field. Having burned some sage and sprinkled some holy water, we have warded the content against such ghostly things. [#24266]
  • Beefed up URL-Mapped content resiliency; now, if a detail page is deleted or otherwise broken, and/or a URL map pattern is absent for a given Content Type, you'll still be able to view those pages. Of course, you'll want to fix that situation, but at least you're not throwing 404s in the meantime. [#24490]
  • Added keepalive calls to prevent a case where the Log Viewer connection could time out. [#24775]
  • starter.zip files should now import and export properly in all cases. [#24874]
  • History tab now loads versions in reverse chronological order. [#25079]
  • For a little while, Apps were showing doubled site lists; this had to do with a disconnect between the Apps paginator and the API calls that returned site lists. This has been rectified. [#25169]
  • Fixed an issue preventing Templates from saving. [#25157] [#25212] [#25219]
  • Restored the ability to select System Host in non-required Host fields. [#24908]

Development Improvements

  • We've implemented the first phase of our shift to Maven in production; now Maven drives all Java dependencies.

Dependencies, Components, Etc.

  • Upgraded Apache Tika metadata toolkit to 2.7.0. [#23934][#24051]

dotCMS 23.05

Available: May 1, 2023 Demo starter image: 20230112

22.05 is out and about, bright and early in its birth month. Spring has sprung — in the Northern Hemisphere, at least — and blossoming alongside the flowers are some keen new features. And, in keeping with the vibrancy of the season, this one has renovations aplenty, transitioning from Dojo to newer Angular components throughout the user interface.

The Block Editor field continues to evolve, now boasting its own compare-tool implementation and better interface support for video, including immediate embedding of YouTube links. A slew of optimizations shorten load times all over, from vanity URLs to metadata retrieval. Edit Mode now allows you to save content per Page or for all Pages, and Host fields are more helpful in giving directions. And lo, we've come bearing many fixes — roughly, a bit of Spring cleaning.

It's a big bouquet, but we think you've earned it. Enjoy!

Content

  • Block Editor content has been implemented within the compare tool for diff-style viewing alongside past versions. [#24365]
  • Block Editor fields that had been converted from WYSIWYG fields save all changes correctly. [#24565]
  • Further video block development: Videos can now be added to Block Editor video blocks from elsewhere within the dotCMS instance, or by drag and drop or copy/paste from a local system. Finally, default video rendering settings now live in dotVideo.vtl, alongside other rendering defaults in /velocity/static/storyblock/ [#23436] [#24445] [#24465]
  • Added YouTube support to the Block Editor. Drop a link either in an empty block or the Video URL tab of a video block to embed a YouTube video. [#24455]
  • You can now create a Custom Content Tool from within the Content Type editor, via a button on the top right. [#22724]

Enhancements & Adjustments

  • Variables added in a container via the Add Variable button now use the $dotContentMap built-in content object. [#23006]
  • You can now enable multiple multiple user IDs to possess the same email address by setting the environment variable DOT_SAML_ALLOWUSERSWITHDIFFID_REPEATEDEMAIL to true. [#24138]
  • In Edit Mode, when editing content that appears on multiple pages, a new dialog will confirm whether you want change the content for the current page only, or all pages. [#23225]
  • Significantly shortened startup time by optimizing vanity URL loading procedures. [#23982]
  • The Host field is now a filterable parameter on the Content Search screen. [#24194]
  • Improved performance of fetching metadata from databases. [#22779]
  • All APIs now provide pagination as part of the data payload. This allows use through proxies that may strip away headers — the place said information was previously stored. [#23870]
  • The SASS compiler has returned to minifying CSS output by default. [#24227]
  • Changed the way JSON Web Tokens are handled, removing an issuer check and replacing it with additional reliance on jwt_secret.dat. This makes possible the use of the same JWT tokens across multiple environments. [#24395]
  • Added additional logging options via environment variables. [#24067]
  • Added two-second delay on invalid login — i.e., a nonexistent user — similar to the behavior on receiving an incorrect password. [#23903]

Visual Fixes

  • We've improved the look of the toolbar buttons at the top of the Content Type menu. [#23638]
  • The Block Editor's + button is now a bit less furtive, permanently visible beside any empty block with user focus. [#23687]
  • Corrected the proportions on the compare tool for better visual comparison; after careful consideration, we decided the this was neither the time nor the place for a funhouse mirror. [#24109]
  • Improved spacing, positioning, and appearance throughout the user interface — including the Site Browser, the Container tool, the Content Type creator, and more. [#24654] [#22486] [#23816]
  • Host fields now show the full content, instead of just the containing folder's name — sure to be a relief to those with a bunch of common-name subdirectories like vtl or images. [#24317]
  • Site Selector dropdowns are now a bit more clear about which site is selected. No more confusing gray backgrounds; it's either bold or it's not. [#23505]
  • Removed nonfunctional/vestigial “resize” controls beside images on the content-editing pane. [#24195]
  • Corrected Caffine Memory Cache TTL displays; the default TTL will now display as infinity. While not technically true, the practical difference is moot, as few systems experience ~68 years of uptime. [#24199]
  • Fixed action button placement on images and video addition. [#24594]

Development Improvements

  • Adjusted pipelines to remove the requirement to generate an “enterprise” jar — another of many steps in the long march toward the purest ideal of monorepo status. [#24760]
  • The release process is evolving to test upgradability from a number of previous LTS editions to the latest release. [#24774]

Fixes

  • Fixed PostgreSQL error observed in upgrades from 22.03 LTS. [#24380]
  • The Block Editor's code block no longer triggers Block Editor menu events, such as the suggestion popup if / is the first character typed. [#24361]
  • The Content Palette no longer includes archived content. [#24292]
  • The arrow buttons in a container's Max Contents field now correctly update the total; manually typing a value is still something you can do, but not something you have to do. [#24163]
  • Discovered and vanquished a race condition with the potential to crash the reindexing process for sites with a lot of Content Types. [#23651]
  • Modifying a template no longer removes content from page columns, unless the column or container was expressly removed. [#23181]
  • OSGi framework has been adjusted to restart less often, in many cases not needing to at all. [#24468]
  • Improved debouncing on undo/redo operations in the Block Editor; the number of undo or redo steps should now more or less conform to expectation. [#24716]
  • Clicking on a file-based Container in the Site Browser now takes you to the correct folder. [#23798] [#24644]
  • File Browser now properly displays multilingual content, not limited by the configured user-interface language. [#24358]
  • Fixed File Browser display behavior; now displays Page and file assets in expected fasion. [#24272]
  • Copying a folder that contains Pages with both live and draft versions will no longer result in an error; duplicate your folders fearlessly. [#24441]
  • While we appreciated all the extra traffic from Minecraft enthusiasts, we must regretfully announce that mineType was a mere typo of mimeType in the Block Editor's video node. This has been corrected. [#24556]
  • Widgets now correctly display in non-default languages on working (i.e., draft) versions of Pages. [#24059]
  • Language parameters update correctly when redirecting via Rule. [#24158]
  • Leaving the “publishing” Date/time field blank on content preset for scheduled publishing, no longer causes that content to re-publish if unpublished. We determined this behavior was simply too silly. [#24344]
  • The job scheduler tab once again loads correctly in the Site Search developer tool. [#24524]
  • Fixed an update task that absolutizes container paths: It erroneously added the site to the same path multiple times in certain situations. Well, not anymore. [#24436]
  • Nested dotcache block caches no longer interfere with page loading by caching an incorrect context. [#24247]
  • Fixed a bug interfering with the ability to reorder content in Edit Mode. [#24678]
  • Improved publishing procedures for environments with many locales and relationships, preventing slowdowns. This sounds like it should be under Enhancements, but those slowdowns could get pretty significant. So, here we are. [#24245]
  • Resolved errors resulting from blanking an existing date field or checking “Never” on an expiration date field. [#22667] [#22350]

    Note: Originally appeared in 23.01; the issue was subsequently reopened and underwent a bit more work.

  • Significant fixes to URL-mapped content, adding resilience in the face of broken or absent detail pages and addressing several error cases directly. [#24490]

Breaking Changes

  • Fixed a permission error that prevented a user with a custom role with appropriate permissions from using Workflow API operations. While this will not change observed behaviors, permissions-based fixes are generally classed as breaking changes due to how they may affect the hypothetical user working around them. [#23199]
  • Permissions have undergone overall changes on the back end, improving comprehensiveness and error handling. [#22993]

dotCMS 23.03

Available: Mar 31, 2023 Demo starter image: 20230112

In at the buzzer for March — over the transom, as we might say in some quarters — dotCMS 23.03 is as agile as ever! This edition boasts some cool new features, some hot fixes, and some comfy quality-of-life improvements. Extend the Block Editor, flip to Edit Mode from URL-Mapped content with ease, and more.

Celebrate the waning hours of March with this gem, formed in its myriad and protracted pressures!

Content

  • You can now create your own custom remote extensions for the Block Editor. The field is now “hackable” — in the good way! [#24032] [#23938] [#23865] [#24031]
  • Added video blocks to the Block Editor. Import videos either from your dotCMS file system, from your local files, or elsewhere online, and situate them within your Block Editor field's content. These videos are stored as full dotAssets, and can be reused freely. [#23863] [#24016] [#23861] [#24040]
  • Added a button to preview URL-Mapped content in Edit Mode; it can be accessed from the task menu when editing a contentlet. [#23955]

Enhancements & Adjustments

  • S3Client can now be configured to interact with Simple Storage Service (S3) object stores other than Amazon S3. [#22151]
  • The Content Type API now accepts host names and folder paths as arguments instead of requiring a UUID for both host and folder when creating a Content Type. [#23239]
  • Increased number of password hash iterations from 20,000 to 600,000, in line with current OWASP recommendations for a SHA256 algorithm. [#23915]
  • Window scrolling is frozen while the Block Editor's block selector has cursor focus. [#23977]

Visual Fixes

  • Form labels have been standardized across the platform, unifying styles between legacy and new Angular components. [#23683]

Fixes

  • CSS files now push publish to S3 buckets without the risk of compilation error. [#24351]
  • A required Block Editor field no longer validates and saves an empty field if content is added and then removed. [#24263]
  • Corrected an upgrade task that was misbehaving — all systems green. [#24026]
  • Fixed issue preventing the addition of images to WYSIWYG fields from certain folders. [#23926]
  • Image fields now filter properly according to user input. [#23449]
  • Several image editor fixes ensue! [#23882]
    • Crop zones now resize correctly in the image editor. [#23925]
    • The Clip button has been repaired, and now properly stores the data to the platform clipboard. (Note that this is separate from the system clipboard, and is accessed through separate dotCMS controls, such as the WYSIWYG Clipboard button.) [#23927]
    • The Download button is now once more hunky-dory. [#23924]
  • Fixed the retrieval of Personas via Lucene query; persona tags neither require, nor yield different results with, :persona appended to the tag name. Kind of an oddball issue, but settled is settled! [#22872]
  • Permissions tabs — appearing in folder properties, contentlets, templates, etc. — no longer fail to load. [#23889]
  • Solved rendering issue with fields converted from WYSIWYG to Block Editor that contain code. [#24422] [#24230]
  • Fixed an issue preventing saving content in a secondary language while a working/draft version exists in the default language. [#23280]
  • A recent commit broke the contentlet search within the Edit Mode Content Palette; this one fixes it. [#24308]
  • Gradle now resolves current git hash correctly when building. [#23901]
  • Fixed issues reported by SonarQube, including reported AJAX vulnerability. [#23900]

Breaking Changes

  • Page and Template REST APIs may have been returning an excessive amount of relatively low-value information. This can be messy to sift through and harmful to performance, so we've scaled it back a bit. Out of an abundance of caution this is being listed as a breaking change, even though it may not actually cause an issue for anyone. [#23203]
  • The dotcache directive no longer caches objects declared with set directive within the block; caching of generic objects should be handled manually through the Dotcache viewtool. Note that this is a breaking change if upgrading from 23.01, which introduced the behavior, but not for any previous version — that is, it effectively unbreaks the change. [#24075]

    Note: This change was erroneously attributed to 23.02 at its release; the changed had been merged into the master branch by that time, but had not been included in the subsequent release. Consarn it!


dotCMS 23.02

Available: Feb 21, 2023 Demo starter image: 20230112

dotCMS 23.02's highlights include a new condition for Rules based on the HTTP method used, the ability to change S3 API endpoint targets, and improvements to the Content Search user interface. 23.02 also features significant maintenance and bug-squashing efforts. These latter entries are perhaps less glamorous, but certainly no less important or virtuous. And virtue, as they say, is its own reward.

Lastly, our own internal workflows continue to evolve and improve in tandem with the product, as documented below. We hope you'll enjoy the result!

Enhancements & Adjustments

  • New Rule condition allows a Rule to fire based on the HTTP method used. [#23209]
  • Users may now edit the labels of system fields on any Content Type. [#22901]
  • The Page API can now additionally return a count of the number of Pages in which a piece of content appears. [#23223]
  • While editing an existing piece of content, the editor will display a link to the relevant Content Type under the Workflow summary. [#23231]
  • The Block Editor's image-block popup now includes a tab for uploading a local file. [#23237]
  • The top bar of the Content Search has been reorganized for better visibility and distribution. On page load, the search input field receives focus. These little details matter! [#23601]
  • In a follow-up to our previous effort to make system fields in Base Content Types removable by users, we're extending the process so it'll do likewise to user-created variants. [#23736]
  • The paragraph block has been removed from the configurable Allowed Blocks list, to better convey its inviolable “default block” status. [#23764]
  • The logs have fewer spammy messages to let you know that no apps require ACCESS_TOKEN renewal. The logs cover a lot of ground, so it's important to maintain a decent signal-to-noise ratio. [#23781]
  • S3Client can now be configured to interact with Simple Storage Service (S3) object stores other than Amazon S3. [#22151]
  • Image permits, which control the number of threads dotCMS's image editor can occupy at once, have been made more permissive through better use of caching. They are now less likely to cap out on routine operations, without compromising their intended purpose of easing system resource burdens. [#23807]

Visual Fixes

  • Content Type layouts in excess of three columns now distribute their contents more evenly on smaller displays. [#23644]
  • Reinstated title bar to query dialogs on content search screen. Repaired their styling, too. [#23554] [#23739]
  • Content Palette no longer occasionally spits out an empty, duplicate half-pane. [#24084]

Development Improvements

  • Postman tests are now run in parallel, segmented into smaller groups. [#23330]
  • Added Push Publishing test fixes for Postman covering sender collection and graceful failure when it cannot determine a result. [#23766][#23330]
  • Created automation to remove published dotCMS CI/CD image used for Postman tests. [#23808]
  • Maven build no longer adversely impacts a local npm registry. [#23692]
  • SonarQube is now run on every pull request to core-web. [#23696][#23779]
  • Simplified integration of Docker images considered dependencies via Github Container Registry. [#23808]

Fixes

  • Whitelisting a block on a Block Editor field will no longer result in error when adding images to that field. [#23920]
  • Corrected the exclusion of two asset directories from back-end exports; both are now present and accounted for. [#23810]
  • Fetching language keys for an unsupported language now falls back to default administrative language configured from the System → Configuration tool, rather than the default content language configured through the Types & Tags → Languages tool. [#23777]
  • Navigation no longer shows duplicate results — both requested and default languages — when requesting multilingual content in the non-default language. [#23890]
  • Resolved issue preventing latest upgrade for MSSQL database users. [#23761]
  • Downloading a starter from the back end is now a streamed process that begins as the assets are being incorporated into an archive. This prevents timeouts under certain administrative setups — such as running dotCMS behind a load balancer — and limits the danger of the destination container over-allocating space in the case of multiple requests. That's a mouthful, but two birds with one stone merits a yarn. [#23733]
  • Unnecessary XML encoding has been removed from environmental variables that originate from the Tomcat access log file. [#23669]
  • Categories are no longer removed from content mass-imported via CSV file. [#23440]
  • Adding the same Content Type to a custom content tool twice will now display a more descriptive error message. [#22411]
  • Push Publishing filters now save to the correct subfolder with the correct filename; a recent update was missing a trailing slash, causing them to be saved in the parent folder with the subfolder's name appended to the filenames. [#23578]
  • Mended typo in the Checkbox Field's values property, which is now callable in the Velocity content object either through the .values or .value properties, instead of just the latter. [#22049]

Breaking Changes

  • The user API endpoint at /api/v1/users/filter has been refactored to take query strings instead of path parameters. [#20529]

dotCMS 23.01

Available: Jan 12, 2023 Demo starter image: 20221010

dotCMS 23.01 rockets out of the gate with an array of new features!

The Block Editor continues to evolve; it now supports Table blocks, allows inline editing in Edit Mode, and comes equipped with a new image-search component. Our Velocity toolbelt has gained some important new gizmos: all-purpose object caches, and a brand-new Velocity Playground developer tool. Need to access file metadata? Now you can do it through API calls.

This version features a legion of user interface improvements, a throng of under-the-hood fixes, a handful of component updates, and, as usual, more. Happy New Year, and bon appetit.

Content

  • Tables! The Block Editor now has a Table block — the newest sail on our flagship content editor. [#21991]
  • Simplified image import from the Block Editor: Pasting an image link into a new block displays the image, and a button allows one-click importation as a dotAsset. [#22194]
  • Selecting “Images” from the Block Editor displays a new dialog that allows easy selection of images from within dotCMS, or via URL. [#23235] [#23238]
  • While in Edit Mode, Block Editor fields can be edited inline through a swanky new modal interface. [#22487]

    Note: This feature was announced and documented circa the 22.12 release, but was not yet functional; 23.01 is its first effective release.

Enhancements & Adjustments

  • The new $dotcache Viewtool, a generic object cache, permits a wide assortment of highly convenient caching and storage behaviors! [#23037] [#23430] [#23431] [#23432] [#23575]

    Note: This also alters the behavior of the dotcache directive; see Breaking Changes.

  • We've built a new Velocity Playground developer tool, allowing users to easily test and preview Velocity snippets before deployment. Debug with gusto — maybe even élan! [#23610]
  • We've added an interface to the Block Editor settings to allow configuration of whitelisted blocks without the use of field variables. [#22908]
  • Metadata for Binary Fields is now exposed through API responses. [#23552]
  • New /api/v1/page/copyContent endpoint allows copying of content in the context of a page, duplicating the object and editing the tree entry. In other words, this is a “Save as Copy” method that allows content to be modified for a single page rather than all pages. [#23224]
    • Added in the same breath: New /api/v1/page/{pageIdentifier}/_deepcopy endpoint allows a “deep copy” of an entire page — copying both the page itself and all content contained therein.
  • The $dotContentMap built-in content object is now utilized in shortcut dialogs in the Container interface. [#23248]
  • In the traditional interface, clicking on an entry in the Categories menu now provides a list of child categories, for improved navigation. [#23252]
  • Enabled further support for undo and redo operations in the Block Editor. [#22903]
  • Made thumbnails a bit less noisy in the logs. [#23757]
  • Added DOT_IMAGE_GENERATION_SIMULTANEOUS_REQUESTS environment variable to limit the maximum number of threads image processing can consume. [#23384]

Visual Fixes

  • Significant cleanup operations and general improvements have been undertaken on the user interface for Containers. Error messages, toasts, layout elements, context menus, and more have received some TLC for a cleaner and smoother user experience. [#23141] [#23142] [#23143] [#23144] [#23146] [#23200]
  • “Break lines, not layouts!” The field variable interface now handles lengthy keys and values more gracefully; long text now wraps to additional lines within invariant columns. This supersedes the old behavior of “plunging into chaos.” [#23119]
  • Fixed cases of back-end menu tools' text not displaying. [#23341]
  • Slight adjustment to the styling of cards in the Apps section. [#23367]
  • “Paper” layering styles (e.g., gaps and drop-shadows) removed from back end, reclaiming some space. [#23369]
  • Push publishing queue displays all bundles, even when one or more fail to publish. [#23062]
  • Removed extraneous descriptive text from dropdowns in Edit Mode. [#23406]
  • Context menus called at the bottom of a menu list no longer break off. [#23461]
  • Date and Date/Time fields now highlight the current date. [#23551]
  • Removed visual duplication of the content palette while Edit Mode is loading. [#23619]

Dependencies, Components, Etc.

  • Updated GNU General Public License text. [#23352]
  • PDFBox library updated to 2.0.27. [#23384-comment]
  • Stabilized internal Tomcat path to prevent breaking changes on minor-version updates. [#23407]
  • Removed unused jsass and Apache commons text libraries, to avoid flags associated with the text4shell vulnerability. Although dotCMS was never susceptible to said vulnerability, we thought it best to avoid even the suggestion of it. [#23475]
  • Upgraded the PostgreSQL JDBC driver. As with the previous bullet point, this resolves a vulnerability that did not strictly affect dotCMS. [#23531]

    Note: See Breaking Changes.

  • We've carved npm out of the front-end build process and wrapped the latter in a Maven module, as a first step toward using Maven for the full build. [#23556]

Development Improvements

  • Resolved vulnerabilities and identified by SonarQube. [#23405]
  • Updated GitHub Actions code in response to command deprecations. [#23332]

Fixes

  • Push publishing to S3 buckets now works in all major regions, regardless of which Signature Version is supported behind the scenes. [#22449]
  • Fixed erroneous difference between the Key/Value field's import and export formatting. [#22582]
  • Image selector displays correct totals and respects language selection. [#22729]
  • /api/v1/containers endpoint correctly updates a Container when maxContentlets is set to 0. [#23147]
  • Large bulk updates via import are now faster, via adjustments to relationship-field validation operations. Timeout troubles, begone! [#23015]
  • Fixed the sort-order parameter, orderby, for Categories; they now sort as specified. [#23253]
  • Performing a health check via /api/v1/system-status now cleans up after itself, removing all created folders. [#23267]
  • Restored PDF and video previews in back-end content editor. [#23359]
  • Resource consumption has been restricted on PDF thumbnail generation, decreasing system footprint and preventing out-of-memory exceptions. [#23384]
  • Resolved issue where certain access-limited users could not switch between multiple sites on the back end. This was due to a permission correspondence between the necessary endpoint and the Sites tool, which may not be visible to the limited user. [#23474]
  • Fixed error preventing the addition of a Container to an Advanced Template. [#23557]
  • Updated internal IP blacklists to include AWS metadata services. [#23481]
  • URI normalization filter has been made less aggressive, and now plays nicely with slashes and equals signs. [#22498]

Breaking Changes

  • Removed unused MySQL and Oracle drivers; users relying on either of these will need to provide their own drivers in their plugins. [#23531-comment]
  • The new $dotcache Viewtool (see Enhancements) has altered the behavior of the prior dotcache directive. Previously, dotcache blocks cached fully rendered versions of their contents, omitting various Velocity state operations in the process. Now, set directives within dotcache blocks are “wrapped” in the new generic object cache routines, allowing declared objects to persist on cache hit. This may interfere with a small, niche set of use-cases, which can still be addressed via the viewtool.
    • As of either 23.02 or 23.01.1 LTS, this change has been un-broken, and Velocity context data is once again not cached within a dotcache block by default. [#24075]

On this page

×

We Dig Feedback

Selected excerpt:

×