Home

>

Tools

>

Strapi

>

Releases

>

3.0.0-beta.19.4

Strapi Release: 3.0.0-beta.19.4

Tag Name: v3.0.0-beta.19.4

Release Date: 3/30/2020

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-beta.19.4 brings significant improvements to the platform with a focus on bug fixes, documentation enhancements, and GraphQL functionality. This release addresses several critical database issues, improves GraphQL capabilities with new authentication mutations, enhances the admin UI experience, and fixes security vulnerabilities. The update also includes extensive documentation improvements and translations updates to make Strapi more accessible to developers worldwide.

Highlight of the Release

    • Fixed database issues including findOne operations with multiple parameters and deep filtering for manyWay relations
    • Added missing GraphQL authentication mutations (forgotPassword, changePassword, emailConfirmation)
    • Implemented GraphQL aggregation feature for Bookshelf
    • Updated lodash to fix security vulnerabilities
    • Enhanced documentation with DigitalOcean one-click deployment guide and single type examples
    • Improved UI with fixes for relation fields scrollbars and dynamic zone reordering

Migration Guide

Upgrading from v3.0.0-beta.19.3 to v3.0.0-beta.19.4

This is a minor update with bug fixes and enhancements. No breaking changes are introduced, so upgrading should be straightforward.

  1. Update your dependencies:

    yarn upgrade [email protected]
    # or
    npm install [email protected]
    
  2. If you're using GraphQL with custom resolvers, be aware that this release fixes context issues in custom queries and mutations. Review your custom GraphQL code to ensure it works with the updated context handling.

  3. If you're using the SES email provider, check your configuration as this release fixes the order of settings to properly use custom "from" addresses.

  4. If you've implemented deep filtering for manyWay relations, test your queries as this release includes fixes for these operations.

  5. Restart your Strapi application after updating.

Upgrade Recommendations

Recommendation Level: Recommended for all users

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

  1. Use GraphQL with authentication features or custom resolvers
  2. Work with complex database queries involving manyWay relations
  3. Use the SES email provider
  4. Have experienced issues with the admin UI, particularly with relation fields or dynamic zones

The security fix for lodash vulnerabilities makes this update important from a security perspective. The numerous bug fixes and enhancements also improve the overall stability and functionality of the platform.

There are no breaking changes in this release, making it a safe update that should not disrupt existing applications.

Bug Fixes

Database Fixes

  • FindOne Operation: Fixed issue where findOne couldn't have multiple parameters when there was a primary key
  • Deep Filtering: Fixed deep filtering for manyWay relations, including self-relations
  • Column Names: Fixed bad singular form of column names in queries
  • Mongoose Constraints: Fixed ability to update unique constraints in Mongoose
  • UID Field Search: Made UID field searchable in Mongoose and avoided errors if content type can't be searched

UI/UX Fixes

  • Relation Fields: Fixed unnecessary scrollbars in short relation fields lists
  • Dynamic Zone: Fixed dynamic zone reordering, input file handling, and date updates
  • Query Parameters: Fixed condition that reset query start parameter when menu was closed

Plugin Fixes

  • GraphQL Context: Fixed context issue in custom GraphQL query and mutation
  • Users-Permissions: Fixed rerouting of destroy route in users-permissions
  • Email Provider: Fixed the order of settings in SES provider to properly use custom "from" address
  • Plugin Generation: Fixed generate:model --plugin path and refactored related code
  • Route Generation: Stopped generating default routes when generating plugin API

New Features

GraphQL Enhancements

  • Authentication Mutations: Added missing forgotPassword, changePassword, and emailConfirmation mutations and resolvers to the GraphQL API
  • Aggregation Feature: Implemented GraphQL aggregation feature for Bookshelf, allowing for more complex data queries
  • Private Relations: Added the ability to set relations as "private" in GraphQL

Configuration Options

  • Admin Panel Serving: Added configuration option to disable serving admin assets with the serveAdminPanel option
  • Plugin Documentation: Made plugins documentation generation optional with new configuration settings
  • Host Configuration: Fixed host value usage when launching the server to respect the configured value

CLI Improvements

  • New CLI Options: Added --no-run and --use-npm flags to the CLI for more flexible project creation

