Repository navigation
Releases: keystonejs/keystone
Release list
31 August 2026
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 theSessiontype withdeclare 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]MovesnextfromdependenciestopeerDependenciesin@keystone-6/auth, previously you may have had duplicate copies ofnextbecause of this (#10024) @emmatown[core]ChangesheighttominHeightinPageContainer(#10020) @mikehazell[core]Removes runtimenode:imports from@keystone-6/coreand@keystone-6/core/context(#10021) @emmatown[auth, cloudinary, core, fields-document]Updates@keystar/uito0.10.0(#10023) @emmatown
👀 Review
See 2026-08-20...2026-08-31 to compare with our previous release.
20 August 2026
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
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 afterBearerinAuthorizationheader before token instead of only a space (#9996) @FirmaSpring[auth, cloudinary, core, fields-document]Updates@keystar/uito0.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
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]
[email protected]
Bug Fixes
[auth, cloudinary, core, fields-document]Updates@keystar/uito0.9.3(#9992) @emmatown[auth, cloudinary, core, create-keystone-app, document-renderer, fields-document]Removes declaration maps andsrcfrom 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
The following packages have been updated
@keystone-6/[email protected]
Bug Fixes
[core]Adds support for Keystone projects using"type": "module"in theirpackage.jsonby generating an emptypackage.jsonin.keystoneso Node continues inferring module types in.keystone(#9976) @emmatown[core]Allowsitem,filter, andorderto be omitted from fieldgraphql.omit.readobjects. (#9980) @emmatown[core]FixesCellcomponents 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
The following packages have been updated
@keystone-6/[email protected]
@keystone-6/[email protected]
@keystone-6/[email protected]
@keystone-6/[email protected]
[email protected]
Bug Fixes
[auth, cloudinary, create-keystone-app, fields-document]Updates@keystar/uito0.9.2to align with@keystone-6/core(#9971) @emmatown[core]Fixes Admin UI links to include the configuredui.basePath. (#9973) @emmatown
👀 Review
See 2026-07-31...2026-08-03 to compare with our previous release.
31 July 2026
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
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]
[email protected]
Breaking Changes
[core]Upgrades Prisma major version to 7.prismaand@prisma/clientare 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). Thedb.url,db.shadowDatabaseUrl, anddb.enableLoggingconfig options have been replaced with aprismaClientOptionsoption, 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 intogenerated/prismaby default now (#9872) @emmatown[core]Removes thekeystone prismacommand, you should useprismadirectly. (#9872) @emmatown[core]Removes thekeystone migratecommands and the--with-migrationsoption, you should useprismadirectly. (#9872) @emmatown[core]Replaces@keystone-6/core/testing'sresetDatabasefunction with new implementations in@keystone-6/core/testing/postgresql,@keystone-6/core/testing/sqliteand@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 byrequire(esm)and should not affect consumers beyond requiring a modern Node version.keystone buildoutputs are still CommonJS. (#9929) @emmatown[core]Moves the default field mode configuration fromui.*.defaultFieldModetofieldDefaults.ui.*.fieldModeon lists and field groups. (#9882) @emmatown[core]Fixes thepasswordfield to throw an error for inputs longer than 72 bytes when using the defaultbcryptkey derivation function (KDF) (#9486) @emmatown[core]Changes thesudoboolean on GraphQL schema extensions toscope, which is either'public'or'internal'. Code that previously checkedschema.extensions.sudoshould now checkschema.extensions.scope === 'internal'. (#9914) @emmatown[core]ChangesdisplayMode: 'count'on relationship fields to requireitemView.fieldMode: 'read'or a dynamicfieldModethat only resolves to'read'or'hidden'. (#9528) @emmatown[auth]RemovesmagicAuthLinkandpasswordResetLinkfunctionality from@keystone-6/auth(#9245) @dcousens[core]Removes{list}.descriptionand{list}.ui.description, retains{list}.graphql.descriptionfunctionality (#9672) @dcousens[core]Removesnullvalue from{field}.ui.description, replace with empty string or omit the key (#9672) @dcousens[core]Changes field meta from{field}.pathto{field}.key, as used by field views (#9671) @dcousens[core]Movesstorageconfiguration toimageandfilefields, with a newStorageStrategyinterface that directly defines howput,deleteandurlfunctions (#9529) @emmatown[auth, core, fields-document]Updates tographql@^16.14.2,graphqlis now also a peer dependency in addition to a normal dependency so if you have a dependency ongraphqlyourself, you must have a compatible version installed (#9956) @emmatown[core]Moves{field}.labelto{field}.ui.label(#9631) @dcousens[core]Changes the type forui.getAdditionalFilesto be flattened, prefer function composition when wrapping (#9681) @dcousens[core]Removes the deprecated--fixflag fromkeystone postinstall(#9190) @gautamsi[core]Updates@apollo/serverto v5 (#9880) @trickreich[core]AddsitemField,originalItemField,inputFieldDataandresolvedFieldDataparameters to field hooks (#9600) @dcousens[core]Removes theisFilterable,isOrderable,defaultIsFilterable, anddefaultIsOrderableconfiguration options. Field read access can now distinguish between reading an item, filtering, and ordering throughaccess.read.item,access.read.filter, andaccess.read.order. The corresponding GraphQL schema fields can be omitted throughgraphql.omit.read, with list-wide defaults configured throughfieldDefaults.accessandfieldDefaults.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, withcontext.sudo().graphql.schemanow retaining access control as part of the GraphQL schema (#9731) @dcousens[core]Removes deprecatedvalidateInputandvalidateDeletehooks and adds object hook syntax to fields. (#9204) @gautamsi[core]Adds support for[field].graphql.isNonNull: true(#9234) @dcousens[core]Upgrades@graphql-ts/schemato1.0.0(#9535) @emmatown[auth]RemovesinitFirstItem, including the/initAdmin UI page and thecreateInitial*GraphQL mutation. Usedb.onConnectto seed an initial user instead. (#9915) @emmatown[core]Adds list-levelui.listView.initialFilterto apply a filter to the list view by default (#9629) @emmatown[auth, core]Updates@apollo/clientto v4 (#9740) @emmatown[core]Updates theconfigfunction to default any missing values to what is used internally; compatible with the internal typeResolvedKeystoneConfig(#9189) @gautamsi[core]Moves item field parameters from list.itemView() to list() in the KeystoneAdminMeta GraphQL type (#9684) @dcousens[core]Removes.itemQueryNameand.listQueryNamefromKeystoneAdminUIListMeta, use.graphql.names.*QueryNameinstead (#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/uiand@keystone-6/coreto matching versions based on the version in@keystone-6/core'speerDependencies, whenever updating@keystone-6/core, you should also update@keystar/uito the matching version. (#9253) @dcousens[core]Changesitemargument type infield.*View.field*functions to be nullable (#9253) @dcousens[fields-document]Removes@keystone-6/fields-document/primitivesfrom exports (#9253) @dcousens[core]Removes theendSessionGraphQL mutation addition whencontext.session.endis defined, extend this yourself or use@keystone-6/authwhich addsendSessionif required (#9253) @dcousens[core]RemovesauthenticatedItemfrom@keystone-6/core/admin-ui/componentsexports (#9253) @dcousens[core]ChangesisHiddentohideNavigationon the AdminMeta list GraphQL type (#9253) @dcousens[create-keystone-app]Updates thekeystone-appconfiguration 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,nextis also now a peer dependency so it must be installed directly in your project. (#9421) @gautamsi[auth, cloudinary, core, fields-document]Movesreactandreact-domto peer dependencies. (#9421) @gautamsi[cloudinary, core, fields-document]RemovesjsonFieldTypePolyfilledForSQLitesince Prisma now supports the Json scalar for SQLite (#9541) @emmatown[core]Updates defaulttypes.pathtogenerated/keystone/types.ts(#9925) @emmatown[auth, core]Changes thepasswordfield options frombcryptandworkFactorto the new generickdfoption. (#9471) @emmatown[core]Changes Prisma client error handling so Prisma operations no longer returnGraphQLError. 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 usegraphql.apolloConfig.formatErrorin your config to override this. (#9476) @emmatown[core]Adds{list}.graphql.singularoption (#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]Addsui.{sort,filter}options to relationship fields withui.displayMode: 'select', with sort defaulting to the foreign list's{list}.ui.listView.{initialSort}option (#9688) @dcousens[core]Addsui.{createView,itemView}.isRequiredfor control ofisRequiredUI functionality (#9626) @emmatown[core]Adds conditional client-state filters forui.*.fieldMode(#9620) @emmatown[core]Adds support for@opentelemetry/apitracing for Keystone's internal operations (#9696) @dcousens[core]Addslist.actionsto the list configuration (#9689) @dcousens[core]Addssetinput field for*RelateToManyUpdateInputGraphQL type on many relationships (#9645) @dcousens[core]AddsitemFieldandfieldKeyparameters to fieldui.fieldModeandui.fieldPositionfunctions (#9600) @dcousens[fields-document]AddscomponentBlocks?: 'inherit'option to block child fields (#9574) @emmatown[core]Addsaccess.operation.query.one,access.operation.query.many, andaccess.operation.query.countfor access control for specific kinds of queries. Theaccess.operation.queryfunctions also receivekind: 'one' | 'many' | 'count'. Specific kinds of queries can be omitted from the GraphQL schema throughgraphql.omit.query.one,graphql.omit.query.many, andgraphql.omit.query.count. (#9883) @emmatown[core]Adds support fordisplayMode: 'table'on relationship fields (#9523) @emmatown[core]Adds `conte...
21 July 2026
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
[core]Upgrades Next major version to 15 (#9809) @AlanBreck @MauriceArikoglu[auth, cloudinary, core, fields-document]Upgrades React major version to 19 (#9809) @AlanBreck @MauriceArikoglu
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
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 ofgraphql.maxTakecan be bypassed by providing a negative input. This can be used to exceed the developers intendedmaxTakevalue, allowing queries to return results in excess of thegraphql.maxTakevalue set.
👀 Review
See 2026-03-19...2026-07-01 to compare with our previous release.