Change8

v3.62.0

📦 payload-cmsView on GitHub →
5 features🐛 11 fixes🔧 7 symbols

Summary

This release introduces significant infrastructure enhancements, including configurable Job Access Control and a flexible Key-Value storage system with multiple adapter options. It also adds per-field timezone configuration for Date fields and allows customization of toast notification positions.

Migration Steps

  1. If using Redis for KV storage, install the necessary package: `pnpm add @payloadcms/kv-redis`.
  2. To configure KV storage, update your `buildConfig` by setting the `kv` property with the desired adapter (e.g., `kv: databaseKVAdapter({...})` or `kv: redisKVAdapter({...})`).
  3. If you need to customize toast notification placement, configure the `position` option in your Payload configuration (this uses Sonner options).

✨ New Features

  • Adds role-based access control for job queue and cancel operations, supporting `overrideAccess` and respecting custom access control functions.
  • Date fields now support individual timezone configuration, allowing custom default timezones and supported timezones per field.
  • Introduces a new key-value storage system (`payload.kv`) with adapter options including Database (default), In-Memory, and Redis integration.
  • Toast notifications are now configurable by position (e.g., top-left, bottom-center) via a pass-through of Sonner library options.
  • Exports the `useQueue` React hook.

🐛 Bug Fixes

  • Globals with versions now correctly return the _status field only when access is denied.
  • Resolved a runtime error on create-first-user and account views caused by custom dashboard components.
  • Removed invalid frontmatter fields related to Claude integration.
  • Fixed `findMigrationDir` issue in projects lacking a `src` folder.
  • Resolved MongoDB migration failure for CosmosDB.
  • Fixed a type error related to `prodMigrations` in MongoDB adapter.
  • Fixed duplicate IDs when sanitizing query values in MongoDB adapter.
  • PostgreSQL adapter now correctly returns hasMany relationship/number/text fields inside blocks when using `select`.
  • Drizzle adapter fixed handling of number fields with `defaultValue` in generated schema.
  • Removed unused `syncTenants` from useEffect dependencies in the multi-tenant plugin.
  • Prevented running `parse` if the value is undefined in the Lexical rich text plugin.

🔧 Affected Symbols

payload.jobs.cancelpayload.kvKVAdapterdatabaseKVAdapterinMemoryKVAdapterredisKVAdapteruseQueue