v3.43.0

payloadcms/payloadv3.43.0Jun 16, 2025by denolfe

AI Summary

Adds admin upload controls, exposes the `data` argument in `afterChange` hooks, and supports storing blocks in Postgres JSON columns, along with read replica support.

Key Highlights

  • Admin upload controls (server-side folder rendering)
  • Expose `data` argument in `afterChange` hook
  • Postgres: Store blocks in JSON columns
  • Postgres: Support read replicas

New Features

  • Admin upload controls
  • Expose `data` argument in `afterChange` hook
  • Postgres support for blocks in JSON columns
  • Postgres support for read replicas
  • Dynamic presigned URL downloads (S3)
  • Constructor options for upload config

Full Release Notes

## [v3.43.0](https://github.com/payloadcms/payload/compare/v3.42.0...v3.43.0) (2025-06-16)


### 🚀 Features

* admin upload controls ([#11615](https://github.com/payloadcms/payload/issues/11615)) ([f2e0422](https://github.com/payloadcms/payload/commit/f2e0422))
* expose `data` argument in `afterChange` hook for collections and globals ([#12756](https://github.com/payloadcms/payload/issues/12756)) ([458a04b](https://github.com/payloadcms/payload/commit/458a04b))
* **db-postgres:** allow to store blocks in a JSON column ([#12750](https://github.com/payloadcms/payload/issues/12750)) ([215f49e](https://github.com/payloadcms/payload/commit/215f49e))
* **db-postgres:** support read replicas ([#12728](https://github.com/payloadcms/payload/issues/12728)) ([0a35737](https://github.com/payloadcms/payload/commit/0a35737))
* version diff view overhaul ([#12027](https://github.com/payloadcms/payload/issues/12027)) ([4e2e4d2](https://github.com/payloadcms/payload/commit/4e2e4d2))
* **next:** reorder document view tabs ([#12288](https://github.com/payloadcms/payload/issues/12288)) ([65309b1](https://github.com/payloadcms/payload/commit/65309b1))
* **storage-s3:** dynamic presigned URL downloads ([#12706](https://github.com/payloadcms/payload/issues/12706)) ([865a9cd](https://github.com/payloadcms/payload/commit/865a9cd))
* **ui:** adds constructorOptions to upload config ([#12766](https://github.com/payloadcms/payload/issues/12766)) ([b372a34](https://github.com/payloadcms/payload/commit/b372a34))
* **ui:** moves folder rendering from the client to the server ([#12710](https://github.com/payloadcms/payload/issues/12710)) ([a43d1a6](https://github.com/payloadcms/payload/commit/a43d1a6))

### 🐛 Bug Fixes

* ensure job autoruns are not triggered if jobs collection not enabled ([#12808](https://github.com/payloadcms/payload/issues/12808)) ([769ca03](https://github.com/payloadcms/payload/commit/769ca03))
* filtering joins in `where` by ID ([#12804](https://github.com/payloadcms/payload/issues/12804)) ([9943b35](https://github.com/payloadcms/payload/commit/9943b35))
* change payload.jobs.run and bin script to only run jobs from `default` queue by default, adds support for allQueues argument ([#12799](https://github.com/payloadcms/payload/issues/12799)) ([06ad171](https://github.com/payloadcms/payload/commit/06ad171))
* remove unsupported path property from default document view configs ([#12774](https://github.com/payloadcms/payload/issues/12774)) ([f64a0ae](https://github.com/payloadcms/payload/commit/f64a0ae))
* field inside an unnamed group field erroring when used as a title ([#12771](https://github.com/payloadcms/payload/issues/12771)) ([143aff5](https://github.com/payloadcms/payload/commit/143aff5))
* error when saving global with versioning enabled ([#12778](https://github.com/payloadcms/payload/issues/12778)) ([cf43c5c](https://github.com/payloadcms/payload/commit/cf43c5c))
* reduce global DOM/Node type conflicts in server-only packages ([#12737](https://github.com/payloadcms/payload/issues/12737)) ([67fb29b](https://github.com/payloadcms/payload/commit/67fb29b))
* orderable has incorrect sort results depending on capitalization ([#12758](https://github.com/payloadcms/payload/issues/12758)) ([37afbe6](https://github.com/payloadcms/payload/commit/37afbe6))
* ensure redirect route is correctly formatted for "Copy to locale" ([#12560](https://github.com/payloadcms/payload/issues/12560)) ([9d2817e](https://github.com/payloadcms/payload/commit/9d2817e))
* **db-mongodb:** 4x and more level deep relationships querying ([#12800](https://github.com/payloadcms/payload/issues/12800)) ([245a2de](https://github.com/payloadcms/payload/commit/245a2de))
* **db-mongodb:** bump `mongoose` to `8.15.1` ([#12755](https://github.com/payloadcms/payload/issues/12755)) ([860e0b4](https://github.com/payloadcms/payload/commit/860e0b4))
* **db-postgres:** reordering of enum values, bump `drizzle-kit@0.31.0` and `drizzle-orm@0.43.1` ([#12256](https://github.com/payloadcms/payload/issues/12256)) ([7045182](https://github.com/payloadcms/payload/commit/7045182))
* **db-postgres:** x3 and more nested blocks regression ([#12770](https://github.com/payloadcms/payload/issues/12770)) ([df8be92](https://github.com/payloadcms/payload/commit/df8be92))
* **db-sqlite:** sqlite unique validation messages ([#12740](https://github.com/payloadcms/payload/issues/12740)) ([254ffec](https://github.com/payloadcms/payload/commit/254ffec))
* **plugin-import-export:** download button in collection edit view ([#12805](https://github.com/payloadcms/payload/issues/12805)) ([8235fe1](https://github.com/payloadcms/payload/commit/8235fe1))
* **plugin-import-export:** incorrect custom type on toCSVFunction changed to toCSV ([#12796](https://github.com/payloadcms/payload/issues/12796)) ([3edcc40](https://github.com/payloadcms/payload/commit/3edcc40))
* **plugin-import-export:** export all available fields by default ([#12731](https://github.com/payloadcms/payload/issues/12731)) ([c4e5831](https://github.com/payloadcms/payload/commit/c4e5831))
* **plugin-nested-docs:** check error name that is changed at compile time ([#12798](https://github.com/payloadcms/payload/issues/12798)) ([729b676](https://github.com/payloadcms/payload/commit/729b676))
* **plugin-redirects:** add missing optional chaining ([#12753](https://github.com/payloadcms/payload/issues/12753)) ([d0e647a](https://github.com/payloadcms/payload/commit/d0e647a))
* **storage-azure:** return error status 404 when file is not found instead of 500 ([#11734](https://github.com/payloadcms/payload/issues/11734)) ([018317d](https://github.com/payloadcms/payload/commit/018317d))
* **storage-gcs:** return 404 on file not found instead of 500 ([#11746](https://github.com/payloadcms/payload/issues/11746)) ([d8626ad](https://github.com/payloadcms/payload/commit/d8626ad))
* **storage-s3:** return error status 404 when file is not found instead of 500 ([#11733](https://github.com/payloadcms/payload/issues/11733)) ([a19921d](https://github.com/payloadcms/payload/commit/a19921d))
* **translations:** reformats `bnBD` and `bnIN` translation imports to camelCase ([#12736](https://github.com/payloadcms/payload/issues/12736)) ([08fbcb5](https://github.com/payloadcms/payload/commit/08fbcb5))
* **ui:** reordering with a join field inside a group ([#12803](https://github.com/payloadcms/payload/issues/12803)) ([e60db07](https://github.com/payloadcms/payload/commit/e60db07))
* **ui:** adjust alignment of list header actions ([#12793](https://github.com/payloadcms/payload/issues/12793)) ([77f3805](https://github.com/payloadcms/payload/commit/77f3805))
* **ui:** not showing hyphenated field values in table ([#12791](https://github.com/payloadcms/payload/issues/12791)) ([e7b5884](https://github.com/payloadcms/payload/commit/e7b5884))
* **ui:** inconsistent pill sizes across admin panel ([#12788](https://github.com/payloadcms/payload/issues/12788)) ([9364d51](https://github.com/payloadcms/payload/commit/9364d51))

### ⚡ Performance

* **ui:** do not re-animate drawer on re-render, reduce useEffects ([#12743](https://github.com/payloadcms/payload/issues/12743)) ([cb3f9bb](https://github.com/payloadcms/payload/commit/cb3f9bb))

### 🛠 Refactors

* **next:** simplify document tab rendering logic ([#12795](https://github.com/payloadcms/payload/issues/12795)) ([53835f2](https://github.com/payloadcms/payload/commit/53835f2))
* **next:** simplify document view routing ([#12777](https://github.com/payloadcms/payload/issues/12777)) ([b556fe3](https://github.com/payloadcms/payload/commit/b556fe3))

### 📚 Documentation

* fix header custom component example ([#12801](https://github.com/payloadcms/payload/issues/12801)) ([7fef589](https://github.com/payloadcms/payload/commit/7fef589))
* remove outdated `buildPath` property ([#12741](https://github.com/payloadcms/payload/issues/12741)) ([38652d7](https://github.com/payloadcms/payload/commit/38652d7))
* add info about localized/built-in validation error messages ([#12718](https://github.com/payloadcms/payload/issues/12718)) ([96f417b](https://github.com/payloadcms/payload/commit/96f417b))
* fix invalid code block language ([#12734](https://github.com/payloadcms/payload/issues/12734)) ([ebe7fde](https://github.com/payloadcms/payload/commit/ebe7fde))

### 🏡 Chores

* adds filters ([#12622](https://github.com/payloadcms/payload/issues/12622)) ([c04c257](https://github.com/payloadcms/payload/commit/c04c257))
* remove invalid colon from workspaces key in package.json ([#12757](https://github.com/payloadcms/payload/issues/12757)) ([08d5b2b](https://github.com/payloadcms/payload/commit/08d5b2b))
* migrate to TypeScript strict in Payload package - #4/4 ([#12733](https://github.com/payloadcms/payload/issues/12733)) ([53f8838](https://github.com/payloadcms/payload/commit/53f8838))
* **scripts:** fix tsconfig.base.json reset ([3313ab7](https://github.com/payloadcms/payload/commit/3313ab7))

### 🤝 Contributors

- Sasha (@r1tsuu)
- Jessica Rynkar (@jessrynkar)
- Alessio Gravili (@AlessioGr)
- Dan Ribbens (@DanRibbens)
- Kendell Joseph (@kendelljoseph)
- Paul (@paulpopus)
- Jacob Fletcher (@jacobsfletch)
- Jayce Pulsipher (@jaycetde)
- Patrik (@PatrikKozak)
- Jarrod Flesch (@JarrodMFlesch)
- Patrick Roelofs (@Patrickroelofs)
- Anders Semb Hermansen (@andershermansen)
- Said Akhrarov (@akhrarovsaid)
- Elliot DeNolf (@denolfe)
- Anyu Jiang (@anyuj)
- Germán Jabloñski (@GermanJablo)
- codeflorist (@codeflorist)