CrafterCMS Version 4.2.0¶
Released November 13, 2024
Important
Please see Breaking changes for breaking changes and other things to consider before upgrading
For instructions on how to update your CrafterCMS install, please see Upgrading CrafterCMS
New Features¶
New authentication mechanism for Engine Preview
To learn more about configuring Engine Preview, see Preview Cookie and Preview ModeCrafter CLI has the following new options:
Publish Content
Create Group
List Groups
Create User
Get Users
Please see Crafter CLI for more information.
New RTE configuration for TinyMCE plugin
templatePlease see TinyMCE Plugin Template Example for more informationYAML, JSON and CSV files are now editable via the “Edit” option in Preview
See here for more informationImage placeholder generation util is now integrated into XB
When generating items on XB, fields without default values useplacehold.itfor images. See here for more informationBroken dependencies are now recorded in the DB and with every content written, if the item being written is referenced as a broken dependency, the reference will be fixed.
See here for more informationNew configuration property for Deployer HTTP requests response timeout
See Deployer HTTP Requests for more information
Enhancements¶
Improved permissions.
Added a new permission,
publish_by_commits, that allows users to publish by commit ids. See the API publishCommits for permission usage.Items are evaluated for permissions based on their paths regardless of where they are listed. The permission
~DASHBOARD~is now removed from the list of allowed permissions. The upgrade manager will remove it from your project during your install upgrade.
Added support for multiple browser tabs for the same project/site
Set the default sort order of Studio UI search to alphabetical when no keyword is supplied
Bulk Publishing enhancements
Added an option to include soft dependencies when bulk publishing This new option is set to false by default.
Studio now does a "Publish All" request when "Publish By Path=’/’" request is received
Improved XB ease-of-use and resilience for JS apps programmatically registering elements for XB
See here for more informationFor more information on registering elements for XB, see Lazy Loaded Content.
Improved
SiteItemService. The object returned bySiteItemServiceis now a copy of the item.Added a single item per line view to search and browse item selection dialogs
Added parameter for setting CloudFormation capabilities
See CloudFormation Capabilities for more information
Studio UI¶
[utils/xml] Upgrade prettier to v3x which changed from sync apis to async
serializeno longer formats codebeautifyis now async
[components]
HostUI removed, merged with Host (its container component)
EditModeSwitcherUI removed, merged with EditModeSwitcher (its container component)
Removed Legacy Dashboard components:
LegacyApprovedScheduledDashletLegacyAwaitingApprovalDashletLegacyInReviewDashletLegacyRecentActivityDashletLegacyRecentActivityDashletLegacyRecentlyPublishedDashletLegacyUnpublishedDashlet
Removed
documentDomainproperty from ExperienceBuilder component and its usage inPreviewConciergecomponentWorkflowCancellationDialogUI: propitemstype changed from an async Resource to sync SandboxItem array.AuthorFilterremoved, merged with ActivityDashletUsersAutocompleteremovedUploadDialog: AddedautoProceedprop to enable/disable automatic upload after file selectionDropDownMenuButtoncomponent:Internal structure changed so that ListItem wraps the ListItemButton
listItemPropsare routed to the listListItemcomponent instead of theListItemButtonAdded
listItemButtonPropsproperty
DraggablePanelListItemproponMenusend the pointer event as its first and only argument instead of the anchor element attached to the event. Can get element throughevent.currentTarget.DateTimePickerwas moved & renamed toDateTimeTimeZonePickerto better reflect its functionality and to avoid collision with MUI’s DateTimePicker.Components that used the previous version now use the new DateTimeTimeZonePicker (i.e. CreatePreviewTokenDialog, CreateTokenDialogContainer, PublishDialogForm, PublishDialogContainer, FormEngineControls/DateTime, AudiencesPanelUI)
[services] Removed services associated with v1 APIs:
fetchLegacyGetGoLiveItemsfetchLegacyUserActivitiesfetchLegacyScheduledItemsfetchPendingApprovalPackageItemsfetchLegacyDeploymentHistorygetUserPermissionsUse
fetchMyPermissionsinstead
[services/contentTypes] Add
fetchContentTypeservice
[state]
actions/dialogs: RenamedupdateEditConfigaction toupdateEditDialogConfig
[hooks]
usePreviewUrlControl: Removedhistoryprop. Retrieval of search and navigate (previously called ‘push’) is now done internally.
Removed deprecated
aws-file-uploadandaws-videoupload controls.Migrated the Studio UI build to Vite/SWC
Rollup’s XB build to use SWC
Upgraded target compilation to ES2022, dropping many code transforms for features that are supported by most modern browsers such as nullish coalescing, optional chaining, object spreading and destructuring.
The
allowedContentTypesContentTypeField validation changed from being an array to a Record<contentTypeId, { embedded?: true; shared?: true; sharedExisting?: true; }>Remove legacy
browseCMISdialog andopenCMISBrowsefunction from common-api.Remove
CMIS-repo,CMIS-upload,img-cmis-repo,img-CMIS-upload,video-cmis-repoandvideo-CMIS-uploaddatasources.ICEConfigTypeScriptinterfacechanged to betype. It now accepts either the (model) or (modelId & path).The
acecodeTinyMCE plugin (for code-highlighted Rich Text Editor code editing), renders the code exactly as Tiny provides without decoding entities.
Bug Fixes¶
Fixed issue with an XB error when duplicating an item in a repeat group
Fixed issue with TinyMCE not saving HTML code properly
See working in the RTE with code samples for more information on editing code samples in the RTE.Fixed issue with mixed case role names not being recognized by the permission evaluation system
Fixed issues with dependency calculations "getDependentItems"
Dependency Updates¶
Noteworthy dependency updates:
Spring Framework to version 6
Spring Boot to version 3
Freemarker to version 2.3.33
MariaDB to version 11.4
MariaDb4J to version 3.1
HTTP Proxy to version 2.0
UrlRewriteFilter to version 5.1
ESAPI to version 2.5.4.0
FileUpload to version 2.0
Groovy to version 4
Tomcat to version 10
AWS client library to version 2
Studio UI dependencies
@craftercms/studio-ui
@craftercms/uppy to version 4.2.0
@graphiql/plugin-explorer to version 3.0.1
@mui/x-data-grid to version 7.13.0
@mui/x-date-pickers to version 7.13.0
@mui/x-tree-view to version 7.13.0
@prettier/plugin-xml to version 3.3.0
@reduxjs/toolkit to version 2.2.5
@types/ace to version 0.0.52
@types/react to version 18.3.2
@types/react-dom to version 18.3.0
@types/react-swipeable-views to version 0.13.5
@types/video.js to version 7.3.58
clsx to version 2.1.1
fast-xml-parser to version 4.3.6
graphiql to version 3.2.2
graphql to version 16.8.1
graphql-ws to version 5.16.0
marked to version 12.0.2
marked-highlight to version 2.1.1
moment-timezone to version 0.5.45
nanoid to version 5.0.7
prettier to version 3.2.5
react-hotkeys-hook to version 4.5.0
tss-react to version 4.9.10
query-string to version 9.0.0
react-redux to version 9.1.2
react-router-dom to version 6.0.0
redux to version 5.0.1
redux-observable to version 3.0.0-rc.2
video.js to version 8.12.0
@craftercms/experience-builder
@craftercms/classes to version 4.2.0
@craftercms/content to version 4.2.0
@craftercms/ice to version 4.2.0
@craftercms/search to version 4.2.0
@craftercms/studio-ui to version 4.2.0
@reduxjs/toolkit to version 2.2.5
@rollup/plugin-alias to version 5.1.0
@types/react-dom to version 18.3.0
react-hotkeys-hook to version 4.5.0
react-is to version 18.3.1
uuid to version 10.0.0
react-redux to version 9.1.2
redux to version 5.0.1
redux-observable to version 3.0.0-rc.2
@craftercms/search
uuid to version 10.0.0
@craftercms/redux
@reduxjs/toolkit to version 2.2.2
redux to version 5.0.1
redux-observable to version 3.0.0-rc.2
@craftercms/classes
query-string to version 9.1.0
For a complete list of community tickets, please visit: GitHub 4.2.0
For information on upgrading 3.1.x sites, see here