Compatibility with Java JDK 8 runtime has been deprecated as of Q4.2023. Java JDK 11 is now the recommended runtime environment. All Java Technical Compatibility Kit (TCK) compliant builds of Java 11 are certified. DXP source compile and runtime compatibility for a higher Java JDK is expected in 2024.
Release Notes
Proxy Objects allows users to manipulate data directly in external systems, such as Salesforce. This feature provides the ability to always interact with live data, avoiding duplicating and conflicts between the systems.
Now, Liferay includes a connector to Salesforce for proxy objects. With it, you can integrate your proxy object with custom Salesforce objects, using Salesforce as an external storage system
New terms available in notification templates related to the current user and entry creator were added, in order to improve the power of dynamically generated templates.
Added terms:
[%CURRENT_USER_ID%]
[%CURRENT_USER_FIRST_NAME%]
[%CURRENT_USER_LAST_NAME%]
[%CURRENT_USER_EMAIL_ADDRESS%]
[%OBJECT_AUTHOR_ID%]
[%OBJECT_AUTHOR_FIRST_NAME%]
[%OBJECT_AUTHOR_LAST_NAME%]
[%OBJECT_AUTHOR_EMAIL_ADDRESS%]
This feature allows power users to configure the intervals to retry to send the email notifications when the first instant attempt fails.
Evolving the power of notification templates, this feature allows users to use variables not only from the object in context, but also from related objects.
This feature allows the user to define a default value for object picklist fields. Default Value can be configured for custom fields from both Custom and System Objects.
This feature allows the user to require that a field's values be unique inside of that column. When this is configured, the system will not let two records have the same value for that field, behaving similarly to a key to that entry.
This feature adds a new field type “Date and Time”. A Datetime
value stores a year, month, day, time, and time zone. With this field, users will also be able to create time ranges, manage priorities and order entries well, and to give more context and assertiveness to the data.
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 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.
Evolving the extensibility of system objects through objects framework, this feature allows users to create and update System Object entries through Object Actions as they can with Custom Objects.
In order to get in context entry history information, this feature introduced the endpoints to retrieve the object entry log information through the object headless API suite. Allowing users to compose experiences with the specific entry update history.
This feature allows users to delete fields from published objects that were added before the object got published, giving more flexibility to admin users.
This feature allows users to enable the basic encryption support for object fields.
This feature shows the Organization application as a System Object in Objects Admin, allowing users to extend it and related with other objects available.
OTB workflow that will split a mixed basket of goods a customer places from different suppliers, into individual supplier orders to support marketplaces and webshops where partners are also present.
Used in Conjunction with Supplier Accounts, this object's rule, once configured, splits Commerce Orders automatically by the Catalog that each Product belongs to. The Channel on the Order is updated to be the channel linked to the same supplier that the Catalog is linked to. The order splitting rule effectively allows the supplier to manage orders for their own specific products.
OTB Support for Customers to request quotes for catalog products or baskets and to restrict pricing to be only available on request:
- Enable Product Catalog managers to initiate contact with a Sales Agent to process a quote.
- Allow customers to request a quote for a catalog product.
- Submitted Quote requests will be assigned to the sales agents to review and process.
- Allow clients to request a quote for individual products instead of setting a price.
- Includes the option to use a Price List or a Promotion to price the Product as "Price on Application".
- There is also the ability to activate the "Request a quote" option on a fully priced cart for a particular channel.
Make it easier for suppliers to manage products and orders with an OTB account type supplier, and a Generic Supplier role, that grants them the ability to manage their own product catalog(s) and channel. With this, they will have the ability to create product bundles with SKUs from Supplier Catalogs.
New Account Type of Supplier. A Supplier can be linked to a catalog and to a channel to allow the supplier to manage their own products, price lists, promotions, catalogs, discounts, inventory and channel in order to be able to fulfill orders for their own products.
We have enabled the integration with ChatGPT so texts can be generated from the Web Content editor.
There is a new button on the CKEditor (web content editor) that triggers a modal where users can write a prompt (instructions for the bot) and add additional parameters such as tone and length.
In order to make it easier for users to configure certain accessibility properties to their liking or needs, we have created our Accessibility Menu.
The Accessibility Menu allows each user to customize certain accessibility settings in a specific way, so that DXP has a custom accessibility setup based on the needs of that user. It can be accessed via keyboard navigation using Tabulation, right after the “Skip to Content” option.
A new application, named Data Set Manager (Data Sets in the Control Panel) allows admins to define through a UI data set views for the different headless resources available. Admins will be able to choose the data source, as well as configure the columns to be available and the pagination options for the different views.
To enable this feature:
- Add feature.flag.LPS-167253=true to your
portal-ext.properties
- Go to Instance settings > Feature Flags and enable “Data set manager” in the Beta tab.
In addition to the data set manager, two additional components have been added to provide the full value to the users:
- A new fragment, so these views can be integrated in any content page. Content managers will select the data set view to display on each fragment.
- A new frontend client extension, Frontend Data Set Cell Renderer, that allows developers to customize how any field of the data set view is rendered, providing total control of the look and feel of any column.
Pleae check the Content Security Policy by clicking here.
This feature applies the GDPR rules to the object entries. When the admin chooses to delete User's Personal Data, the object entries related to that user will also be deleted.
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.
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.
Now it is faster to implement experiences that rely on forms to interact with a business process, specifically in scenarios in which our customers decide to create their own custom form fragments according to their own look & feel or behavior.
We have added a configuration for the user to decide which form fragments will be automatically mapped to each Object field type, when a form container is mapped to an object.
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.
Fragments now provide editable types to map Link to Page field types that can be found in structures.
- The page creator can map the Link to Page field in a fragment from a content page.
- The Link to Page field is still mapped through a fragment on a Content Page even after the site is imported.
Before, changing cacheable
configuration of a fragment would imply a "save" action and potentially a changes propagation action (no changes indeed if only the cache configuration was changed). This caused problems in performance and other aspects (such as wrong modification date).
From now on, and to avoid that, Fragments Cacheable
property is managed in the Fragment options ellipsis menu: Fragment Sub-Elements Reference
This prevents fragment save + propagation when this configuration is modified, making it more efficient and resistant to issues.
In addition to that, we have added a cached label to better indicate which fragments have active cache.
IMPORTANT: BREAKING CHANGE as customers might expect the Cacheable configuration to be inside Fragments Editor, and now it’s placed in a different position.
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
Traditionally, it has been complex and tedious to configure the necessary permissions that would make the Control Menu not visible for logged-in users. As soon as one permission was not configured properly, the Control Menu would be visible for these users.
This was previously managed by a specific logic inside the Theme, but now, we have made it easier to control and configure with a new setting.
Now, customers can easily control visibility of the Control Menu per role, within Site Settings >> Site Configuration >> Menu Access.
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.
This feature adds a HTML template that provides more context for the email notifications users get when Message Added Email and Message Updated Email are triggered on Message Boards.
For this, three new terms were added:
- Message siblings: message thread of messages at the same level.
- Message parents: the message body of the parent message.
- Root message body: the message body of the original message.
Ability to filter the user agent (all, human, bot) for each redirection pattern, in Configuration.
Users can set different permissions for download and for viewing documents.
Option of rating added to Folders and the endpoints for Documents rated by me, Folders rated by me have been created.
Provide users with a simple and effective way to view, access, and manage the Knowledge Base folder hierarchy. It is included:
- Drag and drop experience for moving content.
- Search for content in the Knowledge Base management.
- Using the action menu to manage folder.
Ability to set expiration and review dates for articles, and to view which articles are pending expiration.
Improved navigation through the different tabs and pages in Knowledge Base in the manage toolbar, sidebar search, sidebar primary button, priority and general interactions.
Table View is displayed in the Knowledge Base.
Now Content Editors can easily find the documents they are looking for thanks to the new filters added to Documents & Media.
Three (3) new filters have been added: categories, tags and extensions.
Page listing the version history of a document to help managing different version.
Priority icons to MB CSS are added to avoid to force enabling font awesome in the whole portal.
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.
With this new feature an admin should be able to help preconfigure a publication to help facilitate their unique workflows.
Publication templates can be leveraged to provide naming patterns to any created publication. Tokens are provided to allow each publication to have unique names.
Admins can also assign roles to users immediately during publication creation.
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
8
may require a full reindex depending on the choice of the upgrade path:- Upgrading the current Elasticsearch
7.x
cluster to8.x
and connect DXP (Upgrade Elasticsearch | Elasticsearch Guide [8.10] | Elastic , recommended) → No reindex required - Setting-up a new Elasticsearch
8.x
cluster, 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.
Automatically register a collection provider for each search blueprint. By displaying the blueprint's results in a collection display fragment, you can leverage search to return your assets dynamically, and reap the benefits of the fragments toolbox to lay out the page.
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)
Liferay Portal 7.4 CE GA88, Liferay DXP 7.4 Update 88 bundled with the latest available version of Elasticsearch 7.x for Sidecar (7.17.12
, as of Aug 7, 2023).