Home

>

Tools

>

Payload CMS

>

Releases

>

3.0.0-beta.101

Payload CMS Release: 3.0.0-beta.101

Pre Release

Tag Name: v3.0.0-beta.101

Release Date: 9/9/2024

Payload CMS LogoPayload CMS

Payload CMS is a modern, self-hosted headless content management system built with TypeScript, Node.js, and MongoDB. It's designed specifically for developers who want full control over their content management system while maintaining a powerful admin interface for content editors.

TL;DR

PayloadCMS v3.0.0-beta.101 brings significant UI improvements and bug fixes

This beta release focuses on enhancing the user interface and fixing critical bugs. Key improvements include better responsiveness for upload fields in the sidebar, fixed thumbnails for non-image files, and resolved issues with document lists and search parameters. The release also addresses performance concerns by removing unnecessary database transactions for authentication strategies and fixes problems with user preferences and GraphQL queries.

Highlight of the Release

    • Fixed UI responsiveness for upload fields in sidebar
    • Added proper thumbnails for non-image files in bulk upload sidebar
    • Resolved issues with document lists, search parameters, and filters
    • Fixed GraphQL parallel queries with different fallback locales
    • Improved performance by removing unnecessary database transactions for auth strategies
    • Added validation for useAsTitle configuration

Migration Guide

Breaking Changes in Preferences Module

If you're directly importing from the preferences operations module, you'll need to update your imports:

Before:

import findPreference from 'payload/preferences/operations/findPreference'
// or
import findPreferences from 'payload/preferences/operations/findPreferences'
// etc.

After:

import { findPreference } from 'payload/preferences/operations/findPreference'
// or
import { findPreferences } from 'payload/preferences/operations/findPreferences'
// etc.

