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
- If using Redis for KV storage, install the necessary package: `pnpm add @payloadcms/kv-redis`.
- To configure KV storage, update your `buildConfig` by setting the `kv` property with the desired adapter (e.g., `kv: databaseKVAdapter({...})` or `kv: redisKVAdapter({...})`).
- 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