This feature allows users to delete fields from published objects that were added before the object got published, giving more flexibility to admin users.
Release Notes
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).
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.
The batch engine API allows developers to export/import data, but it requires developers to provide a configuration with multiple parameters. With the new auto-generated endpoints, it is easier to perform export operations in the portal. The export endpoints are asynchronous, so it will provide a taskId
in order to retrieve/download the records requested.
The endpoints follow this format:
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.
Now it is possible to use all query parameters available from the API explorer. Parameters such as fields
, nestedFields
or flatten
are accessible and ready to use in your test queries.
With this feature it is possible to differentiate the login failures in the audit messages, which one is caused by incorrect password and which one is caused by incorrect login.
Before this change, audit messages were only returned for cases when the authentication failed with FAILURE
status, which happens when the user provides an incorrect password. The event type is LOGIN_FAILURE
in this case.
With the new changes, it is provided audit information for cases when the authentication fails with DNE
status by adding a LOGIN_DNE
event type. DNE
stands for user "does not exist", it always means that the login (email
/ screenName
/ userID
) is incorrect.
So with the newly added LOGIN_DNE
event type we cover authentication DNE
scenarios when the login fails due to incorrect login (email
/ screenName
/ userID
) .
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.