v3.38.0

payloadcms/payloadv3.38.0May 15, 2025by denolfe

AI Summary

This release adds Latvian language support and improves storage capabilities with presigned URLs for S3. It includes UI fixes for toolbar customization and error messages, alongside database fixes for MongoDB localized dates and Postgres distance sorting.

Key Highlights

  • Latvian language support added
  • Presigned URLs for file downloads in S3 storage
  • Fixed toolbar group customization
  • Fixes for MongoDB localized dates and Postgres 'near' sort queries

New Features

  • Latvian language support
  • Optional group field names
  • Thread overrideAccess through field validations
  • S3 presigned URLs for file downloads
  • Fixed toolbar group customization

Full Release Notes

## [v3.38.0](https://github.com/payloadcms/payload/compare/v3.37.0...v3.38.0) (2025-05-15)


### 🚀 Features

* add latvian language support ([#12363](https://github.com/payloadcms/payload/issues/12363)) ([77bb7e3](https://github.com/payloadcms/payload/commit/77bb7e3))
* allow group fields to have an optional name ([#12318](https://github.com/payloadcms/payload/issues/12318)) ([e258cd7](https://github.com/payloadcms/payload/commit/e258cd7))
* prevent query preset lockout ([#12322](https://github.com/payloadcms/payload/issues/12322)) ([9779cf7](https://github.com/payloadcms/payload/commit/9779cf7))
* thread overrideAccess through field validations ([#12399](https://github.com/payloadcms/payload/issues/12399)) ([7130834](https://github.com/payloadcms/payload/commit/7130834))
* **plugin-multi-tenant:** prompt the user to confirm the change of tenant before actually updating ([#12382](https://github.com/payloadcms/payload/issues/12382)) ([faa7794](https://github.com/payloadcms/payload/commit/faa7794))
* **storage-s3:** presigned URLs for file downloads ([#12307](https://github.com/payloadcms/payload/issues/12307)) ([800c424](https://github.com/payloadcms/payload/commit/800c424))
* **ui:** fixed toolbar group customization ([#12108](https://github.com/payloadcms/payload/issues/12108)) ([b7b2b39](https://github.com/payloadcms/payload/commit/b7b2b39))
* **ui:** display the actual error message on unpublish if available ([#11898](https://github.com/payloadcms/payload/issues/11898)) ([b3cac75](https://github.com/payloadcms/payload/commit/b3cac75))

### 🐛 Bug Fixes

* **db-mongodb:** sort by fields in relationships with `draft: true` ([#12387](https://github.com/payloadcms/payload/issues/12387)) ([fd67d46](https://github.com/payloadcms/payload/commit/fd67d46))
* **db-mongodb:** localized dates being returned as date objects instead of strings ([#12354](https://github.com/payloadcms/payload/issues/12354)) ([c43891b](https://github.com/payloadcms/payload/commit/c43891b))
* **db-postgres:** build `near` sort query properly for point fields ([#12240](https://github.com/payloadcms/payload/issues/12240)) ([58fc2f9](https://github.com/payloadcms/payload/commit/58fc2f9))
* **db-postgres:** `dbName` in arrays regression with long generated drizzle relation names ([#12237](https://github.com/payloadcms/payload/issues/12237)) ([5fce501](https://github.com/payloadcms/payload/commit/5fce501))
* **db-postgres:** v2-v3 migration errors with relation already exists ([#12310](https://github.com/payloadcms/payload/issues/12310)) ([3edfd7c](https://github.com/payloadcms/payload/commit/3edfd7c))
* **db-postgres:** ensure module augmentation for generated schema is picked up correctly in turborepo ([#12312](https://github.com/payloadcms/payload/issues/12312)) ([98283ca](https://github.com/payloadcms/payload/commit/98283ca))
* **db-postgres:** selectDistinct might remove expected rows when querying with nested fields or relations ([#12365](https://github.com/payloadcms/payload/issues/12365)) ([8219c04](https://github.com/payloadcms/payload/commit/8219c04))
* **drizzle:** improve db push schema comparison ([#12193](https://github.com/payloadcms/payload/issues/12193)) ([7266225](https://github.com/payloadcms/payload/commit/7266225))
* **next:** tells webpack not to bundle the require-in-the-middle pkg ([#12417](https://github.com/payloadcms/payload/issues/12417)) ([7498d09](https://github.com/payloadcms/payload/commit/7498d09))
* **plugin-cloud:** ensure scheduled publishing works if no custom jobs are defined ([#12410](https://github.com/payloadcms/payload/issues/12410)) ([d63c8ba](https://github.com/payloadcms/payload/commit/d63c8ba))
* **richtext-lexical:** newTab not being able to be checked to true by default ([#12389](https://github.com/payloadcms/payload/issues/12389)) ([3e7db30](https://github.com/payloadcms/payload/commit/3e7db30))
* **ui:** respect `filterOptions: { id: { in: [] } }` ([#12408](https://github.com/payloadcms/payload/issues/12408)) ([8ebadd4](https://github.com/payloadcms/payload/commit/8ebadd4))
* **ui:** passes value to server component args ([#12352](https://github.com/payloadcms/payload/issues/12352)) ([d9c0c43](https://github.com/payloadcms/payload/commit/d9c0c43))

### ⚡ Performance

* remove duplicative deep loops during field sanitization ([#12402](https://github.com/payloadcms/payload/issues/12402)) ([93d79b9](https://github.com/payloadcms/payload/commit/93d79b9))
* actually debounce rich text editor field value updates to only process latest state ([#12086](https://github.com/payloadcms/payload/issues/12086)) ([1d5d96d](https://github.com/payloadcms/payload/commit/1d5d96d))

### 📚 Documentation

* remove link to outdated ecommerce template from stripe plugin docs ([#12353](https://github.com/payloadcms/payload/issues/12353)) ([cd45574](https://github.com/payloadcms/payload/commit/cd45574))
* add local api instructions for vercel content link ([#12385](https://github.com/payloadcms/payload/issues/12385)) ([a9cc747](https://github.com/payloadcms/payload/commit/a9cc747))
* add pagination and limit: 0 information in pagination for API docs ([#12243](https://github.com/payloadcms/payload/issues/12243)) ([05ae957](https://github.com/payloadcms/payload/commit/05ae957))

### 📝 Templates

* fix categories search sync ([#12359](https://github.com/payloadcms/payload/issues/12359)) ([3701de5](https://github.com/payloadcms/payload/commit/3701de5))
* add eslint ignore rule for '.next/' ([#12332](https://github.com/payloadcms/payload/issues/12332)) ([09f15ff](https://github.com/payloadcms/payload/commit/09f15ff))
* fix Media component failing when setting a custom serverURL ([#12214](https://github.com/payloadcms/payload/issues/12214)) ([1869377](https://github.com/payloadcms/payload/commit/1869377))

### 🏡 Chores

* add NODE_OPTIONS to vscode settings by default in the repo for playwright extension ([#12390](https://github.com/payloadcms/payload/issues/12390)) ([e93d0ba](https://github.com/payloadcms/payload/commit/e93d0ba))
* add no-frozen-lockfile flag for templates script ([#12394](https://github.com/payloadcms/payload/issues/12394)) ([735d699](https://github.com/payloadcms/payload/commit/735d699))
* bump node version in monorepo and add new flag for node 23.6+ ([#12328](https://github.com/payloadcms/payload/issues/12328)) ([021932c](https://github.com/payloadcms/payload/commit/021932c))
* **plugin-stripe:** enable TypeScript strict ([#12303](https://github.com/payloadcms/payload/issues/12303)) ([edeb381](https://github.com/payloadcms/payload/commit/edeb381))

### 🤝 Contributors

- Sasha (@r1tsuu)
- Paul (@paulpopus)
- Jarrod Flesch (@JarrodMFlesch)
- Dan Ribbens (@DanRibbens)
- Dmitrijs Trifonovs (@dt-globelaxy)
- Alessio Gravili (@AlessioGr)
- Jacob Fletcher (@jacobsfletch)
- Ruslan (@ruslan-amboss)
- Philipp Schneider (@philipp-tailor)
- Anyu Jiang (@anyuj)
- Jessica Rynkar (@jessrynkar)
- Germán Jabloñski (@GermanJablo)
- Rot4tion (@Rot4tion)
- jeepman32 (@jeepman32)
- Tobias Odendahl (@tak-amboss)