Liferay Portal 7.4 GA98 and Liferay Commerce 4.0 GA98 Release
We are pleased to announce the release of Liferay Portal 7.4 GA98 and Liferay Commerce 4.0 GA98!
Jamie Sammons
October 18, 2023
12 Minute Read
Download options
Liferay Portal and Liferay Commerce share the same Bundle and
Docker image. To get started using either Liferay Portal or Liferay
Commerce, choose the best download option suited for your environment below.
Docker image
To use Liferay Portal 7.4 GA98:
docker run -it -p 8080:8080 liferay/portal:7.4.3.98-ga98
Bundles and other download options
If you are used to binary releases, you can find the Liferay
Portal 7.4 GA98 and Liferay Commerce 4.0 GA98 release on the download page. If you need
additional files (for example, the source code, or dependency
libraries), visit the release page.
Dependency Management
For development using the Liferay Platform, update Liferay
Workspace to use the lat est dependencies, by adding the following
line to the build.gradle file:
All portal dependencies are now defined with a single
declaration. When Ausing an IDE such as Eclipse or IntelliJ all apis
are immediately available in autocomplete for immediate use.
By setting a product info key property it will be possible to
update all dependencies to a new version by updating the
liferay.workspace.product property in the liferay
workspace projects gradle.properties file:
liferay.workspace.product = portal-7.4-ga98
When using an IDE such as Eclipse or IntelliJ all apis are
immediately available in autocomplete for immediate use.
Features
Business Process Management
Visualization of Object Model Structures
Now, users are able to visually understand
the structure of their objects and how they connect with with each
other to result in the platform model.
Support Read-only Fields in Objects
Framework
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 through
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.
This feature empowers users
to create content use cases on top of objects framework, allowing
admins to enable localization for objects' entries text fields
Enabling this feature will
allow users to dynamically populate fields using expressions with
information created from data filled and provided by other fields.
Easier performance debugging with new tool to
prevent performance issues in content pages
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-endrender 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.
Prevent page edition conflicts with the
possibility to manage concurrent edition in Pages
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.
Improved Import Process for Fragments and Page
Templates
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.
Better management of Web Content Featured
Image
Now users can select any image from the Liferay repository
directly from the Web Content edition page, creating a better
experience and allowing create a structure of featured images if it’s necessary.
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.
Provide on-demand user access to review changes
in Publications
Sometimes the changes added to a publications needs to be
reviewed 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.
Allow users to move changes between
Publications
The goal here was 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-picking a commit in git
from one branch to another.
Improve the feedback provided to users when a
conflict happens during Publications
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.
Make it easy to determine whether an application
will save into a publication
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 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.
Improve performance when reviewing changes in a
publication
Improving performance is one of the main elements in our
product strategy. Here we worked on improving the performance of
Review Changes screen. We have already improved performance of other
screens, and in the future we keep improving the performance of the screens.
Concurrent and Sync Reindex Execution Modes with High
Availability
Starting with U98,
twonewreindex
execution modes become available as Beta:
Concurrent
Sync
when Liferay is operating
with Elasticsearch as the search engine.
The new reindex modes
can come in handy in different scenarios
providing better alternatives for administrators to
operate and maintain search data in Liferay with
high-availability.
Frontend Infrastructure
Define default sorting for dataset views
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 them based
on the second field and so on.
In order to use this feature enable “Data Set
Manager” in the beta section of the Feature Flags menu.
Multi-language support for dataset views
configuration
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.
Manage link item actions for dataset views
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 take
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.
API Builder: an easy way to create API applications
with Low Code/No Code
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.
Data Migration Center: A way to Export and Import
elements
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.
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.
Creating the possibility to remove entries from the User
invitation form
This feature addresses the
inconvenience of not being able to remove specific entries from user
invitation forms, enhancing the user experience for admin users who
create these forms. It solves the problem of inefficient form
management, allowing users to remove entries without starting over.
The feature enables users to
remove entries from the invitation form by clicking a designated
removal button, with a confirmation modal to prevent accidental removal.
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 UserAPI 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.
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.
All documentation for Liferay Portal and Liferay Commerce
can now be found on our documentation site: learn.liferay.com. For more information
on upgrading to Liferay Portal 7.4 GA98 see refer to the Upgrade Overview.
Compatibility Matrix
Liferay's general policy is to test Liferay Portal and
Liferay Commerce against newer major releases of operating systems,
open source app servers, browsers, and open source databases (we
regularly update the bundled upstream libraries to fix bugs or take
advantage of new features in the open source we depend on).
Liferay Portal 7.4 GA98 and Liferay Commerce 4.0 GA98 were
tested extensively for use with the following Application/Database Servers:
Application Server
Tomcat 9.0
Wildfly 18.0,
23.0
Database
MySQL 5.7, 8.0
MariaDB
10.2, 10.4, 10.6
PostgreSQL 12.x, 13.x,
14.x
JDK
IBM J9 JDK 8
Oracle JDK
8
Oracle JDK 11
All Java
Technical Compatibility Kit (TCK) compliant builds of Java 11 and
Java 8
This website uses cookies and similar tools, some of which are provided by third parties (together “tools”). These tools enable us and the third parties to access and record certain user-related and activity data and to track your interactions with this website. These tools and the informationcollected are used to operate and secure this website, enhance performance, enable certain website features and functionality, analyze and improve website performance, and personalize user experience.
If you click “Accept All”, you allow the deployment of all these tools and collection of the information by us and the third parties for all these purposes.
If you click “Decline All” your IP address and other information may still be collected but only by tools (including third party tools) that are necessary to operate, secure and enable default website features and functionalities. Review and change your preferences by clicking the “Configurations” at any time.