We are constantly working on improving performance of Publications. We have implemented improvement for Timeline and Conflict checking icons.
Release Notes
Boost the performance of reverting changes , when the DB has huge amount of records. This way the usability of Publications further increases.
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.
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.
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.
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.
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.
"AttachmentField1" : {
"fileBase64" : "iVBORw0KGgoAAAANSUhEUgAAAD0AAAAXCAIAAAA3N9DuAAAAA3NCSVQICAjb4U/gAAAAEHRFWH", "name" : "file.png"
}
And, to recover the values of the entry, they can do it in the same format using nested fields.
curl -X GET \ -u 'test@liferay.com:test' \ 'http://localhost:8080/o/c/mytestobjects/by-external-reference-code/users-computer-attachment-1?nestedFields=usersComputerAttachment1.fileBase64'
For sure, the previous options of uploading and downloading files of an entry are available too so the user can decide which to use in any case.
Only available for Custom Objects fields.
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:
Path + “_” + “v” + MayorVersion + “_” + MinorVersion ( 0 by default ).
query {
structuredContents(siteKey: "20117") {
items {
title
}
}
}
VS
query {
headlessDelivery_v2_0 {
structuredContents(siteKey: "20117") {
items {
title
}
}
}
}
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.
Feature Status Change
Provides the ability for the Order Manager to make refunds against on-line payments using the stand alone payment gateway. While the refund amount can be configurable, the refund is always made against the payment method of the original payment.
Feature Status Change
New link added to the chart from the organization management admin pages. Chart now supports search functionality. Users with permissions can view or edit more details of the Organization, Account or User when it is selected on the chart.
Feature Status Change Use the platform's configurable purchasing rules to dictate which product options need to be purchased together when setting up products with options. You can set which product options must be purchased together and/or which product options cannot be combined together to create a valid product bundle. You can also limit the number of products from a particular group of products that can be purchased together. |
Feature Status Change
The ability for a buyer or sales agent to edit a product bundle directly from the mini-cart has now been added. Previously, if a change had to be made the bundle had to be deleted from the cart and added again. This allows for more speedy alterations to be made before proceeding with check out.
Feature Status Change
Ability to add new steps to the checkout process via client extension. |
Feature Status Change
We've introduced case-sensitive tagging for page creators, allowing tags to be saved and displayed exactly as created, whether in uppercase or lowercase. The feature ensures case sensitivity for tag creation, case-insensitive searching, and autocomplete, while maintaining backward compatibility for existing tags.
Feature Status Change
In response to user feedback, several enhancements have been introduced for content creators. The first functionality addresses the challenge of easily finding and managing Web Content created within specific structures, allowing creators to review and edit content more efficiently. The rest of functionalities enable refined filtering and searching options, including the ability to search in the title, filter by categories and tag, filter search results and multi-select filters.
Feature Status Change
Now the configuration through the Client Extensions for Rich Text Editors is available by default.
Feature Status Change With the new support of Java JDK 17 and 21 runtimes, Java 8 will no longer be supported for DXP runtime on 2024.Q2 or later. Because JDK 11 was flagged for deprecation in the 2024.Q1 release, migration to one of the newly added versions is recommended. |
Feature Status Change
With the removal of JDK 8 runtime, DXP is no longer compatible with WebSphere. Migration to another application server on the Compatibility Matrix will be required for 2024.Q2 or later.
Feature Status Change
Support for these application servers is deprecated for 2024.Q2 or later since they are no longer receiving updates from the vendor.
Wildfly 26.1 and Jboss EAP 7.4 remain fully supported.
Feature Status Change
Users can add read-only fields to object definitions that automatically increment for each new entry.
Key Features:
- Customize Starting values - Users can set a starting value. This flexibility allows for better alignment with specific business needs and workflows
- Customize labels - Users can set prefixes and suffixes to provide alphanumeric keys appended to the incrementing values.
The current Announcements and Alert features are being flagged for deprecation as part of our move the Objects framework which will offer support for these use cases within its Notification capabilities.
This release will allow users to generate a version of Liferay Workspace that is compatible with Gradle 8.
Now users can select any image from the Liferay repository directly from the Web Content edition page, creating a better experience and allowing creating a structure of featured images if it’s necessary.
We have enhanced our recommendation engine to provide two new recommendation algorithms: one focused on recommending content based on the user's browsing history on the website, and the other one providing recommendations based on most popular content. These recommendation strategies can be used by adding the matching content collections to any page. Experimentation and attribution is also possible by comparing them through an AB test that determines the best strategy to increase CRO.
To help content creators raise the quality of their content, now they have integrated in our rich-text editors a spell checker that will help them solve spelling and grammar errors. It supports multiple languages, including: Spanish, English, French, and German.
Liferay AB Testing capabilities now helps customers save time by reassigning the traffic split based on the running test results. The dynamic traffic allocation ensures that the estimated winner variation gets more traffic, optimizing conversion in highly time-sensitive situations.
To help users enrich their content, Liferay provides a new LXC service to serve videos to a wide audience out of the box. Content creators will be able to upload videos directly to Liferay and the new service will take care of generating different versions with several resolutions to adapt to user’s connection capabilities, together with automatic subtitles and AI powered auto-tagging based on the video content. Content creators will also be able to add manual subtitles to the videos in case the automatic ones don't fit the need.
Blueprints are referenced by their ERCs under-the-hood in the Blueprints Options widget and the Low-Level Search Options widget also supports a new attribute called search.experiences.blueprint.external.reference.code
as the recommended way to configure a blueprint (preferred over the old attribute search.experiences.blueprint.id). In addition to that, when moving blueprints or elements between different environments using for example the Batch Client Extensions, entries will preserve their ERCs making portability easier. This way, when for example a search page is imported from a LAR, the Blueprints Options and Low-Level Search Options widget configurations can continue working thanks to the association being achieved via the ERC of the blueprint and not via its ID or other identifier that may be different on the new environment.
Lastly, users can now access and edit the ERC of blueprints and elements directly from the editors.
Liferay Portal 7.4 CE GA101+ and Liferay DXP 7.4 Update 101+ and Liferay DXP 2024.Q1 are bundled with Elasticsearch 7.17.14
as the Sidecar server.
In addition, the Elasticsearch client libraries have also been upgraded to 7.17.14
. Refer to the Breaking Changes notes below for more details how this may impact deployments.
LXC now provides anomaly detection to identify disruptions in the expected website traffic.
Anomalies in traffic volume are detected through a comparison with historical data, taking into account seasonality. Users can also create alerts based on custom events and schedule notifications when thresholds in metrics are exceeded.
Because WebDAV appears to be the only viable solution for remote documents access/editing for the moment and there is customer demand. WebDAV supports HTTP Basic and Digest auth. The latter requires us to store insecure hashes, because of protocol specifics.
Because we cannot change that nor remove WebDAV support, we will reduce the impact of a successful attack instead.
This is achieved by creating a separate strong password for Digest auth.
We achieve the “strong” characteristic through only allowing generation of passwords, based on UUIDs. This means when the hash is produced, it will also be stronger also, though not perfect.
This feature adds read-only support for all object fields types, making sure users are not able to update those fields from both the UI or APIs, only the system can through default values or actions for example.
Users can configure their fields between 3 options, read-only true, false, or conditional.
- Read-only false: normal fields that support input from users through the UI or API.
- Read-only true: fields that do not support inputs from users through the UI or API, only can be updated through the system, as actions and default value for example.
Read-only fields must be supported in views and layouts, in the layouts those read-only fields must be not editable.
- Read-only conditional: fields that by definition are read-only false, but that will throw exceptions in case the condition is true and the user can’t update that field. In this case, in the UI, the logic should run before the field is loaded, in the headless API, this validation is only made when the user sends the request.
- The condition is built using expression builder.
When users access a site in a language different from their user profile language, the following Information message is shown:
Now administrators can configure if this message will show up or not from System or Instance. Go to Instance Settings > Pages > Friendly URL Redirection and check/uncheck the “Show Alternative Layout Friendly URL Message” option for the appropriate value.
This feature empowers users to create content use cases on top of objects framework, allowing admins to enable localization for objects' entries text fields.
This feature allows customers, who need more capabilities than what the out of the box Expression Builder provides, to add their custom validations in Objects framework without running their data through an external microservice.
Now, users are able to fill out object entries in parts, allowing them to save data as draft and return at their convenience to complete.
Evolving the user experience when object validations fail specifying which information field end-users need to update.
This feature allows admin users to configure whether to send one email with everyone in copy or many emails individually to each email address.
Enabling this feature will allow users to dynamically populate fields using expressions with information created from data filled and provided by other fields.
Traditionally in Liferay, it has been hard to manage features deprecation because customers kept using the old features even if we announced deprecation and eventual replacements.
Now, we are able to better manage deprecation processes with the following changes:
- Features deprecation notice is increased from 6 months to 12 months. It applies to the Intended Functionality, as described in our Support Policy.
- Now, deprecated features might be kept inside a Deprecation Feature Flag during the deprecation period. These feature flags work as follows:
- For upgrades, Deprecation Flags are active by default, therefore customers still see the deprecated feature. No disruption is perceived.
- For new instances created, Deprecation Flag is inactive by default, therefore, the deprecated feature is hidden and it requires activation to be used. It prevents users from unconsciously using a deprecated feature.
Deprecated features are identified in DXP with a new deprecation badge.
When “Manage Users” permission is added to an Account Admin, the Admin can invite, assign and create Users. We separated the “Invite User” permission so it can be used without providing the other permissions to the User.
Before this feature when somebody wanted to activate/deactivate a User they needed to have “Delete” permission. We created two new permissions called “Activate” and “Deactivate”. Users with “Delete” permission still able to activate/deactivate users.
We also created two new Headless-API endpoint:
/headless-admin-user/v1.0/user-accounts/by-status/${status}
Status can be either "active" or "inactive," allowing you to fetch users by their status.
/headless-admin-user/v1.0/user-accounts/by-email-address/${emailAddress}
This endpoint lets you retrieve a user by their email address, regardless of their current status.
This feature addresses the inconvenience of not being able to remove specific entries from user invitation forms, enhancing the user experience for admin users who create these forms. It solves the problem of inefficient form management, allowing users to remove entries without starting over.
The feature enables users to remove entries from the invitation form by clicking a designated removal button, with a confirmation modal to prevent accidental removal.
We extended the Audit Log info on IMPERSONATION actions , ASSIGN/UNASSIGN events involving the role assignment of individual users and ASSIGN/UNASSIGN Role Assignment of Organizations/User Groups/Sites.
We have expanded our Headless Admin User API to include POST, PUT, DELETE, and PATCH endpoints for managing postal addresses associated with user accounts. This development aims to provide more comprehensive functionality and greater flexibility for our users. Additionally, we've made crucial changes to the UserAccount schema and related methods to allow users to manage user status efficiently.
It is now possible to set an expiration on the “set new password” link.
Now users can export the Frontend Client Extensions that have been registered through the UI and import them in other instances. The system will generate a JSON file with all the information needed.
In order to use supported JDK versions, we are upgrading to Gradle 7 to use newer JDK.
The integration of ChatGPT with our Web Content editor is now available OOTB.
The ability to map and trigger standalone Object Actions from the Page Builder is now available OOTB. |
This functionality is now available OOTB. For more information on this feature, please check out the DXP 2023.Q3 Release Notes. |
Now the “Theme SVG Spritemap” frontend client extensions is enabled by default.
Now the “JS Import Maps Entry” frontend client extensions is enabled by default.
Dynamic Data Lists is deprecated and replaced by Objects. DDL has been deprecated as of 7.3, and the Deprecation flag was added to prevent new integrations using DDL (customers that upgrade will still see it).
DDL is planned to be removed in 2024, please migrate your data to Objects before then.
Compatibility with IBM WebSphere application server has been deprecated as of Q4.2023. Please migrate to another application server on the Compatibility Matrix. WebSphere compatibility is expected to be removed at the end of 2024.