We have introduced case-sensitive tagging for page creators, allowing tags to be saved and displayed exactly as created, whether in uppercase or lowercase. The feature ensures case sensitivity for tag creation, case-insensitive searching, and autocomplete, while maintaining backward compatibility for existing tags.
Release Notes
We have introduced a configuration feature within the Asset Library, enabling users to decide whether a Vocabulary created there is solely required at the Asset Library level or if it extends to the connected Sites as well.
Use the platform's configurable purchasing rules to dictate which product options need to be purchased together when setting up products with options. You can set which product options must be purchased together and/or which product options cannot be combined together to create a valid product bundle. You can also limit the number of products from a particular group of products that can be purchased together.
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 more speedy alterations to be made before proceeding with check out.
Users can add read-only fields to object definitions that automatically increment for each new entry.
Key Features:
Customize Starting values - Users can set a starting value. This flexibility allows for better alignment with specific business needs and workflows
Customize labels - Users can set prefixes and suffixes to provide alphanumeric keys appended to the incrementing values
Two new permissions were added to View and Edit the channel default tab in the Account Management Pages. Users are now able to activate/inactivate the tab.
The allowable size of an Account Name has been increased to 250 characters in line with industry standards.
Users now have the ability to restrict channel access to certain Accounts via the eligibility tab on the channel admin pages. The ability to restrict certain Account Addresses to be used on certain channels has also been added. This is managed via an Eligibility tab on the address that allows the user set channel usage.
Enables the ability to add new remote shipping calculations via client extension.
Ability to add new steps to the checkout process via client extension.
With this development, the publication of Knowledge Base articles will be schedulable, in particular, the feature is so designed:
The primary Publish button will have an arrow down with the “Publish” option, that will immediately publish the article, and the “Schedule” one.
Clicking the Schedule option, will make a modal appear so the user can set a date and time for the article to be published.
The Scheduled article will have the SCHEDULED status that will change to APPROVED on the scheduled date
A tooltip with the scheduled date information will appear when hovering the
question-circle-full
icon placed next to the SCHEDULED state.
Editing a scheduled article will provide the user the ability, by clicking the primary button that has turned into “Scheduled”, to:
Cancel the operation
Publish Now
Schedule: this option will save the article, date & time changes and the user will return to the previous screen before entering edit mode
Additional feature: A Knowledge Base article deletion action will move it to the Recycle Bin so that it can be restored.
Now user are able to:
Configuration of document size for copying in D&M
Bulk copying of documents and folders
Currently the copy action for documents and folders is able to be performed in Portal without fully respecting the site-asset library relationship. The expected behavior is:
An asset library must be connected to a site in order to copy a document over to the site
A document cannot be copied from a site to an asset library (only the other way around)
We can enforce a stricter check when performing the copy action between asset libraries and sites. Instead of the end user receiving a success message when copying a document to a disconnected site, an error message should appear telling the user to set the connection first.
Document Types contained in a document are being copied in Documents and Media so that they can be easily reused.
Categories and Tags in Documents and Media are being automatically copied so they can be easily reused on a new site.
Users are now able to properly search in the portal using the Search widget (in applications that have data restricted by account).
To reduce the maintenance costs of providing a full document’s preview, the following changes are being introduced:
“No preview available” state when the file size exceeds the preview size limit.
Merge “File Entries” and “PDF Preview” settings under “File Preview Limits”
Rename "File Size Limits" to "File Upload Limits" with a reviewed and more understandable Description copy
The user is being informed that the generated preview may not correspond to the entire document
This development introduces the ability for the user to set the file size at asset library’s level. This settings will override the already existing one at System level when the latter is bigger. As a general rule, when both are set the lowest applies.
When adding validations in Objects, many times it is necessary to validate dates against the current date.
Key Features:
Dynamic Date Comparison - Users can compare a selected date with the current system date. This empowers you to create rules that trigger based on the relationship between a date field and the present date.
Versatile Date Range Checks - Validate whether a date falls within a specified date range relative to the present date.
Users can add validations to verify field values that, when used in combination, are unique.
Limitation: numeric fields such as Integer, Long Integer, Decimal, Precision Decimal will be stored as null.
Validate relationships to prevent duplicate names in child objects.
We refactored the way Liferay scripts were managed, so admins can define stricter policies like:
script-src '[$NONCE$]'; script-src-attr 'unsafe-inline';
Limitations: If a policy like the one above is configured, the parts of the product that uses a rich-text editor will not work correctly. Analyze your scenario to identify how strict your policy can be in order to make the solution work.
Now, admins can customize the configuration of the Rich Text Editors with this new client extension, allowing them to set the toolbars that are available on different applications. In the form, you will have to define the instances in which the configuration will be taken into account as well as the JS that contains the configuration:
Now users can configure the values for the following properties from settings (system, instance or site settings):
session.timeout.auto.extend
session.timeout.auto.extend.offset
This feature allows you to leverage the functions of Liferay’s caching framework. Our current measurements indicate about 10%/30% performance increase in database writing operations, also 10 times faster reading performance!
When the Upgrade Report is enabled, the output directory of the report can be configured with the new portal property upgrade.report.dir
If this property is not set, the upgrade report can be found in the default directory:
portal-tools-db-upgrade-client/reports
for the upgrade tool.{liferay-home}/reports
if upgrade was executed on startup.
With this feature we extending the SCIM implementation with User Group un/provisioning as well with the User Group membership un/provisioning.
Previously customers would add captchas using a TagLib. But this is no longer useful since customers are not deploying JSPs. The Captcha API enables this functionality to be used in arbitrary contexts.
The user experience of the Management Toolbar present in multiple applications (Web Content, Blogs, Documents & Media) has been improved:
- Separate sections for filter and order.
- Changed “+” with “New” for clarity.
- Moved info icon to the right.
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.
Now, users are able to fill out object entries in parts, allowing them to save data as draft and return at their convenience to complete.
Our new Bulk Permission Management empowers administrators to modify access rights for multiple pages effortlessly. This new feature offers a multitude of benefits:
- Effortless Management: Save valuable time by managing permissions for multiple pages simultaneously.
- Enhanced Security: Gain complete visibility into page access, ensuring all intended audiences can access the content they need.
- Optimized Accessibility: Quickly identify pages not accessible to Guests and make adjustments for optimal user experience.
The Category Facet uses assetVocabularyCategoryIds
field for aggregation. The required mapping and indexer changes have been available since 7.4 GA46/U46 (LPS-156503: Display, Scope and Filter Categories by Vocabulary in the Category Facet).
Note: Reindex is required after all upgrades.
A new set of tooling is being provided, to centralize all the different tooling into a single solution, therefore, stand-alone tooling like the Fragments Toolkit does not make sense anymore as a stand-alone tool. In addition to that, the fragment toolkit needed upgrades to prevent some vulnerabilities that could happen. Therefore, we recommend adopting other solutions for now. The Fragment Toolkit will remain available for a minimum of one year.
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.
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.
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.
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.
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.
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.
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:
- 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.
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.
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.
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.
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.
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.
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.
Pleae check the Content Security Policy by clicking here.
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.
A new out-of-the-box (OOTB) email notification template based on Objects. This template will be automatically sent to the order creator when an order status changes to 'pending'.
The notification includes:
Order number
Order date
Account name
Shipping address
Order item summary
Order total
We will move away from Commerce notifications and deprecate them and we will use Objects for the new ones.
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.
Adds support for creating custom client extension development profiles in the same project.
For example, when the user creates a file called client-extension.dev.yaml
, a new task will be available to the user called deployDev
.