TL;DR
Strapi v4.12.0 introduces two major features: Multiple Review Workflows and Improved Bulk Publishing. The Multiple Review Workflows feature allows users to create and manage multiple workflows for different content types, with validation for license restrictions. The Bulk Publishing feature has been enhanced with better UI/UX, including improved selection handling and clearer labels. This release also includes several bug fixes for relations handling, SSO functionality, and admin user management, along with performance improvements and dependency updates.
Highlight of the Release
- Multiple Review Workflows - Create and manage different workflows for various content types
- Improved Bulk Publishing with better UI/UX and selection handling
- Fixed relations ordering and component relations display
- Enhanced SSO configuration with support for null values in ssoLockedRoles and defaultRole
- Improved RBAC permissions for review workflow settings pages
Migration Guide
No specific migration steps are required for this update. This is a minor version update (v4.11.7 to v4.12.0) that introduces new features and bug fixes without breaking changes.
For general update guidance:
- Make a backup of your project before updating
- Update your dependencies in package.json:
"dependencies": {
"@strapi/strapi": "4.12.0",
"@strapi/plugin-users-permissions": "4.12.0",
"@strapi/plugin-i18n": "4.12.0"
}
- Run
yarn install or npm install to install the updated packages
- Run
yarn build or npm run build to rebuild your admin panel
- Restart your Strapi server
If you're using the Multiple Review Workflows feature, be aware that it has license restrictions that are now properly validated.
Upgrade Recommendations
This update is recommended for all users, especially those who:
- Use or plan to use review workflows functionality
- Frequently use bulk publishing features
- Work with complex content relations
- Use SSO authentication
The release contains significant feature enhancements and important bug fixes that improve the overall stability and functionality of Strapi. The Multiple Review Workflows feature is particularly valuable for organizations with complex content management needs.
There are no breaking changes reported in this release, making it a safe upgrade from v4.11.7. As always, it's recommended to test the update in a development or staging environment before applying it to production.
Bug Fixes
Admin and Authentication
- Fixed issue where admin lastname defaulted to undefined
- Fixed SSO functionality to accept null values for ssoLockedRoles
- Made defaultRole nullable when autoRegister is false in SSO configuration
- Added proper awaiting for isSsoLocked promise to prevent race conditions
Content Management
- Fixed error when adding relations
- Fixed issue with displaying and cloning relations in components
- Corrected relations ordering in the database to ensure consistent return order
- Fixed issue where relations were reordered when updating an entity
- Fixed component relation display in the frontend
- Fixed entity cloning by properly omitting ID when cloning relations
Core Functionality
- Fixed command not mounting routes correctly
- Fixed Strapi utils exports with TypeScript migration
- Fixed workflow creation process to ensure proper stage validation
- Fixed workflow stage deletion and replacement logic
- Improved error handling in review workflows
New Features
Multiple Review Workflows
Strapi now supports creating and managing multiple review workflows for different content types. This feature allows for more granular control over content publishing processes:
- Create separate workflows for different content types with unique stages
- Validate workflows against license restrictions
- Paginate workflow listings with proper metadata
- Manage workflow stages with unique name validation
- Track workflow usage with new metrics and events
Improved Bulk Publishing
The bulk publishing functionality has been significantly enhanced:
- Better handling of selected entries across multiple list pages
- Automatic deselection of entries after publishing
- Page size adjustment based on the number of selected entries
- Improved UI with edit icon placement on the right
- Clearer labels for published content in the modal
- Removed sorting functionality from the bulk publish modal for simplicity
- Optimized API calls for draft relations counting
Security Updates
No specific security fixes were mentioned in this release. However, the release includes dependency updates that may address security vulnerabilities:
- Bumped semver from 7.5.1 to 7.5.2
- Bumped word-wrap from 1.2.3 to 1.2.4
- Bumped sanitize-html from 2.10.0 to 2.11.0
- Bumped aws-sdk from 2.1415.0 to 2.1420.0
- Bumped cloudinary from 1.37.0 to 1.38.0
These dependency updates may include security patches from the respective package maintainers.
Performance Improvements
Cloudinary Provider Optimization
- Improved Cloudinary uploads by only chunking large files, which reduces overhead for smaller files and improves upload performance
API Optimization
- Optimized the countManyEntriesDraftRelations API to only be called when entries are selected in the modal
- Improved workflow pagination with proper metadata instead of relying on data length
Review Workflows Performance
- Enhanced validation pipe using functional programming techniques
- Optimized workflow stage operations by reordering deletion and creation processes
- Improved workflow attributes handling by conditionally removing content-type groups
Impact Summary
Strapi v4.12.0 delivers substantial improvements to content workflow management with the introduction of Multiple Review Workflows and enhanced Bulk Publishing. These features significantly improve content governance capabilities, especially for larger teams and organizations with complex publishing processes.
The Multiple Review Workflows feature allows content teams to create tailored approval processes for different content types, enabling more granular control over content quality and publishing. This is particularly valuable for organizations with diverse content needs and specialized teams.
The improved Bulk Publishing functionality streamlines the content publishing process with better UI/UX and more intuitive handling of selections, making content managers more efficient in their daily work.
Several critical bug fixes address issues with relations handling, which has been a pain point in previous versions. The fixes for relation ordering and component relations display improve data integrity and user experience when working with complex content structures.
SSO authentication improvements make Strapi more flexible in enterprise environments, particularly with the ability to handle null values for ssoLockedRoles and defaultRole when autoRegister is false.
Overall, this release enhances Strapi's capabilities as an enterprise-grade CMS while maintaining backward compatibility, making it a valuable update for all users.
Full Release Notes
🚀 New feature
⚙️ Chore
- [core:admin] Chore: Split user RBAC permissions from useLicenseLimits hook (#17285) @gu-stav
- [dependencies] chore(deps): bump semver from 7.5.1 to 7.5.2 (#17090) @dependabot
- [dependencies] chore(deps): bump word-wrap from 1.2.3 to 1.2.4 (#17364) @dependabot
- [dependencies] chore(deps): bump sanitize-html from 2.10.0 to 2.11.0 (#17415) @dependabot
- [dependencies] chore(deps): bump aws-sdk from 2.1415.0 to 2.1420.0 (#17417) @dependabot
- [plugin:documentation] refactor: documentation tests (#17368) @joshuaellis
💅 Enhancement
- [core:admin] Chore: Give precedence to error.message over error.details (#17354) @gu-stav
- [core:admin] Feat: Add RBAC permissions for review-workflow settings pages (#17358) @gu-stav
- [core:review-workflows] Multiple Workflows - Tracking events (#17294) @jhoward1994
- [providers] Chunk Cloudinary uploads only for large files (#17159) @goodhoko
🔥 Bug fix
- [core:admin] admin lastname defaults to undefined (#17319) @fbalhawan
- [core:admin] [SSO] Accept null value for ssoLockedRoles (#17341) @innerdvations
- [core:admin] [SSO] allow defaultRole to be nullable when autoRegister is false (#17387) @innerdvations
- [core:admin] [bulk publish] Deselect the entries that were published from the list view (#17402) @markkaylor
- [core:admin] [bulk publish] Set page size to the number of selected entries (#17405) @markkaylor
- [core:content-manager] Bulk Publish: fix Select All not working inside the Modal (#17403) @simotae14
- [core:admin] [bulk publish] Move edit icon to the right in the Modal (#17423) @simotae14
- [core:admin] [bulk publish] Change published label in the modal (#17426) @simotae14
- [core:admin] Bulk publish: fix, enable countManyEntriesDraftRelations API only when you have selected entries in the modal (#17428) @simotae14
- [core:admin] [bulk publish] Remove sorting from the bulk publish modal (#17431) @simotae14
- [core:admin] Await for
isSsoLocked promise, fix #17409 (#17410) @wtchnm
- [core:content-manager] Fix error on adding relations (#17340) @hasebsiddiqui
- [core:content-manager] fix: display & clone relations in components (#17363) @joshuaellis
- [core:database] fix: relations are not returned in the correct order (#17262) @Marc-Roig
- [core:strapi] Fix command not mounting the routes correctly (#17396) @alexandrebodin
- [core:utils] Fix Strapi utils with ts migration (#17380) @alexandrebodin
📚 Update and Migration Guides
- General update guide can be found here
- Migration guides can be found here 📚