CrafterCMS 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 to 4.2.x, 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
template
Please 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.it
for 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 bySiteItemService
is 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
serialize
no longer formats codebeautify
is now async
[components]
HostUI removed, merged with Host (its container component)
EditModeSwitcherUI removed, merged with EditModeSwitcher (its container component)
Removed Legacy Dashboard components:
LegacyApprovedScheduledDashlet
LegacyAwaitingApprovalDashlet
LegacyInReviewDashlet
LegacyRecentActivityDashlet
LegacyRecentActivityDashlet
LegacyRecentlyPublishedDashlet
LegacyUnpublishedDashlet
Removed
documentDomain
property from ExperienceBuilder component and its usage inPreviewConcierge
componentWorkflowCancellationDialogUI
: propitems
type changed from an async Resource to sync SandboxItem array.AuthorFilter
removed, merged with ActivityDashletUsersAutocomplete
removedUploadDialog
: AddedautoProceed
prop to enable/disable automatic upload after file selectionDropDownMenuButton
component:Internal structure changed so that ListItem wraps the ListItemButton
listItemProps
are routed to the listListItem
component instead of theListItemButton
Added
listItemButtonProps
property
DraggablePanelListItem
proponMenu
send the pointer event as its first and only argument instead of the anchor element attached to the event. Can get element throughevent.currentTarget
.DateTimePicker
was moved & renamed toDateTimeTimeZonePicker
to 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:
fetchLegacyGetGoLiveItems
fetchLegacyUserActivities
fetchLegacyScheduledItems
fetchPendingApprovalPackageItems
fetchLegacyDeploymentHistory
getUserPermissions
Use
fetchMyPermissions
instead
[services/contentTypes] Add
fetchContentType
service
[state]
actions/dialogs
: RenamedupdateEditConfig
action toupdateEditDialogConfig
[hooks]
usePreviewUrlControl
: Removedhistory
prop. Retrieval of search and navigate (previously called ‘push’) is now done internally.
Removed deprecated
aws-file-upload
andaws-video
upload 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
allowedContentTypes
ContentTypeField validation changed from being an array to a Record<contentTypeId, { embedded?: true; shared?: true; sharedExisting?: true; }>Remove legacy
browseCMIS
dialog andopenCMISBrowse
function from common-api.Remove
CMIS-repo
,CMIS-upload
,img-cmis-repo
,img-CMIS-upload
,video-cmis-repo
andvideo-CMIS-upload
datasources.ICEConfig
TypeScriptinterface
changed to betype
. It now accepts either the (model) or (modelId & path).The
acecode
TinyMCE 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
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