Home

>

Tools

>

Strapi

>

Releases

>

4.5.5

Strapi Release: 4.5.5

Tag Name: v4.5.5

Release Date: 12/28/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.5.5 introduces significant enhancements to the Media Library with a new list view and view configuration options. The release also includes important security improvements with admin rate limiting, performance optimizations for media handling, and numerous bug fixes for the content manager and upload functionality. FontAwesome dependency has been removed in favor of the Design System icons, and several UI components have been updated for better accessibility and user experience.

Highlight of the Release

    • New Media Library list view for better content organization
    • Configurable Media Library view preferences
    • Admin rate limiting for enhanced security
    • Removal of FontAwesome dependency in favor of Design System icons
    • Performance improvements for Media Library with many files
    • Fixed deadlocks in MySQL/MariaDB when creating locales
    • Better handling of complex component nesting in the UI

Migration Guide

Migrating from FontAwesome to Design System Icons

If you've built custom components that rely on FontAwesome icons, you'll need to update them to use the Design System Icon component instead:

// Before
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
<FontAwesomeIcon icon="question-circle" />

// After
import { Icon } from '@strapi/design-system';
<Icon width={12} height={12} as={Question} />

DateTimePicker Component Changes

If you're using the DateTimePicker component from helper-plugin, note that it now uses the Design System implementation. The API is mostly compatible, but you may need to update your code if you were using any custom props.

// New prop available
<DateTimePicker selectButtonTitle="Select date" />

Upgrade Recommendations

This is a recommended upgrade for all Strapi users, especially those who:

  1. Manage large media libraries and would benefit from the new list view
  2. Need better security with admin rate limiting
  3. Were affected by any of the fixed bugs, particularly MySQL/MariaDB deadlocks or component nesting issues

The upgrade should be straightforward with minimal risk of breaking changes. Follow the standard Strapi update procedure:

npm install [email protected]
# or
yarn upgrade [email protected]

After upgrading, test your application thoroughly, especially if you have custom components that might have been affected by the FontAwesome removal or if you use complex nested components in your content types.

Bug Fixes

Content Manager Fixes

  • Fixed issue with repeatable components missing focus outline and focus handling
  • Fixed complex component nesting in the UI
  • Added loading indicator to Save button when creating collection-type entries
  • Fixed application crash when deleting a filter
  • Fixed content manager crash when dynamic zone entry field is not of type string

Upload Plugin Fixes

  • Fixed normalization of strings used as basename to properly handle diacritics
  • Fixed table headers and asset count display in Media Library
  • Added tooltips for table headers in Media Library

Database Fixes

  • Fixed deadlocks in MySQL and MariaDB when creating additional locales
  • Fixed issue where inversedBy was added twice for manyToMany and oneToOne relations when creating content types

Translation Fixes

  • Fixed translation of profile language settings
  • Fixed translation in documentation settings page

New Features

Media Library Enhancements

  • List View: The Media Library now offers a table-based list view as an alternative to the grid view, providing better organization and overview of assets
  • View Configuration: Users can now toggle between grid and list views in both the main Media Library and the Media Library modal
  • Improved Asset Management: List view includes features like sorting, row navigation, and folder structure display
  • Permission-Based Selection: Asset selection now properly respects user permissions

Admin Rate Limiting

  • New middleware for rate limiting admin panel access
  • Configurable rate limits to prevent brute force attacks
  • Option to disable rate limiting through configuration

Design System Integration

  • DateTimePicker component from the Design System now used throughout Strapi
  • Added SelectButtonTitle prop to DateTimePicker for better customization

Security Updates

  • Updated qs package to fix CVE-2022-24999 vulnerability
  • Implemented admin rate limiting to protect against brute force attacks on the admin panel
  • Email provider access fix to prevent potential errors

Performance Improvements

Media Library Performance

  • Improved reactivity of Media Library when handling many files
  • Added indexes for sortable columns of files to improve database query performance

Bundle Optimization

  • Moved cropper CSS import from main bundle to upload plugin to reduce main bundle size
  • Removed FontAwesome dependency to reduce overall bundle size

Impact Summary

Strapi v4.5.5 delivers significant improvements to the Media Library experience with the introduction of a list view and configurable view preferences. This enhancement provides content editors with more flexibility in how they organize and interact with media assets.

The release also addresses important security concerns by implementing admin rate limiting to protect against brute force attacks, and by updating dependencies to fix known vulnerabilities.

Performance improvements for the Media Library make it more responsive when handling large numbers of files, and database optimizations fix deadlocks that could occur when creating additional locales in MySQL and MariaDB environments.

Several critical bug fixes improve the stability of the content manager, particularly when working with complex component structures and dynamic zones. UI enhancements like loading indicators and better focus management improve the overall user experience.

The removal of FontAwesome dependency in favor of the Design System icons creates a more consistent UI and reduces bundle size, though it may require updates to custom components that relied on FontAwesome.

Full Release Notes

🥳 Enhancement Call-out

  • The Media library now has a list view
  • The Media library can now have it's view configured

💅 Enhancement

🚀 New feature

🔥 Bug fix

  • [core:admin] fix: translation of profile language setting (#15258) @ivan-ha
  • [core:content-manager] fix: Add button of repeatable components is missing a focus outline and focus handling (#15174) @gitstart
  • [core:content-manager] Content-manager: handle complex component nesting in the UI (#15176) @jhoward1994
  • [core:content-manager] fix: Loader is not displayed in Save button while creating an entry for the collection-type (#15188) @gitstart
  • [core:content-manager] fix: Content manager crashing when dynamic zone entry field is not of type string (#15241) @gitstart
  • [core:content-type-builder] Put inversedBy only once for manyToMany and oneToOne relations when creating a content-type (#15224) @petersg83
  • [core:database] Avoid deadlocks for mysql and mariadb when creating a Nth locale (#15197) @petersg83
  • [core:upload] fix(upload): normalize the string used as basename (#15151) @nathan-pichon
  • [core:upload] [fix] ML table headers and asset count (#15243) @ronronscelestes
  • [plugin:documentation] fix transalation documentation for setting page (#15232) @Chessman97

🚨 Security

⚙️ Chore


📚 Update and Migration Guides

  • General update guide can be found here
  • Migration guides can be found here 📚

Statistics:

File Changed300
Line Additions8,831
Line Deletions4,968
Line Changes13,799
Total Commits250

User Affected:

  • Benefit from the new Media Library list view for better content organization
  • Can now configure Media Library view preferences
  • Experience improved UI with tooltips on table headers and better asset count display
  • Will see loading indicators when saving content

Contributors:

jhoward1994simotae14ronronscelestesradoslavzemangitstartderrickmehaffypetersg83gary-alwaydependabot[bot]joshuaellisivanThePleasantnathan-pichonChessman97Convlyivan-hainnerdvations