• Document Under Review

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 Mode

  • Crafter 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 information

  • YAML, JSON and CSV files are now editable via the “Edit” option in Preview
    See here for more information

  • Image placeholder generation util is now integrated into XB
    When generating items on XB, fields without default values use placehold.it for images. See here for more information

  • Broken 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 information

  • New configuration property for Deployer HTTP requests response timeout
    See Deployer HTTP Requests for more information

Enhancements

Studio UI

  • [utils/xml] Upgrade prettier to v3x which changed from sync apis to async

    • serialize no longer formats code

    • beautify 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 in PreviewConcierge component

    • WorkflowCancellationDialogUI: prop items type changed from an async Resource to sync SandboxItem array.

    • AuthorFilter removed, merged with ActivityDashlet

    • UsersAutocomplete removed

    • UploadDialog: Added autoProceed prop to enable/disable automatic upload after file selection

    • DropDownMenuButton component:

      • Internal structure changed so that ListItem wraps the ListItemButton

      • listItemProps are routed to the list ListItem component instead of the ListItemButton

      • Added listItemButtonProps property

    • DraggablePanelListItem prop onMenu send the pointer event as its first and only argument instead of the anchor element attached to the event. Can get element through event.currentTarget.

    • DateTimePicker was moved & renamed to DateTimeTimeZonePicker 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: Renamed updateEditConfig action to updateEditDialogConfig

  • [hooks]

    • usePreviewUrlControl: Removed history prop. Retrieval of search and navigate (previously called ‘push’) is now done internally.

  • Removed deprecated aws-file-upload and aws-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 and openCMISBrowse function from common-api.

  • Remove CMIS-repo, CMIS-upload, img-cmis-repo, img-CMIS-upload, video-cmis-repo and video-CMIS-upload datasources.

  • ICEConfig TypeScript interface changed to be type. 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

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