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.
Release Notes
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.
It is now possible to set an expiration on the “set new password” link.
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%]
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.
This functionality is now available OOTB. For more information on this feature, please check out the DXP 2023.Q3 Release Notes. |
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.
Now the “JS Import Maps Entry” frontend client extensions is enabled by default.
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.
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
Now the “Theme SVG Spritemap” frontend client extensions is enabled by default.
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.
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 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.
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.
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.
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 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 power users to configure the intervals to retry to send the email notifications when the first instant attempt fails.
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.
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.
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.
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.
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.
This feature allows users to enable the basic encryption support for object fields.
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 shows the Organization application as a System Object in Objects Admin, allowing users to extend it and related with other objects available.
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.
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 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.
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, 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.
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.
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.
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:
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 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.
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).