Releases: payloadcms/payload
v3.0.0-beta.126
v3.0.0-beta.126 (2024-11-06)
🚀 Features
- generate types for
joins
(#9054) (213b7c6) - add
populate
property to Local / REST API (#8969) (a22c0e6)
🐛 Bug Fixes
- allow workflows to be empty or undefined (#9039) (f0f96e7)
- replace console.error with logger.errors (#9044) (0165ab8)
- publish locale with autosave enabled and close dropdown (#8719) (7dc5256)
- handle bulk upload sequentially to prevent conflicts (#9052) (f507305)
- db-postgres: handle special characters in
createDatabase
(#9022) (147d28e) - richtext-slate, ui: use
PointerEvents
to show tooltips on enabled / disabled buttons (#9006) (d425290) - ui: dedupes custom id fields (#9050) (4b4ecb3)
- ui: edit many modal draft action button order and style (#9047) (becf56d)
🤝 Contributors
- Dan Ribbens (@DanRibbens)
- Javier (@javierlinked)
- Sasha (@r1tsuu)
- Jessica Chowdhury (@JessChowdhury)
- Timothy Choi (@tyteen4a03)
- Jacob Fletcher (@jacobsfletch)
- Andreas Bernhard (@abernh)
v3.0.0-beta.125
v3.0.0-beta.125 (2024-11-06)
🚀 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
- Dan Ribbens (@DanRibbens)
- Elliot DeNolf (@denolfe)
- Sasha (@r1tsuu)
- Paul (@paulpopus)
- James Mikrut (@jmikrut)
- Friggo (@MrFriggo)
- Patrik (@PatrikKozak)
- Jesper We (@JesperWe)
v3.0.0-beta.124
v3.0.0-beta.124 (2024-11-04)
🚀 Features
🐛 Bug Fixes
- prefetch causing stale data (#9020) (35b107a)
- graphql missing options route resulting in failed cors preflight checks in production (#8987) (6b9f178)
- invalid
select
type withstrictNullChecks: true
(#8991) (4349b78) - querying relationships by
id
path with REST (#9013) (5b97ac1)
🤝 Contributors
- James Mikrut (@jmikrut)
- Paul (@paulpopus)
- vahacreative (@vahacreative)
- Sasha (@r1tsuu)
- Patrik (@PatrikKozak)
- Elliot DeNolf (@denolfe)
- Said Akhrarov (@akhrarovsaid)
v3.0.0-beta.123
v3.0.0-beta.123 (2024-10-31)
🚀 Features
- plugin-seo: support overriding default fields via a function instead and fixes bugs regarding localized labels (#8958) (b417c1f)
🐛 Bug Fixes
select
with unnamed tabs (#8966) (3175541)- locked documents with
read
access forusers
(#8950) (55ce8e6) - return type of
findByID
withstrict: true
(#8953) (08251ec) - next: overly large width on document locked modal content (#8967) (090831c)
- templates: website template error inside the populateAuthors hook (#8972) (9eb79c1)
- ui: increase z-index of
ReactSelect
(#8735) (c0397c3)
⚠️ BREAKING CHANGES
-
plugin-seo: support overriding default fields via a function instead and fixes bugs regarding localized labels (#8958) (b417c1f)
The SEO plugin now takes in a function to override or add in new
fields
fieldOverrides
has been removedfields
is now a function that takes indefaultFields
and expects
an array of fields in return
This makes it a lot easier for end users to override and extend existing
fields and add new ones. This change also brings this plugin inline with
the pattern that we use in our other plugins.// before seoPlugin({ fieldOverrides: { title: { required: true, }, }, fields: [ { name: 'customField', type: 'text', } ] }) // after seoPlugin({ fields: ({ defaultFields }) => { const modifiedFields = defaultFields.map((field) => { // Override existing fields if ('name' in field && field.name === 'title') { return { ...field, required: true, } } return field }) return [ ...modifiedFields, // Add a new field { name: 'ogTitle', type: 'text', label: 'og:title', }, ] }, })
🤝 Contributors
- Paul (@paulpopus)
- Germán Jabloñski (@GermanJablo)
- Sasha (@r1tsuu)
- Patrik (@PatrikKozak)
- Elliot DeNolf (@denolfe)
v3.0.0-beta.122
v3.0.0-beta.122 (2024-10-31)
🚀 Features
🐛 Bug Fixes
- bulk upload mimetype wildcard file selection (#8954) (03e5ae8)
- graphql: avoid adding extra password fields when running mutations (#8032) (#8845) (58441c2)
- ui: description undefined error on empty tabs array (#8830) (755355e)
- ui: overly large width on stay logged in modal content (#8952) (57fba36)
🤝 Contributors
- Said Akhrarov (@akhrarovsaid)
- Manuel Leitold (@agrippa1994)
- Gregor Gabrič (@GregorGabric)
- Konsequanzheng (@Konsequanzheng)
- Paul (@paulpopus)
- Sasha (@r1tsuu)
- James Mikrut (@jmikrut)
v3.0.0-beta.121
v3.0.0-beta.121 (2024-10-30)
🚀 Features
- adds jobs queue (#8228) (8970c6b)
- add
defaultPopulate
property to collection config (#8934) (c41ef65) - custom views are now public by default and fixed some issues with notFound page (#8820) (01ccbd4)
- select fields (#8550) (dae832c)
- prevent create new for joins (#8929) (6cdf141)
🐛 Bug Fixes
- db-mongodb: ensure relationships are stored in
ObjectID
(#8932) (d64946c) - db-mongodb: joins with singular collection name (#8933) (f4041ce)
- plugin-search: localization (#8938) (1231251)
- ui: perf improvements in bulk upload (#8944) (03331de)
- ui: broken buttons in the bulk upload drawer (#8926) (d38d7b8)
- ui: sanitize limit for preferences (#8913) (6c341b5)
- ui: missing localization label on text area fields (#8927) (c0aa96f)
⚠️ BREAKING CHANGES
-
custom views are now public by default and fixed some issues with notFound page (#8820) (01ccbd4)
This PR aims to fix a few issues with the notFound page and custom views
so it matches v2 behaviour:- Non authorised users should always be redirected to the login page
regardless if not found or valid URL - Previously notFound would render for non users too potentially
exposing valid but protected routes and creating a confusing workflow as
the UI was being rendered as well - Custom views are now public by default
- in our
admin
test suite, the/admin/public-custom-view
is
accessible to non users but
/admin/public-custom-view/protected-nested-view
is not unless the
checkbox is true in the Settings global, there's e2e coverage for this - Fixes #8716
- Non authorised users should always be redirected to the login page
-
plugin-search with localization enabled (#8938) (1231251)
The search plugin was incorrectly retrieving all locales, when it should
just be retrieving the locale of the parent document that was actively
being updated.If you have a localized Payload config, and you are using the
plugin-search
, we will now automatically localize thetitle
field that is injected by the search plugin and this may lead to data loss. To opt out of this new behavior, you can passlocalize: false
to the plugin options.
🤝 Contributors
- James Mikrut (@jmikrut)
- Said Akhrarov (@akhrarovsaid)
- Paul (@paulpopus)
- Sasha (@r1tsuu)
- Kendell Joseph (@kendelljoseph)
- Dan Ribbens (@DanRibbens)
- Elliot DeNolf (@denolfe)
- Patrik (@PatrikKozak)
v3.0.0-beta.120
v3.0.0-beta.120 (2024-10-29)
🚀 Features
🐛 Bug Fixes
- autosave potentially losing latest: true w/ race condition (#8894) (00ed66b)
- form-builder payment static value field (#8905) (44e52b0)
- cpa: write POSTGRES_URL to .env for vercel postgres (#8743) (aea1b41)
- db-mongodb: query 'in' with a comma-delimited value (#8910) (7a7a2f3)
- next, ui: exclude expired locks for globals (#8914) (e74906f)
- next, ui: only show locked docs that are not expired (#8899) (1e002ac)
- richtext-lexical: ensure editor cursor / selection state is preserved when working with drawers (#8872) (a8569b9)
🤝 Contributors
- Patrik (@PatrikKozak)
- Sasha (@r1tsuu)
- Dan Ribbens (@DanRibbens)
- Said Akhrarov (@akhrarovsaid)
- Brandon Kocur (@Brandoko)
- James Mikrut (@jmikrut)
- Alessio Gravili (@AlessioGr)
- Elliot DeNolf (@denolfe)
v3.0.0-beta.119
v3.0.0-beta.119 (2024-10-25)
🚀 Features
- rename @payloadcms/plugin-cloud (#8828) (1b1dc82)
- sort by multiple fields (#8799) (4d44c37)
- richtext-slate: add useElement hook to richtext-slate client exports (#8856) (2e11068)
⚡ Performance
🐛 Bug Fixes
- cpa: properly detect if pnpm exists on windows (#8855) (1a15425)
- db-postgres: sort by localized fields (#8839) (9069bd3)
- plugin-search: issues with overriding the search collection slug consistently across hooks (#8847) (2df8f94)
- ui: upload buttons being hidden at mobile screen widths (#8860) (e72e81c)
- ui: leave without saving when changing /account theme (#8724) (085e127)
⚠️ BREAKING CHANGES
-
rename @payloadcms/plugin-cloud (#8828) (1b1dc82)
BREAKING CHANGE: Rename
@payloadcms/plugin-cloud
to
@payloadcms/payload-cloud
. Anyone using the existing plugin will need
to switch to using the new package.Why?
Since v3 will be using fixed versioning, all versions of
^3
must be
available. Unfortunately, the@payloadcms/plugin-cloud
version has
already breached that version number. Renaming will allow it to be on
the same version as other monorepo packages.Additionally, the name
plugin-cloud
is quite ambiguous and sometimes
is confused withplugin-cloud-storage
, so usingpayload-cloud
feels
like a good move to make this more evident.
🤝 Contributors
- Paul (@paulpopus)
- Elliot DeNolf (@denolfe)
- Anders Semb Hermansen (@andershermansen)
- Sasha (@r1tsuu)
- Hristiyan Dodov (@hdodov)
v3.0.0-beta.118
v3.0.0-beta.118 (2024-10-24)
🚀 Features
- add localized indicator to field label (#8602) (03c0702)
- templates: add a copy button to website template code blocks (#8794) (0fcbce3)
🐛 Bug Fixes
- reduce import map diff when config changes (#8846) (1caa383)
- join field works on collections with versions enabled (#8715) (8af00f2)
- db-postgres: alias already in use in this query (#8823) (4c396c7)
🤝 Contributors
- MotorcycleEnjoyer (@MotorcycleEnjoyer)
- Sasha (@r1tsuu)
- Jessica Chowdhury (@JessChowdhury)
v3.0.0-beta.117
v3.0.0-beta.117 (2024-10-22)
🚀 Features
⚡ Performance
- replace jsonwebtoken with jose (#8217) (ef8a5b1)
- upgrade pino and pino-pretty, reducing the total amount of dependencies (#8776) (062a333)
🐛 Bug Fixes
- drizzle init args (#8818) (9fb8665)
- db-mongodb: virtual fields within row / collapsible / tabs (#8733) (9056b9f)
- next, ui: ensures
selectAll
in the list view ignores locked documents (#8813) (2908c9a) - plugin-seo: description and title fields now respect given minLength and maxLength rules for passing validation (#8765) (1f0d8da)
- richtext-*: ensure admin panel doesn't freeze with some field configurations consisting of 2+ richtext fields (#8773) (aedf3c8)
- richtext-lexical: richtext fields in drawers aren't editable, inline toolbar artifacts are shown for readOnly editors (#8774) (f3bec93)
- richtext-lexical: fix CLS on collapsed/expanded state of Lexical blocks (#8029) (a789556)
- ui: unique ids for nested rows on row duplicate to prevent errors with postgres (#8790) (fe25b54)
- ui: padding on relationship fields when no options or loading text is displayed (#8767) (82f2789)
⚠️ BREAKING CHANGES
-
bump next.js to 15.0.0 (#8825) (74266bd)
Bump Next.js to version 15.0.0. Additionally, you will need to upgrade
react
andreact-dom
to19.0.0-rc-65a56d0e-20241020
(mirrors Next.js).
🤝 Contributors
- Elliot DeNolf (@denolfe)
- Patrik (@PatrikKozak)
- Sasha (@r1tsuu)
- Anders Semb Hermansen (@andershermansen)
- Because789 (@Because789)
- Alessio Gravili (@AlessioGr)
- Germán Jabloñski (@GermanJablo)
- Paul (@paulpopus)
- Said Akhrarov (@akhrarovsaid)