Breaking Changes in CrafterCMS 4.1.x
This section covers changes that might affect your CrafterCMS projects, as well as other considerations before upgrading. Please review the following and apply changes as required:
CrafterCMS 4.1.x requires Java 17.
See Requirements for more information on CrafterCMS requirements.CrafterCMS 4.1.x now uses OpenSearch.
See here for more information on upgrading search to OpenSearch
Upgrading 3.1.x sites
CrafterCMS 4.1.x requires Git.
See Requirements for more information on CrafterCMS requirements.CrafterCMS 4.1.0 has a new Studio UI. To get the same Sidebar you’re used to, update the User Interface Configuration
Update ICE to move to XB
Studio and Engine SAML configuration now uses a key and certificate for configuration instead of using keystore.
See Engine SAML2 Configuration and Studio SAML2 Configuration for more information.CrafterCMS 4.1.x by default now classifies all items under
/site
asfile
type, instead ofitem
type.Items under preconfigured paths in the Project configuration
config/studio/site-config.xml
, such as/site/website
and/site/components
are classified as anitem
type by default. Before upgrading your version 3.1.x install, non-standard paths/custom paths must be configured underrepository.patterns
in the Project configuration fileconfig/studio/site-config.xml
in order to be classified correctly.Any item that is misclassified after an upgrade can be corrected by updating the Project configuration file
config/studio/site-config.xml
and then editing and saving the misclassified item(s) OR by modifying thesystem_type
field for the item in theitem
table in the database.
Breaking Changes in CrafterCMS 4.1.3
The following breaking changes applies to CrafterCMS version 4.1.3
Studio UI
Note
This is primarily an internal change. It would only affect those developing authoring applications using the functions described below either via @craftercms/studio-ui
npm package or using the craftercms
global variable in an authoring extension.
services/content/insertComponent
: function now requires the parent document content type and the path argument moves to being earlier in the argument list. The shifting of the arguments seeks a more coherent argument order, grouping parent-related arguments first, followed by inserted instance related arguments, and finally supportive arguments last.Previous Order of Arguments: siteId, parentModelId, parentFieldId, targetIndex, insertedItemContentType, insertedContentInstance, parentDocPath, isSharedInstance, shouldSerializeValueFn?
Order of Arguments Now: siteId, parentDocPath, parentModelId, parentFieldId, targetIndex, parentContentType, insertedContentInstance, insertedItemContentType, isSharedInstance, shouldSerializeValueFn?
services/content/insertInstance
: function now requires the parent document content type and the path argument moves to being earlier in the argument list. The shifting of the arguments seeks a more coherent argument order, grouping parent-related arguments first, followed by inserted instance related arguments, and finally supportive arguments last.Previous Order of Arguments: siteId, parentModelId, parentFieldId, targetIndex, insertedInstance, parentDocPath, datasource?
Order of Arguments Now: siteId, parentDocPath, parentModelId, parentFieldId, targetIndex, parentContentType, insertedInstance, datasource?
components/LegacyComponentsPanel/utils/fetchAndInsertContentInstance
: the function now requires the parent content type id as its last argument. Note this whole component module is likely to be removed in the future.