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)