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.
Release Notes
Deployments can operate their stack using the latest available, secure and stable version of OpenSearch 2.
Requires to install Liferay Connector to OpenSearch 2.
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.
Instead, configure Liferay to connect to Elasticsearch as a self-managed, standalone server or cluster of server nodes.
Collections with Blueprints (FF: LPS-129412) available as since DXP 7.4 U88 is now in RELEASE status and can be enabled via Feature Flags > Release.
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:
Selected (active)
Hovered
Both at the same time
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.
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.
Allow users to call the {scopeKey} using the external reference code when creating a custom object with site scope.
Ex: /scope/{scopeKey}/...
Now, ID, Name and ERC are supported for scopeKey.
Users can now refer to their custom external reference codes for sites when interacting with object endpoints.
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.
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.
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.
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.
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.
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.
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.
There will not be a substitution.
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
We improved the password reset function on the Forgot Password Utility Page to prevent it from redirecting users to the old Forgot Password page.
Key benefits
Consistent page experience
The FF changes from Beta to Release
Users now have more access to several more metrics on their metrics page. Improving their visibility and troubleshooting capabilities.
Highlights
New metrics visible in the metrics page;
New metrics improve visibility of platform and infra elements, greatly speeding up troubleshooting and understanding of platform behaviour.
The selection of metrics leverages our deep understanding
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
javaxtojakartafor custom development projects using DXP-provided librariesLiferay-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.
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.
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.
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.
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.
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.
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
asyncordeferattributes, 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.
Example usage in client-extension.yaml: liferay-portal/workspaces/liferay-sample-workspace/client-extensions/liferay-sample-global-js-2/client-extension.yaml at master · liferay/liferay-portal
scriptElementAttributes:
async: true
data-attribute: "value"
data-senna-track: "permanent"
fetchpriority: "low"
Or, developers can configure the attributes via the create Client Extension UI too:
When configuring a JS CX on a page and async/defer Boolean 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
asyncordeferis set to false in the CS, the related option will be removed from the Load selector. (e.g. ifdefer: falsethe load options available for the user will bedefaultandasync).
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.
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.
Manage contacts directly related to accounts like phone numbers, emails, websites, addresses.
A new Contact Tab in Account details page with 2 internals tabs was created:
- Addresses
- Contact Information
Users with “Accounts > Account Entry: Manage Addresses” permission should be able to manage their contacts with all these actions:
- Add
- Edit
- Remove
- Mark as primary
Example of managing a phone number:
Users without “Accounts > Account Entry: Manage Addresses” permission should be able to only view the existing phone number entries.
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.
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.
We aimed to facilitate seamless navigation between various Utility pages, whether there are multiple or just one.
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 also parent fields which include all the children data to be rendered through a Client Extension.
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 modes for 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.
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 or Side Panel . It allows Admin Users to connect items to new functionalities and use cases.
- Creation Actions: this option has been created in order to allow Admin Users to create new data or direct their users to a place where they can create it.