The addition of new translations and locales ensures that users in Myanmar, Bosnia & Herzegovina, Ireland and Serbia can interact with the platform in their preferred languages or regional variation.
Key benefits:
Tailors the user experience for specific markets and regions, improving relevance and usability
We made the platform more inclusive by expanding language and locale options.
The Accessibility Checker Component is being deprecated as part of our effort to improve accessibility tooling and simplify our component library. After evaluating its usage and overlap with other accessibility solutions in Liferay, we found it to be redundant and we stopped using it long time ago.
Blueprint Collection Provider Extended Type and Subtype Support Search
By displaying the blueprint's results in a Collection Display fragment (available since DXP 7.4 U88 as Beta), you can leverage search to return your assets dynamically, and reap the benefits of the fragments toolbox to lay out the page.
Enhanced Type Support
Now, the Blueprint Collection Provider supports asset types (like structured web content and Objects) allowing to map specific item fields beyond the the basic information fields (i.e., asset entry fields) in fragments, depending on the Searchable Types settings of your blueprint.
When selecting Web Content Article as Searchable Types, the subtype selector becomes available
Selecting an available Web Content Structure (Subtype) as Searchable Types in a blueprint
Web Content Article with a specific Web Content Structure selected as subtype in a blueprint
Mapping a Web Content Structure field from a Blueprint Collection Provider with a specific return type in a fragment
Web Content Article with no subtype restriction selected as Searchable Type in a Blueprint
Mapping Web Content Article field from a Blueprint Collection Provider with a specific return type in a fragment
Document with a specific subtype (Document Type) is selected as Searchable Types in a blueprint
Mapping Document Type fields from a Blueprint Collection Provider with a specific return type in a fragment
Object type selected as Searchable Types in a blueprint
Mapping Object fields from a Blueprint Collection Provider with specific return type in a fragment
Message Boards Message selected as Searchable Types in a blueprint
Mapping basic information fields from a Blueprint Collection Provider with return type Asset in a fragment
Opt-in Collection Provider
Configure if a collection provider should be published when creating a new blueprint, or later via the Configuration tab or through the action menu in the table view in Blueprints.
Enabling a blueprint as a Collection Provider on creation
Enabling/disabling a blueprint as a Collection Provider via Configuration later
Enable blueprint as a collection provide via the action menu in the Blueprints admin
Benefits
Access and map type specific item fields fields in fragments for an extend range of types including Web Content Article and structures, Documents and Document Types and Objects.
Limit searches to specific subtypes via Query Settings in Blueprints
Liferay Self-Hosted deployments can update their Elastic stack to this version. For Liferay PaaS projects a new Elasticsearch image will be provided under Liferay Cloud’s Docker Hub account.
Liferay Tomcat Bundles and Docker Images ship with Elasticsearch 8.18 as the sidecar search engine.
Benefits
The Elasticsearch server runtime included in Liferay DXP Tomcat Bundles and Docker Images (aka. Sidecar Elasticsearch, located under [Liferay-Home]/elasticsearch-sidecar) is provided as a convenience for local development and testing only. It is neither suitable nor supported for production.
Frontend Data Set Cell Renderer CX Upgrade Low/No-Code
Addressing prior limitations, custom cell renderers created with Client Extensions now provide full row data access. This empowers developers with expanded options and greater flexibility for their implementations so they can create a renderer for a cell and include data from all the row mixing the contents. For example, you can create a cell to calculate the volume of a furniture good based on the different dimensions fields.
Benefits
Expand developer capabilities to create more powerful Client Extensions for Data Set Cell Renderers
The Data Set has a revamped experience in terms of selection that also provides a quicker way to contextualize the user interaction.
When facing any of the visualizations (table, card, row) the user can click on the item body to perform single selection. This enhances rapid selection and better interaction.
Benefits
More modern selection pattern that follows industry trends
Clearer states for the user to distinguish when an item is:
With this release, the Liferay DXP is now built with the modern, cloud native technology provided by the Jakarta EE 10 platform. The legacy Java EE platform will no longer be supported on this and future releases, allowing Liferay DXP to continue to evolve and build innovative solutions to meet your business needs.
Benefits
Liferay DXP now certified on Jakarta-based application servers: Tomcat 10.1, Jboss EAP 8.0, and Wildfly 30. This also provides support for newer specifications such as Portlet 4.0, Servlet 6.0, and Spring Framework 6.0. The update paves the way for faster feature development and rapid security fixes available in the modern Java enterprise ecosystem.
PostgreSQL migration now supports all source databases Platform
The Beta feature to migrate databases to PostgreSQL has been updated to support all supported database types. PostgreSQL is the Liferay recommended database server, especially for PaaS and SaaS users and Liferay provides this tool to simplify the migration.
Benefits
Users on MariaDB, SQL Server, Oracle DB, and IBM DB2 are now able to migrate their database to PostgreSQL. The tool was previously limited to users on MySQL. Now all users have access to the DXP and Cloud performance benefits of using PostgreSQL.
The DXP database upgrade process has been enhanced with a suite of verification checks that are executed before any data modifications are made.
These checks have minimal impact on the overall upgrade process execution time, but they can be optionally disabled with the property upgrade.database.preupgrade.verify.enabled=false
Benefits
It can be frustrating when a database upgrade process executes a large amount of modifications to the system and then fails due to a misconfiguration, prompting the need to restore the database and restart the process. Now the database upgrade process will perform a series of configuration checks and report them to the user before modifications are needed. This prevents the need to always restore the database or document library before re-running the upgrade. The upgrade report will still be generated if the preupgrade checks fail, and provide details of any issue.
This feature adds workflow support for Root Models. Child object definitions which are part of a root context will inherit the workflow configurations of the root parent. This simplifies the administration of objects which are part of root model applications.
FriendlyURL support for Object Entries Personalization Low/No-Code
Friendly URLs, also known as clean URLs or pretty URLs, are web addresses that are human-readable and search engine-friendly. They typically use descriptive keywords instead of cryptic file names or query strings. Users can define a friendly URL for entries, making them more human readable and search engine friendly.
Enhanced Batch Deletion Flexibility with External Reference Support at Site Scoped entities Integration
New improvement to make easier the way to promote content among environments. Liferay expands the capabilities of the Batch Engine by introducing a powerful tool for site scoped entities:
Batch Delete by External Reference Code( Site Scoped entities ) – Users can now delete items using external reference codes instead of internal IDs, making batch deletions simpler and more consistent across environments.
Now, covering all scopes, the way teams manage bulk deletions is more simple and safe because it is based on the use of external identifiers so the consistent data maintenance across staging, production, and other instances is possible without changing between environments
Key Business Benefits
More reliable environment synchronization: External Reference Codes allow you to delete the same entities across different environments without depending on internal IDs, reducing risk of mismatches.
Simplified bulk deletion workflows: Deleting large sets of data is now easier, with fewer manual steps and lower chance of errors.
Greater control over delete operations: Choose whether the process should stop on errors or complete fully—helping teams tailor the behavior to fit their operational needs.
Increased resilience and fault tolerance: Deletion jobs are less likely to fail entirely due to minor issues, ensuring smoother maintenance processes.
Consistent support across entities: These enhancements are available for all entity types supported by the batch engine, making them broadly applicable across different use cases.
Context: Both features are part of the “Promote content among environments” strategic initiative.
RESTBuilder generates Jakarta compatible code Integration
Describe the feature:
With the migration to Jakarta, RESTBuilder needed to adapt to be able to generate the classes with the right namespace.
Use the javaEEPackage property to define whether to use javax as namespace (for pre-Jakarta versions of Liferay) or set the value to “jakarta” for newer versions.
Upgrade /siteId and /by-external-reference-code path patterns Integration
In our headless APIs, we have many endpoints with /siteId/{siteId}/ as part of the path for many entities. Now, siteId not only accepts the siteName or the siteId as value, but also the External Reference Code of the site can be used.
Delete Application Data Before Importing in Staging Personalization Integration
Until now, when executing a staging import, users could choose, prior to the import, to delete all existing information in the destination environment. This option has been deprecated due to its low usage (verified directly with clients and partners) and the high risk it entails, as deletion affects not only the elements already in the import but also their related entities. This could lead to the loss of necessary information or the possibility of some entities becoming disconnected from the rest, making both the import and error resolution extremely complicated due to the lack of a list of affected elements. There will not be a substitution, so the alternative will be to delete the elements manually, either from the UI, API or directly in the database before performing the import.
Copy as new update data strategy in Staging Personalization Integration
When executing a staging import, users could choose different strategies to update the data. ”Copy as new” was one of the option, that allow the importer to create new items if they were already in the system. This could lead to create more elements than expecting that later on the user would need to clean. We are deprecating this feature in order to simplify the UI and avoid users to do mistakes.
Extension point for integrating custom CAPTCHA solution/service Security
The Captcha extension point allows customers to integrate custom or third-party CAPTCHA solutions into their system, enabling greater flexibility and control
Key benefits
Removes restrictions on supported CAPTCHA providers
Empowers customers to choose and configure CAPTCHA solutions that best suit their needs
Enhances extensibility and adaptability for diverse use cases and compliance requirements
Just-in-Time (JiT) user provisioning for OIDC and SAML enables automatic synchronization of user data, including user groups at every authentication event. This ensures that user profiles are always up to date
Key benefits
Ensures real-time synchronization of user attributes and group memberships
Reduces administrative overhead by eliminating the need for pre-provisioning
Enhances security and compliance with up-to-date access control
Improves user experience by streamlining access without delays
In order to assist users in the migration to Jakarta EE required for 2025.Q3 and beyond, Blade and Workspace users now have a command to automatically convert their source code from Java EE to Jakarta EE for DXP-provided libraries.
Benefits
This tool simplifies the process for users migrating custom code to Jakarta. Providing:
In-place source code transformation from javax to jakarta for custom development projects using DXP-provided libraries
Liferay-specific dependency mapping
Portlet 4.0 conversion
Integration into Liferay Workspace
Supports source code conversion regardless of deployment method (e.g. JAR or WAR)
This tool is supported by Liferay to convert source code for compatibility with the Jakarta libraries provided by Liferay DXP.
Translation Status for Web Content Fields Content Management System (CMS)
We have implemented a new translation status feature in the web content editor, labeled "Translating," which provides information about the number of translated fields and those still requiring translation. This feature helps users to quickly identify areas needing translation. Additionally, all translatable fields, including metadata, are now conveniently displayed on the left side of the screen, reducing the likelihood of overlooking them.
Easily identify private content Content Management System (CMS)
Users can readily spot content that is not visible to Guest users through an icon, whether it's in list or table view or within the web content editor. Additionally, this feature is accessible in the item selector, empowering users to discern which content is not viewable by Guest users.
You can now have access to the event’s details when selecting a calendar event and be redirected to the already existing details page of that particular event. It is also possible to map a Calendar Event’s specific URL, along with some other fields, in order to use it in emails so the recipient can click on it and be redirected to the Event’s details.
Improved Web Content “Mine” and “Recent” Filters Content Management System (CMS)
Now it is possible to easily identify the content you have created and any recent content you generated. This enhancement streamlines and optimizes this workflow.
Make URLs configurable for Asset types Content Management System (CMS)
Easily configure the friendly URLs for the different asset types, updating URL separators. In addition to that, now users are able to set categories within a blog’s friendly URL and easily identify by the URL what is the main topic of the page they are visiting.
Update AC Usage Metrics to Reflect Policy Changes Personalization
This feature aims to refine the Analytics Cloud Usage Page. Alongside UI enhancements for a better user experience, we focused on enhancing data accuracy and real-time precision. Our efforts aimed to eliminate data discrepancies and prioritize transparency for the users.
Key Changes:
To promote pricing transparency, we removed the outdated prices from the Workspace settings and implemented a clear message prompting users to reach out to their Customer Success Manager for information on upgrading their plan.
Aiming to simplify the interface and highlight pertinent subscription details, some changes were made to the UI of the Subscription and Usage menu, focusing on displaying relevant information to the customer related to their current plan.
Enhanced Script Loading Options for JS Client Extensions Sites
We're introducing advanced script loading options for JavaScript Client Extensions in Liferay, providing developers more control over how JavaScript is applied to pages. This update allows the specification of async and defer attributes directly in the extension's configuration, optimizing the loading process and improving page performance. Benefits for users:
Improved Page Load Performance: by setting async or defer attributes, scripts can be loaded non-blocking, enhancing page responsiveness.
Enhanced Control: developers can pre-set these attributes in the YAML configuration or through the UI, ensuring scripts behave consistently across all pages without further adjustment.
Streamlined Configuration: once set, these attributes are locked at the extension level, eliminating discrepancies and simplifying script management.
Allow developers to specify additional attributes to the <script> tag when deploying in with the JS Client Extension.
Or, developers can configure the attributes via the create Client Extension UI too:
When configuring a JS CX on a page and async/deferBoolean attributes are present in the CX (set in the yaml / defined through the UI), the following behaviors apply in regards to the Load type options:
The attribute set in the CX will be used and the ability to change it when applying it on a page will be disabled.
When both attributes are set in the CX, asyncwill be applied.
When async or defer is set to false in the CS, the related option will be removed from the Load selector. (e.g. if defer: false the load options available for the user will be default and async).
Support for SugarCRM connector for Proxy Objects Sites
This feature introduces the capability to connect Liferay Objects with SugarCRM Objects, empowering users to synchronize and store their data efficiently between the two platforms. By bridging these systems, users can streamline their workflows, enhance data consistency, and leverage the robust features of both Liferay and SugarCRM.
Users can now, with low effort, connect their Liferay and SugarCRM environments, eliminating the need for manual data transfers and reducing the risk of errors. This enhancement not only simplifies data management but also enhances the overall user experience by providing a cohesive and integrated ecosystem for managing customer data.
Allow users to publish child pages without their parents Sites
We have improved the behaviour of an existing configuration to be able to properly publish a child page in a Staging process to Live site without its parent(s). This also improves the performance of publishing changes.
It is now possible to select Date Times as a product option type, configuring purchase options for products based on date, times, time zones, and durations, allowing for the sale of time slots.
CAPTCHA check added to Server Administration pages Security
The Server Administration interface provides powerful tools for controlling the server. As an added layer of security, CAPTCHA is now required for actions in Server Administration pages and the Gogo Shell page. Due to the sensitive nature of these controls, the system will still enforce CAPTCHA on these pages, even if the “Maximum Challenges” configuration is set to a negative number.
Forgot Password and Create Account portlet creation Security
To create Sign In, Forgot Password, and Create Account utility pages, it's necessary for these three views of the Login portlet (i.e., Sign In widget) to be available as individual widgets, which can be placed on pages separately. As a result, Sign In, Forgot Password, and Create Account are now accessible as separate widgets.
It's worth noting that the Sign In widget retains its previous functionality.
Manage complex fields in dataset views Low/No-Code
It allows users to map fields on the first level of related elements or any hierarchical structure through a tree view which is searchable and expandable.
In addition, it is possible to map leaf fields, the common use case, but alsoparent fields which include all the children data to be rendered through a Client Extension.
Define list and cards visualization modes for dataset Low/No-Code
Until now the Data Set was always rendered as a table with one column for each mapped field. From now on, the admin user can define up to three different visualization modesfor the same data: Table, List and Cards.
These visualization modes share the configurations about: filters, actions, sorting and pagination. However, each visualization mode can have different mapped fields decided by the admin users.
Also, a new Settings tab to select the default mode has been added.
Final users will be able to view the visualization modes created by Admin Users and they will be able to change between them to discover the data in the way they want.
Manage additional actions for dataset displays Low/No-Code
The Data Set for actions has been improved to provide new capabilities to the users:
For the Item Actions: now there are 4 new available types available on top of the link Action: Async, Headless, Modal orSide Panel. It allows Admin Users to connect items to new functionalities and use cases.
Creation Actions: this optionhas been created in order to allow Admin Users to create new data or direct their users to a place where they can create it.
The autocomplete attribute grants the user agent permission to provide automated assistance in filling out form fields. This feature can significantly speed up the form-filling process, especially for repetitive or standard information like names, addresses, and email addresses. This also allows screen readers which use standard attributes such as autocomplete to assist users navigating websites.
Incorporating the HTML autocomplete attribute into your forms is a simple yet powerful way to enhance user experience. By leveraging autocomplete suggestions, you can streamline the form-filling process, reduce errors, and ultimately create a more user-friendly environment. Experiment with different values, test across browsers, and watch as your users appreciate the improved efficiency of your forms.
When publications go out of date, they are completely useless and all changes made to them can not be leveraged in any capacity. The changes in this feature allow publications users to move changes from an out of date publication to another publication. This allows users to salvage changes after an upgrade.
This feature prevents portal from being unusable when a change-tracked entity being modified in a publication is removed from production. If an entity is being modified in a publication, it cannot be removed from production. If a deleted entity in a publication is being modified in another publication, the publication with the deletion cannot be published.
Notify and provide additional context to editors when a publication has failed to publish Publications
If a conflict appears between the scheduled publication and Production before or during publishing stage, we have added a functionality to provide more information inside Liferay notifications when this situation occurs.
This features creates a reviewer role that has read-only (and no update) permissions. It grants permission to review the draft of a content page, or the pages that are submitted through a workflow and are still pending approval and publication.
Manage Permissions of Different Group of Pages Page Permissions
Page Creator now can efficiently manage permissions for their website, distinguishing between public and restricted pages. Key functionalities, such as unique designs and restricted access, are incorporated seamlessly.
Requirements include easy identification of page visibility, bulk permission management, and configuration options for both individual pages and entire branches.
Provide the option at Instance and Site settings to the XML sitemap to allow customers to customize the inclusion or exclusion of content according to the SEO technical requirements.
When the User reaches Control Panel → Instance Settings, a new menu item (SEO), under Platform,will be shown. By accessing this menu, the user will be able to include/exclude different content.
Downloading Documents and Media Files Directly from the Search Results Search
When the user has Download permission on a file, then the Documents and Media File result features a download link in the Search Results widget in all out-of-the-box widget display styles.
The Search Results widget Template Context has received a new field to obtain the download URL in custom display templates: ${entry.getAssetRendererURLDownload()}
Part of the recurring compatibility testing, Elasticsearch 8.13.x has been added to the compatibility matrix to the corresponding Liferay versions.
Note: Compatibility with newer Elasticsearch minor versions is always tested in two ways:
Latest-Latest: Testing the latest Liferay version with the latest available minor version of Elasticsearch → e.g. Master/2024.Q2 + Elasticsearch 8.13
Minimum-Latest: Testing the minimum Liferay version where Elasticsearch 8 compatibility was first made available with the latest minor version of Elasticsearch → DXP 7.4 U81/DXP 7.3 U31 + Elasticsearch 8.13
This way we can not only provide compatibility for the latest Liferay versions, but also backwards compatibility, allowing a broader customer base and deployments to operate their stack with an up-to-date search engine version.
As Elasticsearch is usually released a new Minor version roughly every two months, this is a recurring process and a planned activity for our team.
Elasticsearch Client & Sidecar Updated to 7.17.18 Search
Liferay ships with an updated Elasticsearch connector using 7.17.18 as the client version. It is also for the development and testing purpose for Sidecar server.
The solution involves implementing advanced filtering options on the Builds and Deployments pages of the platform. This feature allows users to filter builds and deployments by key parameters such as date and environment. It is structured as following:
Date Filter: users can select a specific date or a date range from a calendar interface. This allows to view builds and deployments that were created or modified within that timeframe, facilitating quick access to historical data or recent updates.
Environment Filter: this filter enables users to select from pre-defined environment options (e.g. development, testing, production) viewing only the builds and deployments relevant to the chosen environment. This is particularly useful for teams managing multiple environments and needing to track their respective changes efficiently.
Base64 support for files management of custom objects Integration
For custom objects, we have add the possibility to upload and save an attachment file in only one step. As another field of the entry, users can upload directly a document to an attachment field using Base64 format.
Manage multiple versions and endpoints with same name in GraphQL Integration
Until now, in GraphQL, it was not possible to create a query (or mutation) where the user could select the version to execute. Besides that, in case more than one endpoint had the same name but in different applications, you couldn’t select which one to use.
In order to make queries and mutations unique in GraphQL, we have created a new structure using a namespace with the following format:
Users can choose between using the previous structure ( always execute the last version or the first endpoint created) or the new one ( allow to select exactly what to execute using the namespace ). Both are available.
Allow users to set the localization for custom objects Customer Data
Until now, for a translatable object fields, there was no way to get the values in different languages and always returned the default one. With this change, by adding the Accept-Language header, users can get the selected values properly. This change affects to Rest API and GraphQL.