Releases: payloadcms/payload
v2.30.3
v3.0.0-beta.116
v3.0.0-beta.116 (2024-10-17)
🐛 Bug Fixes
- pg where filters not respected in policy generation (#8753) (99b4359)
- disables document locking of
payload-locked-documents
,preferences
, &migrations
collections (#8744) (c63b7bc) - db-postgres: esm compatible import of pg (#8758) (f37e476)
- drizzle: bump drizzle-orm in drizzle package to 0.35.1 (#8759) (73102e9)
- drizzle: enforce uniqueness on index names (#8754) (90bca15)
- drizzle: select hasMany nested to array + tab/group (#8737) (872b205)
🤝 Contributors
- Sasha (@r1tsuu)
- Jarrod Flesch (@JarrodMFlesch)
- Dan Ribbens (@DanRibbens)
- Patrik (@PatrikKozak)
v2.30.2
2.30.2 (2024-10-17)
Bug Fixes
- applies resize after cropping if
resizeOptions
are defined (#8535) (f2284f3) - calculates correct aspect ratio dimensions on sharp based files (#8510) (9d05b82), closes #8317
- db-postgres: build indexes for relationships (#8446) (d05e3b0)
- db-postgres: port many various fixes from 3.0 (#8468) (1347b6c)
- db-postgres: select hasMany nested to array + tab/group (#8739) (0efc610)
- richtext-lexical: add target _blank for new-tab in linkFeature (#8571) (61e8ce1), closes #8569
v3.0.0-beta.115
v3.0.0-beta.115 (2024-10-16)
🐛 Bug Fixes
- corrects schemaPath passing (#8726) (a19e8d3)
- db-postgres, db-sqlite: bump drizzle-kit drizzle-orm @libsql/client (#8617) (93545f3)
- templates: website template issue with previewing drafts (#8714) (303a224)
- ui: restrict file picking via upload config mimetypes (#8710) (c4fa885)
- ui: add missing styles under the payload-default css layer (#8723) (e6a1ca5)
- ui: removes
overflow: hidden
style from actions wrapper (#8717) (8d10737)
⚠️ BREAKING CHANGES
-
db-postgres, db-sqlite: bump drizzle-kit drizzle-orm @libsql/client (#8617) (93545f3)
Inheriting all the fixes from drizzle moving to latest versions
BREAKING CHANGES
If you have a prior version of @libsql/client installed in your project,
you must upgrade to 0.14.0
🤝 Contributors
- Dan Ribbens (@DanRibbens)
- Said Akhrarov (@akhrarovsaid)
- Jarrod Flesch (@JarrodMFlesch)
- Paul (@paulpopus)
- Patrik (@PatrikKozak)
- Elliot DeNolf (@denolfe)
v3.0.0-beta.114
v3.0.0-beta.114 (2024-10-15)
🚀 Features
- add disableTransaction to local api (#8697) (d781624)
- add limit property to bulk update operation (#8656) (7a0b419)
- db-postgres, db-vercel-postgres: createDatabase, auto database create if it does not exist (#8655) (256949e)
🐛 Bug Fixes
- ensure beforeValidate hook runs for reset password (#8433) (a9e7d48)
- local update limit (#8704) (3110c1b)
- validate should not always equate valid to true (#8696) (8bbc833)
- ensure dropzone respects canCreate permissions (#8689) (3f128c5)
- ensure Component is not required in MappedComponent types (#8687) (793dfe8)
- properly store timestamps in versions (#8646) (8daac4e)
- db-mongodb: add validation to relationship ids (#8395) (21606de)
- drizzle: indexes / unique with relationships (#8432) (1ffb6c3)
- drizzle, ui: properly filters out number field values with the exists operator filter (#8706) (3f2b828)
- next: returns proper document id type from init page result (#8700) (35a5199)
- ui: react-datepicker in number fields and datepicker visual issues (#8694) (e3957d7)
- ui: prevents
react-select
styles being injected intohasMany
number
fields (#8695) (08f8831) - ui: show configured description on active tabs (#8675) (65d4f37)
- ui: export useListRelationships (#8658) (e4fd1e3)
- ui: hasMany selecting single docs clicking through instead of selecting a document (#8624) (a4f1af4)
🤝 Contributors
- Jacob Fletcher (@jacobsfletch)
- Patrik (@PatrikKozak)
- Jessica Chowdhury (@JessChowdhury)
- Dan Ribbens (@DanRibbens)
- Alessio Gravili (@AlessioGr)
- Paul (@paulpopus)
- Jarrod Flesch (@JarrodMFlesch)
- Said Akhrarov (@akhrarovsaid)
- Because789 (@Because789)
- Sasha (@r1tsuu)
v3.0.0-beta.113
v3.0.0-beta.113 (2024-10-10)
🚀 Features
- plugin-sentry: update plugin to 3.0 (#8613) (0b2a7a3)
- translations: add slovenian lang (#8603) (28c3a77)
🐛 Bug Fixes
- commonjs exports missing for withPayload (#8643) (d0a5560)
- sanitize virtual fields in
admin.useAsTitle
(#8620) (fdebc84) - corrects useAuth generics (#8627) (5e94d9b)
- drizzle: hasMany joins - localized, limit and schema paths (#8633) (f6acfdb)
- ui: react select fields not increasing height when items overflow (#8618) (f507530)
🤝 Contributors
- Elliot DeNolf (@denolfe)
- Paul (@paulpopus)
- Jarrod Flesch (@JarrodMFlesch)
- Sasha (@r1tsuu)
- Germán Jabloñski (@GermanJablo)
- Gregor Gabrič (@GregorGabric)
- Patrik (@PatrikKozak)
v3.0.0-beta.112
v3.0.0-beta.112 (2024-10-09)
🚀 Features
- join field works with hasMany relationships (#8493) (1bf580f)
- plugin-seo: adds german translation (#8580) (bb3496d)
- ui: scope all payload css to payload-default layer (#8545) (7c62e2a)
🐛 Bug Fixes
- verify view is inaccessible (#8557) (1b63ad4)
- duplicate with upload collections (#8552) (400293b)
- db-vercel-postgres: add pg dep (#8598) (ca77944)
- payload: calculates correct aspect ratio dimensions on sharp based files (#8537) (c14c429)
- payload: applies resize after cropping if
resizeOptions
are defined (#8528) (9a0568c) - richtext-lexical: linkFeature doesn't respect admin.routes from payload.config.ts (#8513) (6cb128a)
- templates: await params/cookies properly (#8560) (463490f)
- ui: add unstyled prop to react-select so that payload styles take priority (#8572) (2a1321c)
⚠️ BREAKING CHANGES
-
improve auth provider setting user and user cookie (#8600) (829996a)
If you are using the
setUser
function exposed from theuseAuth()
provider, then you will need to make some adjustments.setUser
now expects the response data from auth enabled endpoints, ie
the/me
route. This is so the cookie and expiration can be properly
set in sync when a new user is set on the provider.// before setUser({ id: 670524817048be0fa222fc01, email: dev@payloadcms.com, // ... other user properties }) // new setUser({ user: { id: 670524817048be0fa222fc01, email: dev@payloadcms.com, // ... other user properties }, exp: 1728398351, token: "....eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVC...." })
-
ui: scope all payload css to payload-default layer (#8545) (7c62e2a)
All payload css is now encapsulated inside CSS layers under
@layer payload-default
Any custom css will now have the highest possible specificity.
We have also provided a new layer@layer payload
if you want to use
layers and ensure that your styles are applied after payload.To override existing styles in a way that the existing rules of
specificity would be respected you can use the default layer like so@layer payload-default { // my styles within the payload specificity }
🤝 Contributors
- Patrik (@PatrikKozak)
- Jarrod Flesch (@JarrodMFlesch)
- Jessica Chowdhury (@JessChowdhury)
- Dan Ribbens (@DanRibbens)
- Elliot DeNolf (@denolfe)
- Paul (@paulpopus)
- Germán Jabloñski (@GermanJablo)
- Because789 (@Because789)
- Sasha (@r1tsuu)
- Jacob Fletcher (@jacobsfletch)
v3.0.0-beta.111
v3.0.0-beta.111 (2024-10-04)
🚀 Features
- update [email protected], [email protected] (#8489) (fa59d4c)
🐛 Bug Fixes
- db-postgres: missing types for db.pool by moving @types/pg from devDependencies to dependencies (#8556) (0d3416c)
- drizzle: make radio and select column names to snake_case (#8439) (0128eed)
- drizzle: row / collapsible inside of localized fields (#8539) (414030e)
- ui: disableBulkEdit on ui fields, defaults to true (#8540) (cf8347f)
- plugin-seo: now respects serverURL and api routes configuration (#8546) (157b1e1)
- templates: dark and light mode not correctly working on website template's header (#8542) (dffdb22)
- templates: add no search results text to website template search page (#8531) (eb4e371)
- templates: static generation from incorrect params provided (#8530) (132131a)
- ui crashes editing doc with deleted upload (#8526) (9ef4fab)
- templates: add force-static to pages and posts (#8527) (65015aa)
- next: safely checks user within useEffect (#8524) (0f7d444)
- properly resolves cjs withPayload export (#8521) (ca90d2b)
- templates: remove lock from website template (#8520) (ecfd90b)
- templates: fixed drafts not being unpublished in the frontend of the website template (#8514) (8637144)
- next: current published version label (#8505) (a8eceb0)
- ui: admin.allowCreate in upload field (#8484) (d80410b)
- db-postgres, db-sqlite: joins relation name (#8491) (27b1629)
⚠️ BREAKING CHANGES
-
drizzle: make radio and select column names to snake_case (#8439) (0128eed)
Before DB column names were camelCase:
After this change, they are snake_case:
Breaking SQLite / Postgres
⚠️ If you had any select (not
hasMany: true
) or radio fields with the
name in camelCase, for example:{ name: 'selectReadOnly', type: 'select', admin: { readOnly: true, }, options: [ { label: 'Value One', value: 'one', }, { label: 'Value Two', value: 'two', }, ], },
This previously was mapped to the db column name
"selectReadOnly"
. Now
it'sselect_read_only
.
Generate a new migration to rename your columns.pnpm payload migrate:create
Then select "rename column" for targeted columns and Drizzle will handle
the migration. -
update [email protected], [email protected] (#8489) (fa59d4c)
Updates the minimal supported versions of next.js to
15.0.0-canary.173
and react to19.0.0-rc-3edc000d-20240926
.Adds neccessary awaits according to this breaking change
vercel/next.js#68812The
params
andsearchParams
types in
app/(payload)/admin/[[...segments]]/page.tsx
and
app/(payload)/admin/[[...segments]]/not-found.tsx
must be changed to
promises:- type Args = { - params: { - segments: string[] - } - searchParams: { - [key: string]: string | string[] - } - } + type Args = { + params: Promise<{ + segments: string[] + }> + searchParams: Promise<{ + [key: string]: string | string[] + }> + }
🤝 Contributors
- Sasha (@r1tsuu)
- Alessio Gravili (@AlessioGr)
- Jacob Fletcher (@jacobsfletch)
- Paul (@paulpopus)
- Dan Ribbens (@DanRibbens)
- Patrik (@PatrikKozak)
- Elliot DeNolf (@denolfe)
- Germán Jabloñski (@GermanJablo)
v2.30.1
v3.0.0-beta.110
v3.0.0-beta.110 (2024-09-30)
🚀 Features
- join field on upload fields (#8379) (3f375cc)
- richtext-lexical: export $createInlineBlockNode, $isInlineBlockNode and InlineBlockNode (#8480) (163f3c0)
- translations: add danish translations (#7809) (22f120d)
- richtext-lexical: upgrade lexical from 0.17.0 to 0.18.0, make tables more reliable (#8444) (8b44676)
- templates: add search functionality to the website template (#8454) (fb60344)
- payload, ui: add admin.allowEdit relationship field (#8398) (17e0547)
🐛 Bug Fixes
- db-*: make db.begintransactions required (#8419) (3847428)
- db-mongodb: duplicate versions with parent string ids (#8487) (7b6a760)
- draft status access control checks (#8486) (0c10045)
- reset password link extra slash and thread admin.routes.reset property (#8448) (e765a5e)
- sorting by id incorrectly orders by version.id (#8442) (4241811)
- db-mongodb: properly filters out
number
field values with theexists
operator filter (#8416) (8110cb9) - ui: RTL not applying for localised textarea fields (#8474) (e5ca476)
- drizzle: hasMany / poly relationships nested to localized fields / nested blocks to localized fields (#8456) (613d3b0)
- richtext-lexical: match the indentation spacing of paragraphs and lists (#8437) (f50174f)
⚠️ BREAKING CHANGES
-
richtext-lexical: upgrade lexical from 0.17.0 to 0.18.0, make tables more reliable (#8444) (8b44676)
This upgrades lexical from 0.17.0 to 0.18.0. If you have
any lexical packages installed in your project, please update them
accordingly. Additionally, if you depend on the lexical APIs, please
consult their changelog, as lexical may introduce breaking changes:
https://github.com/facebook/lexical/releases/tag/v0.18.0
🤝 Contributors
- Dan Ribbens (@DanRibbens)
- Sasha (@r1tsuu)
- James Mikrut (@jmikrut)
- Ante (@azivkovi)
- Alessio Gravili (@AlessioGr)
- Patrik (@PatrikKozak)
- Paul (@paulpopus)
- Mike Bailey (@mykz)
- Germán Jabloñski (@GermanJablo)