TL;DR
Strapi v4.3.3 brings several important bug fixes and new features to enhance user experience. Key improvements include allowing users to change their own passwords, adding breadcrumb navigation for folders, fixing CORS response headers, and handling file upload errors more gracefully. The release also adds GraphQL bounded cache for better performance and includes numerous dependency updates. The Rackspace upload provider has been deprecated due to low usage and testing difficulties.
Highlight of the Release
- Users can now change their own passwords through the Users & Permissions plugin
- New breadcrumb navigation for folders improves content organization experience
- GraphQL performance improved with bounded cache implementation
- Fixed CORS response headers for better cross-origin request handling
- Improved file upload error handling prevents application crashes
- Enhanced localization support with additional locales
Migration Guide
Rackspace Upload Provider Deprecation
If you're currently using the Rackspace upload provider, you'll need to migrate to another provider as it has been deprecated in this release. The provider has been moved to a separate repository at https://github.com/strapi/strapi-provider-upload-rackspace.
To migrate:
- Choose an alternative upload provider (AWS S3, Cloudinary, etc.)
- Install the new provider:
npm install @strapi/provider-upload-[provider-name]
- Update your configuration in
./config/plugins.js to use the new provider
- Migrate your existing files to the new storage solution
GraphQL Scalar Types
The GraphQL plugin now uses graphql-scalars instead of deprecated packages for scalar type handling. If you have custom GraphQL types that extend the built-in scalar types, you may need to update your implementation to be compatible with the new package.
Upgrade Recommendations
This is a minor release with important bug fixes and enhancements. It's recommended to upgrade to v4.3.3 as soon as possible, especially if you're experiencing any of the issues addressed in this release.
The upgrade process should be straightforward:
-
Update your dependencies in package.json:
"dependencies": {
"@strapi/strapi": "4.3.3",
"@strapi/plugin-users-permissions": "4.3.3",
"@strapi/plugin-i18n": "4.3.3"
}
-
Run your package manager's install command:
npm install
# or
yarn install
-
Restart your Strapi application
If you're using the Rackspace upload provider, please note that it has been deprecated and you'll need to migrate to another provider as outlined in the migration guide.
Bug Fixes
Core & Admin
- Fixed webpack custom config loading in TypeScript projects
- Fixed upload of menu logo in admin panel
- Fixed number formatting in CellContent to be more flexible
- Fixed file location issues when editing files from the Content Manager
- Fixed database index column differences in schema comparisons
- Fixed count issues when using deep filtering in queries
- Fixed CORS response headers to comply with specifications (removed illegal combination of
Access-Control-Allow-Credentials: true with Access-Control-Allow-Origin: *)
Upload & Media Library
- Fixed image dimension handling to prevent overriding width and height after uploading
- Fixed application crashes when uploading corrupt images
- Improved error handling for file uploads to handle failures gracefully
- Fixed file information generation for bulk uploads
- Fixed folder location in AssetDialog component
TypeScript Support
- Fixed false positive results in TypeScript utils' getConfigPath function
- Fixed invalid return type for TypeScript get-config-path
New Features
User Password Management
Users can now change their own passwords through the Users & Permissions plugin. This feature enhances security by allowing users to maintain control over their credentials without administrator intervention.
Breadcrumb Navigation for Folders
A new breadcrumb navigation system has been implemented for folders, making it easier to navigate through the folder structure in the Media Library and Content Manager. This improves content organization and accessibility.
GraphQL Bounded Cache
The GraphQL plugin now includes a bounded cache implementation, which helps improve query performance and reduce server load for repeated queries.
Additional Locales
Enhanced internationalization support with new locales including:
- Northern Sami (se, se_FI, se_NO, se_SE)
- Inari Sami (smn, smn_FI)
- Scottish Gaelic (gd, gd_GB)
- Uyghur (ug, ug_CN)
Security Updates
CORS Headers Fix
Fixed CORS response headers to comply with web standards. The combination of Access-Control-Allow-Credentials: true and Access-Control-Allow-Origin: * is illegal according to CORS specifications. This fix ensures proper cross-origin request handling and prevents potential security issues.
API Token Salt Configuration
Added apiToken.salt directly in the configuration of newly created projects, improving the security of API token generation out of the box.
Performance Improvements
GraphQL Bounded Cache
The GraphQL plugin now includes a bounded cache implementation that improves query performance by caching results of identical queries. This reduces server load and improves response times for repeated queries.
Optimized Count Operations
Fixed counting mechanism when using deep filtering, which now uses countDistinct only when necessary, improving database query performance.
Enhanced Media Library Performance
Improved error handling for file uploads and image transformations prevents application crashes and ensures smoother operation when dealing with potentially problematic files.
Impact Summary
Strapi v4.3.3 delivers significant improvements to both developer and user experiences. The addition of user password management enhances security and user autonomy, while the new breadcrumb navigation system improves content organization workflows. Performance gains from the GraphQL bounded cache will benefit applications with repetitive queries.
Bug fixes addressing CORS headers, file uploads, and TypeScript support resolve critical issues that could affect application stability and security. The improved error handling for file uploads prevents application crashes when dealing with corrupt images, making the platform more robust.
For administrators, cleaner configuration files for new projects and fixed menu logo uploads improve the setup and customization experience. Content editors will appreciate the enhanced navigation and more reliable file handling in the Media Library.
The deprecation of the Rackspace upload provider affects a small subset of users who will need to migrate to alternative solutions. Overall, this release focuses on stability, security, and quality-of-life improvements that benefit all user types.
Full Release Notes
🔑 Key mentions / breaking changes
- We have deprecated the Rackspace upload provider, you can find it's archive repo here: https://github.com/strapi/strapi-provider-upload-rackspace and this is largely because the usage of this provider is practically zero and it has become quite difficult to actually test. After several attempts to contact Rackspace without much luck.
🔥 Bug fix
⚙️ Chore
💅 Enhancement
- [core:content-manager] update: localized attribute filter (#13846) @smoothdvd
- [core:content-type-builder] CTB: Update SubNav styles using improved DS properties (#13943) @gu-stav
- [core:upload] ML: Improve canRead and canCreate permission messages (#13978) @gu-stav
- [plugin:i18n] Add more locales. smn, smn_FI, se, se_FI, se_NO, se_SE, gd, gd_GB, ug… (#13875) @JWesorick
🚀 New feature
📚 Migration guides can be found here 📚