v3.59.0
payloadcms/payloadv3.59.0Oct 7, 2025by denolfe
AI Summary
This release focuses on expanding Cloudflare integration with D1/R2 support and introduces the Payload SDK bundle types. It also enhances the Admin UI with live preview conditions and improves database operations like `findDistinct` and atomic array updates.
Key Highlights
- Cloudflare D1 adapter now supports read replicas
- New Cloudflare template for create-payload-app
- Live preview conditions support added to UI
- Atomic array operations for relationship fields
- Bundle types support for Payload SDK
New Features
- Slug field addition
- Support any depth for relationships in `findDistinct`
- Add `disableGroupBy` to fields admin props
- Support readReplicas in D1 adapter config
- Add atomic array operations for relationship fields
- Add support for disabling join field row types
- Live preview conditions
Full Release Notes
## [v3.59.0](https://github.com/payloadcms/payload/compare/v3.58.0...v3.59.0) (2025-10-07) ### ๐ Features * slug field ([#14007](https://github.com/payloadcms/payload/issues/14007)) ([b09ae67](https://github.com/payloadcms/payload/commit/b09ae67)) * support any depth for relationships in `findDistinct` ([#14090](https://github.com/payloadcms/payload/issues/14090)) ([e4f8478](https://github.com/payloadcms/payload/commit/e4f8478)) * adds `disableGroupBy` to fields admin props ([#14017](https://github.com/payloadcms/payload/issues/14017)) ([537f58b](https://github.com/payloadcms/payload/commit/537f58b)) * allow `findDistinct` on fields nested to relationships and on virtual fields ([#14026](https://github.com/payloadcms/payload/issues/14026)) ([9d6cae0](https://github.com/payloadcms/payload/commit/9d6cae0)) * bundle types ([#14020](https://github.com/payloadcms/payload/issues/14020)) ([9bcb7b0](https://github.com/payloadcms/payload/commit/9bcb7b0)) * **cpa:** add cloudflare template to create-payload-app command ([#14091](https://github.com/payloadcms/payload/issues/14091)) ([e8140ed](https://github.com/payloadcms/payload/commit/e8140ed)) * **db-*:** adds support for readReplicas in D1 adapter config ([#14040](https://github.com/payloadcms/payload/issues/14040)) ([5a6f361](https://github.com/payloadcms/payload/commit/5a6f361)) * **db-mongodb,drizzle:** add atomic array operations for relationship fields ([#13891](https://github.com/payloadcms/payload/issues/13891)) ([7eacd39](https://github.com/payloadcms/payload/commit/7eacd39)) * **next:** export views, pass all props to custom dashboard view ([#14094](https://github.com/payloadcms/payload/issues/14094)) ([abebd24](https://github.com/payloadcms/payload/commit/abebd24)) * **plugin-nested-docs:** pass collection config as an arg to generateURL and generateLabel ([#14086](https://github.com/payloadcms/payload/issues/14086)) ([db6ec30](https://github.com/payloadcms/payload/commit/db6ec30)) * **ui:** add support for disabling join field row types ([#12738](https://github.com/payloadcms/payload/issues/12738)) ([cd546b3](https://github.com/payloadcms/payload/commit/cd546b3)) * **ui:** live preview conditions ([#14012](https://github.com/payloadcms/payload/issues/14012)) ([2be6bb3](https://github.com/payloadcms/payload/commit/2be6bb3)) ### ๐ Bug Fixes * add detection for --experimental-https flag ([#14085](https://github.com/payloadcms/payload/issues/14085)) ([3cf3f93](https://github.com/payloadcms/payload/commit/3cf3f93)) * missing cross-env in deploy:database ([#14076](https://github.com/payloadcms/payload/issues/14076)) ([709ee58](https://github.com/payloadcms/payload/commit/709ee58)) * support USE_HTTPS for local hmr ([#14053](https://github.com/payloadcms/payload/issues/14053)) ([feaa395](https://github.com/payloadcms/payload/commit/feaa395)) * update packages list for `pnpm payload info` ([#14030](https://github.com/payloadcms/payload/issues/14030)) ([4b6b0c5](https://github.com/payloadcms/payload/commit/4b6b0c5)) * `autosave: true` doesn't work on `payload.update` with `where` ([#14001](https://github.com/payloadcms/payload/issues/14001)) ([5d86d5c](https://github.com/payloadcms/payload/commit/5d86d5c)) * **db-d1-sqlite:** avoid bound parameter limit when querying relationships and inserting rows ([#14099](https://github.com/payloadcms/payload/issues/14099)) ([444ca0f](https://github.com/payloadcms/payload/commit/444ca0f)) * **db-mongodb:** localized blocks with fallback and versions ([#13974](https://github.com/payloadcms/payload/issues/13974)) ([1e654c0](https://github.com/payloadcms/payload/commit/1e654c0)) * **db-postgres:** `drizzle` doesn't recognize types from the generated types ([#14058](https://github.com/payloadcms/payload/issues/14058)) ([ef84b20](https://github.com/payloadcms/payload/commit/ef84b20)) * **db-postgres:** querying multiple hasMany text or number fields ([#14028](https://github.com/payloadcms/payload/issues/14028)) ([95bdffd](https://github.com/payloadcms/payload/commit/95bdffd)) * **db-postgres:** joins count with hasMany relationships ([#14008](https://github.com/payloadcms/payload/issues/14008)) ([1510e12](https://github.com/payloadcms/payload/commit/1510e12)) * **drizzle:** generate DB schema syntax is deprecated ([#14031](https://github.com/payloadcms/payload/issues/14031)) ([ef57d24](https://github.com/payloadcms/payload/commit/ef57d24)) * **graphql:** error querying hasMany relationships when some document was deleted ([#14002](https://github.com/payloadcms/payload/issues/14002)) ([48e9576](https://github.com/payloadcms/payload/commit/48e9576)) * **next:** force inactive live preview after passing conditions ([#14048](https://github.com/payloadcms/payload/issues/14048)) ([ca3f054](https://github.com/payloadcms/payload/commit/ca3f054)) * **next:** prevent locale upsert when not authenticated ([#13621](https://github.com/payloadcms/payload/issues/13621)) ([ece5a95](https://github.com/payloadcms/payload/commit/ece5a95)) * **plugin-ecommerce:** variants `validateOptions` errors with SQLite when creating a new variant ([#14054](https://github.com/payloadcms/payload/issues/14054)) ([3b9e759](https://github.com/payloadcms/payload/commit/3b9e759)) * **plugin-multi-tenant:** rm chalk dep ([#14003](https://github.com/payloadcms/payload/issues/14003)) ([d017499](https://github.com/payloadcms/payload/commit/d017499)) * **plugin-search:** handle trashed documents in search plugin sync ([#13836](https://github.com/payloadcms/payload/issues/13836)) ([de352a6](https://github.com/payloadcms/payload/commit/de352a6)) * **richtext-lexical:** field.admin overrides were ignored in RenderLexical helper ([#14024](https://github.com/payloadcms/payload/issues/14024)) ([810da54](https://github.com/payloadcms/payload/commit/810da54)) * **richtext-lexical:** slash menu arrows keys not respected when block nearby ([#14015](https://github.com/payloadcms/payload/issues/14015)) ([54b6f15](https://github.com/payloadcms/payload/commit/54b6f15)) * **sdk:** incorrect `fetch` initialization on cloudflare ([#14009](https://github.com/payloadcms/payload/issues/14009)) ([a5c8b5b](https://github.com/payloadcms/payload/commit/a5c8b5b)) * **storage-r2:** upload with the correct contentType ([#13988](https://github.com/payloadcms/payload/issues/13988)) ([066997d](https://github.com/payloadcms/payload/commit/066997d)) * **storage-uploadthing:** hide key field from filters and columns ([#14004](https://github.com/payloadcms/payload/issues/14004)) ([2ce6e13](https://github.com/payloadcms/payload/commit/2ce6e13)) * **templates:** ignore wrangler when bundling to fix template styles ([#14067](https://github.com/payloadcms/payload/issues/14067)) ([c135bf0](https://github.com/payloadcms/payload/commit/c135bf0)) * **templates:** added missing CLOUDFLARE_ENV in cloudflare template when optimizing database ([#14064](https://github.com/payloadcms/payload/issues/14064)) ([9fcd1fa](https://github.com/payloadcms/payload/commit/9fcd1fa)) * **templates:** don't use remote bindings in cloudflare template when developing locally ([#14063](https://github.com/payloadcms/payload/issues/14063)) ([9d3e540](https://github.com/payloadcms/payload/commit/9d3e540)) * **templates:** ecommerce wrong links in readme and docs and issue with missing graphql dependency ([#14045](https://github.com/payloadcms/payload/issues/14045)) ([e4f90a2](https://github.com/payloadcms/payload/commit/e4f90a2)) * **templates:** correct typo in footer text ([#14021](https://github.com/payloadcms/payload/issues/14021)) ([a938ad6](https://github.com/payloadcms/payload/commit/a938ad6)) * **translations:** refine Persian (fa) translations for clarity and natural tone ([#14082](https://github.com/payloadcms/payload/issues/14082)) ([990603c](https://github.com/payloadcms/payload/commit/990603c)) * **translations:** fixes to Icelandic translations ([#14038](https://github.com/payloadcms/payload/issues/14038)) ([7088d25](https://github.com/payloadcms/payload/commit/7088d25)) * **translations:** fixes to Swedish translation ([#13994](https://github.com/payloadcms/payload/issues/13994)) ([4b193da](https://github.com/payloadcms/payload/commit/4b193da)) * **ui:** phantom fields when duplicating rows with rows ([#14068](https://github.com/payloadcms/payload/issues/14068)) ([08f6d99](https://github.com/payloadcms/payload/commit/08f6d99)) * **ui:** invalid time value error when document locking with autosave enabled ([#14062](https://github.com/payloadcms/payload/issues/14062)) ([394000d](https://github.com/payloadcms/payload/commit/394000d)) * **ui:** undefined access with polymorphic joins and fix joins test config ([#14057](https://github.com/payloadcms/payload/issues/14057)) ([cb7a24a](https://github.com/payloadcms/payload/commit/cb7a24a)) * **ui:** popup list controls overlap with table in list view ([#13967](https://github.com/payloadcms/payload/issues/13967)) ([1e23882](https://github.com/payloadcms/payload/commit/1e23882)) * **ui:** upload dropzone error when collectionConfig is undefined ([#14043](https://github.com/payloadcms/payload/issues/14043)) ([62fcf18](https://github.com/payloadcms/payload/commit/62fcf18)) * **ui:** saving empty code editor throw error ([#14019](https://github.com/payloadcms/payload/issues/14019)) ([bffb9ef](https://github.com/payloadcms/payload/commit/bffb9ef)) * **ui:** add support back for custom live preview components ([#14037](https://github.com/payloadcms/payload/issues/14037)) ([d826159](https://github.com/payloadcms/payload/commit/d826159)) * **ui:** array fields not respecting width styles in row layouts ([#13986](https://github.com/payloadcms/payload/issues/13986)) ([accd95e](https://github.com/payloadcms/payload/commit/accd95e)) ### โก Performance * **graphql:** select only the requested columns ([#13711](https://github.com/payloadcms/payload/issues/13711)) ([c819083](https://github.com/payloadcms/payload/commit/c819083)) * **templates:** added cloudflare cache headers for static files ([#14069](https://github.com/payloadcms/payload/issues/14069)) ([c59df45](https://github.com/payloadcms/payload/commit/c59df45)) ### ๐ Documentation * readme changes - add one-click deployment options and improve templates section ([#14092](https://github.com/payloadcms/payload/issues/14092)) ([a88e3c5](https://github.com/payloadcms/payload/commit/a88e3c5)) * update README.md ([#11297](https://github.com/payloadcms/payload/issues/11297)) ([c8661da](https://github.com/payloadcms/payload/commit/c8661da)) * adds comprehensive virtual field configuration documentation ([#13942](https://github.com/payloadcms/payload/issues/13942)) ([10e5042](https://github.com/payloadcms/payload/commit/10e5042)) * **db-mongodb:** fix note on indexing localized fields ([#14071](https://github.com/payloadcms/payload/issues/14071)) ([9c08fb8](https://github.com/payloadcms/payload/commit/9c08fb8)) ### ๐ Examples * fix revalidation hook in localization example ([#14014](https://github.com/payloadcms/payload/issues/14014)) ([267ea9e](https://github.com/payloadcms/payload/commit/267ea9e)) ### โ๏ธ CI * update pr-title commit scopes ([#14055](https://github.com/payloadcms/payload/issues/14055)) ([fa28dca](https://github.com/payloadcms/payload/commit/fa28dca)) * add linked PRs to new issue notifications ([#14059](https://github.com/payloadcms/payload/issues/14059)) ([bbff65c](https://github.com/payloadcms/payload/commit/bbff65c)) ### ๐ก Chores * ci changes to add compatibility for mongodb alternates ([#13898](https://github.com/payloadcms/payload/issues/13898)) ([9ceee8e](https://github.com/payloadcms/payload/commit/9ceee8e)) * update d1 cloudflare template package versions ([#13977](https://github.com/payloadcms/payload/issues/13977)) ([7601835](https://github.com/payloadcms/payload/commit/7601835)) * **eslint:** set reportUnusedDisableDirectives to error ([#14011](https://github.com/payloadcms/payload/issues/14011)) ([209b1f1](https://github.com/payloadcms/payload/commit/209b1f1)) * **templates:** bump sharp version in ecommerce template ([#14089](https://github.com/payloadcms/payload/issues/14089)) ([836e0f7](https://github.com/payloadcms/payload/commit/836e0f7)) ### ๐ค Contributors - Jacob Fletcher (@jacobsfletch) - Sasha (@r1tsuu) - Paul (@paulpopus) - Alessio Gravili (@AlessioGr) - Dan Ribbens (@DanRibbens) - Nate Caminata (@ncaming) - Marwin Hormiz (@marwinhormiz) - rfwnเฟ (@rfwn) - Jeffery To (@jefferyto) - Ricardo Tavares (@rjgtav) - Patrik (@PatrikKozak) - Kamal (@kamal0620040) - Elliot DeNolf (@denolfe) - gursh (@gurshdev) - Said Akhrarov (@akhrarovsaid) - Jarrod Flesch (@JarrodMFlesch) - Riley Langbein (@rilrom) - Valur Sverrisson (@Valur) - Marcus Forsberg (@marcusforsberg) - Aurimar Lopes (@AurimarL) - Jan Beck (@jancbeck) - Tobias Odendahl (@tak-amboss)