Skip to content

Releases: payloadcms/payload

v3.2.1

27 Nov 03:35
be59d52
Compare
Choose a tag to compare

v3.2.1 (2024-11-27)

🐛 Bug Fixes

  • plugin-search: missing copyfiles script, incorrect scss import (#9552) (6af4dee)

🤝 Contributors

v3.2.0

27 Nov 01:46
c8bee29
Compare
Choose a tag to compare

v3.2.0 (2024-11-27)

🚀 Features

  • adds ability to copy data from across locales (#8203) (601759d)
  • deprecates react-animate-height in favor of native css (#9456) (0757e06)
  • plugin-search: added support for reindexing collections on demand (#9391) (defa13e)
  • richtext-lexical: export hasText helper (#9484) (21db058)
  • richtext-lexical: lexical => JSX converter (#8795) (bffd98f)

⚡ Performance

  • faster page navigation by speeding up createClientConfig, speed up version fetching, speed up lexical init. Up to 100x faster (#9457) (fd0ff51)

🐛 Bug Fixes

  • utilizes override access false (#9550) (2248be4)
  • overrides entity visibility within drawers (#9546) (5d18a52)
  • allows for emails to be non unique when allowEmailLogin is false (#9541) (67a9d66)
  • skip validation of where query paths from access result (#9349) (a9f511d)
  • corrects localizer positioning in RTL mode (#9494) (910b681)
  • next: properly threads field permissions through versions diff (#9543) (f19053e)
  • plugin-form-builder: allow overrides to the payment fields group (#9522) (71c2f63)
  • plugin-seo: enforce readonly on the client (#9536) (44c0cdb)
  • richtext-lexical: prevent use of text formats whose features were not enabled (#9507) (90f893a)
  • templates: website priority with loading lazy on medium hero error (#9537) (dac42ff)
  • ui: remove overflow hidden from app-header wrappers since it breaks any popout elements (#9525) (82145f7)

🤝 Contributors

v3.1.1

25 Nov 21:49
058bd02
Compare
Choose a tag to compare

v3.1.1 (2024-11-25)

🚀 Features

  • templates: website template performance improvements (#9466) (aa1d300)
  • templates: website optimisations for image sizes and loading (#9447) (be8cd7f)

⚡ Performance

  • flattenedFields collection/global property, remove deep copying in validateQueryPaths (#9299) (cae300e)

🐛 Bug Fixes

  • incorrect locale registration in datepicker (#9516) (6ffd4c7)
  • improper spread of list preferences (#9510) (f136a7d)
  • correct migrations sorting in getMigrations (#9330) (e176b8b)
  • run queues via the /payload-jobs/run endpoint without workflows (#9509) (b96475b)
  • ensure deleteJobOnComplete property for jobs works (#9283) (7eb388d)
  • db-mongodb: sanitizeRelationshipIDs named tabs within tabs (#9400) (b5f89d5)
  • db-postgres: allow to clear select fields with hasMany: true (#9464) (e5cc915)
  • templates: website template firefox logo fix and images fix on vercel (#9459) (23d54a7)
  • templates: vercel website template payload config regression (#9455) (09abebd)
  • templates: fixes imports in website template from @payloadcms/ui to be direct (#9451) (90fedbc)
  • translations: add sl to acceptedLanguages (#9506) (0c7e418)
  • ui: prevents column reset on sort (#9517) (8383426)
  • ui: z-index on react-select menu (#9512) (af096a3)

🤝 Contributors

v3.1.0

22 Nov 16:59
65ac739
Compare
Choose a tag to compare

v3.1.0 (2024-11-22)

🚀 Features

  • add skip and force accept flags to migration commands (#8843) (fb3242d)
  • richtext-lexical: more powerful custom Block RSCs, improved selection handling (#9422) (9e31e17)
  • richtext-lexical: allow customizing maxActiveItems for toolbar groups (#9417) (38de760)
  • richtext-lexical: export lexical drawer hooks (#9415) (3b68671)
  • templates: update website styles and new home hero image (#9413) (2036a56)

🐛 Bug Fixes

  • invalid payload.collections type (#9414) (91dcf6d)
  • unable to load documents with non-standard ids (#9407) (ee1a91e)
  • error when opening admin panel without any permissions (#9392) (9470f9b)
  • db-postgres: joins with versions and hasMany relationship (#9370) (d499de1)
  • live-preview: client-side live preview cannot clear all array rows (#9439) (ae6c71b)
  • next: threads server props to custom providers (#9412) (f5683b0)
  • next: [email protected] compatibillity for turbopack warnings patch (#9341) (f2205d1)
  • richtext-lexical: error when changing block collapsed state in rare cases (#9421) (b9cc4d4)
  • richtext-lexical: slash menu from + button did not trigger item select action (#9420) (a891e98)
  • richtext-lexical: slash menu query doesn't disappear after selecting slash menu item (#9396) (3d0424b)
  • richtext-lexical: preserve indent and text-align when converting Lexical <-> HTML (#9165) (0960290)
  • templates: website template breaking change by renaming hero image to jpg (#9416) (18b139b)
  • ui: add disabled attribute to blocks drawer toggler (#9424) (27acdae)
  • ui: stale server components when rows are moved (#9410) (e3866c4)
  • ui: error when collapsing sidebar groups (#9393) (90e37fe)

🤝 Contributors

v3.0.2

20 Nov 21:11
025d917
Compare
Choose a tag to compare

v3.0.2 (2024-11-20)

🐛 Bug Fixes

  • allow self referencing relationships when adding new collections to config (#9360) (4030e21)
  • next: properly sets doc id types when using postgres (#9381) (07a9125)
  • next: autosave document rendering (#9364) (9e85be0)
  • richtext-lexical: use copy of @lexical/markdown that does not install @lexical/code (#9382) (5db7e1e)
  • ui: prioritize server rendered Actions in ActionsProvider (#9379) (439dcd4)
  • ui: invalid permissions passed to group and named tab sub-fields (#9366) (c67291d)
  • ui: bulk update and delete ignoring search query (#9377) (ef37483)

🤝 Contributors

v3.0.1

19 Nov 19:39
9ea2663
Compare
Choose a tag to compare

v3.0.1 (2024-11-19)

⚡ Performance

  • significantly reduce HTML we send to the client. Up to 4x smaller (#9321) (5d2b0b3)

🐛 Bug Fixes

  • allow setting admin path route from config (#8085) (d3b0a04)
  • templates: website logo not showing (#9334) (7f65c83)
  • templates: seeding in website template moved to a separate route so timeout can be customised (#9327) (26cb1e1)
  • ui: could not save selection from upload has many drawer (#9325) (f42b1e1)
  • ui: client side doc data not updating after save (#9340) (661f450)
  • ui: show required indicator for select fields (#9348) (2c7ea63)
  • ui: proper permissions within version diff view (#9346) (188baec)
  • ui: addFieldRow set modified (#9324) (0f3f6e7)

🤝 Contributors

v3.0.0

19 Nov 01:19
6407e57
Compare
Choose a tag to compare

This is a major release that includes a re-architecture of Payload from an Express + React Router SPA to the Next.js App Router + RSCs. In addition to this architectural change, we've also shipped a ton of large features, miscellaneous fixes, and DX improvements.

Architectural changes

  • Payload now installs fully in any Next.js app router
  • You can now deploy your entire project (frontend and backend) in one app
  • Payload can now be deployed serverless on platforms like Vercel
  • Everything Payload does now works seamlessly within any Next.js project
  • You can now use the Payload Local API in Server Components and Server Functions
  • Postgres, Live Preview, and Lexical have been marked as stable
  • All Payload exports have been significantly cleaned up and organized
  • Payload is now an ESM project
  • Payload is now modular, and we now publish new packages ui, next, translations, and graphql
  • The Payload config is now server-side only, and works in any Node environment
  • Server-side HMR works out of the box - removing the need for nodemon

Large features

  • Join field - bi-directional relationships, more control over the database schema, and more
  • Select API - select specific fields when querying using Local API
  • Jobs Queue - background jobs fully supported in Payload with no third-party dependencies
  • Populate / DefaultPopulate API - determine which fields should be retrieved when Payload populates relationships
  • Lexical blocks and inline blocks - easily make Payload Blocks available in Lexical as custom rich text features
  • SQLite database adapter now available
  • Vercel Postgres database adapter released, specifically for serverless deploys on Vercel
  • Live Preview server components support
  • Admin UI has been refreshed
  • hasMany upload fields are now supported
  • Bulk upload has been added
  • Document Locking pattern has been implemented, which shows if someone is currently editing a document
  • Ability to publish individual locales one at a time has been added
  • Lexical now has Table support

Small but still important features

  • New Payload logo (thanks Candycode!)
  • New Resend email adapter is now available
  • Postgres now saves single, monomorphic relationships directly in a column rather than in _rels table
  • GraphQL has been abstracted into a specific Next.js route handler, and no longer affects Payload initialization at all
  • React Compiler has been introduced into Payload build pipeline
  • You can now run migrations on init, rather than only in CI (helpful for long-running servers)
  • New Local API operations - count, countVersions, countGlobalVersions, upsert
  • Adds baseListFilter function to allow enforced list view filters based on user
  • Lexical fixed toolbar option has been added
  • Optimized the way that relational DBs store relations
  • Postgres point field is now supported
  • Postgres deep JSON querying is now supported
  • Cuztomize Drizzle schema by passing in your own, which is handled outside of Payload
  • Fully typed i18n t function
  • Focal point data is now stored on uploads
  • Adds ability to login with username rather than email
  • New pattern for passing custom server / client props to custom components
  • Email adapter pattern, including optimized Resend HTTP client
  • Reduced / optimized the shape of /access permissions results
  • Allows sorting by multiple fields
  • MongoDB now saves ObjectID for relationships
  • Adds more control over log level customization
  • Downgrades common errors like NotFound or Forbidden to info
  • Swaps out react-toastify for sonner
  • True "virtual" fields via virtual: true
  • Adds ability to customize filenames before upload
  • Adds locale indicators to localized field labels
  • Scope all payload css to payload-default layer
  • Document duplicate / delete from drawers

⚠️ BREAKING CHANGES

This release includes breaking changes. In order to update from version 2 to 3, please review the migration docs.

🤝 Contributors

v3.0.0-beta.135

19 Nov 00:26
fade739
Compare
Choose a tag to compare
v3.0.0-beta.135 Pre-release
Pre-release

v3.0.0-beta.135 (2024-11-19)

🚀 Features

⚡ Performance

  • removes unnecessary field styles from initial page response (#9286) (30947d2)

🐛 Bug Fixes

  • queues types with strict: true (#9281) (e40141b)
  • nav jumping around if no nav preferences are set (#9301) (0a6f530)
  • sanitize sub block field permissions correctly (#9296) (5503afd)
  • getPayload node exits on webpack-hmr websocket failure (#9279) (488c28c)
  • db-mongodb: potential errors in sanitizeRelationshipIDs with ref being a non object (#9292) (665b353)
  • graphql: loading of polymorphic hasMany relationships (#9175) (0075b99)
  • next: passes doc through edit view handler (#9302) (ec95ce8)
  • next: passes locale through requests in live preview edit view (#9298) (54ac8b9)
  • next: initialize payload with importMap (#9297) (58ac784)
  • templates: remove req from seed script (ecbafbf)
  • templates: seed from url (#9306) (333da1b)
  • ui: safely accesses field in default filter component (#9276) (1a31e63)

⚠️ BREAKING CHANGES

  • removes unnecessary field styles from initial page response (#9286) (30947d2)

    This only effects those who are importing Payload's field components
    into your own Custom Components or front-end application. The width
    prop no longer exists. It has been consolidated into the existing
    style prop. To migrate, simply move this prop as follows:

    import { TextInput } from '@payloadcms/ui
    
    export const MyCustomComponent = () => {
      return (
        <TextInput 
    -      width="60%"
           style={{
    +        width: "60%,
           }}
        />
      )
    }

🤝 Contributors

v3.0.0-beta.134

17 Nov 16:55
cb6ceae
Compare
Choose a tag to compare
v3.0.0-beta.134 Pre-release
Pre-release

v3.0.0-beta.134 (2024-11-17)

🚀 Features

  • support relationship writes using objects instead of IDs (#9253) (d21fca9)
  • deprecates getPayloadHMR in favor of simpler getPayload (#9249) (31b32ef)
  • richtext-lexical: allow replacing entire blocks with custom components (#9234) (63cc966)

⚡ Performance

  • richtext-lexical: significantly reduce lexical rerendering and amount of network requests from blocks (#9255) (35917c6)

🐛 Bug Fixes

  • proper casing for default root views (#9248) (ed21c1c)
  • next: custom default root views (#9247) (c4269d2)
  • ui: avoid calling getTableState from join field on create (#9256) (ef2475d)

⚠️ BREAKING CHANGES

  • proper casing for default root views (#9248) (ed21c1c)

    Custom account and dashboard views now defined as lowercase in the
    config.

    import { buildConfig } from 'payload'
    
    const config = buildConfig({
      // ...
      admin: {
        components: {
          // ...
          views: {
            // ...
    -       Account: ...
    -       Dashboard: ...
    +       account: ...
    +       dashboard: ...
          },
        },
      },
    })
  • richtext-lexical: significantly reduce lexical rerendering and amount of network requests from blocks (#9255) (35917c6)

    The field RSC now provides an initial state for all lexical blocks. This
    completely obliterates any flashes and lexical block loading states when
    loading or saving a document.

    This removes the feature.hooks.load and feature.hooks.save
    interfaces from custom lexical features, as they weren't used internally
    and added unnecessary, additional overhead.

    If you have custom features that use those, you can migrate to using
    normal payload hooks that run on the server instead of the client.

🤝 Contributors

v3.0.0-beta.133

16 Nov 19:05
457be31
Compare
Choose a tag to compare
v3.0.0-beta.133 Pre-release
Pre-release

v3.0.0-beta.133 (2024-11-16)

🚀 Features

🐛 Bug Fixes

  • corrects cases of false positive identification of custom id fields (#9245) (9b00b59)

🤝 Contributors