Home

>

Tools

>

Strapi

>

Releases

>

4.3.3

Strapi Release: 4.3.3

Tag Name: v4.3.3

Release Date: 8/10/2022

Strapi LogoStrapi

Open-source headless CMS built with Node.js. Provides developers with complete freedom in choosing their favorite tools and frameworks for frontend development.

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:

  1. Choose an alternative upload provider (AWS S3, Cloudinary, etc.)
  2. Install the new provider: npm install @strapi/provider-upload-[provider-name]
  3. Update your configuration in ./config/plugins.js to use the new provider
  4. 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:

  1. 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"
    }
    
  2. Run your package manager's install command:

    npm install
    # or
    yarn install
    
  3. 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 📚

Statistics:

File Changed188
Line Additions14,551
Line Deletions8,723
Line Changes23,274
Total Commits178

User Affected:

  • Can now implement password change functionality for users
  • Benefit from fixed CORS response headers for better cross-origin requests
  • TypeScript project support improved with fixed webpack config loading
  • GraphQL performance improved with bounded cache implementation
  • Better error handling for file uploads prevents application crashes

Contributors:

WalkingPizzalkhoalexandrebodinihmpavelsmoothdvddependabot[bot]simotae14Marc-RoigronronscelestesBassel17petersg83JWesorickConvlyBasharOsmangu-stavderrickmehaffyalexdupre