Skip to content

Releases: payloadcms/payload

v3.19.0

23 Jan 18:45
b2ebf85
Compare
Choose a tag to compare

v3.19.0 (2025-01-23)

🚀 Features

  • richtext-lexical: make decoratorNodes and blocks selectable. Centralize selection and deletion logic (#10735) (4aaef5e)
  • ui: adds edit many option for bulk uploads (#10646) (be2c482)

🐛 Bug Fixes

  • next.js rewrites were not respected for rest api (#10759) (c0ae994)
  • browser validation error when visiting account page (#10717) (c1b912d)
  • custom blocks field label component missing from config (#10692) (a5695ba)
  • apply CORS response headers without headersWithCors (#10597) (be98eda)
  • rest api with ?locale=* doesn't return full localized data (#10619) (7f8f2f0)
  • join field with the target relationship inside localized array (#10621) (25a70ab)
  • properly handle nullable minDistance and maxDistance in near query (#10622) (46c1b37)
  • db-mongodb: v2-v3 migration versions docs of collections and globals without relationship fields (#10755) (2d8ff72)
  • db-mongodb: querying polymorphic relationships with the all operator (#10704) (d601300)
  • db-mongodb: beginTransaction invalid type without replicaset (#10690) (90f88f8)
  • next: admin panel UI not rendering custom upload components (#9925) (e4fa171)
  • plugin-multi-tenant: selected tenant could become incorrect when navigating out of doc (#10723) (e6d0260)
  • plugin-multi-tenant: corrects user type in userHasAccessToAllTenants fn (#10707) (2a98c84)
  • plugin-multi-tenant: prevent throwing when no user exists (#10699) (a9c0832)
  • plugin-nested-docs: cannot update more than 10 child docs (#10737) (3501d47)
  • richtext-lexical: improved regex matchers for absolute and relative URLs to make autolinking more reliable (#10725) (9bb27af)
  • richtext-lexical: incorrect table action menu placement (#10627) (9684d31)
  • ui: filters out upload specific fields for bulk editing (#10726) (f181f97)
  • ui: admin description not being respected on tabs and padding issues with tab descriptions (#10710) (67f7c95)
  • ui: issue with thumbnail component crashing the UI if the image didnt exist (#10689) (ddeb29f)

📚 Documentation

  • moves collection and globals admin docs to their respective config overviews (#10743) (e5b3da9)
  • moves customizing fields doc to fields overview (#10742) (0ca3736)
  • adds examples of typed custom field components (#10741) (8b3e2ff)
  • adds info on useSelection and useStepNav hooks (#10683) (d8682f2)
  • multi-tenant plugin - remove @beta and fix npm url (#10697) (6d43910)

📝 Templates

  • update website readmes for additional information on jobs and revalidation (#10758) (61a2a9c)
  • fix potential error in the initial form state caused by type mismatch (#10713) (5e4a1d4)

⚙️ CI

🏡 Chores

🤝 Contributors

v3.18.0

20 Jan 22:09
26aeebc
Compare
Choose a tag to compare

v3.18.0 (2025-01-20)

🚀 Features

  • adds support for both client-side and server-side remote URL uploads fetching (#10004) (38a06e7)
  • support JPEG XL image size calculation (#10624) (6ebcbe4)
  • adds multi-tenant plugin (#10447) (813e70b)
  • examples: add example with Remix + Payload Local API (#10171) (5a9cf89)
  • richtext-lexical: add jsx and html converters for tab nodes (#10565) (2e09da8)
  • ui: exposes context of the view being rendered on the server (#10620) (e80d679)

🐛 Bug Fixes

  • updates field validation error messages to use labels if applicable (#10601) (ad553e9)
  • delete scheduled publish jobs when deleting documents (#10584) (05b9d94)
  • UpsertArgs is not exported in payload (#9347) (7a392dd)
  • form state read access control args (#10576) (05b03b2)
  • missing find collection versions REST endpoint (#10573) (120735c)
  • basePath was not passed through if method was overriden (#10562) (90e1843)
  • db-mongodb: incorrect errors logging due to invalid logic in handleError (#10575) (9043b10)
  • payload-cloud: add ts strict mode and fix a couple of wrong runtime behaviors (#10570) (16ad7a6)
  • plugin-seo: loosen some types to restore compatibility between minor versions (#10670) (9c29541)
  • plugin-stripe: hooks did not use api key from plugin config (#10671) (d2f63dc)
  • richtext-lexical: setting hideInsertParagraphAtEnd to true did not hide insert paragraph button (#10581) (8ab05b0)
  • richtext-lexical: inline blocks did not store nested fields correctly (#10578) (61117ee)
  • richtext-lexical: ensure jsx and html converters do not output linebreak if editor is empty (#10563) (df4af70)
  • richtext-slate: link and upload extra field drawers did not render fields if collection has unrelated access control set (#10583) (ecf0572)
  • ui: renders custom block row labels (#10686) (6c19579)
  • ui: fixed many bugs in the WhereBuilder relationship select menu (#10553) (56667cd)
  • ui: replace hard coded path to API with serverURL and routes.api (#10618) (5a95237)
  • ui: placement issue with sonner toasts (#10641) (f1cc8bd)
  • ui: show outline on focus for sort column buttons (#9557) (818467d)

⚡ Performance

  • list view table should not send duplicative client CollectionConfig to client (#10664) (823e223)
  • ensure deepCopy in beforeValidate hook does not run unnecessarily for rest and graphQL API (#10666) (b69fe99)
  • optimize getEntityConfig lookups (#10665) (c07c9e9)
  • remove deepCopying in sanitizeJoinQuery, optimize flattenWhereToOperators (#10663) (91ed882)
  • operations performance optimizations (#10609) (42382b6)
  • reduce document data deepCopying in field hooks (#10610) (116fd99)
  • do not send minRows and maxRows undefined values to client (#10600) (0a1cf7b)
  • ensure unnecessary config translations are not sent to the client (#10524) (3fb6ac3)
  • significantly reduce form state response size by up to 3x (#9388) (31ae27b)
  • richtext-lexical: ensure internal link nodes do not store url field, and vice versa (#10564) (5d6c29f)
  • ui: remove unnecessary deepCopy in reduceToSerializableFields (#10667) (a98a398)
  • ui: speed up list view rendering, ensure root layout does not re-render when navigating to list view (#10607) (fafe37e)

📚 Documentation

🧪 Tests

📝 Templates

  • form fields will now respect 'required' flag from config on website template (#10681) (2d70269)
  • add cache tag to images so that they can be revalidated along with the page on website templates (#10647) (7d10e1b)
  • bump for v3.17.1 (#10560) (592f02b)

📓 Examples

🔨 Build

  • move larger scripts into tools dir in workspace (#10653) (f18ca9c)

⚙️ CI

  • update canary script for tools dir (711febc)
  • add multi-tenant plugin to publish list (076ffa2)
  • disable integration tests retrying (#10615) (28b7c04)
  • access sha in dispatch event (5ee36fc)
  • dispatch event (f306785)
  • scripts: publish-canary script always bump minor, more realistic [skip ci][skip l...
Read more

v3.17.1

14 Jan 01:02
a865a90
Compare
Choose a tag to compare

v3.17.1 (2025-01-14)

Important

This release upgrades the lexical dependency from 0.20.0 to 0.21.0. If you installed lexical manually, update it to 0.21.0. Installing lexical manually is not recommended, as it may break between updates, and our re-exported versions should be used. See the yellow banner box for details.

If you still encounter richtext-lexical errors, delete node_modules and your lockfile (e.g. pnpm-lock.json), then reinstall (e.g. pnpm install). Some package managers do not update the lexical peerdep automatically, likely due to a bug on their end.

🐛 Bug Fixes

  • richtext-lexical: incorrect lexical version in dependency checker (#10559) (878763b)

🤝 Contributors

v3.17.0

13 Jan 21:31
3c29015
Compare
Choose a tag to compare

v3.17.0 (2025-01-13)

Important

Please upgrade to 3.17.1. In 3.17.0, you may encounter richtext-lexical dependency checker errors during development.

🚀 Features

  • delete scheduled published events (#10504) (f95d6ba)
  • add ability to disable cache tags for admin thumbnails (#10319) (6b051bd)
  • consolidates logic in update and updateByID operations (#9998) (690e99f)
  • richtext-lexical: add new paragraph button below the editor (#10530) (6757f7d)
  • richtext-lexical: respect imageURL for blocks and inline blocks (#10532) (ab564d3)
  • richtext-lexical: upgrade lexical from 0.20.0 to 0.21.0. Fixes table selection & scrollable table bugs (#10501) (04733f0)

🐛 Bug Fixes

  • respect res header immutability (#10554) (5cfb1da)
  • better messaging when no arg passed to payload cli (#10550) (9278eec)
  • aligns first render for hydration of dates in list view (#10541) (cc13ae7)
  • rest api with Next.js basePath option (#10535) (04a8083)
  • localized tabs with empty data and an array field inside lead to crash in afterChange (#10410) (1af7d87)
  • cpa: proper debug logging (#10549) (9004205)
  • next: ensures req.locale is populated before running access control (#10533) (afcc970)
  • richtext-lexical: error when deleting links (#10557) (9631060)
  • richtext-lexical: insert paragraph at end button overlaps floating link toolbar (#10552) (6ada450)
  • richtext-lexical: remove alteration of lexical text format constant (#10415) (69fac59)
  • richtext-lexical: combine 2 normalizeMarkdown implementations and fix code block regex (#10470) (0252681)
  • richtext-lexical: editor placeholder had incorrect padding set for small viewports (#10531) (26711a7)
  • richtext-lexical: adds support for localized placeholder (#10523) (dc6d79e)
  • richtext-lexical: lexical editor behind a drawer was incorrectly registered as parent editor of lexical editor within drawer (#10502) (fd96a9a)
  • translations: update etTranslations type to DefaultTranslationsObject (#10358) (2e0595b)
  • ui: reset pagination when typing in WhereBuilder select menu (#10551) (a3ef5ee)
  • ui: passes serverProps to custom label components within table columns (#10547) (6848cf4)
  • ui: scheduled publish not showing related events in postgres (#10481) (c9584a9)
  • ui: table custom label missing client field props (#10540) (415fbf1)
  • ui: fixed issue with updatedAt timestamps not updating in the UI when drafts are updated (#10503) (082c4f0)

🛠 Refactors

  • improve error logging during onInit and website template seed (#10528) (142c504)
  • next: cleans up initPage through initReq overrides and consolidated return types (#10449) (c850bd4)

📚 Documentation

  • improves grammar in vercel postgres usage note (#10365) (5043a8a)
  • updates docs to reflect correct array hook usage (#10546) (43b40f0)

📝 Templates

  • fix issue with shadcn utilities alias across website template and localization example (#10507) (d20dc58)
  • bump for v3.16.0 (#10499) (a49f782)

⚙️ CI

🏡 Chores

🤝 Contributors

v3.16.0

10 Jan 19:18
d265c26
Compare
Choose a tag to compare

v3.16.0 (2025-01-10)

🚀 Features

🐛 Bug Fixes

  • collection access endpoint optional ID and use 404 for not found response (#10487) (225c24d)
  • do not autorun jobs during next build process (#10483) (d8f4f06)
  • properly validates preferences json (#10465) (6a262ab)
  • schedule publish allowed before saving draft (#10461) (3349a4c)
  • next: properly instantiates locale context (#10451) (a78bc6c)
  • payload-cloud: infinite recursion on init (#10467) (34a0d00)
  • richtext-lexical: respect defaultValue config of link feature url and linkType fields (#10498) (4fc6956)
  • richtext-lexical: properly handle error if blocks or inline blocks are not found (#10497) (e0df0d6)
  • richtext-lexical: update Thai translations for blockquote and horizontal rule (#10469) (8d5d2d1)
  • richtext-lexical: allow external state mutation of block node from outside the form (#10486) (4c96028)
  • richtext-lexical: inline Block drawers opened when document mounts (#10480) (bdb96dd)
  • ui: disables form during locale change (#8705) (f4596fc)
  • ui: stale doc status when publishing, reverting and unpublishing (#10405) (17e7ee2)
  • ui: removes edit drawer button from uploads collection edit view (#10426) (9701fc6)

📚 Documentation

📝 Templates

  • adjusted the cron job schedule so its compatible with hobby tiers as well (#10457) (d9ff2e0)
  • add support for scheduled publish to the website template [no lint] (#10455) (7321f9f)

🏡 Chores

🤝 Contributors

v2.32.0

10 Jan 16:14
f12cb62
Compare
Choose a tag to compare

2.32.0 (2025-01-10)

Features

v2.31.0

09 Jan 15:42
aae5218
Compare
Choose a tag to compare

2.31.0 (2025-01-09)

Features

  • adds forceRenderAllFields admin prop to force all fields in edit view to render immediately (#10464) (07ff181)
  • i18n: add Slovenian (sl) translation (#8709) (7039b1f)
  • v2: allows filtering on group field types from list view (#10421) (f430db8)

Bug Fixes

  • graphql: 500 error when querying hasMany field data that is filtered by access-control (#6519) (4892d96), closes #6518
  • when publishing from a draft, only 10 were published. (#7906) (0cf9678)

v3.15.1

08 Jan 02:55
81188fc
Compare
Choose a tag to compare

v3.15.1 (2025-01-08)

🐛 Bug Fixes

🤝 Contributors

v3.15.0

07 Jan 17:53
a5443a1
Compare
Choose a tag to compare

v3.15.0 (2025-01-07)

🚀 Features

  • allow running sub-tasks from tasks (#10373) (08fb159)
  • warn if deploying to vercel and any upload collection missing storage adapter (#10391) (22c4dee)
  • next: pass through query params from document view to find operations (#10343) (4a15b86)
  • next: adds support for resetting preferences (#10304) (1cade17)

🐛 Bug Fixes

  • extends type all to the locale type definition in req (#10399) (eadce5e)
  • increase safety of findConfig (#10400) (f629709)
  • handle withoutEnlargement for undefined height or width (#10078) (d212733)
  • allow to set maxDepth: 0 for join fields, improve join field JSDoc (#10336) (ba228dd)
  • copy to locale with localized arrays and blocks generate new IDs to prevent errors in postgres (#10292) (c7b3204)
  • adds path to server field component prop types (#10330) (e97c43e)
  • cpa: ensures .env & .env.example file modifications occur before git initialization (#10312) (3847718)
  • db-postgres: handle undefined fallback for adapter.schemaName in relationships migration (#10384) (1525cc6)
  • db-postgres: added missing quotes and schema name to sql statement in v2-v3 migration (#10322) (556b8ed)
  • email-resend: add reply_to to the API when sending emails (#10407) (c7f21fc)
  • live-preview-react: allows react peer deps of v16.8.0 or later (#10328) (f2fab39)
  • next: live preview tab did not display custom edit view components (#10412) (ef7191b)
  • richtext-lexical: make div container optional (#10383) (7fc6227)
  • richtext-lexical: formatted inline code resulted in incorrect markdown export (#10413) (827c75a)
  • richtext-lexical: modify JSXConvertersFunction type to support block types in strict mode (#10398) (d772b2b)
  • richtext-lexical: open inline block drawer on mount (#10318) (5997aa1)
  • storage-vercel-blob: return 404 when file is not found (#10327) (d68a1ea)
  • ui: drawer component missing closing bracket in style calc (#10411) (ab53aba)
  • ui: sort resets columns (#10402) (a83a430)
  • ui: make relationship fields update the collection when it is changed in the drawer dropdown (#10338) (be84ad7)
  • ui: properly reflects hook changes in ui (#10268) (3ea1d39)
  • ui: ensures list drawer does not change underlying step nav (#10339) (b44aade)

📚 Documentation

🧪 Tests

  • fixes flaky localization e2e once and for all (#10406) (5991a2e)

📝 Templates

  • fix nested docs url generation for categories (#10403) (398b609)
  • use cross-env in the plugin template to achieve compatibility with Windows (#10390) (c1abd16)
  • prevent plugin template from including nested next folder in git (#10364) (0ce7c66)
  • bump for v3.14.0 (#10324) (3d5b9f0)

⚙️ CI

  • scripts: create draft release with release script, cleanup [skip ci] (6dcf817)

🏡 Chores

  • export RunInlineTaskFunction type (#10372) (1a9fba5)
  • change base image for template base dockerfile [skip ci] (daf314c)
  • deps: bumps react-datepicker to v7.6.0 to suppress react 19 warnings (#10366) (8d24528)
  • examples: set HTML dir attribute for RTL locales #10344 (#10345) (df827c0)
  • examples: remove outdated testing example (#10370) (5ba477b)
  • examples: removes all instances of React.forwardRef (#10334) (1f4790a)
  • richtext-lexical: improve block not found error message (#10348) (09d6c60)
  • templates: unpin payload packages (#10386) (422e8e3)
  • templates: removes all instances of React.forwardRef (#10331) (47e8158)

🤝 Contributors

v3.14.0

03 Jan 13:41
766b67f
Compare
Choose a tag to compare

v3.14.0 (2025-01-03)

🚀 Features

🐛 Bug Fixes

  • ensure scheduled publish restriction (#10317) (4e57054)
  • ensure loggingLevels is respected (#10308) (2e58a4a)
  • 'oldValue' must be a string error when viewing version diffs in postgres (#10313) (d9e0cd3)
  • safely executes form state conditions, validations, and default values (#10275) (7928eca)
  • next: returns proper verb tenses from update and delete routes (#10307) (d38ca83)
  • richtext-lexical: allow any priority of FOCUS_COMMAND (#10128) (018c193)
  • ui: unable to find user field schemas when updating password (#10305) (b14935c)
  • ui: properly instantiates abort controllers (#10309) (abb51b9)
  • ui: gracefully handle deletions in collection with upload hasMany (#9426) (2ae7d8e)
  • ui: disable save button until the upload file is uploaded / ready (#10083) (bd7f705)

📚 Documentation

📝 Templates

  • fix media block generating an error if referenced media is missing (#10310) (951c38e)
  • reorders postcss plugins in the website template for tailwind compatibility (#10176) (a000e4a)

🏡 Chores

  • examples: fix JSX rendering of internal links (#10303) (510968f)
  • translations: adjust Norwegian translation of events (#10300) (c658022)

🤝 Contributors