This feature allows developers to add email notifications directly into the notifications queue. It is useful when the email notification templates do not support a necessary custom logic that the template requires without requiring customers to re-write the entire email engine logic.
Release Notes
Now, users can build forms and content pages configuring them to trigger stand-alone actions with a click from the content page UI through the Page Builder.
We have added a new type of mapping that is available for editable type Action: you can see for example in a button fragment general options. To provide this out-of-the-box, we have evolved the button fragment to contain a configuration to switch between Link and Action buttons.
As it was done with 404 feature, now this feature is enabling our customers to fully adapt their users' experience providing an OOTB 500 error page fully customizable and allowing creation of new ones from scratch.
Improves the overall usability of the application and also the ability to reorder and add items. Also improve the accessibility of functionality:
- Now it is possible to move the items in a navigation menu using the keyboard.
- There is more flexibility when adding items to the navigation menu since you can now select the place where you want to add them to.
Now, when creating pages and display pages to visualize object entries, users can easily display related object entries. To enable this, we have added:
- In a one-to-many or many-to-many object relationships scenario, new related item collection providers access information of the “many” side of a one-to-many and many-to-many relationships. For example: a Countries object, and a related “cities” object for cities in those countries. This new capability allows users to easily list the cities that belong to a country, and other data from each city, via a related item collection provider.
- In a one-to-many object relationship, if we are listing or displaying the items of the “many” side, information of the “one” side is available for direct mapping as well. For example: a “Countries” object, and a related object for cities in those countries. When listing the cities, this new capability allows to easily display the country which each city belongs to.
- Attachment field attributes (such as download URL and file size) are now available for direct mapping.
Now users can create richer web content with the new Date-Time field available in Web Content Structures. To make it add more value, it is also enabled the possibility to map this new field to the editable of type Date-Time from any fragment, allowing users to customize the date & time values in content pages.
- New Date and Time field.
- Date-time values can be added to Web Content.
- Custom format in Fragment config.
- Custom date time display.
In order to improve the information we display at the Content Dashboard, we have added a new column with the Review Date value. With this new column, users have an easy way to view all contents where the review is needed. In addition, we have developed a new Filter to give the capability to show only the contents to be reviewed.
Note: This change will require a full reindex to work, so the new field can be propagated.
Filter by Review Date:
- All
- To be reviewed
We have refactored the Page Configuration and Page Design Options to make them homogeneous and consistent. Now, users can access Page Design Options as a section of the Page Configuration (they were two separate views before).
In addition to that, we have made the UX homogeneous and more consistent with new Clay component styles. We have also regrouped items according to what users intend to do, making it more logical and user friendly to configure.
Option of rating added to Folders and the endpoints for Documents rated by me, Folders rated by me have been created.
Ability to set expiration and review dates for articles, and to view which articles are pending expiration.
We have made the organization’s addresses, phone numbers and email addresses changes tracked. These can be added to a Publication from now on.
The list of working in progress for Publishing features can be found at Publications update 2023/06/13. We have improved performance, while also making the wiki pages change tracked. It has also been implemented a mechanism to remove publications that are more than 6 months old.
This new feature allows content editors to view the only publications that included modifications to a particular asset.
Users can now create, edit, or delete knowledge base articles within a publication.
Publications can take up quite a bit of space in the database. While some users need an extensive history, others do not.
With this new feature we can provide an optional clean up to remove older publications for those who do not need the history.
Users can preview the changes of a wiki page within a publication.
We have refactored Ongoing, Scheduled and History tabs to use dataset display, and added a configuration to speed up review changes screen.
Operating Liferay (on-prem!) with Elasticsearch 8 as a search engine leveraging its REST API compatibility mode through the bundled Elasticsearch 7 connector allowing Liferay deployments to upgrade the Elastic Stack to 8.x (opt-in), while also keeping compatibility with 7.x.
General Upgrade Instructions:
Please refer to the documentation for more details.
- No action is required for deployments already using and insisting to stay on Elasticsearch
7. - Moving to Elasticsearch
8may require a full reindex depending on the choice of the upgrade path:- Upgrading the current Elasticsearch
7.xcluster to8.xand connect DXP (Upgrade Elasticsearch | Elasticsearch Guide [8.10] | Elastic , recommended) → No reindex required - Setting-up a new Elasticsearch
8.xcluster, connect DXP → Reindex required!
- Upgrading the current Elasticsearch
This is not a new connector, but enhancements to the existing bundled Elasticsearch 7 connector and other Elasticsearch-only features (like Commerce, Workflow Metrics or Search Tuning) leveraging the REST API compatibility mode of Elasticsearch 8 servers.
Liferay Portal 7.4 CE GA78 and Liferay DXP 7.4 Update 78 Tomcat Bundles and Docker Images come with Elasticsearch 7.17.10 for Sidecar.
Support for Object displays pages in the search results, aggregating (via Custom Facet widget), filtering (Custom Filter widget) and sorting (Sort widget) using Object fields that are indexed as Nested Fields in Elasticsearch, similar to Web Content Structure (DDM) fields.
Search the company index for matching content through a single endpoint and build custom search experiences. Supports facets with translated display terms and also custom searching, filtering, aggregation and sorting through Search Blueprints (DXP ONLY)
With this new front-end client extension users will be able to add an entry to the global import map.
This can be used to share code between decoupled client extensions that are freed from the need to know the deployment URL of the code at build time. For example, this will allow you to share your library or framework of choice among all your front-end client extensions:
For a script to consume the JavaScript module referred to by the import map entry, it needs to be of type=module.
In order to help developers to understand how to use this client extension, a sample has been provided: https://github.com/liferay/liferay-portal/tree/master/workspaces/liferay-sample-workspace/client-extensions/liferay-sample-etc-frontend-2
This new frontend client extension allows users to replace the existing theme spritemap without the need to redeploy a theme. The spritemap should include all icons needed for the scope where it is used.
The Control Panel still uses the admin spritemap.
After registering the client extension, in the page template or page you need to use it, configure it from the design options menu:
To enable this client extension, do it from the Feature Flags management UI:
This feature allows developers to create or update an object and its related elements in a single request, optimizing the requests performed to the server, thus improving the overall performance of your solution.
Provided the necessary data for the related elements (ExternalReferenceCode, Id, etc), if the element already exists, it will relate the two objects, if the related element does not exist, it will create the object and it will relate them.
It is also possible to remove related elements by just updating the parent without the elements that are not related anymore.
Now, developers will be able to filter Custom Object Entries using the field values of the related elements for a given Object entry.
It is possible to filter as many levels as needed. The format of the filter query needs to be: relationshipName1[/relationshipName(i)]*/fieldNameN. Being relationshipName1, relationshipName(i), etc the different relationship names that join Object 1 with Object i, and fieldNameN being the name of the field of the latest Object definition on which the user wants to filter.
In addition to this, our nesting capabilities have been enhanced, so now it is possible to retrieve data for an Object entry and its related elements, supporting several levels of nesting.
The names of the different relationships to retrieve need to be specified in the nestedFields parameter, separated by commas. Additionally, the nestedFieldsDepth parameter with the number of levels to retrieve needs to be specified in order to indicate to Liferay how many levels it is necessary to nest.
It has extended the support for External Reference Code to other Liferay entities in version 7.4. With this new parameter, users will be able to access, create, update and delete various entities by simply specifying the scopeKey and the external reference code.
This External Reference Code is a custom identifier, which means that at the creation time it can be set, helping to migrate entities from one environment to another while keeping this External Reference Code the same across environments. You can check the available endpoints to be accessed by External Reference Code in the API explorer.
Now users can manage the tags and categories associated with the Objects entries from the REST APIs. When an Object has Categorization enabled, properties for tags and categories will be exposed in the Object entries schemas. Users can retrieve the information, set or update the tags and categories associated with the Object entries as well as use the information of these fields to filter information
Now it is possible to manage and check the permissions of the object entries directly from the headless APIs.
For each object definition, two new endpoints are available. One to retrieve the permissions that apply to that individual Object entry and another one that allows users to set/update the permissions that apply to that entry.
When the users are authenticated through SSO and IdP, it is possible to remove the ability of the end users to add or edit their passwords.
As an Instance Administrator, you are able to configure if the users have the option to give their password at registration and you can remove the whole password block from editing user data, if the password is not changeable by the password policy of the user.
The instance administrator can create email templates including the first name.
With this new feature, Instance Administrator can export audit data filtered by user as well as filtered by site. They can also store site data for audit events.
We display some additional messages to Site and Site template Administrators when there is a Friendly URL collision between Site page and Site template page.
On LPS-136108: URLs using a virtual host are always reformatted on export and import, even in cases where they don't need to be the validation of the Web Content was added for Liferay layout URLs. Before this, there was no validation, so users could create their customizations where they could add different URLs to the Web Content's content. After the validation was added, some custom URLs became unable to be added to the Web Content. From user perspective this was a feature loss, so we decided to deliver a feature to make customers able to add their custom URLs to Web Content's content field. This feature is about adding a configuration for storing the user’s relative URL patterns. So custom URLs containing this pattern would bypass validation.
In order to allow developers to exclude directories from the build, a new property has been added: liferay.workspace.dir.excludes.globs=
Kaleo Forms was already in maintenance mode. It is now being moved to deprecated, so it can be removed at the same time as DDL in about a year. This solution is being replaced by Objects, Workflow, and Form Container Fragments.
The portlets that are in the Contacts module will be deprecated.
These are:
- Contacts Center
- Members
- My Contacts
- Profile
In the first step, the modules were pushed to the maintenance mode.
Now you can create more detailed customer segments based on their specific actions. We have expanded our segmentation capabilities to allow you to segment your audience beyond standard website activities to include custom events. You can create highly targeted customer groups for more personalized experiences. Additionally, Liferay DXP now provides alerts when custom event criteria change, ensuring segment accuracy and relevance. Gain greater control over your customer analysis and the ability to deliver more relevant content.
Roles Managers can now define permissions for Object entries directly within the Roles UI. A new “Objects” main menu item has been added to the Define Permissions tab, listing all Custom Objects, allowing easier granular permission assignment.
The main change in this initiative is the new capability to control Analytics Cloud (AC) tracking through the cookie manager. We have updated the description of the Explicit Cookie Consent Mode to clarify that enabling this configuration via Preference Handling will disable Analytics Cloud tracking and other features. Now, if the Explicit Cookie Consent Mode is enabled, no cookies are set until the user agrees to their usage; otherwise, all cookies are set until the user opts out of them.
We have also introduced a new Utility Page, named Cookies List, which serves as a central hub for all cookies supported by Liferay. This page lists all four categories of cookies (strictly necessary, functional, performance, and personalization) and provides detailed information on each specific cookie, including its purpose and expiration date. For that, we have created new system objects to facilitate the management of cookies. If customers use additional third-party cookies, they can easily add new entries for these cookies, and they will automatically be displayed on the Utility Page.
Additionally, once a user is suppressed, their data is completely anonymized, making it impossible to trace any data back to a specific individual.
This initiative focused on enhancing user interface (UI) of both Downloading Reports and Path Analysis tool, establishing a cohesive design pattern across them. In particular, we committed to standardizing the presentation of Download Reports, encompassing various formats such as PDF and CSV, within the Downloading Reports Feature. This strategic investment underscores our dedication to delivering high-quality solutions that effectively address the evolving needs of our stakeholders.