Release Notes > 6.2.0
Webiny 6.2.0 Changelog
See what's new in Webiny version 6.2.0
Page Builder
Language Selector and Indicator for Page Creation (#5092
)
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 (#5083
,#5081
)
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 (#5059
)
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
Fixed Schedule Menu Item Crashing on New Unsaved Entries (#5069
)
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.
Schedule menu item disabled on unsaved entriesWebiny SDK
Newsdk.languagesModule (#5085
,#5081
)
The SDK now includes a languages module with a listLanguages method for retrieving configured languages:
You can try sdk.languages methods interactively via the SDK Playground built into your Webiny project.
Token Parameter Now Supports Async Token Providers (#5060
)
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
Named Dialogs Infrastructure (#5083
)
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 (#5083
)
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
Consolidated API Exports to Root (#5080
)
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 (#5066
)
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 (#5073
)
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 (#5076
)
Permission handling has been refactored into a three-layer structure: domain/permissionsSchema.ts → features/permissions/abstractions.ts → features/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 (#5055
)
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 (#5058
)
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
Custom Domain Support for the API CloudFront Distribution (#5068
)
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:
Development
MCP Server Auto-Configuration in Project Setup (#5074
)
The create-webiny-project wizard now includes a step that asks which AI agent you use (Claude Code, Cursor, Cline, Copilot, Windsurf, OpenCode, Kiro). For supported agents, the Webiny MCP server is automatically configured in your project directory right after packages are installed — no separate manual step required.
If your agent is not on the list, manual setup instructions are printed at the end of the process after the project has been deployed, so the setup flow is never interrupted.
MCP server auto-configuration during project setupUpdatedLoggerandBuildParamsExports (#5064
)
Logger and BuildParams can now be imported directly from webiny/api:
The previous imports from webiny/api/logger and webiny/api/build-params still work but are deprecated and will be removed in a future release.
Headless CMS
Internal Plugin Architecture Refactored to Abstractions (#5063
,#5075
,#5079
,#5082
)
Several internal Headless CMS plugins have been converted to the newer abstraction-based architecture introduced in Webiny 6. This change improves code organisation and maintainability but does not affect the public API.
The following plugins have been replaced with their abstraction equivalents:
| Old Plugin | New Abstraction |
|---|---|
CmsModelFieldToGraphQLPlugin | CmsModelFieldToGraphQL |
CmsModelFieldValidatorPlugin | CmsModelFieldValidator |
CmsModelFieldPatternValidatorPlugin | CmsModelFieldPatternValidator |
CmsGraphQLSchemaSorterPlugin | CmsGraphQLSchemaSorter |
StorageTransformPlugin | StorageTransform |
CmsEntryElasticsearchBodyModifierPlugin | CmsEntryElasticsearchBodyModifier |
If you have custom code that extends these internal plugins directly, you may need to update your implementation to use the new abstraction classes. The public Headless CMS SDK APIs remain unchanged.