Apollo Server v3 upgraded to Apollo Server v4
The upgrade from Apollo Server v3 to v4 and graphql ^15 to ^16.
The upgrade from Apollo Server v3 to v4 and graphql ^15 to ^16.
View the list of all breaking changes introduced between Strapi v4 and v5.
In Strapi 5, components and dynamic zones do not return an `id` with REST API requests so it's not possible to partially update them.
In Strapi 5, content-types with Draft & Publish disabled always have the publishedAt value set to a date.
In Strapi 5, core service methods use the Document Service API instead of the Entity Service API.
Database identifiers are shortened in Strapi v5 and can't be longer than 55 characters to avoid issues with identifiers that are too long.
Documents should be called by their documentId in Content API calls (REST API & GraphQL).
Draft & Publish is always enabled in Strapi v5 and this is reflected in the Content API models.
In Strapi 5, the `helper-plugin` is deprecated. A whole migration reference is available for plugin developers.
In Strapi 5, the Content Manager is a plugin, which affects the injectContentManagerComponent() method, replaced by getPlugin('content-manager').injectComponent().
Internationalization (i18n) is now part of the Strapi core and no longer a plugin, and this impacts how the locale parameter is sent and accessed.
In Strapi 5, the 'locale' attribute name is reserved, and all custom fields also named 'locale' should be renamed before migrating to prevent data loss.
In Strapi 5, it's no longer possible to get all localized versions with the '?locale=all' parameter.
Modules like `api::myapi` and `plugin::upload` should no longer be accessed in the Strapi config using `api.myapi` and `plugin.upload`, but instead using `api::myapi` and `plugin::upload`.
MySQL v5 is not supported in Strapi v5 anymore.
In Strapi 5, the Entity Service API is deprecated, and for the findPage() method you should use the Document Service API's findMany() method instead.
In Strapi 5, 'publicationState' can no longer be used in Content API calls. The new status parameter can be used and accepts 2 different values, draft and published.
The default log level of the middleware logger in Strapi 5 is 'http'.
In Strapi 5, some env-only configuration options are handled by the server configuration
In Strapi 5, sorting by id is no longer possible to sort by chronological order, and you should use createdAt instead.
In Strapi 5, the response format has been simplified and flattened, and attributes of requested content are no longer wrapped in an attributes object.
Strapi 5 uses koa-body v6, which updates node formidable to v2.
Strapi 5 uses react-router-dom v6. This impacts the links added to Global Settings or to the Menu using the Admin Panel API.
In Strapi 5, the way import are done, through the application init function or through factories, has been updated.
In Strapi 5, container methods can be accessed directly from the strapi class.
In Strapi 5, the 'strapi-utils' core package has been refactored. This page lists the additions, removals, and other updates.
In Strapi 5, the `strapi.fetch` object is now wrapping node Fetch API instead of node-fetch.
Strapi 5 has strict requirements on the configuration filenames allowed to be loaded.
Breaking change description
In Strapi 5, some admin panel hooks have been removed from the Redux store and a new `useDocumentLayout` hook is introduced.
In Strapi 5, the redux store for the Content Manager has been changed and some redux actions were removed.
In Strapi 5, the GraphQL API has been updated. It handles the new, flattened response format, and can also now accept Relay-style queries.
The `isSupportedImage` method is removed in Strapi 5. Users should use `isImage` or `isOptimizableImage` instead.
In Strapi 5, the localizations field does not exist anymore, and queries should use the locale parameter instead. Not all Strapi v4 use cases might be directly achievable.
In Strapi 5, The Users & Permissions plugin's `register.allowedFields` configuration option defaults to [].
In Strapi 5, Vite is the default bundler and replaces webpack.
A simplified approach of aliasing in Strapi v5.