Change8

v3.83.0

📦 payload-cmsView on GitHub →
12 features🐛 2 fixes🔧 11 symbols

Summary

Version v3.83.0 introduces significant enhancements to plugin architecture with `definePlugin`, adds performance profiling tools, and brings UUIDv7 support to Drizzle adapters. It also includes experimental features like Lexical node view overrides and custom collection views in the Next.js admin.

Migration Steps

  1. If extending plugins, use the new `definePlugin` helper for defining plugins, optionally setting `order` and leveraging the new cross-plugin discovery mechanism.
  2. When using the Resend email adapter, ensure any custom headers intended for the Resend API are passed via the `headers` property in the `sendEmail` options.
  3. If customizing Lexical node rendering in `richtext-lexical`, utilize the new view override system by specifying views via `editor: lexicalEditor({ views: ... })`.
  4. If using storage adapters and relying on prefixing, consider setting `useCompositePrefixes: true` to combine collection and document prefixes instead of having one override the other.

✨ New Features

  • Expanded plugin API via new `definePlugin` helper, introducing opt-in execution ordering, cross-plugin discovery via a slug-keyed `plugins` map, and module augmentation for type-safe plugin options.
  • Added profiling utilities (`timeSync` and `timeAsync`) for measuring function execution time during development, intended for development use only.
  • Added internal plugin priority and slug API for cross-plugin discovery, allowing plugins to attach `priority`, `slug`, and `options` properties.
  • Slug field buttons (Generate and Lock/Unlock) are now hidden when the field is read-only.
  • The `create-payload-app` utility now supports an `--agent` / `-a` flag to install coding agent skills from GitHub.
  • Added `uuidv7` support for Postgres and SQLite Drizzle adapters, generating time-ordered UUIDs.
  • The Resend email adapter now passes custom headers from `sendEmail` options to the Resend API.
  • Support for registering custom collection views in the Next.js admin via `admin.components.views[key]`.
  • The form builder checkbox field label was changed from 'Default Value' to 'Checked by default' for clarity.
  • The MCP plugin is now extensible, allowing external plugins to inject custom MCP tools via its options.
  • Introduced an experimental view override system in `richtext-lexical` to customize how any Lexical node type is rendered in the editor and serialization.
  • Storage adapters (`storage-*`) now support a `useCompositePrefixes` option to combine collection and document prefixes.

🐛 Bug Fixes

  • Fixed an issue where client uploads ignored the document prefix entirely in storage adapters when `useCompositePrefixes` is false.
  • Fixed an issue where custom headers passed to `sendEmail` were silently dropped by the Resend adapter.

Affected Symbols