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.
Release Notes
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 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.
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.
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.
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 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.
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.
In the portal, Site Administrators are able to create different User Experiences for Pages. Publications can publish these Experiences. However it can be confusing for Publication Reviewers that they can not review changes introduced in all the Experiences, which are going to be published. Here we added the ability to Publication Reviewers to view changes added in all the Experiences which are going to be published.
We have received multiple requests about users having difficulties resolving conflicts during a Publication process. We listened for these requests, and decided to improve the quality of feedback provided to users about conflicts. Making the resolution of these conflicts easier.
Some applications do not support Publications. That situation can be really confusing when users try to use one of these applications, while inside a publication, and expect it to work together with Publications. We are aiming to make the user experience of the portal during publication as smooth as possible, so we decided to add a mechanism which provides the users with information if they start using one of these apps.
Improving performance is one of the main elements in our product strategy. Here we worked on improving the performance of the Review Changes screen. We have already improved the performance of other screens, and in the future we keep improving the performance of the screens.
Although Analytics Cloud provides valuable insights into the performance of content and pages, sharing this information within an organization has proven difficult for some users. To solve this problem, we are introducing a new feature that aims to enhance your sharing and reporting capabilities. With this feature, you can now effortlessly download PDFs of your dashboards and CSVs of lists (eg. segment membership), making it easier than ever to share critical insights with your stakeholders.
Key Benefits:
Time and Effort Savings: Exporting your dashboards to PDF and lists to CSV is a breeze. Say goodbye to the time-consuming task of manually extracting this information and formatting. Our platform streamlines the process for you.
Professional Reports: The PDF export feature ensures that your insights are presented in a polished and professional format, perfect for sharing with executives, clients, and colleagues.
To use this feature, simply click on the new Download button in the top right navigation bar. From there you can select the date range for the dashboards as well as the specific cards you wish to include in your report.
Although Analytics Cloud provides valuable insights into the performance of content and pages, sharing this information within an organization has proven difficult for some users. To solve this problem, we are introducing a new feature that aims to enhance your sharing and reporting capabilities. With this feature, you can now effortlessly download PDFs of your dashboards and CSVs of lists (eg. segment membership), making it easier than ever to share critical insights with your stakeholders.
Key Benefits:
Time and Effort Savings: Exporting your dashboards to PDF and lists to CSV is a breeze. Say goodbye to the time-consuming task of manually extracting this information and formatting. Our platform streamlines the process for you.
Professional Reports: The PDF export feature ensures that your insights are presented in a polished and professional format, perfect for sharing with executives, clients, and colleagues.
To use this feature, simply click on the new Download button in the top right navigation bar. From there you can select the date range for the dashboards as well as the specific cards you wish to include in your report.
Now users can select any image from the Liferay repository directly from the Web Content edition page, creating a better experience and allowing creating a structure of featured images if it’s necessary.
To help content creators raise the quality of their content, now they have integrated in our rich-text editors a spell checker that will help them solve spelling and grammar errors. It supports multiple languages, including: Spanish, English, French, and German.
Liferay AB Testing capabilities now helps customers save time by reassigning the traffic split based on the running test results. The dynamic traffic allocation ensures that the estimated winner variation gets more traffic, optimizing conversion in highly time-sensitive situations.
To help users enrich their content, Liferay provides a new LXC service to serve videos to a wide audience out of the box. Content creators will be able to upload videos directly to Liferay and the new service will take care of generating different versions with several resolutions to adapt to user’s connection capabilities, together with automatic subtitles and AI powered auto-tagging based on the video content. Content creators will also be able to add manual subtitles to the videos in case the automatic ones don't fit the need.
Blueprints are referenced by their ERCs under-the-hood in the Blueprints Options widget and the Low-Level Search Options widget also supports a new attribute called search.experiences.blueprint.external.reference.code as the recommended way to configure a blueprint (preferred over the old attribute search.experiences.blueprint.id). In addition to that, when moving blueprints or elements between different environments using for example the Batch Client Extensions, entries will preserve their ERCs making portability easier. This way, when for example a search page is imported from a LAR, the Blueprints Options and Low-Level Search Options widget configurations can continue working thanks to the association being achieved via the ERC of the blueprint and not via its ID or other identifier that may be different on the new environment.
Lastly, users can now access and edit the ERC of blueprints and elements directly from the editors.
Because WebDAV appears to be the only viable solution for remote documents access/editing for the moment and there is customer demand. WebDAV supports HTTP Basic and Digest auth. The latter requires us to store insecure hashes, because of protocol specifics.
Because we cannot change that nor remove WebDAV support, we will reduce the impact of a successful attack instead.
This is achieved by creating a separate strong password for Digest auth.
We achieve the “strong” characteristic through only allowing generation of passwords, based on UUIDs. This means when the hash is produced, it will also be stronger also, though not perfect.
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.
Users can configure their fields between 3 options, read-only true, false, or conditional.
- Read-only false: normal fields that support input from users through the UI or API.
- Read-only true: fields that do not support inputs from users through the UI or API, only can be updated through the system, as actions and default value for example.
Read-only fields must be supported in views and layouts, in the layouts those read-only fields must be not editable.
- Read-only conditional: fields that by definition are read-only false, but that will throw exceptions in case the condition is true and the user can’t update that field. In this case, in the UI, the logic should run before the field is loaded, in the headless API, this validation is only made when the user sends the request.
- The condition is built using expression builder.
When users access a site in a language different from their user profile language, the following Information message is shown:
Now administrators can configure if this message will show up or not from System or Instance. Go to Instance Settings > Pages > Friendly URL Redirection and check/uncheck the “Show Alternative Layout Friendly URL Message” option for the appropriate value.
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 customers, who need more capabilities than what the out of the box Expression Builder provides, to add their custom validations in Objects framework without running their data through an external microservice.
Evolving the user experience when object validations fail specifying which information field end-users need to update.
This feature allows admin users to configure whether to send one email with everyone in copy or many emails individually to each email address.
Enabling this feature will allow users to dynamically populate fields using expressions with information created from data filled and provided by other fields.
Traditionally in Liferay, it has been hard to manage features deprecation because customers kept using the old features even if we announced deprecation and eventual replacements.
Now, we are able to better manage deprecation processes with the following changes:
- Features deprecation notice is increased from 6 months to 12 months. It applies to the Intended Functionality, as described in our Support Policy.
- Now, deprecated features might be kept inside a Deprecation Feature Flag during the deprecation period. These feature flags work as follows:
- For upgrades, Deprecation Flags are active by default, therefore customers still see the deprecated feature. No disruption is perceived.
- For new instances created, Deprecation Flag is inactive by default, therefore, the deprecated feature is hidden and it requires activation to be used. It prevents users from unconsciously using a deprecated feature.
Deprecated features are identified in DXP with a new deprecation badge.
When “Manage Users” permission is added to an Account Admin, the Admin can invite, assign and create Users. We separated the “Invite User” permission so it can be used without providing the other permissions to the User.
Before this feature when somebody wanted to activate/deactivate a User they needed to have “Delete” permission. We created two new permissions called “Activate” and “Deactivate”. Users with “Delete” permission still able to activate/deactivate users.
We also created two new Headless-API endpoint:
/headless-admin-user/v1.0/user-accounts/by-status/${status}
Status can be either "active" or "inactive," allowing you to fetch users by their status.
/headless-admin-user/v1.0/user-accounts/by-email-address/${emailAddress}
This endpoint lets you retrieve a user by their email address, regardless of their current status.
We extended the Audit Log info on IMPERSONATION actions , ASSIGN/UNASSIGN events involving the role assignment of individual users and ASSIGN/UNASSIGN Role Assignment of Organizations/User Groups/Sites.
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.
It is now possible to set an expiration on the “set new password” link.
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.
In order to use supported JDK versions, we are upgrading to Gradle 7 to use newer JDK.
The integration of ChatGPT with our Web Content editor is now available OOTB.
Now the “Theme SVG Spritemap” frontend client extensions is enabled by default.
Now the “JS Import Maps Entry” frontend client extensions is enabled by default.
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.
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.
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 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.
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.