TL;DR
Payload CMS v3.0.0-beta.125 brings significant enhancements to the platform with new features like filtering join documents using a where property, improved language support with Swedish and Czech translations for the SEO plugin, and a "Powered by Payload" header in Next.js configurations. This release also addresses several UI bugs, including fixes for JSON field display, upload field updates in edit popups, and issues with locked documents. TypeScript improvements for RequestContext augmentation and support for custom endpoints with PUT method make development more robust.
Highlight of the Release
- Added filtering capability to join fields with new
where property
- Added Swedish and Czech translations to the SEO plugin
- Fixed upload field updates to reflect in edit popup changes
- Improved JSON field display with minimum height of 3 lines
- Fixed type augmentation of
RequestContext for TypeScript users
- Added support for custom endpoints with
method: 'put'
Migration Guide
No breaking changes were introduced in this release that would require migration steps. The improvements and bug fixes are backward compatible with previous beta versions.
If you're using custom endpoints with method: 'put' that weren't working previously, they should now function correctly without any changes to your code.
For TypeScript users who were attempting to augment the RequestContext type, this functionality now works as documented in the Payload docs.
Upgrade Recommendations
This beta release contains several important bug fixes and feature enhancements that improve the developer and content editor experience. It's recommended to upgrade if you:
- Use join fields and would benefit from filtering capabilities
- Need Swedish or Czech translations for the SEO plugin
- Have experienced issues with upload field updates in edit popups
- Use JSON fields and want improved display options
- Have been affected by the
RequestContext type augmentation issue
- Use custom endpoints with
PUT method
As this is still a beta release, make sure to test thoroughly in a development environment before deploying to production.
Bug Fixes
UI Fixes
-
JSON Field Display: JSON fields now have a minimum height of 3 lines and support a configurable maxHeight in admin props, preventing content wrapping issues and improving readability.
-
Upload Field Updates: Fixed an issue where changes made to upload fields in the edit drawer weren't reflected until page refresh. Now, document fetches are reloaded upon saving within the edit drawer.
-
Locked Documents: Fixed a bug where the updatedAt field in locked-docs collection could be updated by non-owners when using custom fields with the useField hook.
TypeScript and API Fixes
-
RequestContext Type Augmentation: Fixed type augmentation of RequestContext to properly work with module declaration, allowing developers to extend the interface as documented.
-
Custom Endpoints with PUT Method: Restored support for custom endpoints with method: 'put', which was working in v2.0 but broken in v3.0 beta.
Other Fixes
- CPA: Removed lock file on project creation to prevent potential conflicts.
New Features
Join Field Filtering with where Property
The join field now supports a where property directly in the config, allowing you to filter join documents with contextual conditions. This powerful addition lets you automatically filter documents based on specific criteria, such as showing only items that require action.
X-Powered-By Payload Header
Added an x-powered-by header that includes Payload alongside Next.js in the response headers. The header respects the nextConfig poweredBy: false setting to completely disable it if needed.
SEO Plugin Language Support
- Added Swedish translations for the SEO plugin
- Added Czech translations for the SEO plugin
Website Template Improvements
The website template has been enhanced with:
- Configured image sizes for better performance
- Simplified environment variables for easier setup
- Updated README with improved documentation
Security Updates
No specific security fixes were mentioned in this release.
Performance Improvements
Website Template Performance
The website template now includes configured image sizes, which helps optimize image loading and improves overall site performance by ensuring appropriate image dimensions are served based on context.
JSON Field Rendering
The improvements to JSON fields with minimum and maximum height settings help with UI performance by preventing excessive vertical space usage and improving the readability of JSON content.
Impact Summary
This release significantly enhances Payload CMS with both developer-focused improvements and user experience refinements. The addition of filtering capabilities to join fields provides developers with more control over related content display, while the fixes to upload fields and JSON display directly improve the content editing experience.
The internationalization efforts continue with new language support for the SEO plugin, making Payload more accessible to Swedish and Czech-speaking users. TypeScript improvements ensure better type safety and developer experience when extending the platform.
The website template improvements demonstrate Payload's commitment to performance and ease of setup, with configured image sizes and simplified environment variables. These changes collectively make Payload more powerful, user-friendly, and internationally accessible while addressing several important bugs that affected day-to-day usage.
Full Release Notes
🚀 Features
- add join field config
where property (#8973) (93a55d1)
- adds x-powered-by Payload header in next config (#9027) (ddc9d97)
- plugin-seo: add czech translation (#8998) (4652e8d)
- plugin-seo: add Swedish translations (#9007) (3e31b7a)
- templates: website template now has configured image sizes, updated readme and simplified env vars for setting up (#9036) (201d686)
🐛 Bug Fixes
- custom endpoints with
method: 'put' (#9037) (9ce2ba6)
- type augmentation of
RequestContext (#9035) (f52b7c4)
- cpa: remove lock file on project creation (cdcefa8)
- ui: json fields can now take a maxHeight in admin props and there's a mininum height of 3 lines (#9018) (3ca203e)
- ui: ensure upload field updates reflect in edit popup changes (#9034) (2175e5c)
- ui:
updatedAt field in locked-docs collection able to be updated by non-owner (#9026) (ebd3c02)
🤝 Contributors