For the full list of changes, check out the Webiny 5.41.2external link release on GitHub.

Headless CMS
anchor

Persisted Error Messages (#4392external link)
anchor

Up until now, error messages in the Admin UI would disappear after a short period of time, making it difficult for users to read and understand them.

With this change, error snackbars will now persist until the user dismisses them.

Persisted Error SnackbarsPersisted Error Snackbars
(click to enlarge)

Improve Multi-Value Field Renderers (#4404external link)
anchor

We’ve improved the way multi-value field renderers work in the Headless CMS. The DynamicSection component (which powers all multi-value renderers) no longer adds the initial item UI, which was causing many issues with validation, and users were unable to remove that first item, which was also unintuitive.

The labels and behavior is now standardized across all multi-value renderers, the field label looks the same, prints help text in the same place across all fields, and also counts the number of items in the data set. The initial item UI is no longer added, and users can remove all items from the data set.

Multi-Value Field RenderersMulti-Value Field Renderers
(click to enlarge)

Fix Entry Form Validation Errors
anchor

We’ve fixed a bug where errors from the API were not correctly formatted, and were passed to the Form component in a wrong shape, resulting in errors not being shown in the UI. This is now fixed, and errors from the API are correctly displayed as validation messages, right below the input they belong to.

Define Columns for Object and Dynamic Zone Fields in Entry List Table (#4388external link)
anchor

This release introduces a major update to the Headless CMS entry list table, enabling developers to define columns for complex field types. This enhancement brings greater flexibility and customization while maintaining optimal performance.

Previously, the entry list table supported only simple field types: text, number, boolean, file, long-text, ref, datetime.

Now, developers can define columns for complex fields such as object and dynamicZone.

Page Builder
anchor

Fixed Applying Separate Border Radius Values (#4369external link)
anchor

We’ve fixed an issue where, in the Page Builder’s page editor, applying separate border radius values (top left, top right, bottom right, bottom left) to a page element would not work as expected. This has now been addressed.

Fixed Applying Separate Border Radius ValuesFixed Applying Separate Border Radius Values
(click to enlarge)

Expose New Page Element Control Overlay Features (#4396external link)
anchor

Developers can now hook into the page element control overlay using component decoration, and control several new props: canDrag, canEdit, canHighlight, and canActivate. This allows developers to customize each element behaviour based on user’s permissions, page properties, etc.

We’ve also introduced a new Page Editor hook, called useMoveElement, which gives developers a simple API to move elements up, down, left, or right, within the parent element.

Button Links Now Redirect Without Full Page Reload (#4403external link)
anchor

In general, when users click on adjacent internal links on pages created with Page Builder, they should be redirected without a full page reload. However, this was not working as expected when users clicked on links created via the Button page element.

This issue has now been fixed, and button links will now redirect users without a full page reload.

Deployments
anchor

Amazon Cloudfront Distributions - Ignore Changes instagingProperty (#4401external link)
anchor

Upon deploying Admin and Website applications, Webiny deploys a couple of Cloudfront distributions. Once initially deployed, during subsequent deployments, the distributions are only updated with the new changes. They are never recreated from scratch.

Learn more about Webiny’s cloud architecture in the Cloud Architecture documentation.

However, with the introduction of the new Pulumi version and because of a change in the way Pulumi handles the stagingexternal link property, the Cloudfront distributions would actually be recreated on the next deployment, which is certainly not the desired behavior. Especially if a custom domain was already associated with the distribution.

To fix this, we had to internally instruct Pulumi to ignore changes in the staging property, which will prevent the distributions from being recreated.

To this day, we’ve neved seen anybody relying on the stating property, so we’re confident this change won’t affect anyone. Still, if you are using it, please do give us a shout via our community Slackexternal link.

Skip "First Deployment" Check When in CI Environment (#4408external link)
anchor

When users deploy their project for the first time via the webiny deploy command, Webiny shows the following short message:

First Deployment MessageFirst Deployment Message
(click to enlarge)

And although this message can be helpful when really deploying for the first time from a local environment, it’s not really necessary when deploying from a CI environment. In one particular case, we’ve even seen this message being shown incorrectly, despite the fact that the project was already deployed (more on this in the linked pull requestexternal link).

To address this, we’ve simply decided to skip this check when deploying from a CI environment.

Other Improvements
anchor

Lifecycle Event Handlers - Add Error Logging (#4391external link)
anchor

We’ve added basic error logging during the execution of lifecycle event handlers.

This will help users debug issues because. Not only will they be able to see the newly added logs in their Amazon CloudWatch logsexternal link, but also, in their browser.

The following example shows a log that happened because of an error that occurred during the onEntryBeforePublish lifecycle event:

Error Logging Event HandlersError Logging Event Handlers
(click to enlarge)

In case you missed it, with the DEBUG env variable set to true, all the logs that occur during a single GraphQL HTTP request are actually forwarded to user’s browser console.

To learn more about the DEBUG environment variable, check out the Environment Variables documentation.

Improve Lexical Editor Theme Handling (#4395external link)
anchor

We’ve improved Lexical theme handling, and you can now decorate the RichTextEditor component, and modify the classes of the Lexical editor. This is usually useful when you’re adding third party plugins, which expect certain classes to exist, and you want to be able to define them, or override with your own classes.

Lexical Theme CustomizationLexical Theme Customization
(click to enlarge)

Improved Trash Bin Emptying for Multi-Tenant Instances (#4351external link)
anchor

When clearing deleted entries in environments with multiple tenants, parallel deletion tasks often led to errors due to resource contention and excessive parallelization.

This update consolidates the deletion process into a single task that iterates through all tenants, locales, and models sequentially. By processing eligible entries in series, the system ensures stability and improved performance, particularly for instances with a large number of tenants or locales.

This change enhances the robustness of the trash bin emptying operation and prevents potential failures caused by overly aggressive parallel task execution.

Improve Editor Experience With Current Page List Information (#4397external link)
anchor

This update provides editors with additional insights into the data they are working with, improving usability and overall efficiency.

Editors will now see:

  • Total Entries Count: displays the total number of entries matching the current query or folder.
  • Current Entries Length: a real-time indicator of the number of entries currently loaded in the interface.

This enhancement has been rolled out to the following applications:

  • Headless CMS
  • Page Builder
  • File Manager