TL;DR
Strapi v3.0.0-alpha.12.3 introduces significant enhancements to the content management experience with the addition of filtering capabilities in the content manager, test suite improvements, and oneWay relation support. This release also addresses numerous bugs affecting database operations, GraphQL functionality, and third-party authentication on Windows. UI improvements and performance optimizations make this a substantial update for developers working with the Strapi headless CMS.
Highlight of the Release
- New filtering system in the content manager for better content organization
- First round of test suites implementation for improved reliability
- OneWay relation option added to the frontend for more flexible content modeling
- Fixed third-party authentication providers on Windows systems
- Improved GraphQL query support and schema generation
- Added count routes to generated APIs for better data retrieval
Migration Guide
GraphQL Breaking Changes
If you're using the GraphQL plugin, be aware that timestamp field names have been changed to follow camelCase convention. You'll need to update any queries that reference these fields.
MySQL Boolean Handling
The handling of boolean values in MySQL has been changed to convert 1/0 to true/false. If you were relying on the previous behavior, you may need to update your code.
Styled-Components Implementation
If you've created custom admin components, you might need to adapt them to work with the new styled-components implementation. Check the component structure and styling approach in the updated codebase.
Upgrade Recommendations
This release contains several important bug fixes and new features that enhance the development experience with Strapi. It's recommended to upgrade, especially if you:
- Use Windows and need third-party authentication providers
- Work with MySQL or PostgreSQL databases and have encountered issues with decimal fields or boolean values
- Need filtering capabilities in the content manager
- Use GraphQL and have encountered schema generation issues
Before upgrading:
- Back up your database and project files
- Review the breaking changes related to GraphQL timestamp field naming
- Test the upgrade in a development environment before applying to production
The upgrade process should be straightforward for most users, but those with extensive customizations should test thoroughly.
Bug Fixes
Database Operations
- Fixed decimal field handling on PostgreSQL and MySQL databases
- Resolved issues with adding multiple columns in MySQL
- Fixed boolean value conversion (1/0 to true/false) for MySQL
- Fixed deletion of many-to-many relations in Mongoose
Authentication & Permissions
- Fixed third-party authentication providers that were always disabled on Windows
- Implemented proper user redirection after authentication by waiting for the user plugin to bootstrap
- Fixed cleanup of duplicate permissions
GraphQL
- Fixed GraphQL schema generation when ShadowCRUD is disabled
- Updated Union type creation rules to prevent errors with enum types
- Fixed issue where GraphQL would return empty arrays when entities are not hosted by the model
- Fixed verification of toJSON inside Bookshelf for content-manager
Content Relations
- Fixed 1-N relations with the same content type
- Fixed oneWay relations to prevent unnecessary attribute creation in target models
New Features
Content Manager Filtering
A comprehensive filtering system has been added to the content manager, allowing users to filter content entries based on various criteria. This feature significantly improves content organization and discovery capabilities.
Test Suites Implementation
The first round of test suites has been implemented, providing a foundation for more reliable development and preventing regressions in future updates.
OneWay Relation Option
Frontend support for oneWay relations has been added, allowing developers to create relationships between content types without unnecessary bidirectional references. This prevents target model files from being updated with references that won't be used.
Count Routes for APIs
Count routes are now automatically added to generated APIs for both Bookshelf and Mongoose adapters, making it easier to retrieve the total number of records without fetching all data.
Security Updates
No specific security fixes were mentioned in this release.
Performance Improvements
GraphQL Improvements
The GraphQL plugin has been significantly enhanced with better query support, including:
- Improved handling of relations and nested queries
- Better performance for complex queries
- Support for non-nullable fields with the
! flag
UI Performance
- Implemented styled-components for better UI rendering performance
- Improved modal positioning and animations
- Fixed minimum height in content-type table lists for more consistent UI rendering
Build Optimizations
- Fixed build assets URL handling for more reliable loading
- Improved content-manager build process
- Added Prettier on pre-commit hooks for consistent code formatting
Impact Summary
Strapi v3.0.0-alpha.12.3 delivers significant improvements to the developer and content manager experience. The new filtering system in the content manager addresses a long-standing need for better content organization tools. Database operation fixes resolve several critical issues affecting MySQL, PostgreSQL, and MongoDB users.
The implementation of test suites marks an important step toward a more stable and reliable platform, while the addition of oneWay relations provides more flexibility in content modeling without unnecessary complexity.
GraphQL users will benefit from numerous fixes and enhancements that improve query capabilities and schema generation. The UI improvements, including styled-components implementation and better modal positioning, create a more polished user experience.
For Windows users, the fix for third-party authentication providers removes a significant barrier to using external authentication systems. The addition of count routes to generated APIs simplifies common development tasks.
Overall, this release represents a substantial improvement in both functionality and stability, particularly for content management and database operations.
Full Release Notes
🚀 New feature
🐛 Bug fix
💅 Enhancement
💥 is used for breaking changes