Changelogs

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

dotCMS 22.12

Available: Dec 9, 2022 Demo starter image: 20221010

Originally planned to be released as 22.11, dotCMS's version 22.12 reaffirms our position vis-a-vis the classic dilemma: “Done fast, or done right?” This release includes a variety of important fixes and enhancements — and in a few cases, both at once — all under an ever-expanding regime of quality-assurance testing.

Whether you're looking for an easy way to keep rich, structured content up to date; tools to keep tabs on content length for SEO or audience tailoring; better logging; or just an all-around richer and more stable user experience, consider upgrading to 22.12!

Note: Upgrading to 22.12 or later from any pre-22.12 version requires a full reindexing of content. This is a simple, pushbutton procedure, but may take some time on very large sites.

Content

  • Block Editor image blocks now provide more tailored support to dotImages, HTML images, etc. Among other things, this improves the process of WYSIWYG-to-Block-Editor conversion. [#22832]
  • When performing a “shallow push” — i.e., Push Publishing with the “Only Selected Items” filter selected — tree entries are included in the push. This renders the behavior more intuitive in certain cases. [#18742]
  • Contentlets placed in a Block Editor field now remain updated if the referenced content changes. This feature syncs the block-contentlet with that of 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]

    Note: This item originally premiered as a feature of 22.10; however, because of an oversight, the feature was not operational in that release. 22.12 is therefore its first effective release.

  • Blocks now have a “Delete” button — that is, one of these dealies now appears in the bubble menu. [#22881]
  • Block Editors can now display character count, word count, and estimated reading time figures below the field. This can be optionally disabled — or a character limit can be configured — through new field variables. [#22904]

Enhancements & Adjustments

  • The log viewer has been rebuilt. While this represents an enhancement overall by way of better performance and reliability, this item represents a number of bugfixes as well.
  • Certain System fields in certain Base Content Types have been rendered user-removable. [#15847]
  • Caches storing all Velocity macros now flush and refresh according to a more eager strategy, triggered either by flushing the Velocity2 cache manually via the System → Maintenance panel, or by editing any dot_velocity_macro.vtl file. [#22297]
  • Permissions operations now have REST API endpoints. [#22524]
  • Angular dropdown menus, such as the site selector, now allow for keyboard navigation. [#22835]
  • Sped up the process of fetching a piece of content's categories via Velocity. You might say we've increased its Velocity. Stop frowning at me. [#22864]
  • Additional logging has been added to SAML operations. [#23048]
  • Added a method to assign categories to content via Velocity, usable in a Workflow via Velocity script actionlet. [#23009]

Visual Fixes

  • “Uploading” placeholder no longer sticks around after an image is successfully added to a Block Editor via drag and drop. [#22580][#22859]
  • Contentlets embedded within the Block Editor now correctly push during a Push Publish operation. [#22899]
  • Displayed date updates correctly on menu after changing time zone. [#23128]
  • Default system container no longer reports a broken image when displaying content without an image. [#23088]

Dependencies & Components

  • Tomcat native library location has been fixed for Apple M1 contexts. [#22893]
  • Update tasks have been updated and backported, improving maintenance of future LTS releases. [#22916]

Bugfixes

  • The Log Viewer — A Chronicle:
    • The viewer now properly filters and highlights search terms. [#23043]
    • Navigation between pages has been fixed. [#23042]
    • Viewer's front-end performance has been fixed and optimized. [#22968]
    • Ditto on the back end. [#22978]
    • The front- and back-end changes have been integrated. [#23039]
  • Block Editor bubble menu no longer pops up after reordering blocks by drag and drop. [#22898]
  • Docker images have been updated to use UTF-8 language settings by default. [#23056]
  • SameSite cookie property can now be overridden from strict to lax, which can counter certain conditions preventing SAML redirects. [#23072]
  • Fixed issue preventing categories from being added properly to bundles. [#23078]
  • Additional error handling procedures added to the Scripting API ensure that file handles close properly. [#23082]
  • Site Selector now correctly switches between multiple sites while in Edit Mode. [#23106]
  • Fixed case causing WYSIWYG to throw a null pointer exception when containing certain invalid data elements. [#23296]
  • Resuscitated the ElasticSearch query tool after the sight of a recent bug caused it to faint. It's feeling much better, now. [#23379]
  • dotCMS now scans zip files to ensure integrity, preventing errors resulting from working with an invalid archive. [#23401]
  • The API endpoint for firing a workflow action no longer fails when the indexPolicy parameter is specified. [#23381]

⚠️ Breaking Changes

  • Because of changes in the way identifiers are handled, it is necessary to perform a full reindex after upgrading to 22.12.

dotCMS 22.10

Available: Oct 26, 2022 Demo starter image: 20221010

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.

An important note about libraries: As of 22.10, all “repackaged” libraries are deprecated in dotCMS and will be removed at some future point. While not a breaking change per se, developers should supply their own versions of repackaged libraries in their plugins or replace repackaged classes with the respective normal class. For example:

import com.dotcms.repackage.org.apache.commons.io.input.TailerListenerAdapter;

should become

import org.apache.commons.io.input.TailerListenerAdapter;

Content

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 22.09

Available: Sep 15, 2022 Demo starter image: 20220713

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, and may be removed from the product at a future date. It is recommended that customers still using LDAP to integrate with dotCMS begin migration to a different Single Sign-On (SSO) solution, such as SAML (through Azure or another Identity Provider).

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]
  • Corrected an issue that prevented relating content in a Relationship field with Many-to-One cardinality. [#22840]

Breaking Changes


dotCMS 22.08

Available: Aug 10, 2022 Demo starter image: 20220713

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.06

Available: Jun 27, 2022 Demo starter image: 20220607

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 customized 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
  • 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.
  • The refactoring in #22128 changed the relevant rendering macro for block customizations to renderContentBlock.

dotCMS 22.05

Available: May 5, 2022 Demo starter image: 20220504

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

Available: Mar 14, 2022 Demo starter image: 20220209

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 22.02

Available: Feb 9, 2022 Demo starter image: 20220209

dotCMS 22.02 is a fairly large release that consists of 89 fixes, improvements and new features. For more detail, the whole list of issues included in dotCMS 22.02 can be found on github.

New Features

  • Content Editors rejoice — the content palette now allows for simple, click and drag content reuse.
  • GraphQL now supports dotAssets (in addition to normal FileAssets) on File and Image fields
  • Download a full sql dump and asset backup via api/Admin Screen (Postgres/Docker only).
  • See job progress when running Bulk Actions across large numbers of contents.
  • New Host Integrity Checker to ensure that the hostnames/id match across push publishing environments.
  • Updated Docker Image, removed legacy configuration process and removed “special” docker environmental variables that were used only in dotCMS docker, unifing them with the variables that the dotCMS binary expects.
  • Moving forward, environmental variables should be used to configure (almost) everything. If you need to configure something outside of what can be done via environmental variables, you should be prepared to either build a custom dotCMS docker image or mount in an override file.
  • GZIP enabled by default in tomcat and is configurable via environmental variables.
  • SMTP server now supports SMTPS and STARTTLS and should be configured via environmental variables.
  • HTTP Responses now include a header x-dot-server that identifies which server in a cluster is responding. This can be disabled if needed.
  • New velocity script actionlet can be used to abort an in-flight content workflow.

Changes/Improvements

  • Site selector type searches uses wildcards, which is very helpful when searching/switching sites in multi-tenanted environments.
  • Forms no longer require CSP “unsafe-eval” to be used.
  • “What's changed” diff takes place on the client side and no longer uses outdated XML java libraries.
  • Robustification - now the backend relies more on db than Elasticsearch. Previously, if the Elasticsearch index was down or broken, dotCMS could not render front end pages, navigation, templates or the site browser. Now these work. Github issues: #21284, #21283, #21385, #21360.
  • Changed to FILE_SYSTEM for metadata storage by default. This changes from the previous incorrect default of storing the metadata in the db and prevents runaway DB load when cold starting a dotcms cluster.
  • Fixed race condition when copying host.
  • Removed noisy log when using edit mode.
  • Removed unnecessary SAML logging.
  • Allow dotCMS docker image to be build using GID=0, helpful when building a dotCMS image for openshift.
  • Added “Bring Back” button to the new content compare screen.
  • Removed a number of old/unused dotmarketing-config.properties that caused confusion.

Breaking Changes

  • Installations using the dotCMS docker image will need to update their configurations and supply different environmental variables to configure dotCMS properly. Please see the “Docker Image Configuration Options” page on how to properly configure the dotCMS docker image.
  • Hazelcast config removed from docker image. If you need to configure hazelcast, you will need to specifiy it as a cache provider and mount in a custom hazelcast-config.xml.

dotCMS 22.01

Available: Jan 10, 2022 Demo starter image: 20211201

New Features

  • Unlimited fields on content / content stored as JSON. Currently available in Postgres with plans on targeting MSSQL next.
  • New content version compare screen shows a field by field comparison of what's changed on any give content.
  • Widgets can render both markup and as json, allowing widgets to be used in headfull and headless implementations simultaneously.
  • New Redis Pub/Sub and Cache Provider. Uses the Lettuce library under the covers, allows a cluster wide 2nd level cache to improve cold startup performance on large sites. The new Redis implementation also allows the pub/sub cache invalidation mechanism to be used when primary datastore is not Postgres.
  • Default folders can now be set for image/file fields, rather than always having to browse from the site root, giving a better end user experience.
  • Velocity tool $dotContentMap introduced as a beta feature: Access the content object from within a container without needing to call $dotcontent.find()!

Changes/Improvements

  • Site “Host Name” is renamed “Site Key” and once set, users are discouraged from changing site keys. The “Site Key” should be treated and understood as immutable and should not be changed over the lifecycle of a site.
  • Site Key (hostnames) can only accept characters that are valid for server/DNS names.
  • ContentTypeAPI can now filter content type results by site/host.
  • SAML authentication now correctly stores the last ip for the authenticated user
  • $dotcontent.find("{id}") no longer uses elasticsearch to pull proper lang/version resulting in better performance and less log spamming from velocity.

Security Fixes

  • Updated Log4j2 to 2.17.1, added {nolookups} to log4j2.xml config file, start java with -Dlog4j2.formatMsgNoLookups=true github #21485, #21393. See
  • Prevent XMLTool from fetching remote entities github #21415
  • Remote Calls - XMLTool, JSONTool and VanityUrl Proxy calls are now blocked for localhost and private networks by default. This is best practices as per OWASP security standards. This behavior can be disabled using configuration properties. github #21415
  • TempFileAPI will only import by URL if user is an admin github #21400
  • User.userId is now immutable once initialized github #21392

Breaking Changes

  • UID/GID in our docker image has changed to 65001:65001. Previously, it was 1000000000:1000000000. In order to run the new dotCMS docker image, you will need to make sure that the user on your host has the proper uid/gid and that your shared assets folder that map into docker have the proper ownership. As an example:
    usermod -u 65001 dotcms
    groupmod -g 65001 dotcms
    chown -R dotcms.dotcms /assets/folder/root
    
  • In Postgres implementations, content is now stored as JSON. This means if there is custom code that is directly queuing the contentlet table in the db (tisk, tisk, as this is bad practice), these queries will no longer work.
  • Remote Calls - XML, JSONTool and VanityUrl Proxy calls are blocked for localhost and private networks by default. This is best practices as per OWASP security standards. If your implementation makes local calls using these tools, you can change/configure the network blacklist by setting a config variable.
  • Site.hostname field can only accept characters that are valid for server/DNS names (via the ui).

More Information

For more detail on what is included in 22.01 release, please see the tagged github issues


dotCMS 21.11

Available: Nov 15, 2021 Demo starter image: 20210920

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

Improvements in dotCMS 21.11

  • Added multiple improvements to the import action in the Apps module. (#19747)
  • Added improved messaging about how to add Apps. (#18707)
  • Added a static cache to GraphQL to help with heavy queries.(#19981)
  • Added the ability to change the default language in the UI.(#20887)
  • Added the ability to generate secure passwords for users. (#20915)
  • Combined Default Content View was added in Content Search. It includes the thumbnail and details. (#21014)
  • Improvements were added to improve the handling of SVG images.(#21051)
  • We have removed the repackaged xbill DNS jar that contained classes under com.dotcms.repackage.org.xbill.DNS.*. Customers should instead reference these classes here: org.xbill.DNS.*.(#20940)

Fixes

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

Issue Conditions Github Link
A search in Content Search was sometimes returning zero results . Only occurred when a date from advanced search was used. #20667
Instances created with a different default language then the current default language sometime broke after an upgrade. Only occured if upgrading to a version past 20.10. #20786
Some bundles were taking a long time to load on the publishing queue screen. Issue occurred when pushing on bundling a bundle with over 10,000 pieces of content. #20971
In page edit mode contents sometimes moved around.. Issue only occurred when preparing to drag and drop contents. #21047
Content were not always being updated. Only occurred when a search was filtered then the user switched to the other view type (card or list). #21153
An error sometimes occured when trying to drag and drop content in edit mode. Only occurred when clicking on the middle of the content to drag instead of the draggable frame. #21180
Error would sometimes occur when trying to see the bundles in the history tab. Only occurred when bundles were just uploaded to the server. #21202
Bundle status sometimes failed to update. Only occurred after retrying the push of a bundle. #21124
Not all map properties were returned in some instances. Only occurred after content was saved. #20948

dotCMS 21.10

Available: Oct 11, 2021 Demo starter image: 20210920

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

Improvements in dotCMS 21.10

  • Improved how we save timezone information.(#20899)
  • Improved logging for rules. (#20880)
  • Improved Reindex log messages. (#20821)
  • New dotCMS endpoint /v1/system-status/alive to check if the server is up.(#20827)
  • Batik dependency was removed.(#20847)
  • dotCMS now releases licenses on shutdown. (#20856)
  • Type selector will no longer show when searching in a portlet with only one type. Like the image portlet. (#20861)
  • Replaced Moment.js library with the date-fns library.(#19784)
  • Warning log messages were updated when the user is lacking permissions to view a catagory associated with the contentlet.(#20801)
  • Improved error message for when an invalid shard is entered in the creation of a site search index. (#17569)

Fixes

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

Issue Conditions Github Link
Hooks were sometimes prevented from being registered when certain changes where made to the MANIFEST.MF. Only occurred when the plugin version was modified in MANIFEST.MF. #17959
Users sometimes recieved a Java Script error when trying to use certain buttons in the maintenance portlet. Occurred when the user tried to use the Update System Logging and Refresh buttons on the log files tab. #18908
The enter key was not also recognized as submit. Issue occurred when creating a bundle and enter was pressed after typing a bundle name. #19042
It was sometimes possible to add empty tags in certain areas causing errors. Issue only occurred in the rules portlet. #19909
Many to one relationships where not always displayed correctly. Only occurred when a user seached for many to one relationships in the content search. #20399
Some users were able to start ES queries that they did not have permission to run causing errors. Only occurred in multitenant ES environments. #20596
A contentlet was sometimes prevented from being published . Only occurred when the contentlet had a future publish date. #20765
Some emails were sometimes seen as spam by mail services. Only occurred for emails sent from workflow actions which were sent from hard-coded email addresses with non-existent domains. #20777
A piece of content was sometimes in the wrong workflow set. Only occurred on the reciever side after a push publish. #20718
The Host select box was not displaying on the theme paginator in certain circumstances.. Only occurred when there were multiple cloned sites. #20781
The page API was sometimes returning the wrong publish date in its JSON. Only occurred when the page contained a contentlet with the publish date field. #20791
Icons in grid view were not showing properly in the upload fields modal in certain circumstances. Only occurred when trying to attach an image from the WYSIWYG fields or the task list. #20817
When a Site/Folder field was removed from a content type all the contents sometimes moved to System_Host Only occurred when the content type lived somewhere other then System Host. #20850
In certain areas timezone searchs were only matching against the first characters. Only occurred in the company portlet. #20888
Retry bundle wasn't always working. Occurred on the status popup and the listing screen. #20974, #20878
Time machine did not always work. The issue only occurred after creating a new snapshot. #21097
Multiple issues occurred with Oracle. Including inability to start dotCMS with an Oracle DB, and issues occurred with Oracle licenses as well. #21128, #21119

dotCMS 21.09

Available: Sep 7, 2021 Demo starter image: 20210903

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

Announcements, Deprecations and Breaking Changes

  • Breaking Change: The rest call /api/v2/users no longer exists please use /api/v1/users instead. Any use of /api/v2/users needs to be replaced.

Improvements in dotCMS 21.09

  • Images can be added to a page using drag and drop. (#18411)
  • A downloadable bundle manifest is now available for each bundle. (#20010)
  • Icon picker and sort_order are now available on the content type screen and on the database. (#20426)
  • Created content resource that can be found by id or inode. (#20429)
  • A bulk move action is now available on the content search screen. (#20504)
  • License.zip files will not be moved, rewritten or duplicated on startup.(#20591)
  • Improved error messages for WorkflowAPIImpl. (#20636)
  • Added REST call /api/v1/content (#20429)

Fixes

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

Issue Conditions Github Link
Duplicates of the same language were allowed to be created. A language should not be able to be created if a language with the exact same values already exist. #7342
The search and replace utility was replacing characters with invalid ones on MS SQL Server in certain circumstances Only occurred when the characters being searched and replaced were non latin characters. #18209
Content search card view sometimes wrongly ran in background in certain circumstances Occurred when List view was requested. #19290
Theme selector sometimes failed to return to the home page in certain situations. Issue occurred when a user switches sites while on the theme selector. #19874
Sometimes the images and files were unable to be accessed in the task details page on the task portlet. Occurred when the task details were for a piece of content that was executing a workflow.. #20047
User with frontend permissions was sometimes seeing blank pages in certain situations. Only occurred the user also had backend permissions. #20452
User couldn't view or edit a piece of content when it has certain multilingual properties. Only occurred when that content referenced a non-default language on a page that didn't exist in the default language. #20494
Multiple UI bugs were seen. Bugs were on the content search screen, and the site browser. #20566
Generating a resource link for file assets in certain circumstances failed. Only occurred when the file asset had a legacy identifier. #20597
Reordering navigation items did not always work as expected. The UI was not allowing multiple tasks related to reordering occur. #20616
The add content button was sometimes showing up twice when adding or moving content in a specific container. Only occurred the dotCMS instance had legacy data. #20623
Update site was not correctly updating the aliases. This occurred when you Updated the site via the REST call. #20638
In certain situations when running containerized dotCMS initialization was getting stuck. Only occurred when new nodes were coming up and Tika was trying to initialize. #20640
Settings were sometimes not respected when an image was inserted into the WYSIWYG. Only occurred when WYSIWYG_IMAGE_URL_PATTERN was set on the image. #20642
Widgets index policy on a page was sometimes overridden by the default. Only occurred when an index policy was set in a code snippet widget on the page. #20649
Error was created when certain response header rules were set. Only occurred when the header required single quotes. #20659
Users were not allowed to push publish in another time zone in certain situations. Occurred when the user was trying to push publish in another timezone at a time that has already past in there current timezone. #20674
Users were able to login as all users in certain situations. Occurred when a user did not have login as permissions but were still able to use it. #20677
Vanity URLs could be created without required data. The vanity URL could be created without the title and the forward to field filled in. #20685
Site name was not able to updated a specific way. Issue occurred when trying to update a site name via the Update Site REST call. #20688
dotCDN was not invalidating the correct information on prod ion certain situations. Issue occurred when push publishing data that had been invalidated on auth. #20690
Errors were occurring after a ES reindex under certain circumstances. Issue occurred when the host inode was changed in the database. #20722
Error occurred when upgrading to 21.06 with a specific dotCMS setup. Issue occurred when a managed database was being used. #20725
Content Export Tool was able to export certain contentlets. Issue occurred when the contentlets to be exported didn't have CMS Anonymous access. #20746
Sensitive information was showing in the System Info tab of the dotCMS Maintenance page. Issue occurred system or environmental variables were set for sensitive information. #20757
Reordering items in page menu did not always work as expected. The UI was not allowing multiple tasks related to reordering occur. #20868
Duplicate data was shown in the System Info tab of the dotCMS Maintenance page. Occurs because the old data is never cleared instead the table keeps being appended with the same data. #20757
ReindexThread was filling up the log in certain circumstances. Occurred on 5.2.8.5 #20821
OutOfMemoryError occurred when the user tried to import a Bundle Occurred when many events were triggered at the same time. #20799
Errors were thrown when someone pushed a user. Only occurred when a user pushed multiple users without explicitly adding them to a bundle. #20805
Hanginging on the front end was sometimes experienced. The error only occurred when a user was creating multiple independent SCSS files that were compiled separately using a build in compiler. #18301

dotCMS 21.08

Available: Aug 4, 2021 Demo starter image: 20210628

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

Announcements, Deprecations and Breaking Changes

  • Breaking Change: dotCMS is moving from away from using Hibernate. If your company uses Hibernate in your custom code you should update it.
  • Breaking Change: dotCMS is moving from Alpine a musl based docker image to Ubuntu LTS a glibc docker image. The minimized Java 11 distribution being used may not contain all the modules you are currently relying on for custom plugins.
  • Breaking Change dotCMS will be completely deprecating support for Java 8 as of this version 21.08 and instead requiring Java 11 to run.

Improvements in dotCMS 21.08

  • Admins can now choose the default view when they create a custom content tool. (#17877)
  • Added the option to choose what fields are shown in a relationship field's overview. (#19215)
  • Added automatic deletion of old inactive Elastic Search indices to prevent performance slowdowns. (#19931)
  • Made multiple improvements to Site Resource. (#20557)
  • Added a short lived cache for the MonitorResource. (#20578)
  • Search and aggregation are now allowed on key/value fields through the REST API. (#20603)
  • Edit Mode Anywhere now always expects UTF8. (#20629)
  • Moved to glibc based Docker image from a musl based Docker image. (#20666)
  • Created a Bash Command Line Interface (CLI) for users to checkout a dotCMS GitHub directory with all Content Types using curl then push that directory to a dotCMS instance. (#20369)
  • Updated legacy data model by replacing HibernateUtil with DotConnect. (#19399) , (#19398), (#19394)

    Fixes

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

    Issue Conditions Github Link
    Contentlet sometimes failed to render and threw an error in certain cases. Only occurred for content that had a file or image in its Content Type and the file/image was not published when the user was viewing the page. #18014
    Images were failing to load and causing an error in certain cases. Only occurred when images were very large. #20446
    Error sometimes happened when using the API to insert content. Only occurred when a large amount of content was inserted at the same time. #20110
    Users would sometimes see a multilingual site in the wrong language. Occurred when the site was static and the default language was selected. #20469
    Contentlets lost their many to many relationships in specific situations. Occurred when the Content Type has a many-to-many relationship to itself. #20491
    Workflow could not be copied in certain circumstances. Only occurred when the Notify Assigned action was included in the workflow. #20501
    Users sometimes were unable to create a multilingual blog. Only occurred on the populate content for language page where the default content is shown. #20505
    Classes assigned to rows in layout designer were removed in certain situations. Only occurred when one row in the layout designer was deleted all the rows below it would be effected. #20519
    IPUtils was sometimes returning false incorrectly. Only occurred when a specific IP utilizing a \ was passed in. #20578
    Creating or copying a site failed in certain situations. Only occurred when using the Add Site button on the Sites Portlet. #20609
    In specific situations the network information did not show on the network tab and an error was produced. Only occurred when a license was applied for the first time and the network tab was navigated to right after. #20647
    No message showed on the search content portlet in specific situations. Only occurred when the content type searched was empty. #20648
    Site Search Job sometimes produced an error and failed to run. Only occurred when the site search was scheduled to run now. #20653
    Image paths and CSS file paths were sometimes incorrect after a Static Publish or Time Machine run. Only occurred when the image path and dimensions were passed in a code snippet widget. #20707
    An exception was thrown on a fresh installation of the full starter depending on the database used. The exception was only thrown if MSSQL was used as the database. #20669
    Copy workflow button sometimes resulted in incorrect next steps. Only occurred sporadically. #18111
    URL field values were not included in pages in certain situations. The URL field values were not included when the page was exported from Content->Search. #20405
    Running fix conflicts after running an integrity check caused errors in specific situations. The error only occurred when trying to fix folder conflicts. #20714
    Pulling tags with GraphQL returned an error in logs in specific circumstances. The error only occurred there were no tags existing. #20719

    dotCMS 21.06

    Available: Jul 5, 2021 Demo starter image: 20210615

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

    Announcements, Deprecations and Breaking Changes

    • dotCMS 21.06 can now run with Java 8 or Java 11 in order to run properly. That said, we expect that within the next 3 months, dotCMS will be deprecating support for Java 8 and instead require Java 11 to run. We will keep the community posted.
    • Many new features have been introduced in 21.06 please see the New Features section to see all the new features.

    New Features

    The following new features have been added in dotCMS 21.06:

    • dotCMS reimplemented the cache networking layer using postgres's pub/sub capabilities and made clustering easier and scaling more resilient.
      • Customers using Postgres will automatically be switched to the new transport on upgrade.
      • This allows postgres installations to cluster without relying on Hazelcast.(#20153)
      • Customers who wish to revert to Hazelcast transport can explicitly configure their cluster transport configuration
    • dotCMS moved Docker images to the core repo and now builds docker images programatically with github action. This does the following:
      • Multi-arch docker images
      • Appropriate tags based on the build information
      • Dockpushes directly to dockerhub.
    • For more information see (#20248)

    Improvements in dotCMS 21.06

    • Enabled the ability to replace dotCMS logo on backend. (#19970)
    • Created a new REST endpoint to return the version of versionables when the identifier is passed in. (#19778)
    • Improved confusing E-mail address used for system and anonymous user. (#20095)
    • Updated GraphQL PageAPI call. (#20203)
    • Introduced new metadata attributes for GraphQL. (#20209)
    • Improved error message for deleting a container used by a template. (#20277)
    • Added the ability to copy a site from a REST call. (#20272)
    • Updated bundle output file type to TAR/GZIP to improve performance. (#20325)
    • Added the ability to specify in the GraphQL query if a given field should be returned velocity-rendered in the response. (#20407)
    • Added header identifying what vanity URL directed the user to the page to help simplify debugging. (#20416)
    • Improved how external caches and the dotCMS internal cache interact. (#20412)
    • Added the ability to update a site via REST using Site Resource. (#20393)
    • Added ability for Felix load to be overridden by enviromental variables. (#20601)

    Fixes

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

    IssueConditionsGithub Link
    Only ten related parent contents were retrieved when looking at a child content. Only occured for legacy relationships. #19723
    Backend fonts were broken in certain situations. Only occured when there was no internet access. #19980
    Push publishing sometimes didn't respect time zones. Occured when the user's computer time was ahead or behind the server time. #20110
    The user was unable to choose the session attribute key to evaluate a condition in certain situations. Occured when a user made a new rule to check if the session attribute existed. #20153
    Empty starter wasn't starting in certain circumstances. Occured when the default language was changed in the marketing configuration properties. #18766
    Workflow modal failed to open in certain circumstances. Only occured when selecting available workflow actions for all content in the content search for the content type, date, with more than 40 results. #19677
    Subfolders in the site browser were not in alphabetical order in certain circumstances. Only occured when a folder's name was changed. #20104
    Errors in the Users, Sites, Template and Content Types menus happened in specific circumstances. Only occured when the default language was changed in the marketing configuration properties. #20112
    The "Site or Folder" field dropdown sporadically disappeared. Only occured for some content types in edit mode. #20270
    Error sometimes occured when deleting or moving a field in a Content Type. Only occured for some fields when they were related to another field. #20342
    Error sometimes happened when adding content to a page. Only occured when the content added was new and so was the page. #20486
    An infinite loop sometimes happened for specific vanity URLs. Only occured when the vanity url had a 301/302 HTTP redirect from a URL with a trailing slash to the same url with no trailing slash. #20280
    Unexpected behavior was happening when statically pushing some file assets. Only occured when the file asset name had spaces in it. #20295
    An error would sometimes occur for sites with lots of cookies. Only occured when either of the following properties were set as shown below: COOKIES_HTTP_ONLY=TRUE or COOKIES_SECURE_FLAG=always/https. #20334
    The link to edit a site configuration in Apps did not work for the entire row The link only failed when not clicking on words. #20304
    The selected push publishing environment didn't always show in the push to field. The environment only failed to show when it had already been selected previously. #20433
    The User Resources endpoint wasn't parsing some parameters correctly. Occured when the parameters includeAnonymous and includeDefault parameters were not being respected. #20450
    Metadata attributes were not always available from all Content Types. The issue only occured when someone tried to get the metadata directly from VTL files. #20457
    A Workflow Scheme was not always able to be imported. The issue only occured when the next assign or permission role did not exist. #20488
    The reindex process was sometimes killed before it finished. The issue only occured when the reindex is of a large database that takes more than five minutes. #20607
    Elastic search was sometimes getting overwhelmed with index requests. Only occured in clustered environments when doing a full reindex, bulk repermissioning or unding the definition of a major content type. #20568

    dotCMS 21.05.1

    Available: Jun 8, 2021 Demo starter image: 20210512

    Announcements, Deprecations and Breaking Changes

    • This version requires a reindex after upgrade.
    • dotCMS can now run with Java 8 or Java 11.
      • We recommend that all new customers run on Java 11, and that all existing customers running dotCMS 21.05.1 or later migrate to using Java 11 as soon as practical.
      • We expect that support for running on Java 8 will be deprecated before the end of the year. We will keep the community posted.
    • The format of the "metadata" attribute of the contentlet object has changed.
      • Code which accesses values in the metadata attribute may need to be modified to read values in the new format.
      • Please see below for more information.

    New Features

    The following new features have been added in dotCMS 21.05.1:

    • A new tool called Focal Point has been added to dotCMS.
      • This tool allows a focal point to be set for images on the edit screen for images.
      • The Focal Point will draw your customer's eye to the most important area of the image.
      • Once a focal point is set for an image it will be persisted until it is changed.
    • The newly revamped tool Enhanced Inline Editing has been added to dotCMS.
      • This gives content editors the abiltity to edit content directly on the page edit screen as long as they add a specific HTML block to the container.
      • See documentation for more information.
    • A new tool called the GraphQL Playground has been introduced to this version of dotCMS.
      • This tool provides an area for users to test GraphQL calls, and see what would be outputted.
      • The GraphQL playground is available under dev tools.
      • Example data is provided.
    • Doing a headless bulk update is now possible using the workflow fire endpoint.
      • The workflow fire endpoint can now take multiple pieces of content.
      • See the Improvements in dotCMS section for details.
    • Metadata has been greatly enhanced.
      • Metadata now has new data including the data for a focal point along with many others.
      • Metadata caching has been greatly improved. There is now a dedicated cache region for metadata, which may be sized and cleared separately from other cache regions.
      • Metadata in the contentlet object is now returned as a map, instead of a string, allowing access to individual metadata fields without the need to parse a string.
      • For more information, please see the documentation.
    • A System Theme, Container, and Template have been introduced in this version of dotCMS.
      • This gives the ability to create simple headless pages with a brand new instance of dotCMS.

    Improvements in dotCMS 21.05.1

    • Improved push publishing performance.(#19646)
    • Streamlined log by removing uneccessary output.(#20313), (#20317)
    • Added validation type none for SAML.(#20420)
    • The ability to add multiple content pieces when calling the workflow fire endpoint now exists. (#20080)
    • Improved error messages for Integrity Checker when fixing a File Asset conflict. (#20232)
    • In Push Publishing improved error message when finding unique content after looking for a content match.(#20250)
    • Added copy options for host ID's in app section.(#20135)
    • Improve concurrency issues.(#20507)

    Fixes

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

    IssueConditionsGithub Link
    Limited user could not retrieve data from User API Occured for many methods in the User API when a limited user tried to call the API. #19731
    GraphQL API was requiring language Only occured when there was multiple languages. #19827
    Portlet was not reloaded even when the site was changed Only occured when the site was changed in the top right corner while on a portlet. #19842
    Some images uploaded to an image field did not show up as images Only occured when the images were uploaded via drag and drop. #19939
    Applying a license on specific browsers was not working Only occured when the user was using Safari. #20097
    Content Type Product broke in specific situations Only occured when it was rendered in the contentlet edit dialog. #20154
    Contentlet state icon was missing in certain situations Only occured in the card view of the content search. #20278
    Loading a starter was creating many errors in log Occured due to internal systems not working that did not need to be in log. #20351
    Could not relate content to a macrolanguage Happened when the same language already had a country code. #20197
    Warnings would occur due to dates formated as text Only occured when date fields were indexed as text fields. #20252
    Permission individually on a folder defaulted to all permissions not just the inheritable permissions Happened intermittently. #19412
    Could not open edit content screen in certain situations Only occured when a user has specified a field that does not exist in their pattern. #20147
    Endpoint was sometimes returning a bad exception Only occured when bad XML was posted to Content Resource endpoint. #20364
    Garbage collection issues due to Java 11. Only occured when Mockito was used. #20506
    Problems trying to login from a PC.. Only occured when MSSQL as the DB #20499

    dotCMS 21.04

    Available: Apr 25, 2021 Demo starter image: 20210408

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

    Announcements, Deprecations and Breaking Changes

    • dotCMS 21.04 still requires Java 8 in order to run properly. That said, we expect that within the next 3 months, dotCMS will be deprecating support for Java 8 and instead require Java 11 to run. We will keep the community posted.
    • Breaking Change: The UserProxy table in the database is now deprecated.
      • The table is still available, but no new data will be added to it starting in this release and the get method will no longer work.
      • The UserProxy table will be removed all together within the next 3 months.

    Changes in dotCMS 21.04

    Push publishing authentication now uses API tokens. This means that it is no longer necessary to configure the “receiver” in a Push Publish architecture, just have a valid admin token.
    • If you are upgrading, any existing push publishing configuration will continue to work normally and will be maintained.
    • There is a `Get Token` utility on the Endpoint screen that can be used to generate and retrieve a valid token from the receiving server.
    • To change Push Publishing Environments to use the "Receive From" configuration instead of automated authorization tokens, set the following `USE_JWT_TOKEN_IN_PUSH_PUBLISH` in the `dotmarketing-config.properties` file to `FALSE`.

    Improvements in dotCMS 21.04

    • Added an "Additional Information" map/json field on the User object that can be used to store additional user information. See the User Registration Plugin for an example of how to use this in code.
    • Added "Don't show this again" checkbox to Edit User Page.(#20090)
    • Added the ability to override portal.properties attributes with environmental variables.(#20068)
    • Allow mail session to be configured via environmental variables.(#19813)
    • Created a new container called the System Container this container allows all Content Types. (#19080)
    • Improved logging messages for Get Token action in the Add Endpoints tab. (#20194)
    • JSON Tool parsing improvements were added. (#20164)

    Fixes

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

    IssueConditionsGithub Link
    Icon selector didn't recognize value The problem occurred went attempting to paste a value in the icon selector. #20157
    User permissions were not acting as expected Occurred when the user has a content type tool group permission. #20156
    The System Roles screen were showing an error instead of filtering This error occured when the role item itself was clicked on. #20139
    Cluster IDs containing underscores were causing errors This occured when the cluster ID had a underscore. #20122
    Get Token tool sometimes invalidated a user's session Issue occured when adding a new endpoint on the reciever side for Push Publishing, and the Get Token tool was used. #20117
    Anonymous users couldn't fire specific actions when calling the Workflow API This only occured when the specific action ID was used to execute that action. #20053
    Logger didn't work for OSGI plugin in specific situations Occurred when the logger was undeployed and redeployed. #20039
    Screen didn't scroll when moving fields on the Content Type page. Occured when dragging and dropping fields. #20020
    Invalid time zones were available for customers to use causing errors Errors happened when an invalid timezone was chosen in the Basic Config tab of the Configuration Screen. #20013
    The "Send an Email" sub-action fails if executed before "Save content" sub-action This failure only occurs when the Send email sub-action is used before the Save content sub-action. #19993
    Performance issues in GraphQL Occurred when the server was under extreme load. #19974
    Timezone configuration was not being respected Occured when using date time fields. #19951
    Content Type REST API was not accepting field variables This specifically occured when someone attempted to create a single call to create Content Type that includes a WYSIWYG field with tinyMCE field variables. #19376
    Page was not able to be published when specific content was added Occured when the content added to the page had a future push publish date. #19511
    Dotcontent viewtool returned the wrong language in certain situations The dotcontent viewtool method, pullRelated, was not honoring the languageId that was passed in. #19774
    URL validation for new pages under Site root was wrong in certain situations This occured when a new page was created with the same name as an existing page. #19831
    Re-adding parent relationship in certain situations threw an error Happened when a parent relationship was removed then re-added. #19913
    SAML Authentication created a new user instead of logging someone in. Happened intermittently specifically when the SAML user ID was different from the user ID in dotCMS. #19992

    To view more information on these and other issues, please visit the dotCMS Github repository.


    dotCMS 21.03

    Available: Mar 15, 2021 Demo starter image: 20210312

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

    Announcements and Deprecations

    • A Breaking Change was caused by having the secure flag set on cookies sent securely and having the httponly flag set on all cookies. This could cause issues when updating from a previous version. See Improvements in dotCMS Section for more information.
    • This version of dotCMS ships with Tomcat 9. Any plugins or overrides that specify files in the tomcat directory tomcat-8.5.32 will need to be updated.
    • A related breaking change concerns Tomcat's out-of-the-box security settings; by default, the HTTP Header Security Filters have been configured as follows:
      Attribute Value
      hstsEnabled true
      hstsMaxAgeSeconds 3600
      hstsIncludeSubDomains true
      antiClickJackingEnabled true
      antiClickJackingOption SAMEORIGIN
      blockContentTypeSniffingEnabled true
      xssProtectionEnabled true
    • dotCMS 21.03 still requires Java 8 in order to run properly. That said, we expect that within the next 3 months, dotCMS will be deprecating support for Java 8 and instead require Java 11 to run. We will keep the community posted.

    New Features

    The following new features have been added in dotCMS 21.03:

    • A new Tool called "Getting Started" has been added to dotCMS.
      • The tool will be shown when admins log into dotCMS for the first time.
      • This tool will supply admins with relavant examples and resources to get started with dotCMS quickly and easily.
      • Admins will be able to dismiss this tool if they don't feel they need it.

    Improvements in dotCMS 21.03

    • Added three informational fields to the relationship field popup; direction of the cardinality relationship, is this content the parent or chilld, and what related content type field is this relationship connected to.(#18706)
    • Upgraded security and infrastructure by upgrading to Tomcat 9.(#19241)
    • Configured Tomcat for improved security out of the box. (#20058)
    • Included a new "Generate Metadata" button in SAML app.(#19503)
    • Improved personalization in GraphQL to better handle URL maps and personalization.(#19508)
    • Added a "Download" button to the log files tab in the maintenance tool.(#19560)
    • Created a component allowing users to preview material icons before they choose one.(#19592)
    • Improved our infrastructure by upgrading to Gradle 4.10.2 . (#19714)
    • Made XStream initialization static so less resources are now needed. (#19715)
    • Made the password reset feature more robust by removing the use of a token. (#19877)
    • Improved logging in the JSON Tool. (#19927)
    • Increased security when sending cookies. (#20063)

    Fixes

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

    IssueConditionsGithub Link
    Using website navigation while editing a page returned the user to the wrong place The problem occurred under specific conditions when using page navigation in page edit mode. #19737
    Field variable tab on content type showed as in use incorrectly Occurred when the field variable is edited, the window is closed and then the same field is edited again. #19556
    SQL Viewtool was not returning results Occurred in newer versions of dotCMS. #19746
    Thumbnail creater not working for .pdf files A page would have to be specified in the thumbnail link for a thumbnail to show. #19753
    Logout page did not show when active session was left open When an active session was left open without activity for a long time a blank page with 404 in the corner showed. #19772
    Inability to log into dotCMS with SAML When the SAML IDP sent a User ID with the wrong format the issue occurred. #19773
    Errors sometimes occurred when push publishing a bundle Occurred when a bundle was created then immediatly pushed. #19791
    Depth of 3 or more doesn't return for self related content Showed when depth of 3 or more is added to the tail of a self related call. #19796
    Content Type tabs missing frame Occurred when viewing fields or permissions on a content type. #19824
    Error shows for when viewing a page Arose when a limited user tried to create content in a language that isn't the default, then someone tried to view the content in that language. #19854
    Relate button hid in relation content search Occurred when a user scrolled in the relationship content search. #19880
    Google Translate sub action was sending an error Happened when creating a workflow sub action using the "Translate Content subaction. #19910
    Forgot and reset password actions did not show an error Error failed to show when the the password requirements were not met. #19916
    Recover password incorrectly redirected to sign in page Appeared once a recovery email was sent. #19917
    Error showed on every page request Showed when `ENABLE_NAV_PERMISSION_CHECK` was set to true in `dotmarketing-config-ext.properties`. #19926
    Adding a folder to the root directory threw an error Happened when a folder was added to the root direcotry in the site browser. #19934
    Error showed in content type Occurred when a new field was added to the Content Type. #19987
    User prevented from logging out Happened when a logged in tab was closed and opened again. #19991
    Error was sometimes thrown when Elastic Search was used Happened intermittently often with memory or network issues. #19992
    Element stuck to cursor in drag and drop disappeared Showed up in Content Type section when adding a field. #20015
    Errors showed when running a time machine snapshot Occurred when trying to run a past time machine snapshot. #20041

    To view more information on these and other issues, please visit the dotCMS Github repository.


    dotCMS 21.02.2

    Available: Feb 25, 2021 Demo starter image: 20210106

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

    Improvements in dotCMS 21.02.2

    • Created a new endpoint to remove a layout from a role. (#19581)
    • The ability to customize TinyMCE and set it systemwide is now part of dotCMS. (#19651)
    • The filtering of related content items returned in GraphQl is now available. (#19652)
    • Enhanced logging messages for the deletion of roles. (#19664)
    • Built a history tab in the template detail screen. (#19668)
    • Allow the /api/content/search endpoint to accept POST parameters; this avoids having to URL encode your content queries. Also added curl examples of this to the content query dialog box. (#19691)
    • Improved resiliency to rules in push publishing, minimizing errors. (#19679)
    • Upgraded the edit page experience with multiple improvements including better drag and drop. (#19711)
    • Included a new endpoint in which a specific inode is passed and that version is deleted. (#19776)
    • Added the ability to close all dialog boxes in template portlet with the ESC key. (#19838)
    • Revamped the legacy template UI, moved it to Angular. Templates can now be designed using the same layout tool as pages.(#19087)
    • Ingesting a push publish bundle is now a stateful job and acts like a queue. This will prevent multiple bundles from being imported at a single time which can cause errors and performance issues. (#18722)
    • Vanity Url redirects can now include parameters.(#19564)
    • Updated translations.(#19823)

    Fixes

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

    • Fixed an issue that caused an error when creating a page on a site without templates. (#19999)
    • Fixed an issue that caused an error when editing a page and selecting any persona in order to create a personalized version of the page. (#20009)
    • Fixed an issue that sometimes prevented the value of a field from being saved when it was created in the content type with the variable name properties. (#18073)
    • Fixed an issue that sometimes prevented a new user from being given permissions on folders. (#18208)
    • Fixed an issue that sometimes prevented a single quote from being accepted in the name of a content type. new user from being given permissions on folders. (#18241)
    • Fixed an issue that sometimes caused push publishing errors when multiples users were attempting to push publish at the same time. (#18722)
    • Fixed an issue that sometimes caused apps to break when Elastic Search was unavailable. (#19515)
    • Fixed an issue that prevented $dotcontent.pull from returning over 10,000 content items. (#19527)
    • Fixed an issue that sometimes prevented the Network tab on dotCMS instances from responding. (#19547)
    • Fixed an issue that prevented parameters from being passed when a 301 or 302 vanity URL was used. (#19564)
    • Fixed an issue that caused the push publish batch button to select all content items on the site instead of all of the content items on that specific page. (#19620)
    • Fixed an issue that caused rules to always be forced pushed even when they were excluded in the push publishing filter. (#19648)
    • Fixed an issue that prevented the Language, Device and Persona dropdowns buttons from hiding when the browser window shrunk while in Edit Page. (#19656)
    • Fixed an issue that caused scroll problems in the content search when tag fields are used. (#19688)
    • Fixed an issue that prevented "Push Publish" and "Add to Bundle" options from showing when you add a rule to a page. (#19708)
    • Fixed an issue that caused a blank screen to be presented after the "Pick Design" or "Advanced" dialog boxes were closed on the template list. (#19713)
    • Fixed an issue that prevented the thumbnail from loading when a new page was created whose template has a thumbnail. (#19727)
    • Fixed an issue that prevented the portlet title from updating when navigating through the backend. (#19792)
    • Fixed an issue that prevented the user from being redirected to "Edit Page" after creating and publishing a new page. (#19812)
    • Fixed an issue that prevented "No Results" from showing when the user searches the template list for something with no results. (#19839)
    • Fixed an issue that prevented the template portlet from refreshing when the site is changed. (#19840)
    • Fixed an issue that prevented the creation or editing of an advanced template in Safari. (#19841)
    • Fixed an issue that prevented the template list to return templates from sites other than the current one. (#19845)
    • Fixed an issue that caused an error to show when attempting to see details of a container. (#19867)
    • Fixed an issue which could cause problems switching over to a new index in clustered instances.(#19738)
    • Fixed an issue that sometimes prevented a custom layout included in a push publish from showing on the reciever.(#19890)
    • Fixed an issue that caused errors when reindexing on an instance with an empty starter. (#19959)

    To view more information on these and other issues, please visit the dotCMS Github repository.

    Announcements and Deprecations

    • dotCMS 21.02.1 still requires Java 8 in order to run properly. That said, we expect that within the next 6 months, dotCMS will be deprecating support for Java 8 and instead require Java 11 to run. We will keep the community posted.
    • The next version of dotCMS will ship with Tomcat 9. Starting with the next version, any plugins or overrides that specify files in the tomcat directory tomcat-8.5.32 will need to be updated.

    dotCMS 21.01

    Available: Jan 10, 2021 Demo starter image: 20210106

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

    Fixes

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

      • Fixed an issue which prevented a valid license from being recognized for some servers in a cluster. (#18860)
      • Fixed an issue which prevented content from appearing when using the advance search option, select, on the Content Search screen.(#19337)
      • Fixed an issue which sometimes caused unpublished related content to appear in Preview Mode / Live mode when pushed to a static site. (#19044)
      • Fixed an issue which sometimes prevented a bundle from being deleted when it contains thousands of items. (#19378)
      • Fixed an issue which caused contentlets to return in a lucene query even if they do not have the tag searched for. (#19458)
      • Fixed an issue that sometimes prevented contentlets from returning in a query when it had a unique text field that included dashes. (#19489)
      • Fixed an issue that sometimes prevented content from being push published when it was manually selected. (#19571) ( #19634)
      • Fixed an issue that sometimes caused bundling to fail when content was added to a bundle and a user tried to push or download the bundle. ( #19636)
      • Fixed an issue that sometimes caused the Content API to not return the name or title when ID was entered in the call. ( #19639)
      • Fixed an issue that could have prevented dotCMS from starting up. (#19653)
      • Fixed an issue that sometimes caused an error when a page was edited in a foreign language but the page only existed in the default language. (#19686)
      • Fixed an issue in EMA app that caused an error when proxying the request to a 3rd party server. (#19709)
      • Fixed an issue that sometimes caused GraphQL to freeze when push publishing new content. (#19660)
      • Fixed an issue that sometimes caused an error when GraphQL was queried via a relationship with another Content Type and the query included a Category field on a File Content Type. (#19728)
      • Fixed an issue that sometimes caused a SQL error when a user tried to browse by a specific content type using the filter in the content types portlet. (#19744)
      • Fixed an issue that sometimes caused an error when a user defined a new content type with a variable name that was the same as a default variable used on the backend. (#19725)

      To view more information on these and other issues, please visit the dotCMS Github repository.

      Additional Changes and Improvements in dotCMS 21.01

    • Added the ability to get a token to the Add Endpoint screen to streamline push publishing. (#19275)
    • Improved behavior of SAML log out screen. (#19299 )
    • Added Import button on Application listing configuration page. (#19517)
    • Improved the speed of the CVS Importer tool. (#19536)
    • Improved how the database handles content from deleted users. (#19555)
    • Improved logging messages. (#19566 )(#19621)


    dotCMS 20.11.1

    Available: Dec 2, 2020 Demo starter image: 20201119

    dotCMS 20.11.1 is a minor release which includes fixes for an issue in previous releases.

    Fixes

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

    • Reverted a prior fix (#19558) to prevent an issue which could cause push publishing to fail under certain conditions. (#19634)

    To view more information on these and other issues, please visit the dotCMS Github repository.


    On this page

    ×

    We Dig Feedback

    Selected excerpt:

    ×