TL;DR
Strapi v3.0.0-alpha.14.2 brings significant improvements to the GraphQL plugin with mutations, aggregations, and decimal support, along with route pluralization for better RESTful API design. This release also fixes numerous bugs affecting Windows users, GraphQL queries, email services, and the WYSIWYG editor. Arabic translations have been updated, and documentation has been enhanced with content internationalization guidance.
Highlight of the Release
- GraphQL plugin now supports mutations and aggregations
- Routes are now pluralized for better RESTful API design
- Fixed Windows compatibility issues with 'strapi new' command
- Added decimal support in MongoDB (2 decimal places) and floats (20 decimal places)
- Fixed issues with nested objects in GraphQL queries
- Improved password handling for numeric values
- Enhanced WYSIWYG editor behavior
Migration Guide
Route Pluralization
With the introduction of route pluralization, API endpoints will now use plural forms by default. For example, an endpoint that was previously /article will now be /articles. If your application relies on specific route formats, you may need to update your API calls accordingly.
GraphQL Schema Changes
If you're using GraphQL, be aware that the schema now includes mutations and aggregations. While this shouldn't break existing queries, you may want to review your GraphQL implementation to take advantage of these new features.
No database migrations are required for this update.
Upgrade Recommendations
This release contains important bug fixes and new features that enhance the development experience with Strapi. It's recommended to upgrade, especially if you:
- Use GraphQL in your project
- Work on Windows
- Need better decimal support with MongoDB
- Have experienced issues with the WYSIWYG editor
- Use Arabic translations
Since this is an alpha release (v3.0.0-alpha.14.2), it's advisable to test thoroughly in a development environment before deploying to production. Pay special attention to your API routes as they are now pluralized by default.
Bug Fixes
Windows Compatibility
- Fixed the
strapi new command for Windows users
- Fixed build scripts on Windows
- Fixed hooks to require the correct package and remove temporary paths on all platforms
GraphQL Issues
- Fixed nested objects returning null in GraphQL queries
- Fixed issue with the
isNumeric function causing false positives with nested objects in GraphQL
Database and ORM
- Fixed association detection
- Fixed SQL ORM CREATE FULLTEXT INDEX SEARCH error when no text columns are defined in the schema
- Fixed bug on conditional code where
'server.proxy' || {} was always returning server.proxy instead of using {} as the default value
Content Management
- Fixed model name handling with whitespaces on form submission in the content builder
- Removed
moveFocusToEnd in WYSIWYG editor to prevent cursor from jumping to the bottom when formatting text
- Fixed email service functionality
Authentication
- Fixed password handling by converting numeric passwords to strings before creating hash
- Fixed private key in User model
- Don't parse npm scripts for dynamic config, fixing issues with configuration loading
New Features
GraphQL Mutations and Aggregations
The GraphQL plugin now supports mutations and aggregations, allowing for more powerful API operations. This enhancement enables developers to create, update, and delete content through GraphQL as well as perform data aggregation operations.
Decimal Support in MongoDB
Fixed the Mongoose Hook to properly handle decimal values with 2 decimal places and floats with up to 20 decimal places, providing better precision for numeric data.
Route Pluralization
Routes are now pluralized by default, following RESTful API best practices. This makes API endpoints more intuitive and consistent.
Auto-Open Configuration
Added configuration options to control whether the admin panel automatically opens in the browser when starting the server. This can be customized per environment.
Security Updates
No specific security fixes were mentioned in this release. However, the normalization of file permissions across the codebase could be considered a security improvement as it removes unnecessary executable flags from files that shouldn't have them.
Performance Improvements
Mongoose Hook Optimization
The Strapi Mongoose hook has been polished and refactored for better performance and maintainability. This includes code beautification and structural improvements.
File Permission Normalization
Standardized file permissions across the codebase, removing unnecessary executable flags from 819 files. This improves consistency and security across different operating systems.
ESLint Command Refactoring
Simplified and optimized ESLint commands for better development workflow and faster linting processes.
Impact Summary
This release significantly enhances Strapi's GraphQL capabilities by adding mutations and aggregations, making it a more complete GraphQL solution. The route pluralization change improves RESTful API design but may require updates to client applications.
Several critical bugs affecting Windows users have been fixed, making Strapi more accessible across different operating systems. The MongoDB decimal support improves data precision for financial or scientific applications.
Content editors will benefit from fixes to the WYSIWYG editor and email service. Developers will appreciate the code quality improvements, including standardized file permissions and refactored ESLint commands.
The documentation has been enhanced with content internationalization guidance, and Arabic translations have been updated, making Strapi more accessible to a global audience.
Full Release Notes
🐛 Bug fix
💅 Enhancement