Home

>

Tools

>

Strapi

>

Releases

>

3.0.0-alpha.24

Strapi Release: 3.0.0-alpha.24

Tag Name: v3.0.0-alpha.24

Release Date: 2/19/2019

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 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:

  1. Store Structure Changes:

    • Previously, each plugin had its own Redux store
    • Now, all state is managed in a single store with namespaced reducers
  2. Accessing Store Data:

    • Update selectors to use the new store structure
    • Store names now follow the pattern <pluginId>_<containerName>
  3. Dispatching Actions:

    • Ensure actions are properly namespaced to target the correct part of the store
  4. 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:

  1. Back up your project before upgrading
  2. Update your dependencies in package.json to point to v3.0.0-alpha.24
  3. Run npm install or yarn install to update packages
  4. If you have custom plugins or code that interacts with the Redux store, review and update according to the migration guide
  5. 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

Statistics:

File Changed196
Line Additions1,711
Line Deletions1,552
Line Changes3,263
Total Commits99

User Affected:

  • Benefit from a more stable SQLite experience with multiple migration and column update fixes
  • Can use new `IN` and `NOT IN` filter operators for more powerful queries
  • Will need to adapt to the new single Redux store architecture
  • Get improved development experience with helper links in content manager
  • Experience more reliable project generation with better error handling

Contributors:

lauriejimsoupetteAurelsicokoziaenezhadjacargentinavirginiekyaminsourcesiffashderrickmehaffyabdonrdpierreburgy