This change was necessary to fix issues with multiple preferences for the same user and entry (issue #7762).

Upgrade Recommendations

This release contains important bug fixes and performance improvements that benefit all PayloadCMS users. The upgrade is recommended for all users currently on v3.0.0-beta.100 or earlier beta versions.

Priority: Medium

Who should upgrade immediately:

  • Users experiencing issues with document lists, search parameters, or filters
  • Projects using GraphQL with different fallback locales
  • Applications with performance concerns around authentication
  • Users experiencing problems with upload fields in the sidebar or thumbnails

Upgrade Steps:

  1. Update your package.json to reference v3.0.0-beta.101
  2. Run npm install or yarn to update dependencies
  3. Check for any direct imports from the preferences operations module and update them (see Migration Guide)
  4. Test your application thoroughly, especially areas related to the fixed issues

Bug Fixes

UI Improvements

  • Upload Fields in Sidebar: Improved responsiveness for upload fields in the sidebar (#8101)

    • Better layout and spacing for a more consistent user experience
    • Fixed visual issues when working with upload fields in the sidebar
  • File Thumbnails: Added missing thumbnails for non-image files in bulk upload sidebar (#8102)

    • Uses the Thumbnail component consistently across the application
    • Closes issue #8099
    • Future improvements may include different thumbnail icons based on mimeType
  • Document Lists and Search: Fixed various issues with document lists, ListQuery provider, and search parameters (#8081)

    • ListQuery provider is now the source of truth for searchParams
    • Fixed issues with search params and filters persisting when navigating between collections
    • Fixed pagination and limits not working inside DocumentDrawer
    • Eliminated flash of overlay in DocumentDrawer when searching and filtering
    • User preferences are now properly respected in DocumentDrawer
    • Changing the limit now resets page back to 1
    • Fixes issues #7085, #8086
  • Block Error Indication: Fixed incorrect block indication when an error occurred (#7963)

    • Improves error visibility and helps users identify problematic blocks
  • Bulk Selection: Fixed bulk select checkbox being selected by default when in drawer (#8126)

    • Prevents accidental bulk operations
  • Thumbnails with serverURL: Fixed thumbnails when serverURL config is provided (#8124)

    • Ensures proper thumbnail display regardless of server configuration

Backend Fixes

  • User Preferences: Fixed issues with multiple preferences for the same user and entry (#8100)

    • Mitigates having multiple preferences for one user
    • In case of multiple preferences with the same key, only the one with the latest updatedAt will be returned
    • Reduces querying by skipping access control
    • Fixes issue #7762
    • Breaking Change: payload/preferences/operations are no longer default exports
  • Authentication Performance: Removed transactions wrapping auth strategies and login (#8137)

    • Improves performance by eliminating unnecessary database transactions
    • Database changes still use transactions when needed
    • Fixes issue #8092
  • GraphQL Queries: Fixed parallel GraphQL queries with different fallback locales (#8140)

    • Ensures proper data return when running parallel queries with different locale settings
    • Fixes issue #6800
  • Error Logging: Improved error log formatting to use { msg, err } properly (#8105)

    • Ensures consistent and readable error logs

New Features

Improved Field Validation

  • Added validation for useAsTitle configuration to throw an error if it's an invalid or nested field (#8122)
    • This helps developers catch configuration errors earlier in the development process
    • Prevents runtime issues by ensuring the title field is properly configured

Security Updates

No specific security fixes were mentioned in this release.

Performance Improvements

Authentication Optimization

  • Removed unnecessary database transactions for authentication strategies and login operations (#8137)
    • Transactions are now only created when the database needs to make changes
    • Auth strategy or login lockout updates still invoke their own transactions when needed
    • This change significantly improves authentication performance without sacrificing database consistency
    • Addresses issue #8092

Query Optimization

  • Improved handling of user preferences by reducing unnecessary database queries (#8100)
    • Skips access control checks when fetching preferences to reduce query overhead
    • Better handling of preference updates to prevent duplicate entries
    • More efficient retrieval of user preferences based on latest updates

Impact Summary

PayloadCMS v3.0.0-beta.101 delivers significant improvements to the user interface and fixes several critical bugs that enhance both developer and content editor experiences. The release focuses on improving the visual aspects of the CMS, particularly around upload fields, thumbnails, and document lists, making content management more intuitive and responsive.

Performance optimizations, especially around authentication processes, should result in faster operations by removing unnecessary database transactions. The fixes for GraphQL parallel queries with different fallback locales resolve an important issue for multilingual applications.

The only breaking change involves the preferences operations module no longer using default exports, which should have minimal impact on most projects but requires attention from developers who directly import from these modules.

Overall, this release represents an important step forward in the stability and usability of PayloadCMS as it moves toward a stable v3.0.0 release, with improvements that benefit both developers and content editors.

Full Release Notes

v3.0.0-beta.101 (2024-09-09)

🚀 Features

  • add validation for useAsTitle to throw an error if it's an invalid or nested field (#8122) (638382e)

🐛 Bug Fixes

  • #6800, graphql parallel queries with different fallback locales (#8140) (d44fb2d)
  • multiple preferences for the same user and entry (#8100) (852f9fc)
  • removes transactions wrapping auth strategies and login (#8137) (e2d8038)
  • ui: wrong block indication when an error occurred (#7963) (7fa68d1)
  • ui: bulk select checkbox being selected by default when in drawer (#8126) (9ec431a)
  • ui: thumbnails when serverURL config is provided (#8124) (cadf815)
  • ui: various issues around documents lists, listQuery provider and search params (#8081) (b27e42c)
  • ui: missing thumbnail for non-image files in bulk upload sidebar (#8102) (32cc1a5)
  • ui: better responsiveness for upload fields in sidebar (#8101) (38be69b)

🤝 Contributors

Statistics:

File Changed71
Line Additions689
Line Deletions287
Line Changes976
Total Commits12

User Affected:

  • Breaking change in preferences module - payload/preferences/operations are no longer default exports
  • Fixed GraphQL parallel queries with different fallback locales
  • Improved error validation for useAsTitle configuration
  • Performance improvements by removing unnecessary database transactions for auth strategies

Contributors:

tylandavispaulpopusdenolfeGermanJabloDanRibbensjmikrut