Skip to content

Releases: keystonejs/keystone

31 August 2026

Choose a tag to compare

@emmatown emmatown released this 31 Aug 04:57
01b795e

The following packages have been updated

@keystone-6/[email protected]
@keystone-6/[email protected]
@keystone-6/[email protected]
@keystone-6/[email protected]

New Features

  • [core] Adds support for setting the Session type with declare module "./generated/keystone/types" { interface Session {} }. The existing session type parameter still exists though will be removed in a future major version. (#9578) @emmatown

Bug Fixes

  • [auth] Moves next from dependencies to peerDependencies in @keystone-6/auth, previously you may have had duplicate copies of next because of this (#10024) @emmatown
  • [core] Changes height to minHeight in PageContainer (#10020) @mikehazell
  • [core] Removes runtime node: imports from @keystone-6/core and @keystone-6/core/context (#10021) @emmatown
  • [auth, cloudinary, core, fields-document] Updates @keystar/ui to 0.10.0 (#10023) @emmatown

👀 Review

See 2026-08-20...2026-08-31 to compare with our previous release.

20 August 2026

Choose a tag to compare

@emmatown emmatown released this 20 Aug 01:10
da5ac70

The following packages have been updated

@keystone-6/[email protected]
@keystone-6/[email protected]
@keystone-6/[email protected]
@keystone-6/[email protected]

Bug Fixes

  • [auth, cloudinary, core, fields-document] Updates @keystar/ui to 0.9.6 and uses ~ instead of exact version (#10010) @emmatown

👀 Review

See 2026-08-18...2026-08-20 to compare with our previous release.

18 August 2026

Choose a tag to compare

@emmatown emmatown released this 18 Aug 05:59
01bebe2

The following packages have been updated

@keystone-6/[email protected]
@keystone-6/[email protected]
@keystone-6/[email protected]
@keystone-6/[email protected]

Bug Fixes

  • [core] Fixes "View related ${list} …" button on one sided many relationship fields going to filtered view (#10004) @emmatown
  • [core] Fixes incorrectly accepting arbitrary character after Bearer in Authorization header before token instead of only a space (#9996) @FirmaSpring
  • [auth, cloudinary, core, fields-document] Updates @keystar/ui to 0.9.5 (#10001) @emmatown
  • [core] Removes leading and trailing whitespace from UUIDs provided in Admin UI list search fields (#10005) @emmatown

🌱 New Contributors

Thanks to the following developers for making their first contributions to the project!

👀 Review

See 2026-08-11...2026-08-18 to compare with our previous release.

11 August 2026

Choose a tag to compare

@emmatown emmatown released this 11 Aug 07:07
af1ba93

The following packages have been updated

Bug Fixes

  • [auth, cloudinary, core, fields-document] Updates @keystar/ui to 0.9.3 (#9992) @emmatown
  • [auth, cloudinary, core, create-keystone-app, document-renderer, fields-document] Removes declaration maps and src from published package (#9991) @emmatown
  • [fields-document] Removes unnecessary dependency on @keystone-6/document-renderer (#9987) @emmatown
  • [core] Fixes "Is not one of" filter UI for relationship fields (#9990) @emmatown

👀 Review

See 2026-08-10...2026-08-11 to compare with our previous release.

10 August 2026

Choose a tag to compare

@emmatown emmatown released this 10 Aug 00:47
cb7e013

The following packages have been updated

@keystone-6/[email protected]

Bug Fixes

  • [core] Adds support for Keystone projects using "type": "module" in their package.json by generating an empty package.json in .keystone so Node continues inferring module types in .keystone (#9976) @emmatown
  • [core] Allows item, filter, and order to be omitted from field graphql.omit.read objects. (#9980) @emmatown
  • [core] Fixes Cell components in custom views on fields not being used (#9983) @emmatown

👀 Review

See 2026-08-03...2026-08-10 to compare with our previous release.

03 August 2026

Choose a tag to compare

@emmatown emmatown released this 03 Aug 04:54
6afc6c9

The following packages have been updated

Bug Fixes

  • [auth, cloudinary, create-keystone-app, fields-document] Updates @keystar/ui to 0.9.2 to align with @keystone-6/core (#9971) @emmatown
  • [core] Fixes Admin UI links to include the configured ui.basePath. (#9973) @emmatown

👀 Review

See 2026-07-31...2026-08-03 to compare with our previous release.

31 July 2026

Choose a tag to compare

@emmatown emmatown released this 31 Jul 07:00
28e0afe

The following packages have been updated

@keystone-6/[email protected]

Bug Fixes

  • [core] Fix relationship field comboboxes only opening on second click and scroll position jumping (#9966) @emmatown

💙 Acknowledgements

Lastly, thanks to @emmatown (#9965,#9964,#9963,#9962,#9961) for changes not shown above, but none-the-less appreciated.

👀 Review

See 2026-07-28...2026-07-31 to compare with our previous release.

28 July 2026

Choose a tag to compare

@emmatown emmatown released this 28 Jul 00:02
5e63ed4

The following packages have been updated

Breaking Changes

  • [core] Upgrades Prisma major version to 7. prisma and @prisma/client are now peer dependencies of @keystone-6/core. You will need to install them in your project along with the relevant adapter for your database (e.g. @prisma/adapter-pg). The db.url, db.shadowDatabaseUrl, and db.enableLogging config options have been replaced with a prismaClientOptions option, this is a function which should return the configuring Prisma adapter and any other options you want to pass to the Prisma client. The Prisma Client is now generated into generated/prisma by default now (#9872) @emmatown
  • [core] Removes the keystone prisma command, you should use prisma directly. (#9872) @emmatown
  • [core] Removes the keystone migrate commands and the --with-migrations option, you should use prisma directly. (#9872) @emmatown
  • [core] Replaces @keystone-6/core/testing's resetDatabase function with new implementations in @keystone-6/core/testing/postgresql, @keystone-6/core/testing/sqlite and @keystone-6/core/testing/mysql (#9872) @emmatown
  • [auth, cloudinary, core, create-keystone-app, document-renderer, fields-document] Changes package to exclusively Node ESM. This is intended to be used by require(esm) and should not affect consumers beyond requiring a modern Node version. keystone build outputs are still CommonJS. (#9929) @emmatown
  • [core] Moves the default field mode configuration from ui.*.defaultFieldMode to fieldDefaults.ui.*.fieldMode on lists and field groups. (#9882) @emmatown
  • [core] Fixes the password field to throw an error for inputs longer than 72 bytes when using the default bcrypt key derivation function (KDF) (#9486) @emmatown
  • [core] Changes the sudo boolean on GraphQL schema extensions to scope, which is either 'public' or 'internal'. Code that previously checked schema.extensions.sudo should now check schema.extensions.scope === 'internal'. (#9914) @emmatown
  • [core] Changes displayMode: 'count' on relationship fields to require itemView.fieldMode: 'read' or a dynamic fieldMode that only resolves to 'read' or 'hidden'. (#9528) @emmatown
  • [auth] Removes magicAuthLink and passwordResetLink functionality from @keystone-6/auth (#9245) @dcousens
  • [core] Removes {list}.description and {list}.ui.description, retains {list}.graphql.description functionality (#9672) @dcousens
  • [core] Removes null value from {field}.ui.description, replace with empty string or omit the key (#9672) @dcousens
  • [core] Changes field meta from {field}.path to {field}.key, as used by field views (#9671) @dcousens
  • [core] Moves storage configuration to image and file fields, with a new StorageStrategy interface that directly defines how put, delete and url functions (#9529) @emmatown
  • [auth, core, fields-document] Updates to graphql@^16.14.2, graphql is now also a peer dependency in addition to a normal dependency so if you have a dependency on graphql yourself, you must have a compatible version installed (#9956) @emmatown
  • [core] Moves {field}.label to {field}.ui.label (#9631) @dcousens
  • [core] Changes the type for ui.getAdditionalFiles to be flattened, prefer function composition when wrapping (#9681) @dcousens
  • [core] Removes the deprecated --fix flag from keystone postinstall (#9190) @gautamsi
  • [core] Updates @apollo/server to v5 (#9880) @trickreich
  • [core] Adds itemField, originalItemField, inputFieldData and resolvedFieldData parameters to field hooks (#9600) @dcousens
  • [core] Removes the isFilterable, isOrderable, defaultIsFilterable, and defaultIsOrderable configuration options. Field read access can now distinguish between reading an item, filtering, and ordering through access.read.item, access.read.filter, and access.read.order. The corresponding GraphQL schema fields can be omitted through graphql.omit.read, with list-wide defaults configured through fieldDefaults.access and fieldDefaults.graphql.omit. (#9883) @emmatown
  • [create-keystone-app] Removes auto-install, use your preferred package manager to install dependencies instead (#9942) @emmatown
  • [core] Changes the method by which .sudo() bypasses access control, with context.sudo().graphql.schema now retaining access control as part of the GraphQL schema (#9731) @dcousens
  • [core] Removes deprecated validateInput and validateDelete hooks and adds object hook syntax to fields. (#9204) @gautamsi
  • [core] Adds support for [field].graphql.isNonNull: true (#9234) @dcousens
  • [core] Upgrades @graphql-ts/schema to 1.0.0 (#9535) @emmatown
  • [auth] Removes initFirstItem, including the /init Admin UI page and the createInitial* GraphQL mutation. Use db.onConnect to seed an initial user instead. (#9915) @emmatown
  • [core] Adds list-level ui.listView.initialFilter to apply a filter to the list view by default (#9629) @emmatown
  • [auth, core] Updates @apollo/client to v4 (#9740) @emmatown
  • [core] Updates the config function to default any missing values to what is used internally; compatible with the internal type ResolvedKeystoneConfig (#9189) @gautamsi
  • [core] Moves item field parameters from list.itemView() to list() in the KeystoneAdminMeta GraphQL type (#9684) @dcousens
  • [core] Removes .itemQueryName and .listQueryName from KeystoneAdminUIListMeta, use .graphql.names.*QueryName instead (#9253) @dcousens
  • [core] Removes the @keystone-ui/* design system, you should upgrade your custom components to @keystar/ui. When you depend on @keystar/ui, you should pin @keystar/ui and @keystone-6/core to matching versions based on the version in @keystone-6/core's peerDependencies, whenever updating @keystone-6/core, you should also update @keystar/ui to the matching version. (#9253) @dcousens
  • [core] Changes item argument type in field.*View.field* functions to be nullable (#9253) @dcousens
  • [fields-document] Removes @keystone-6/fields-document/primitives from exports (#9253) @dcousens
  • [core] Removes the endSession GraphQL mutation addition when context.session.end is defined, extend this yourself or use @keystone-6/auth which adds endSession if required (#9253) @dcousens
  • [core] Removes authenticatedItem from @keystone-6/core/admin-ui/components exports (#9253) @dcousens
  • [core] Changes isHidden to hideNavigation on the AdminMeta list GraphQL type (#9253) @dcousens
  • [create-keystone-app] Updates the keystone-app configuration to the newest major version (#9253) @dcousens
  • [core] Fixes enum names on *select field types from switching to their singular form (#9696) @dcousens
  • [core] Upgrades express major version to 5 (#9344) @renovate
  • [core] Upgrades Next major version to 16, next is also now a peer dependency so it must be installed directly in your project. (#9421) @gautamsi
  • [auth, cloudinary, core, fields-document] Moves react and react-dom to peer dependencies. (#9421) @gautamsi
  • [cloudinary, core, fields-document] Removes jsonFieldTypePolyfilledForSQLite since Prisma now supports the Json scalar for SQLite (#9541) @emmatown
  • [core] Updates default types.path to generated/keystone/types.ts (#9925) @emmatown
  • [auth, core] Changes the password field options from bcrypt and workFactor to the new generic kdf option. (#9471) @emmatown
  • [core] Changes Prisma client error handling so Prisma operations no longer return GraphQLError. Using the Prisma client will now throw errors normally. Prisma errors that are not caught in resolvers will now have all information beyond the fact that they're Prisma errors removed before they're returned over the network. You can use graphql.apolloConfig.formatError in your config to override this. (#9476) @emmatown
  • [core] Adds {list}.graphql.singular option (#9644) @dcousens
  • [core] Fixes the computed GraphQL list plural to retain the original casing (#9644) @dcousens

New Features

  • [core] Adds support for importing TypeScript (and similar) packages in a monorepo without a separate build step. @dcousens
  • [core] Adds ui.{sort,filter} options to relationship fields with ui.displayMode: 'select', with sort defaulting to the foreign list's {list}.ui.listView.{initialSort} option (#9688) @dcousens
  • [core] Adds ui.{createView,itemView}.isRequired for control of isRequired UI functionality (#9626) @emmatown
  • [core] Adds conditional client-state filters for ui.*.fieldMode (#9620) @emmatown
  • [core] Adds support for @opentelemetry/api tracing for Keystone's internal operations (#9696) @dcousens
  • [core] Adds list.actions to the list configuration (#9689) @dcousens
  • [core] Adds set input field for *RelateToManyUpdateInput GraphQL type on many relationships (#9645) @dcousens
  • [core] Adds itemField and fieldKey parameters to field ui.fieldMode and ui.fieldPosition functions (#9600) @dcousens
  • [fields-document] Adds componentBlocks?: 'inherit' option to block child fields (#9574) @emmatown
  • [core] Adds access.operation.query.one, access.operation.query.many, and access.operation.query.count for access control for specific kinds of queries. The access.operation.query functions also receive kind: 'one' | 'many' | 'count'. Specific kinds of queries can be omitted from the GraphQL schema through graphql.omit.query.one, graphql.omit.query.many, and graphql.omit.query.count. (#9883) @emmatown
  • [core] Adds support for displayMode: 'table' on relationship fields (#9523) @emmatown
  • [core] Adds `conte...
Read more

21 July 2026

Choose a tag to compare

@emmatown emmatown released this 21 Jul 04:06
2683a2e

The following packages have been updated

@keystone-6/[email protected]
@keystone-6/[email protected]
@keystone-6/[email protected]
@keystone-6/[email protected]
@keystone-6/[email protected]
@keystone-ui/[email protected]
@keystone-ui/[email protected]
@keystone-ui/[email protected]
@keystone-ui/[email protected]
@keystone-ui/[email protected]
@keystone-ui/[email protected]
@keystone-ui/[email protected]
@keystone-ui/[email protected]
@keystone-ui/[email protected]
@keystone-ui/[email protected]
@keystone-ui/[email protected]
@keystone-ui/[email protected]
@keystone-ui/[email protected]

Breaking Changes

New Features

  • [document-renderer] Allow React 19 in peer dependencies (#9906) @AlanBreck

👀 Review

See 2026-07-01...2026-07-21 to compare with our previous release.

01 July 2026

Choose a tag to compare

@emmatown emmatown released this 01 Jul 02:01
3019a0a

The following packages have been updated

@keystone-6/[email protected]

🚨 Security Updates

We have identified and fixed 1 security vulnerability

  • GHSA-cqmq-8755-7xvh - The value of graphql.maxTake can be bypassed by providing a negative input. This can be used to exceed the developers intended maxTake value, allowing queries to return results in excess of the graphql.maxTake value set.

👀 Review

See 2026-03-19...2026-07-01 to compare with our previous release.