Skip to content

Releases: payloadcms/payload

v3.23.0

11 Feb 18:00
480c6e7
Compare
Choose a tag to compare

v3.23.0 (2025-02-11)

🚀 Features

🐛 Bug Fixes

  • set initialValues alongside values during onSuccess (#10825) (fde526e)
  • unhelpful "cannot overwrite model once compiled" errors swallowing actual error (#11057) (6a99677)
  • error when passing functions to array or block fields labels property (#11056) (6d48cf9)
  • db-mongodb: ensures same level operators are respected (#11087) (d2fe9b0)
  • db-postgres: incorrect pagination results when querying hasMany relationships multiple times (#11096) (98fec35)
  • next: allows relative live preview urls (#11083) (91a0f90)
  • payload-cloud: handle socket closures (#11113) (da77f99)
  • richtext-lexical: improve keyboard navigation on DecoratorNodes (#11022) (fa18923)
  • richtext-lexical: toggling between internal and custom links does not update fields (#11074) (9fb7160)
  • richtext-lexical: fixed the positioning of the button to add columns or rows in tables (#11050) (886bd94)
  • storage-s3: sockets not closing (#11015) (95ec575)
  • ui: relationship filter renders stale values when changing fields (#11080) (da6511e)
  • ui: incorrectly incrementing version counts if maxPerDoc is set to 0 (#11097) (3616818)

📚 Documentation

  • update custom endpoints docs, handler does not accept array of functions anymore (#11110) (1f3ccb8)
  • adds options table to payload-wide upload options (#10904) (d6a03ee)
  • fixing 3 dead internal links (#11100) (3f80c59)
  • adds usePayloadAPI hook to React Hooks documentation (#11079) (d56de79)
  • fix typo in BlockquoteFeature name (#11078) (87ba7f7)
  • typo in jobs queue workflows (#11063) (dc56acb)
  • plugin-multi-tenant: update tenantsArrayField config options (#11045) (ac6f4e2)

📝 Templates

🏡 Chores

🤝 Contributors

v3.22.0

07 Feb 14:29
a80c6b5
Compare
Choose a tag to compare

v3.22.0 (2025-02-07)

🚀 Features

  • ui: adds filtering config option and implementation for filtering a… (#11007) (a63a3d0)
  • ui: improve hasMany TextField UX (#10976) (d8cfdc7)

🐛 Bug Fixes

  • db-postgres: ensure globals have createdAt, updatedAt and globalType fields (#10938) (57143b3)
  • db-postgres: select hasMany: true with autosave doesn't work properly (#11012) (3ad56cd)
  • next: viewing modified-only diff view containing localized arrays throws error (#11006) (09721d4)
  • plugin-multi-tenant: correctly set doc default value on load (#11018) (f25acb8)
  • richtext-lexical: duplicative error paths in validation (#11025) (2b76a04)
  • richtext-lexical: ensure sub-fields have access to full document data in form state (#9869) (ae32c55)
  • ui: removing final condition closes where builder (#11032) (b820a75)
  • ui: clearing value from relationship filter leaves stale query (#11023) (7a73265)
  • ui: relationship filter clearing on blur (#11021) (8940726)
  • ui: improve useIgnoredEffect hook (#10961) (8ed4104)
  • ui: allow schedule publish to be accessed without changes (#10999) (bdbb999)
  • ui: apply cacheTags upload config property to other admin panel image components (#10801) (e29ac52)

🛠 Refactors

  • do not use description functions for generated types JSDocs (#11027) (8b6ba62)

🧪 Tests

🏡 Chores

🤝 Contributors

v3.21.0

05 Feb 19:22
834fdde
Compare
Choose a tag to compare

v3.21.0 (2025-02-05)

🚀 Features

  • exposes helpful args to ts schema gen (#10984) (2118c6c)
  • adds auto resize feature to textarea (#10786) (7d429f8)
  • plugin-multi-tenant: allow opting out of tenant access control merge (#10888) (be790a9)

🐛 Bug Fixes

  • allow public errors to thread through on response (#10419) (ea9abfd)
  • db-postgres: select hasMany inside arrays and blocks with versions (#10829) (68a7de2)
  • db-postgres: write operations on polymorphic joined collections throw error (#10854) (e1dcb95)
  • plugin-multi-tenant: incorrect tenant selection with postgres (#10992) (2a1ddf1)
  • plugin-multi-tenant: fixed hardcoded user tenants field (#10782) (9638dbe)
  • plugin-search: deleting docs even when there's a published version (#10993) (42da87b)
  • plugin-search: generates full docURL with basePath from next config (#10910) (0f85a6e)
  • plugin-search: gets api route from useConfig (#10632) (6353cf8)
  • richtext-lexical: removes css from jsx converter (#10997) (45913e4)
  • richtext-lexical: link drawer has no fields if parent document create access control is false (#10954) (136c90c)
  • ui: client should add back default values for valid and passesCondition form field properties (#10709) (35e5be8)
  • ui: revert unrelated code (#10897) (3985893)
  • ui: error in version view if document contains localized arrays or blocks (#10893) (85c0842)
  • ui: create-first-user crashes when users collection has join field (#10871) (2f66bdc)

📚 Documentation

🧪 Tests

📝 Templates

📓 Examples

  • multi-tenant seed script, readme and other improvements (#10702) (ae0736b)
  • added missing sharp dependency to the remix website package (#10931) (58666fb)

⚙️ CI

  • increase closed issue lock for inactivity to 7 days (8af8bef)

🏡 Chores

  • deps: bump packages used to build payload (#10950) (109de8c)
  • deps: bumps @faceless-ui/window-info to v3.0.1 and @faceless-ui/scroll-info to 2.0.0 (#10913) (2f787a9)
  • deps: deprecates body-scroll-lock (c7ad46c)
  • examples: misc improvements to the draft preview example (#10876) (2b9ee62)
  • plugin-search: improves types (#10955) (1771271)
  • plugin-search: deprecates apiBasePath from config (#10953) (4a4e90a)
  • templates: improves and simplifies draft preview (#10895) (8a79e59)

🤝 Contributors

v3.20.0

29 Jan 15:49
5bd17cc
Compare
Choose a tag to compare

v3.20.0 (2025-01-29)

🚀 Features

  • allow publish and publish specific locale buttons to be swapped (#9438) (9b49741)
  • allows fields to be collapsed in the version view diff (#8054) (828b3b7)
  • ui: allows customizing version diff components, render versions ui on the server (#10815) (c562fbf)
  • ui: toggle showing only modified fields in version diff view (#10807) (33ac13d)

🐛 Bug Fixes

  • checks for localization to prevent publish button breaking (#10844) (9c31a52)
  • field paths within hooks (#10638) (0acaf8a)
  • next: remove toString coercion inside getDocumentPermissions (#10828) (9f9919d)
  • plugin-form-builder: type of MessageField to object (#10792) (92e6beb)
  • plugin-form-builder: type of MessageField to SerializedEditorState (#10789) (5603c1c)
  • plugin-multi-tenant: issue #10740 - "The following field is invalid: Assigned Tenant" (#10764) (c1c64a0)
  • plugin-multi-tenant: remove tenant cookie on logout (#10761) (22633a6)
  • plugin-nested-docs: update draft and published child docs on resave (#10454) (7a39870)
  • richtext-lexical: preserve selection in Firefox when using LexicalMenu (#10867) (0e5ff24)
  • richtext-lexical: afterRead hooks were not awaited (#10747) (9f2bca1)
  • translations: adds et to import file (#10823) (ffe8020)
  • ui: adds title attribute to Logout button for tooltip (#10851) (989140b)
  • ui: correctly reset blocksDrawer search state after close (#10847) (8a6d995)
  • ui: adds prev value on form state validat functions (#10832) (a835518)
  • ui: hide the restore button's empty submenu in a draft version (#10756) (0d81ff2)
  • ui: include check for parent permissions in renderField (#10729) (8289588)

⚡ Performance

  • skips field validations until the form is submitted (#10580) (82f1bb9)
  • only validate filter options on submit (#10738) (a05240a)

📚 Documentation

📝 Templates

⚙️ CI

  • remove docker login, not functional for external contributors (eca4f47)
  • update CODEOWNERS (d6ae07d)
  • fix run e2e command (#10779) (344b231)

🏡 Chores

  • improves routeError log safety (#10793) (ace7557)
  • uncomment collectionSlugs array in fields test suite, for resetDB to work properly (#10778) (72a5c02)
  • migrate outdated @payloadcms/next/utilities imports (#10777) (b9d3250)
  • disable bun run test buttons if bun extension is installed (#10775) (03f7bdf)
  • cpa: re-pin template versions (#10857) (c08f012)
  • deps: upgrades react-diff-viewer-continued to v4.0.4 to suppress react 19 warnings and use ESM imports (#10834) (57f7218)
  • templates: update missing changes in vercel website template (#10827) (c75c6ce)
  • templates: fix eslint errors in vercel templates (#10768) (52f86c7)
  • templates: fix: the contact page of the website template throws an error in live preview (#10785) (d6658b5)
  • templates: fix eslint errors in plugin template (#10770) (b76401c)

🤝 Contributors

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