Releases: payloadcms/payload
Releases · payloadcms/payload
v3.17.1
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
🤝 Contributors
- Alessio Gravili (@AlessioGr)
v3.17.0
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
- Alessio Gravili (@AlessioGr)
- Elliot DeNolf (@denolfe)
- Germán Jabloñski (@GermanJablo)
- Dan Ribbens (@DanRibbens)
- Anthony Mifsud (@amifsud02)
- Ben Löffel (@benloeffel)
- Jacob Fletcher (@jacobsfletch)
- Tristan (@tristankrass)
- Jarrod Flesch (@JarrodMFlesch)
- Paul (@paulpopus)
- Simon Vreman (@SimonVreman)
- Amelia (@LimChorngUan)
- Sasha (@r1tsuu)
- Said Akhrarov (@akhrarovsaid)
v3.16.0
v3.16.0 (2025-01-10)
🚀 Features
- consolidates REST API handling, decouple from next.js (#10466) (686e48d)
- exports ListPreferences from payload (#10474) (ae1542b)
- export the default JWTAuthentication strategy (#10430) (81c1e47)
- autoRun jobs (#10401) (c0dc0cc)
- payload-cloud: set up cron jobs on init (#10106) (36e50dd)
🐛 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
- update beforeValidate documentation (#10367) (21eec87)
- update draft doc for formatting (#10393) (a8d6f3f)
- removed unnecessary visible
tag in fields/blocks (#10456) (83bd0e2)
📝 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
- update year in licenses (#10463) (e46ad67)
- import copy icon from nested folder (#9223) (ac97bfd)
- templates: generate new migrations for vercel (#10458) (5318d24)
🤝 Contributors
- Sasha (@r1tsuu)
- Jacob Fletcher (@jacobsfletch)
- Alessio Gravili (@AlessioGr)
- Sepiolina (@TidalCare)
- Steve Kuznetsov (@stevekuznetsov)
- Adrian Maj (@AdrianMaj)
- Germán Jabloñski (@GermanJablo)
- Dan Ribbens (@DanRibbens)
- Paul (@paulpopus)
- Jarrod Flesch (@JarrodMFlesch)
- Patrik (@PatrikKozak)
v2.32.0
v2.31.0
v3.15.1
v3.15.1 (2025-01-08)
🐛 Bug Fixes
- vercel upload adapter warning false positive (#10434) (7a21b44)
- deprecates admin.disable property (#10429) (b092754)
- richtext-lexical: fix default arg in normalizeMarkdown (#10424) (4d7587d)
🤝 Contributors
- Elliot DeNolf (@denolfe)
- Jacob Fletcher (@jacobsfletch)
- Germán Jabloñski (@GermanJablo)
v3.15.0
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 undefinedheight
orwidth
(#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 foradapter.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
- minor lexical docs improvements (#10414) (b774f55)
- fix all other links to live-preview example (#10385) (53aea62)
- fix CORS anchor link (#10333) (fd52de6)
- fix link to live-preview example and remove empty placeholder (#10380) (1e247f8)
- fix links and formatting (#10346) (5e4e274)
🧪 Tests
📝 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
- Alessio Gravili (@AlessioGr)
- Paul (@paulpopus)
- Boyan Bratvanov (@bratvanov)
- Jacob Fletcher (@jacobsfletch)
- Amir Aryan (@amiraryan1996)
- Patrik (@PatrikKozak)
- Elliot DeNolf (@denolfe)
- Germán Jabloñski (@GermanJablo)
- Sasha (@r1tsuu)
- bakaptr (@Zhousiru)
- Nacho Martin (@nachomglz)
- Said Akhrarov (@akhrarovsaid)
- Danilo Lemes (@Danil0v3s)
- James Mikrut (@jmikrut)
- Anders Semb Hermansen (@andershermansen)
- Jarrod Flesch (@JarrodMFlesch)
v3.14.0
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
- warn when using
defaultPopulate
on collections with uploads enabled (#10138) (d6d9edc) - fix typo in join.mdx (#10190) (b2042c5)
📝 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
- Sasha (@r1tsuu)
- Angel P. (@PlagueFPS)
- Jacob Fletcher (@jacobsfletch)
- Paul (@paulpopus)
- Alexander Cato (@alexander-cato)
- Tristan (@tristankrass)
- Dan Ribbens (@DanRibbens)
- Said Akhrarov (@akhrarovsaid)
- Sondre Ørland (@sondreorland)
- Germán Jabloñski (@GermanJablo)
- Grant Kennedy (@gkennedy87)
- Patrik (@PatrikKozak)
v3.13.0
v3.13.0 (2025-01-02)
🚀 Features
- adds more control over how to disable graphql for collections /… (#10265) (7a59e7d)
- richtext-lexical: ability to override default placeholder (#10278) (182eaa3)
- translations: add Catalan translations (#10260) (5188a9b)
- ui: expose onMount to CodeField (#10223) (68a5f5c)
🐛 Bug Fixes
- close db connections after running jobs from command line. (#9994) (eb69885)
- cpa: do not overwrite custom.scss file on update (#10285) (c3eb272)
- graphql: Change config from raw path to
file:
url (#9311) (16c6abe) - plugin-cloud-storage: actually deprecate adapters (#9640) (c4b31c0)
- plugin-search: respect custom api route in reindexButton (#10258) (cdaebcc)
- richtext-lexical: empty lines were incorrectly stripped from mdx blocks if doNotTrimChildren was set to true (#10287) (ee3c2cc)
- richtext-lexical: throw toast error when attempting to create upload node without any upload collections enabled (#10277) (07e86c0)
- richtext-lexical: various issues for lexical sub-fields due to incorrectly generated client field schema map (#10276) (35df899)
- richtext-lexical: formatted link markdown conversion not working (#10269) (885e966)
- richtext-lexical: ensure markdown normalization does not merge escaped code block lines (#10230) (c01b4bf)
- translations: adds missing max validations keys to client (#10266) (5d6064a)
- ui: checkboxes as first field were crashing WhereBuilder (#10290) (f3f36d8)
- ui: relationship edit drawers now respect current locale (#10262) (6dac4c5)
- ui: properly filters fields from list view columns and conditions (#10246) (f5a955d)
- ui: disableListColumn on first field breaks filter condition selection (#10267) (039b489)
- ui: removes useless verified checkbox on user create (#10252) (8671e85)
- ui: autosave wasnt firing on first change (#10256) (ef7242c)
📚 Documentation
- explicit
payload
usage fromreq
to avoidimport payload
confusion (#10291) (76e4402) - fix all missing vertical lines in tables (#10288) (b6de432)
- add missing vertical line to Collection Upload options table (#10282) (950f8ce)
- adds useListQuery to list of React hooks and updates useDocumentInfo (#10186) (be87ba0)
- fix dispatch actions link for useFormFields and useAllFormFields (#10273) (313b4ba)
- fix incorrect escaping of * (#10274) (5b4730d)
- fix docs for generate db schema (#10251) (63bca12)
- adds notes about importance of serverURL for verify / forgot-pa… (#10248) (6af6e44)
- add clarity about forgot-password and verify tokens (#10247) (363a24c)
- richtext-lexical: minor improvements (#10280) (943798a)
- richtext-lexical: improve building custom feature docs, add example for custom blocks (code field within lexical) (#10279) (6e19e82)
🧪 Tests
- consolidates list view e2e tests (#10263) (270ac10)
- adds custom pagination e2e tests (#10240) (6f5a1e3)
🏡 Chores
- cpa: remove success message outline (#10233) (2111a86)
- translations: fine-tune some Swedish texts (#10224) (c5b1cd6)
🤝 Contributors
- Sasha (@r1tsuu)
- James Mikrut (@jmikrut)
- Alessio Gravili (@AlessioGr)
- Said Akhrarov (@akhrarovsaid)
- Boyan Bratvanov (@bratvanov)
- Elliot DeNolf (@denolfe)
- Jacob Fletcher (@jacobsfletch)
- Gerard Du Pre (@GerardPolloRebozado)
- Jesper We (@JesperWe)
- Dan Ribbens (@DanRibbens)
- Violet Rosenzweig (@6TELOIV)
- Anders Semb Hermansen (@andershermansen)
v3.12.0
v3.12.0 (2024-12-28)
🚀 Features
- scheduled publish / unpublish (#10203) (37d1f2d)
- adds req to filterOptions args (#10204) (cf8c0ae)
- export defaultLoggerOptions (#10133) (7e0975f)
- plugin template (#10150) (d8a62b7)
- cpa: create project from example using
--example
CLI arg (#10172) (6b4842d) - richtext-lexical: multiline string support for objects in MDX parser (#10208) (181fc41)
- richtext-lexical: more lenient MDX JSON object parser that allows unquoted property keys (#10205) (a46609e)
🐛 Bug Fixes
- deep querying, handle
getLocalizedPaths
for blocks (#10187) (eff75f9) - generate types when no
en
language is defined in i18n (#10181) (8debb68) - ensure tab label and description are serializable (#10115) (68b5f61)
- db-postgres: prevent indexes from changing name on HMR (#10154) (374b79d)
- db-postgres: joins to self
collection
(#10182) (a0d8131) - richtext-lexical: newlines in mdx props were stripped, even though objects inside props may expect there to be newlines (#10215) (67db04c)
- richtext-lexical: restore selection (#10129) (154ad9d)
- ui: pagination resets perPage (#10199) (fad4ee6)
- ui: prevent many upload fields overwriting bulkUpload onSuccess (#10189) (ebf3cee)
- ui: public users unable to log out (#10188) (f3aebe3)
- ui: infinite loading states when adding blocks or array rows (#10175) (b33f4b0)
⚡ Performance
📚 Documentation
- fix backtick escaping in TableWithDrawers blocks (#10220) (3218b0d)
- correctly escape backticks (#10217) (466ea29)
- correctly escape backticks (#10216) (3278f45)
- fix typo (#10214) (da518f5)
- fix incorrect docs for complex mdx components (#10212) (78b6d51)
- fix syntax that couldn't be parsed (#10207) (29c5bcd)
- fix incorrect mdx (#10201) (bb0c8a8)
- fix arg name in live preview code example (#10127) (a49e63c)
- fix broken links to csrf and e-mail verification docs (#10140) (0588394)
🧪 Tests
📝 Templates
- use
publishConfig
for the plugin template (#10196) (a5b9adc) - update
Dockerfile
for the website template, use the LTS version for Node.js image (#10184) (5613a7e) - bump for v3.11.0 (#10121) (235eade)
⚙️ CI
- only label stale issues/prs, disable closing (1372f24)
🏡 Chores
- bump
next
to15.1.3
in the monorepo (#10211) (7a4d53a) - update rimraf and fix windows compatible clean script (#10152) (326b720)
- UnauthorizedError file misspelled as UnathorizedError (#10157) (6b45b2d)
- examples: localization example (#10134) (3bbc5bf)
- live-preview: strongly types message events (#10148) (466f109)
- richtext-lexical: export $createServerBlockNode, $isServerBlockNode and ServerBlockNode for the server (#10192) (1dc4b2c)
- ui: exports parseSearchParams (#10185) (5d3b816)
🤝 Contributors
- Sasha (@r1tsuu)
- Alessio Gravili (@AlessioGr)
- Jacob Fletcher (@jacobsfletch)
- Seno (@s-en-o)
- James Mikrut (@jmikrut)
- Elliot DeNolf (@denolfe)
- Tobias Arends (@1b0t)
- Said Akhrarov (@akhrarovsaid)
- Dan Ribbens (@DanRibbens)
- Kethan Vegunta (@kethan1)
- Marcus Forsberg (@marcusforsberg)
- Germán Jabloñski (@GermanJablo)