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

Page Builder
anchor

Language Selector and Indicator for Page Creation (#5092external link)
anchor

Page creation now includes language support when the Languages module is configured:

  • A language dropdown appears in the “Create Page” dialog when multiple languages exist
  • When only one language is configured, it is auto-assigned without showing a dropdown
  • A language code tag is displayed in the page editor title bar and pages list table
  • The selected language is automatically prepended to the page path

Page Translation Support (#5083external link,#5081external link)
anchor

You can now translate pages into different languages directly from the Pages list. Open a page’s options menu, click “Translate”, select a target language and folder, and a translated copy of the page is created with the appropriate language assignment and path prefixing. The new page maintains a link to its source page for reference.

Schedule Publish/Unpublish From Page Editor (#5059external link)
anchor

The scheduling feature is now available directly in the page editor, allowing you to schedule publish and unpublish actions without leaving the editing context.

Headless CMS
anchor

Fixed Schedule Menu Item Crashing on New Unsaved Entries (#5069external link)
anchor

When creating a new content entry that had not yet been saved, the Schedule action in the editor menu would malfunction. The Schedule option now appears as disabled until the entry is saved.

Webiny SDK
anchor

Newsdk.languagesModule (#5085external link,#5081external link)
anchor

The SDK now includes a languages module with a listLanguages method for retrieving configured languages:

Token Parameter Now Supports Async Token Providers (#5060external link)
anchor

The SDK’s token parameter previously only accepted a plain string. It now also accepts an async function that returns a token string, allowing the token to be refreshed on every request:

This enables the SDK to be used in contexts where tokens expire, such as inside the admin app.

Admin
anchor

Named Dialogs Infrastructure (#5083external link)
anchor

A new dialog registration system is available via AdminConfig.Dialog. Dialogs registered this way mount only when opened and unmount on close, eliminating render cost for dialogs attached to table rows. Use useOpenDialog() to trigger a dialog and useDialog(zodSchema?) inside the dialog component to consume it.

Reusable FolderPicker Component (#5083external link)
anchor

A new FolderPicker component is available in @webiny/app-aco for selecting folders in forms. It renders a tree picker UI driven by the ACO folder structure.

Development
anchor

Consolidated API Exports to Root (#5080external link)
anchor

Import commonly used abstractions like Logger, BuildParams, EventPublisher, KeyValueStore, and DomainEvent directly from webiny/api:

The old sub-path imports (webiny/api/logger, webiny/api/build-params) are now deprecated and will be removed in a future release.

Introduced theApi.RouteExtension (#5066external link)
anchor

A new Api.Route extension allows you to register custom HTTP routes on the API Gateway and GraphQL Lambda directly from webiny.config.tsx. Route handlers are plain classes with full dependency injection support:

Endpoint-Agnostic GraphQL Client (#5073external link)
anchor

The low-level GraphQLClient now requires an explicit endpoint field on each request, making it endpoint-agnostic. Two new abstractions are available: MainGraphQLClient (pointing to the main GraphQL API) and CmsGraphQLClient (pointing to /cms/manage). All existing consumers have been migrated to MainGraphQLClient.

Injectable Permissions With Domain/Features Layer Separation (#5076external link)
anchor

Permission handling has been refactored into a three-layer structure: domain/permissionsSchema.tsfeatures/permissions/abstractions.tsfeatures/permissions/feature.ts. Use createPermissionsAbstraction and createPermissionsFeature to define permissions with dependency injection support. This pattern is now enforced across all admin and API packages.

Fixed ExtensionsrcProps Accepting Directory Paths (#5055external link)
anchor

Providing a folder path instead of a file path in an extension’s src prop would silently pass validation and then fail with a confusing error. Extension src props now immediately reject directory paths with a clear message: Expected a file but got a directory: <path>. Please provide a path to a specific file.

Webiny Version Displayed During Deploy (#5058external link)
anchor

Running yarn webiny deploy now prints the Webiny version at the start of the deployment process, making it easier to identify which version is being deployed.

Infrastructure
anchor

Custom Domain Support for the API CloudFront Distribution (#5068external link)
anchor

You can now configure custom domains and an ACM SSL certificate for the API directly in webiny.config.tsx using the new Infra.Api.CustomDomains extension, consistent with how custom domains are already configured for the Admin app: