Home

>

Tools

>

Strapi

>

Releases

>

4.16.0

Strapi Release: 4.16.0

Tag Name: v4.16.0

Release Date: 12/20/2023

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 v4.16.0 introduces a significant new feature: Content Releases (experimental), allowing for scheduled content publishing. This release also includes important bug fixes for case-sensitive email addresses in SSO, relation searches, deep query population in dynamic zones, and more. The update improves logging by reordering middleware registration and enhances TypeScript support for relation inputs.

Highlight of the Release

    • Introduction of experimental Content Releases feature for scheduled content publishing
    • New feature flags system to manage experimental features
    • Fixed case sensitivity issues with email addresses from SSO providers
    • Improved TypeScript definitions for relation inputs
    • Enhanced logging by reordering middleware registration
    • Fixed deep query populate issues with dynamic zones

Migration Guide

Enabling Content Releases (Experimental Feature)

To enable the experimental Content Releases feature:

  1. Configure the feature flag in your config/server.js file:
module.exports = {
  features: {
    contentReleases: {
      enabled: true,
    },
  },
};
  1. Restart your Strapi application to apply the changes.

  2. Access the Content Releases feature through the admin panel.

Note that as an experimental feature, Content Releases may undergo changes in future releases.

General Update Process

  1. Make a backup of your project
  2. Update your package.json dependencies:
    "dependencies": {
      "@strapi/strapi": "4.16.0",
      "@strapi/plugin-users-permissions": "4.16.0",
      "@strapi/plugin-i18n": "4.16.0"
    }
    
  3. Run yarn install or npm install to install the updated packages
  4. Run yarn build or npm run build to rebuild your admin panel
  5. Start your Strapi application

Upgrade Recommendations

This release is recommended for all Strapi users, especially those who:

  • Need to schedule content publishing (via the experimental Content Releases feature)
  • Use SSO providers for authentication
  • Work with complex content structures involving dynamic zones
  • Rely on relation searches in the Content Manager
  • Need improved TypeScript support for relation inputs

The upgrade should be straightforward with minimal risk of breaking changes. However, as with any upgrade, it's recommended to:

  1. Test the upgrade in a development environment before applying to production
  2. Make a complete backup of your production environment before upgrading
  3. Review the full changelog for any specific items that might affect your implementation

Bug Fixes

Fixed Issues

  • SSO Authentication: Fixed issues with case-sensitive email addresses sent by some SSO providers, ensuring consistent user identification regardless of email case.

  • Relation Search: Backported a fix for relation search functionality in the Content Manager.

  • Dynamic Zone Queries: Fixed deep query populate issues with dynamic zones, ensuring proper data retrieval.

  • Documentation Plugin: Corrected the localization schema in the documentation plugin.

  • Logging: Improved request logging by registering the logger middleware before the errors middleware, ensuring all requests (including those with errors) are properly logged.

  • TypeScript Definitions: Enhanced entity-service types for relation inputs, providing better type safety.

  • Helper Plugin: Fixed test issues in the wrapAxiosInstance test.

New Features

Content Releases (Experimental)

The major addition in v4.16.0 is the new Content Releases feature, which allows content managers to schedule and manage content publishing. This feature is currently marked as experimental and is available behind a feature flag.

Key capabilities include:

  • Creating and managing content releases
  • Adding content entries to releases
  • Publishing releases to update multiple content entries at once
  • Managing release actions through a dedicated UI

Feature Flags System

A new feature flags system has been introduced to manage experimental features like Content Releases. This provides a structured way to enable and disable features that are still in development or testing phases.

Security Updates

No specific security fixes were mentioned in this release. However, the update to graphql-upload v15.0.2 may include security improvements as part of the dependency update.

Performance Improvements

No specific performance improvements were highlighted in this release. The focus was primarily on new features, bug fixes, and TypeScript enhancements.

Impact Summary

Strapi v4.16.0 delivers significant value through the introduction of the experimental Content Releases feature, which addresses a common need for scheduled content publishing. This feature alone represents a major enhancement to content workflow management.

The release also resolves several important bugs, particularly around SSO authentication with case-sensitive email addresses and relation handling. These fixes improve the reliability and consistency of the platform.

For developers, the improved TypeScript definitions and middleware ordering for better logging enhance the development experience and system observability.

The introduction of a feature flags system also sets the stage for more experimental features to be safely introduced in future releases, allowing users to opt into new capabilities while they're being refined.

Overall, this release balances new functionality with important fixes and developer experience improvements, making it a valuable update for most Strapi users.

Full Release Notes

🔥 Bug fix

  • [core:admin] Fix issues with case sensitive email addresses sent by some SSO providers (#18883) @Convly
  • [core:content-manager] chore: backport relations search fix (#19070) @joshuaellis
  • [core:helper-plugin] fix: wrapAxiosInstance.test (#18382) @jhoward1994
  • [core:strapi] Register logger middleware before errors middleware (#16921) @goodhoko
  • [core:utils] fix deep query populate issue on dynamic zone (#18966) @Bassel17
  • [plugin:documentation] fix(documentation): use correct localization schema (#18580) @ciriousjoker
  • [typescript] Fix entity-service types for relations' input (#19011) @Convly

⚙️ Chore

📖 Documentation

  • [utils:pack-up] doc(pack-up): fix config file name in readme (#19037) @remidej

❇️ Enhancement

📚 Update and Migration Guides

  • General update guide can be found here
  • Migration guides can be found here 📚

Statistics:

File Changed300
Line Additions9,723
Line Deletions2,531
Line Changes12,254
Total Commits99

User Affected:

  • Can now use the experimental Content Releases feature to schedule and manage content publishing
  • Benefit from fixed relation search functionality
  • Experience improved handling of dynamic zone queries

Contributors:

ciriousjokermarkkaylorFeranchzsimotae14derrickmehaffyitsMaadhremidejMcastresjoshuaellisalexandrebodinchristiancp100Marc-Roighide-mebelgattitudejosephemswilerinnerdvationsJonathanHallen1991ConvlyBassel17goodhokojhoward1994