v3.49.0
payloadcms/payloadv3.49.0Jul 25, 2025by denolfe
AI Summary
A major release introducing trash support (soft deletes), group-by functionality for list views, and job scheduling capabilities. It also refactors documentation to remove references to Payload Cloud.
Key Highlights
- Trash support (soft deletes) for collections
- Group-by functionality for list views
- Scheduling jobs functionality
- Refactoring to remove Payload Cloud references
New Features
- Trash support (soft deletes)
- Group by
- Scheduling jobs
- Expose refresh method to list drawer context
Full Release Notes
## [v3.49.0](https://github.com/payloadcms/payload/compare/v3.48.0...v3.49.0) (2025-07-25) ### 🚀 Features * adds trash support (soft deletes) ([#12656](https://github.com/payloadcms/payload/issues/12656)) ([f63dc2a](https://github.com/payloadcms/payload/commit/f63dc2a)) * group by ([#13138](https://github.com/payloadcms/payload/issues/13138)) ([bccf6ab](https://github.com/payloadcms/payload/commit/bccf6ab)) * scheduling jobs ([#12863](https://github.com/payloadcms/payload/issues/12863)) ([c08b2ae](https://github.com/payloadcms/payload/commit/c08b2ae)) * **ui:** expose refresh method to list drawer context ([#13173](https://github.com/payloadcms/payload/issues/13173)) ([e48427e](https://github.com/payloadcms/payload/commit/e48427e)) ### 🐛 Bug Fixes * filtering by polymorphic relationships inside other fields ([#13265](https://github.com/payloadcms/payload/issues/13265)) ([75385de](https://github.com/payloadcms/payload/commit/75385de)) * text field validation for minLength: 1, required: false ([#13124](https://github.com/payloadcms/payload/issues/13124)) ([af2ddff](https://github.com/payloadcms/payload/commit/af2ddff)) * empty folderType arrays break relational dbs ([#13219](https://github.com/payloadcms/payload/issues/13219)) ([7f9de6d](https://github.com/payloadcms/payload/commit/7f9de6d)) * handle undefined values in afterChange hooks when read:false and create:true on the field level access for parents and siblings ([#12664](https://github.com/payloadcms/payload/issues/12664)) ([46d8a26](https://github.com/payloadcms/payload/commit/46d8a26)) * exit payload jobs:run process after completion ([#13211](https://github.com/payloadcms/payload/issues/13211)) ([4ae503d](https://github.com/payloadcms/payload/commit/4ae503d)) * **db-mongodb:** handle duplicate unique index error for DocumentDB ([#13239](https://github.com/payloadcms/payload/issues/13239)) ([c1cfceb](https://github.com/payloadcms/payload/commit/c1cfceb)) * **db-postgres:** search is broken when `useAsTitle` is not specified ([#13232](https://github.com/payloadcms/payload/issues/13232)) ([a83ed5e](https://github.com/payloadcms/payload/commit/a83ed5e)) * **next:** prevent base list filters from being injected into the url ([#13253](https://github.com/payloadcms/payload/issues/13253)) ([0eac58e](https://github.com/payloadcms/payload/commit/0eac58e)) * **plugin-import-export:** json preview and downloads preserve nesting and exclude disabled fields ([#13210](https://github.com/payloadcms/payload/issues/13210)) ([8f85da8](https://github.com/payloadcms/payload/commit/8f85da8)) * **ui:** preserve localized blocks and arrays when using CopyToLocale ([#13216](https://github.com/payloadcms/payload/issues/13216)) ([4a712b3](https://github.com/payloadcms/payload/commit/4a712b3)) * **ui:** incorrect blocks label sizing ([#13264](https://github.com/payloadcms/payload/issues/13264)) ([fa7d209](https://github.com/payloadcms/payload/commit/fa7d209)) * **ui:** ensure document unlocks when logging out from edit view of a locked document ([#13142](https://github.com/payloadcms/payload/issues/13142)) ([7e81d30](https://github.com/payloadcms/payload/commit/7e81d30)) * **ui:** monomorphic relationship fields should not show relationTo option labels ([#13245](https://github.com/payloadcms/payload/issues/13245)) ([29fb9ee](https://github.com/payloadcms/payload/commit/29fb9ee)) * **ui:** select all should reset when params change, page, filter, etc ([#12612](https://github.com/payloadcms/payload/issues/12612)) ([412bf4f](https://github.com/payloadcms/payload/commit/412bf4f)) * **ui:** ensure publishSpecificLocale works during create operation ([#13129](https://github.com/payloadcms/payload/issues/13129)) ([dce898d](https://github.com/payloadcms/payload/commit/dce898d)) * **ui:** properly sync search params to user preferences ([#13200](https://github.com/payloadcms/payload/issues/13200)) ([d7a3faa](https://github.com/payloadcms/payload/commit/d7a3faa)) ### ⚡ Performance * **db-postgres:** avoid including `prettier` to the bundle ([#13251](https://github.com/payloadcms/payload/issues/13251)) ([380ce04](https://github.com/payloadcms/payload/commit/380ce04)) * **drizzle:** single-roundtrip db updates for simple collections ([#13186](https://github.com/payloadcms/payload/issues/13186)) ([94f5e79](https://github.com/payloadcms/payload/commit/94f5e79)) ### 🛠 Refactors * **drizzle:** use getTableName utility ([#13257](https://github.com/payloadcms/payload/issues/13257)) ([1ad7b55](https://github.com/payloadcms/payload/commit/1ad7b55)) ### 📚 Documentation * add `status` to forbidden field names when using Postgres and drafts are enabled ([#13233](https://github.com/payloadcms/payload/issues/13233)) ([7ae4f8c](https://github.com/payloadcms/payload/commit/7ae4f8c)) * remove payload cloud ([#13240](https://github.com/payloadcms/payload/issues/13240)) ([77f279e](https://github.com/payloadcms/payload/commit/77f279e)) * fix typo, example was not valid JSON ([#13224](https://github.com/payloadcms/payload/issues/13224)) ([0eb8f75](https://github.com/payloadcms/payload/commit/0eb8f75)) * shorten line length in code snippet comments to avoid horizontal scrolling ([#13217](https://github.com/payloadcms/payload/issues/13217)) ([d6e21ad](https://github.com/payloadcms/payload/commit/d6e21ad)) * **plugin-import-export:** document plugin-import-export ([#13243](https://github.com/payloadcms/payload/issues/13243)) ([14322a7](https://github.com/payloadcms/payload/commit/14322a7)) ### 🔨 Build * suppress pnpm update notification ([#13241](https://github.com/payloadcms/payload/issues/13241)) ([e7a652f](https://github.com/payloadcms/payload/commit/e7a652f)) ### ⚙️ CI * default audit-dependencies script to high severity ([#13244](https://github.com/payloadcms/payload/issues/13244)) ([3f8fb67](https://github.com/payloadcms/payload/commit/3f8fb67)) ### 🏡 Chores * add new int test verifying that select *improves* performance of new optimization ([#13254](https://github.com/payloadcms/payload/issues/13254)) ([aeee070](https://github.com/payloadcms/payload/commit/aeee070)) * **plugin-import-export:** use debug-level logging for createExport process ([#13242](https://github.com/payloadcms/payload/issues/13242)) ([246a42b](https://github.com/payloadcms/payload/commit/246a42b)) ### 🤝 Contributors - Sasha (@r1tsuu) - Patrik (@PatrikKozak) - German Jablonski (@GermanJablo) - Jarrod Flesch (@JarrodMFlesch) - Jacob Fletcher (@jacobsfletch) - Dan Ribbens (@DanRibbens) - Alessio Gravili (@AlessioGr) - Elliot DeNolf (@denolfe) - fgrsource (@fgrsource) - Chandler Gonzales (@jcgsville) - Jessica Rynkar (@jessrynkar) - iamacup (@iamacup) - Jake Fell (@jakefell)