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.
With our latest update, you can define access permissions and schedule content publishing in one convenient step, saving you valuable time and effort. Take full control over content visibility and publication timing, ensuring your content reaches the right audience at the right time. Publish with greater precision and efficiency - try the new Manage Permissions and Scheduling feature today!
Simply provide a descriptive prompt and let DALL-E generate the perfect image to complement your content strategy, saving you valuable time and resources. Leverage AI to spark new ideas and generate unique concepts that perfectly align with your content needs. Explore a world of visual possibilities!
Override default settings and tailor colors, fonts, and other design elements directly through the ThemeCSS Client Extension. This update ensures a visually consistent and brand-aligned experience for your website visitors. Simplify website customization and elevate your brand presence!
With a JavaScript (JS) client extension, you can run your own JavaScript on any page in Liferay without worrying about dependencies on Liferay code or developing a theme. This translates to noticeably faster loading times for your Liferay applications, keeping users engaged and happy. Give your applications a performance uplift with smarter script loading.
You can leverage AI to create draft product descriptions and images with a single click, improving your content creation efficiency and sparking creative inspiration. Experience the future of content creation – try AI-powered product descriptions today!
Our latest update introduces a new version of the TradeCentric Connector (formerly PunchOut2Go) for Liferay DXP 7.4, simplifying B2B integrations with your trading partners. Additionally, the Stripe Payment Method Client Extension, available on the Liferay Marketplace, allows you to offer your customers a wider range of payment options, fostering a smoother checkout experience. Boost efficiency, improve customer satisfaction, and unlock new business opportunities with this powerful update!
Map individual specifications, choose the order, and create clear, informative product pages that drive sales and enhance the customer experience. Simplify product page creation and empower your business with this new feature.
This allows you to benefit from the latest Java innovations, including performance enhancements, robust security features, and compatibility with cutting-edge technologies. Upgrade your Java environment and experience a faster, more secure Liferay platform!
Utility pages are content pages managed at the site level. Since the default system-level pages are not customizable, you can use site-level utility pages to provide a unique experience. Several utility pages are available out-of-the-box. You can customize them or add your own.
Our latest update empowers you to design custom Sign In, Forgot Password, and Create Account pages.
This means users can explore data in table, list, or card formats, whichever best suits their needs. Enhance user engagement, improve data comprehension, and unlock deeper insights with our powerful new visualization tools – explore them today!
While managing data set views, define actions to be used in the data set fragment. Now you can define a broader range of actions, including opening links, triggering headless actions, launching pop-ups, and even opening dedicated side panels. This empowers richer data interactions and streamlined workflows for your users. Transform your data sets into powerful information hubs.
Aiming to provide a better way to manage Object entries, now Display Pages allow the creation of Object Edit experiences, using Forms Container and Fragments.
When using a Form Container in a Display Page, submitting it will now update the object entry being displayed.
This, combined with the possibility to use multiple display pages at the same time, and the new “Save as Draft” option for objects, enable a whole new set of possibilities for customers, such as creating multi-step processes out of the box.
Now, if an asset type (for example, an Object definition) has several related Display Page Templates, and one of them is marked as Default
, we allow to map links to any of the existing Display Page Templates for that Asset Type, in addition to the Default
one.
This new possibility allows some interesting use cases for customers, such as:
- Differentiated View Display Page and Edit Display Page for Object entries.
- Multi-step processes (that need different step URLs) can be now created by using one Display Page per step.
Now the users can easily identify components that may cause performance issues in their Pages.
We have added a new tab on the Page Audit to show the users the back-end render times of the different components, as well as warnings to help identify specific components configurations that may lead to performance issues. Those warnings also appear on the Edit mode, so the user is aware of possible issues during the page creation.
Sometimes the changes added to a publication needs to be reviewed by someone who is not a member of the site. The goal here was to make unauthenticated users able to review changes within a publication. For this we implemented a mechanism to generate a code, which can be used to access the Review Changes screen of a certain publication. Also this link could be easily invalidated/generated anytime by authenticated Publication Reviewers.
The goal here is to make the users able to move changes between publications. This is needed because sometimes users do not want to publish an entire publication, but also do not want to revert the changes which will not be published actually. With this feature users can move changes from one publication to another, creating subsets of changes, and publish them separately. For readers with technical knowledge: this is similar to cherry-pick-ing a commit in git from one branch to another.
Now, users are able to visually understand the structure of their objects and how they connect with each other to result in the platform model.
A common problem we have heard from our customers revolves around the time required to complete an AB Test. If a customer’s page receives limited traffic, the time to completion could be many weeks if not months. Amidst the rapid changes in today's business landscape, this delay potentially negates the usefulness of test results. On top of this, if a user were to terminate the test prematurely, the insights they gathered from the test and the variant they created were lost.
In order to remedy this issue, we are now providing test results and the ability to publish a variant when an AB Test is terminated. Although these results cannot determine a winning variant with 100% confidence, they will give marketers a sense of how their variant was performing. Using this information, Marketers can now make educated decisions according to their specific time constraints.
It is important to remark that this feature is DXP-only, as it belongs to Analytics Cloud.
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.
New extension point allows for external custom rules to be written to determine what SKU's can be linked to a product as Options. This is limited to dynamic pricing scenarios. Discounts can still be created to discount specific product combinations.
Sell and manage SKUs by adding different Units of Measure to the SKU. Configure the Unit of Measure to optionally allow for sales in decimal quantities. Units of Measure have their own pricing and inventory. Once configured, they add to the shopping experience of the buyer who can now purchase SKUs in different Units of measure.
Integrated Logging in Cloud Console for both Client Extension and DXP. Capabilities:
- Unified Logging View: Enables users to simultaneously view both Client Extension and DXP logs.
- Log Interactivity: Allows users to filter and sort logs based on parameters like timestamp and severity.
Benefits:
- Comprehensive Insight: Eliminates the need to toggle between separate log sources, offering a holistic log view.
- Efficient Troubleshooting: Enhanced filtering and sorting make it easier to pinpoint and address issues.
Capabilities:
- PSC Connection Support: Allows direct integration of specific Kubernetes services or namespaces via Private Service Connect.
- Tunneling Solutions: Provides a dedicated channel for GCP services or different GCP VPCs to connect securely within Liferay Cloud.
- API-Driven Provisioning: Enables users to automate and configure PSC connections programmatically.
- Combined Utility with Cloud Interconnect: Offers a mechanism to securely link on-premises data/systems with GKE or Google Cloud Storage.
Benefits:
- Enhanced Security: Bypassing the public internet ensures data protection during transmission.
- Reduced Latency: Direct connections speed up data transfer and interactions.
- Predictable Performance: Stable and consistent network performance between on-premises and Liferay Cloud.
- Flexibility & Automation: API-driven provisioning provides users with a more flexible setup and deployment process.
Capabilities:
- Azure DevOps Authentication: Supports integration of Azure Git repositories via Azure DevOps with Jenkins, including PAT generation for authentication.
- Jenkins Build Integration: Configure Jenkins to poll or check the Azure repository based on specific triggers.
- LCP.json Setup for CI Service: Define Azure DevOps as the SCM provider and specify details for Jenkins interaction.
- Deployment Configuration: Allows push from GitHub to Azure DevOps and deployment from Jenkins to the designated infra environment.
Benefits:
- Versatility: Users can leverage Azure DevOps as their Git repository provider while working within Liferay Cloud.
- Automated Updates: Automatic polling of the Azure repository every 5 minutes, ensuring timely builds upon detected changes.
- Security: Utilizes Personal Access Tokens for specific and secure authentication, combined with best practices for token management.
Reducing downtime, improving operational and resource utilization efficiency with the new Concurrent and Sync reindex execution modes providing high-availability in search capabilities while the operation is running.
We have created a new application that helps developers to build APIs based on custom Objects in a Low Code/No Code UI. This new feature allows users to define the whole structure of the API, from the endpoint’s name to the data model of the request and response schemas.
And, because the persistence layer of the API Builder is Objects, all capabilities are available at the API layer and every object has its own CRUD API application created by default.
So, from the UI or from the API, now users can create custom API Applications from scratch.
The scope of this beta feature only covers the creation of GET methods to retrieve a collection of elements with the possibility of creating pre filters and sorts.
Now admins can define the default sorting for a dataset view. You can select the field to sort by when users access the page with the data set view as well as the direction (ascending or descending). It is possible to add more than one field. In this case, results will be sorted following the order of the fields, so it will start sorting based on the first field, for elements with the same value for that field, it will continue sorting based on the second field and so on.
Admins now can define views and select fields that are localized, so users will access the corresponding translation when visiting the page. Additionally, the names of the columns and filters are also localizable.
In order to use this feature it is needed to enable “Translation Support for Object Entries” in the Feature Flags menu before enabling “Data Set Manager” in the beta section of the Feature Flags menu.
Admins can define filters to make them available for end users visiting pages with the dataset fragment. There are 3 types of filters available:
- Date filters: compatible with fields of type date. Admins can provide a name to the filter as well as provide a “From” and “To” dates to be pre-applied if needed.
- Selection filters: This filter allows admins to configure a picklist as the source of the options for the filter.
- Client extension: This new client extension enables admins and developers to fully customize the filter experience and add new types of filters depending on their needs.
- In order to use this feature enable “Data Set Manager” in the BETA section of the Feature Flags menu.
Apart from exposing information in tables, with the Data Set Manager now admins will be able to define actions linked to each of the elements of the data set. For each action:
- Admins can provide a localized label
- Choose the icon to be used
- Provide the URL to redirect the user to. In case you need to parametrize it so each row has a different URL, you can do it by adding it between brackets as part of the URL, for example myURL/{id}/editPage will look for “id” in the Headless response and substitute for the corresponding value in the URL.
- With “Headless Action Key” admins can associate an action to a headless endpoint, which takes permissions into account, so the action will only be shown to the user if the corresponding headless action is present in the response. For example, you can link an “edit” action to the “update” Headless Key.
- Provide an optional Confirmation Message if needed.
- In order to use this feature enable “Data Set Manager” in the BETA section of the Feature Flags menu.
With the Data Migration Center, users can export and import, in a very easy way, Objects entries and Objects definitions from one instance to another using JSON files. The actions executed can be consulted later in a list when you can download the files generated every time is needed.
Now we prevent content creators from generating page conflicts and errors by automatically locking pages when they are opened in Edit Mode, not allowing other users edit it at the same time. Beside that, a recurrent process reviews all locked pages to unblock them automatically if no activity is registered. Administrators can also unlock them manually if it’s needed.
The old import modal for Fragments and Page Templates is substituted by a new special import page, a new page with the import outcomes is added with the results of the process and last, but not least, the user is provided more import options for a better management of the already existing files: Overwrite Existing Entries, Overwrite Existing Items, Keep Both. A WARNINGS label is added as well to the fragments that were imported with warnings and that could cause malfunctions.