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)