Security Updates

  • Lodash Update: Updated lodash dependency to fix security vulnerabilities
  • Error Handling: Improved error messages and handling to prevent information leakage
  • GraphQL Context: Fixed context issue in custom GraphQL query and mutation to prevent potential security issues

Performance Improvements

Database Performance

  • Mongoose Indexes: Improved handling of indexes in Mongoose with better synchronization
  • Query Optimization: Enhanced deep filtering for manyWay relations, improving query performance

UI Performance

  • Scrollbar Optimization: Removed unnecessary scrollbars in relation fields lists, improving UI rendering
  • Menu Interaction: Fixed condition that reset query start parameter when menu was closed, preventing unnecessary data reloading

Impact Summary

Strapi v3.0.0-beta.19.4 is a maintenance release that focuses on bug fixes, documentation improvements, and feature enhancements. The most significant impacts include:

  1. Enhanced GraphQL Functionality: The addition of missing authentication mutations (forgotPassword, changePassword, emailConfirmation) and the implementation of GraphQL aggregation for Bookshelf significantly improve the GraphQL API capabilities.

  2. Database Stability: Multiple fixes for database operations, including findOne with multiple parameters, deep filtering for manyWay relations, and Mongoose unique constraints handling, improve the reliability of database interactions.

  3. Security Improvements: The update to lodash addresses security vulnerabilities, making applications more secure.

  4. Better Developer Experience: Improved documentation, CLI options, and configuration settings enhance the developer experience and make Strapi more accessible.

  5. UI Enhancements: Fixes for scrollbars in relation fields, dynamic zone reordering, and search capabilities improve the content management experience.

Overall, this release brings Strapi closer to a stable 3.0.0 release by addressing various issues reported by the community and enhancing existing functionality without introducing breaking changes.

Full Release Notes

💅 Enhancement

🐛 Bug fix

  • [core:database] Fix find one cant have multiple parameters when there is a primary key (#5452) @petersg83
  • [core:database] Change error message when bookshelf db connection fails at start (#5499) @petersg83
  • [core:database] Fix deep filtering for manyWay (#5536) @petersg83
  • [core:database] Make UID searchable in Mongoose and avoid errors if content type can't be searched (#5578) @diogotcorreia
  • [core:database] Fix bad singular form of column name (#5607) @petersg83
  • [core:database] Fix ability to update unique constraints in mongoose (#5612) @Convly
  • [core:framework] fix generate:model --plugin path + little refacto of code (#5547) @petersg83
  • [core:framework] don't generate default routes when generating plugin api (#5586) @petersg83
  • [plugin:content-manager] Fix dynamic zone reorder input file and date updates (#5488) @soupette
  • [plugin:content-manager] Fixes #5573 (#5623) @dkarski
  • [plugin:email] Fix the order of settings in ses provider (#5584) @joshwnj
  • [plugin:graphql] add possibility to set a relation "private" (#5494) @petersg83
  • [plugin:graphql] Fix when requiring a component in relation graph ql (#5519) @petersg83
  • [plugin:graphql] Fix context issue in custom GraphQL query and mutation (#5532) @iicdii
  • [plugin:users-permissions] Fix rerouting of destroy route in user-perm (#5581) @alexandrebodin
  • [plugin:users-permissions] Fix checkBadrequest useless logic in user-permissions' graphql config (#5625) @Convly

Statistics:

File Changed177
Line Additions3,387
Line Deletions1,896
Line Changes5,283
Total Commits121

User Affected:

  • Improved GraphQL capabilities with new authentication mutations (forgotPassword, changePassword, emailConfirmation)
  • Fixed database issues with findOne operations and deep filtering for manyWay relations
  • Enhanced plugin generation with better path handling and route generation
  • Fixed security vulnerabilities with lodash update

Contributors:

ScottAgirsnazrdogandstrantsderrickmehaffyalexandrebodinlauriejimsoupettefodkastirBrad-Christiejozefcipashabithchristianyatesnik0145JelmerV-WFCdacre-dennyrmarouniicdiiNikolasMeluiMattieBeltMichael-Scott-PCspookyspookyspookydiogotcorreiajoshwnjpetersg83paulJordaanwysherolragonlennartstolzConvlyaviskarkc10yedeyudkarskicacodev