TL;DR
Strapi v3.0.0-alpha.24 brings significant improvements to the framework with a focus on stability and developer experience. The release includes a major architectural change with the introduction of a single Redux store, enhances SQLite support with multiple bug fixes, adds new filtering capabilities with IN and NOT IN operators, and improves the developer experience with helpful content manager links in development mode. This release also addresses several critical issues including file upload handling, GraphQL queries, and project generation error handling.
Highlight of the Release
- Introduction of a single Redux store architecture for better state management
- New query filter operators:
IN and NOT IN for more powerful data filtering
- Multiple SQLite fixes improving stability for SQLite database users
- Enhanced developer experience with helper links in content manager
- Improved error handling during project generation
- Fixed file upload handling to prevent disk space issues
Migration Guide
Migrating to Single Redux Store
The most significant architectural change in this release is the move to a single Redux store. If you've built custom plugins or extensions that interact with Strapi's Redux store, you'll need to update your code:
-
Store Structure Changes:
- Previously, each plugin had its own Redux store
- Now, all state is managed in a single store with namespaced reducers
-
Accessing Store Data:
- Update selectors to use the new store structure
- Store names now follow the pattern
<pluginId>_<containerName>
-
Dispatching Actions:
- Ensure actions are properly namespaced to target the correct part of the store
-
Plugin Development:
- If you're developing plugins, ensure you follow the new store conventions
- Use the plugin ID as a namespace for your reducers and actions
This change improves the overall architecture but requires updates to any custom code that interacts with the Redux store.
Upgrade Recommendations
This release contains significant improvements and bug fixes, particularly for SQLite users and developers working with custom plugins.
Who should upgrade immediately:
- SQLite database users experiencing migration or column update issues
- Developers needing the new filter operators (
IN and NOT IN)
- Anyone experiencing "No space left on device" errors with file uploads
- Projects with GraphQL API experiencing findOne query issues
Upgrade Process:
- Back up your project before upgrading
- Update your dependencies in package.json to point to
v3.0.0-alpha.24
- Run
npm install or yarn install to update packages
- If you have custom plugins or code that interacts with the Redux store, review and update according to the migration guide
- Test thoroughly in a development environment before deploying to production
Note that this is still an alpha release, so some instability may be expected. However, the fixes in this version address several critical issues that make the upgrade worthwhile for most users.
Bug Fixes
SQLite Fixes
Multiple SQLite-related issues have been addressed in this release:
- Fixed SQLite migration relations (#2847)
- Fixed SQLite migration temporary table issues (#2843)
- Fixed SQLite column update functionality (#2826)
These fixes significantly improve the stability and reliability of Strapi when using SQLite as the database.
Admin and Framework Fixes
- Fixed access to the admin folder (#2747)
- Added error catching for auto-opening Google Chrome with AppleScript (#2822)
- Improved error handling during project generation (#2806, #2792)
Plugin Fixes
- Fixed GraphQL findOne query that was causing errors (#2839)
- Fixed Upload Plugin findOne query that was returning 500 errors with Bookshelf (#2824)
- Added option to disable the Input JSON when needed (#2729)
- Fixed displayed field issues when deleting fields (#2753)
- Implemented automatic cleanup of temporary files after upload to prevent "No space left on device" errors (#2754)
New Features
Supporting IN and NOT IN Filter Operators
This release introduces support for IN and NOT IN operators as filter types in Strapi queries. This powerful addition allows developers to:
- Filter records where a field value matches any value in a provided array using
IN
- Filter records where a field value does not match any value in a provided array using
NOT IN
- Create more complex and efficient queries without multiple OR conditions
This feature significantly enhances the querying capabilities of Strapi's API, making it more flexible for complex data filtering requirements.
Helper Links in Content Manager (Dev Mode)
A new developer-focused feature adds helpful contextual links in the Content Manager when running in development mode. These links provide quick access to relevant information and documentation, improving the developer experience and making it easier to understand and work with the content structure.
Security Updates
No specific security fixes were mentioned in this release.
Performance Improvements
Improved File Upload Handling
The upload plugin now automatically removes temporary files after the upload process is complete. This enhancement prevents the accumulation of temporary files that could lead to "No space left on device" errors, especially on systems with limited storage capacity or during high-volume upload operations.
More Efficient Command Execution
The framework now uses shelljs for all exec commands, providing more consistent behavior across different operating systems and improving the reliability of command execution during installation and setup processes.
Impact Summary
This release represents a significant step forward for Strapi with both architectural improvements and critical bug fixes. The introduction of a single Redux store is a breaking change for plugin developers but provides a more maintainable and consistent state management approach. SQLite users will find this release particularly valuable due to the multiple fixes addressing migration and column update issues.
The new filtering capabilities with IN and NOT IN operators enhance Strapi's querying power, allowing for more complex and efficient data retrieval. Developers will also appreciate the improved error handling during project generation and the helpful content manager links in development mode.
System administrators will benefit from the automatic cleanup of temporary upload files, preventing potential disk space issues on production servers. The use of shelljs for command execution improves cross-platform compatibility, making Strapi more reliable across different operating systems.
Overall, this alpha release continues to refine Strapi's architecture while addressing practical issues that affect day-to-day development and operation. The changes lay groundwork for a more stable and feature-rich CMS as Strapi moves toward its stable release.
Full Release Notes
🐛 Bug fix
💅 Enhancement
🚀 New feature
- [Framework] Supporting
IN and NOT IN as a filter type (#2736) @sajjad-shirazy