Releases: keystonejs/keystone
✨ 30th June 2021
What's New
We've fixed an issue with cloudinaryImage
and relationship
fields. 🔥
"@keystone-next/auth": "28.0.1",
"@keystone-next/cloudinary": "6.0.3",
"@keystone-next/fields": "11.0.3",
"@keystone-next/keystone": "21.0.2",
"@keystone-next/session-store-redis": "3.0.1",
"@keystone-next/types": "21.0.1",
Field Options Hotfix 🔥
We've discovered an issue where cloudinaryImage
and relationship
fields were not passing through access control, hooks, ui and graphql options to Keystone, this is now resolved!
Enjoying Keystone?
Star this repo 🌟 ☝️ or connect to Keystone on Twitter and in Slack.
View verbose release notes
Releases
@keystone-next/auth@28.0.1
Patch Changes
-
#6029
038cd09a2
Thanks @bladey! - Updated Keystone URL reference from next.keystonejs.com to keystonejs.com. -
Updated dependencies [
038cd09a2
,0988f08c2
]:- @keystone-next/fields@11.0.3
- @keystone-next/keystone@21.0.2
- @keystone-next/types@21.0.1
@keystone-next/cloudinary@6.0.3
Patch Changes
-
#6031
0988f08c2
Thanks @mitchellhamilton! - FixedcloudinaryImage
field not passing through access control, hooks, ui and graphql options to Keystone. -
Updated dependencies [
038cd09a2
,0988f08c2
]:- @keystone-next/fields@11.0.3
- @keystone-next/types@21.0.1
@keystone-next/fields@11.0.3
Patch Changes
-
#6029
038cd09a2
Thanks @bladey! - Updated Keystone URL reference from next.keystonejs.com to keystonejs.com. -
#6031
0988f08c2
Thanks @mitchellhamilton! - Fixedrelationship
field not passing through access control, hooks, ui and graphql options to Keystone. -
Updated dependencies [
038cd09a2
]:- @keystone-next/keystone@21.0.2
- @keystone-next/types@21.0.1
@keystone-next/keystone@21.0.2
Patch Changes
-
#6029
038cd09a2
Thanks @bladey! - Updated Keystone URL reference from next.keystonejs.com to keystonejs.com. -
Updated dependencies [
038cd09a2
,0988f08c2
]:- @keystone-next/fields@11.0.3
- @keystone-next/types@21.0.1
@keystone-next/session-store-redis@3.0.1
Patch Changes
- #6029
038cd09a2
Thanks @bladey! - Updated Keystone URL reference from next.keystonejs.com to keystonejs.com.
@keystone-next/types@21.0.1
Patch Changes
-
#6029
038cd09a2
Thanks @bladey! - Updated Keystone URL reference from next.keystonejs.com to keystonejs.com. -
Updated dependencies [
038cd09a2
,0988f08c2
]:- @keystone-next/fields@11.0.3
@keystone-next/website@3.1.2
Patch Changes
- #6029
038cd09a2
Thanks @bladey! - Updated Keystone URL reference from next.keystonejs.com to keystonejs.com.
@keystone-next/example-default-values@1.0.3
Patch Changes
-
#6029
038cd09a2
Thanks @bladey! - Updated Keystone URL reference from next.keystonejs.com to keystonejs.com. -
Updated dependencies [
038cd09a2
,0988f08c2
]:- @keystone-next/fields@11.0.3
- @keystone-next/keystone@21.0.2
@keystone-next/example-document-field@1.0.2
Patch Changes
-
#6029
038cd09a2
Thanks @bladey! - Updated Keystone URL reference from next.keystonejs.com to keystonejs.com. -
Updated dependencies [
038cd09a2
,0988f08c2
]:- @keystone-next/fields@11.0.3
- @keystone-next/keystone@21.0.2
@keystone-next/example-extend-graphql-schema@1.0.3
Patch Changes
-
#6029
038cd09a2
Thanks @bladey! - Updated Keystone URL reference from next.keystonejs.com to keystonejs.com. -
Updated dependencies [
038cd09a2
,0988f08c2
]:- @keystone-next/fields@11.0.3
- @keystone-next/keystone@21.0.2
@keystone-next/example-json-field@4.0.4
Patch Changes
-
#6029
038cd09a2
Thanks @bladey! - Updated Keystone URL reference from next.keystonejs.com to keystonejs.com. -
Updated dependencies [
038cd09a2
,0988f08c2
]:- @keystone-next/fields@11.0.3
- @keystone-next/keystone@21.0.2
@keystone-next/example-testing@0.0.3
Patch Changes
-
#6029
038cd09a2
Thanks @bladey! - Updated Keystone URL reference from next.keystonejs.com to keystonejs.com. -
Updated dependencies [
038cd09a2
,0988f08c2
]:- @keystone-next/auth@28.0.1
- @keystone-next/fields@11.0.3
- @keystone-next/keystone@21.0.2
- @keystone-next/types@21.0.1
@keystone-next/example-with-auth@2.0.4
Patch Changes
✨ 29th June 2021
What's New
The ID Field option has been revamped with cuid
, uuid
and autoincrement
options! 🤹
"@keystone-next/admin-ui-utils": "5.0.3",
"@keystone-next/auth": "28.0.0",
"@keystone-next/cloudinary@": "6.0.2",
"@keystone-next/fields": "11.0.2",
"@keystone-next/fields-document": "7.0.1",
"@keystone-next/keystone": "21.0.1",
"@keystone-next/testing": "1.0.1",
"@keystone-next/types": "21.0.0",
"@keystone-next/utils": "1.0.1",
New ID Fields 🧮
We've replaced the idField
list configuration option with a more constrained option, db.idField
.
This option accepts an object with a kind
property with a value of:
cuid
uuid
autoincrement
The default behaviour has changed from using autoincrement
to using cuids
.
To keep the current behaviour, you should set { kind: 'autoincrement' }
at db.idField
in your top level config.
db.idField
can be set on either the top level config
object:
config({
db: {
idField: { kind: 'uuid' }
},
lists,
});
Or on individual lists:
config({
db,
lists: createSchema({
User: list({
db: {
idField: { kind: 'uuid' },
},
fields: {
name: text({ isRequired: true }),
},
}),
});
Enjoying Keystone?
Star this repo 🌟 ☝️ or connect to Keystone on Twitter and in Slack.
View verbose release notes
Releases
@keystone-next/keystone@21.0.1
Major Changes
-
#5947
03f535ba6
Thanks @mitchellhamilton! - Replaced theidField
list configuration option with a more constrained option,db.idField
, that accepts an object with akind
property with a value ofcuid
,uuid
orautoincrement
.db.idField
can be set on either the top levelconfig
object, or on individual lists.The default behaviour has changed from using
autoincrement
to using cuids. To keep the current behaviour, you should set{ kind: 'autoincrement' }
atdb.idField
in your top level config. -
#5947
03f535ba6
Thanks @mitchellhamilton! - Id field filters no longer allownull
to be passed because ids can never be null. For thein
andnot_in
, this is reflected in the GraphQL types -
#6022
475307e0e
Thanks @mitchellhamilton! - Fixed error when loading the Admin UI due to the id field changes.
Patch Changes
- Updated dependencies [
03f535ba6
]:- @keystone-next/types@21.0.0
- @keystone-next/fields@11.0.2
- @keystone-next/admin-ui-utils@5.0.3
- @keystone-next/utils@1.0.1
@keystone-next/types@21.0.0
Major Changes
-
#5947
03f535ba6
Thanks @mitchellhamilton! - Replaced theidField
list configuration option with a more constrained option,db.idField
, that accepts an object with akind
property with a value ofcuid
,uuid
orautoincrement
.db.idField
can be set on either the top levelconfig
object, or on individual lists.The default behaviour has changed from using
autoincrement
to using cuids. To keep the current behaviour, you should set{ kind: 'autoincrement' }
atdb.idField
in your top level config.
Patch Changes
- Updated dependencies []:
- @keystone-next/fields@11.0.2
@keystone-next/admin-ui-utils@5.0.3
Patch Changes
- Updated dependencies [
03f535ba6
]:- @keystone-next/types@21.0.0
@keystone-next/auth@28.0.0
Patch Changes
- Updated dependencies [
03f535ba6
,03f535ba6
]:- @keystone-next/keystone@21.0.0
- @keystone-next/types@21.0.0
- @keystone-next/fields@11.0.2
- @keystone-next/admin-ui-utils@5.0.3
@keystone-next/cloudinary@6.0.2
Patch Changes
- Updated dependencies [
03f535ba6
]:- @keystone-next/types@21.0.0
- @keystone-next/fields@11.0.2
@keystone-next/fields@11.0.2
Patch Changes
- Updated dependencies [
03f535ba6
,03f535ba6
]:- @keystone-next/keystone@21.0.0
- @keystone-next/types@21.0.0
- @keystone-next/admin-ui-utils@5.0.3
- @keystone-next/utils@1.0.1
@keystone-next/fields-document@7.0.1
Patch Changes
- Updated dependencies [
03f535ba6
,03f535ba6
]:- @keystone-next/keystone@21.0.0
- @keystone-next/types@21.0.0
- @keystone-next/fields@11.0.2
- @keystone-next/admin-ui-utils@5.0.3
@keystone-next/testing@1.0.1
Patch Changes
@keystone-next/utils@1.0.1
Patch Changes
- Updated dependencies [
03f535ba6
]:- @keystone-next/types@21.0.0
@keystone-next/example-assets-cloud@1.0.1
Patch Changes
- Updated dependencies [
03f535ba6
,03f535ba6
]:- @keystone-next/keystone@21.0.0
- @keystone-next/fields@11.0.2
@keystone-next/example-assets-local@1.0.1
Patch Changes
- Updated dependencies [
03f535ba6
,03f535ba6
]:- @keystone-next/keystone@21.0.0
- @keystone-next/fields@11.0.2
@keystone-next/example-auth@4.0.3
Patch Changes
- Updated dependencies [
03f535ba6
,03f535ba6
]:- @keystone-next/keystone@21.0.0
- @keystone-next/auth@28.0.0
- @keystone-next/fields@11.0.2
@keystone-next/examples-app-basic@4.0.3
Patch Changes
- Updated dependencies [
03f535ba6
,03f535ba6
]:- @keystone-next/keystone@21.0.0
- @keystone-next/types@21.0.0
- @keystone-next/auth@28.0.0
- @keystone-next/fields@11.0.2
- @keystone-next/fields-document@7.0.1
@keystone-next/example-ecommerce@4.0.4
Patch Changes
- Updated dependencies [
03f535ba6
,03f535ba6
]:- @keystone-next/keystone@21.0.0
- @keystone-next/types@21.0.0
- @keystone-next/auth@28.0.0
- @keystone-next/fields@11.0.2
- @keystone-next/cloudinary@6.0.2
@keystone-next/example-embedded-nextjs@3.0.3
Patch Changes
- Updated dependencies [
03f535ba6
,03f535ba6
]:- @keystone-next/keystone@21.0.0
- @keystone-next/fields@11.0.2
keystone-next-app@1.0.3
Patch Changes
- Updated dependencies [
03f535ba6
,03f535ba6
]:- @keystone-next/keystone@21.0.0
- @keystone-next/auth@28.0.0
- @keystone-next/fields@11.0.2
- @keystone-next/fields-document@7.0.1
@keystone-next/example-playground@1.0.2
Patch Changes
✨ 28th June 2021
What's New
An assortment of good things in this release! A new package to help test the behaviour of your GraphQL API, a document field example, better error messages, accessibility updates and another Prisma update! 🍱
"@keystone-ui/fields": "4.1.2",
"@keystone-ui/options": "4.0.1",
"@keystone-ui/pill": "5.0.0",
"@keystone-ui/popover": "4.0.2",
"@keystone-ui/toast": "4.0.1",
"@keystone-next/cloudinary": "6.0.1",
"@keystone-next/fields": "11.0.1",
"@keystone-next/keystone": "20.0.1",
"@keystone-next/testing": "1.0.0",
"@keystone-next/types": "20.0.1",
"@keystone-next/utils": "1.0.0",
Testing Package 🧪
We’ve shipped a new package called @keystone-next/testing
to help you write tests for your GraphQL API!
Check out the guide on the Keystone website for more details.
Document Field Example ✍️
We have a new example project for the document field which covers the basic use case of configuring the toolbar, rendering the document field in a front end, and providing custom renderers for the built in data.
Another example showing advanced use cases is in-progress and will be available soon!
Error Messages ❗
GraphQL error messages are far more helpful when running queries. You will now get relevant error messages instead of getting Cannot assign to read only property 'path' of object '#<Object>'"
back.
Thanks @tjbp for contributing this fix!
Improved Types for KeystoneContext
📜
lists
and db.lists
APIs on KeystoneContext
to have improved types. If you're using the generated KeystoneListsTypeInfo
type like this:
const lists: KeystoneListsAPI<KeystoneListsTypeInfo> = context.lists;
You will have to change it to use as
like this:
const lists = context.lists as KeystoneListsAPI<KeystoneListsTypeInfo>;
UI Accessibility 🏷️
Another set of accessibility improvements in the Admin UI in this release including assorted quality of life and screen reader improvements to Filter pills and dialogs, as well as labels and descriptions.
Prisma update ⬆️
We've updated our Prisma dependencies to 2.25.0
, check out the Prisma releases page for more information.
Enjoying Keystone?
Star this repo 🌟 ☝️ or connect to Keystone on Twitter and in Slack.
View verbose release notes
Releases
@keystone-ui/pill@5.0.0
Major Changes
- #5987
972e04514
Thanks @gwyneplaine! - Added containerProps prop, these are spread onto the containing element. All other props are now spread onto the internal PillButton component (this change is inclusive of refs).
@keystone-next/testing@1.0.0
Major Changes
- #5926
3b9cdc2c0
Thanks @timleslie! - Initial release of the@keystone-next/testing
package.
Patch Changes
- Updated dependencies [
10b36551a
,8afbab763
,7a25925c3
,50ad1ce6b
,972e04514
,123042b04
,4e5634b86
,006afd108
,3be09ea54
,eab130f30
]:- @keystone-next/keystone@20.0.1
@keystone-next/utils@1.0.0
Major Changes
- #5932
7a25925c3
Thanks @timleslie! - Initial release of@keystone-next/utils
package.
Patch Changes
@keystone-ui/fields@4.1.2
Patch Changes
-
#5848
4e5634b86
Thanks @renovate! - Updated TypeScript to 4.3.2 -
Updated dependencies [
972e04514
,0afacf621
,eab130f30
]:- @keystone-ui/popover@4.0.2
@keystone-ui/options@4.0.1
Patch Changes
-
#5848
4e5634b86
Thanks @renovate! - Updated TypeScript to 4.3.2 -
Updated dependencies [
4e5634b86
]:- @keystone-ui/fields@4.1.2
@keystone-ui/popover@4.0.2
Patch Changes
-
#5987
972e04514
Thanks @gwyneplaine! - Added aria-hidden to dialog container so screen readers can't access when the dialog is not visible. -
#5924
0afacf621
Thanks @gwyneplaine! - Fixed popover arrow misalignment. -
#5921
eab130f30
Thanks @gwyneplaine! - Applied aria-modal and role=dialog to popover component for better screen reader support.
@keystone-ui/toast@4.0.1
Patch Changes
- #5930
40a44d20d
Thanks @gwyneplaine! - Added role="alert" to Toast container element for better screen reader experience.
@keystone-next/cloudinary@6.0.1
Patch Changes
-
#5925
de0a5c19e
Thanks @timleslie! - Removed unused dependencies. -
Updated dependencies [
de0a5c19e
,7a25925c3
,50ad1ce6b
,0df3734d5
,4e5634b86
,972e04514
,543154bc0
,972e04514
]:- @keystone-next/fields@11.0.1
- @keystone-next/types@20.0.1
- @keystone-ui/fields@4.1.2
- @keystone-ui/pill@5.0.0
@keystone-next/fields@11.0.1
Patch Changes
-
#5925
de0a5c19e
Thanks @timleslie! - Removed unused dependencies. -
#5932
7a25925c3
Thanks @timleslie! - Initial release of@keystone-next/utils
package. -
#5992
543154bc0
Thanks @timleslie! - Pinned dependencydecimal.js
to10.2.1
to be consistent with Prisma. -
[#5987](http...
✨ 15th June 2021
What's New
Keystone Next now has a new core 🤖, unblocking many of the features you’ve been waiting for!
After months of work deep in the codebase, it’ll be much easier for us to ship roadmap features like custom field types, GraphQL Schema extensions, and more.
"@keystone-next/admin-ui-utils": "5.0.2",
"@keystone-next/auth": "27.0.0",
"@keystone-next/cloudinary": "6.0.0",
"@keystone-next/fields-document": "7.0.0",
"@keystone-next/fields": "11.0.0",
"@keystone-next/keystone": "20.0.0",
"@keystone-next/test-utils-legacy": "21.0.0",
"@keystone-next/types": "20.0.0",
"@keystone-next/utils-legacy": "12.0.0",
"@keystone-ui/core": "3.1.0",
"@keystone-ui/fields": "4.1.1",
"@keystone-ui/segmented-control": "4.0.1",
New Core 🤖
The core of Keystone has been re-implemented to make building fields and new features in Keystone easier. While the observable changes for most users should be minimal, there could be breakage 🤖.
@keystone-next/fields
package for inspiration on how to do this.
Password tweaks 🔒
The password
field type now adds a GraphQL type PasswordState
to the GraphQL output type instead of adding ${fieldKey}_is_set
, exposing a isSet
boolean.
type User {
password: PasswordState
}
type PasswordState {
isSet: Boolean!
}
Access control operations 👑
List level create
, update
and delete
access control is now called for each operation in a many operation rather than on all of the operations as a whole.
This means that rather than receiving originalInput
as an array with itemIds
, your access control functions will always be called with just an itemId
and/or originalInput
(depending on which access control function it is).
itemIds
and originalInput
as an array, to fix that, you should stop handling that case).
In addition, filters returned from access control now go through GraphQL validation and coercion like filters that you pass in through the GraphQL API, this will produce better errors when you return invalid values.
Virtual field input 🔣
The API to configure virtual
fields has changed to accept a field
using the schema
API exported from @keystone-next/types
rather than GraphQL SDL.
Schema reorder 🍡
The ordering of relationships fields in the generated Prisma schema has changed so that it aligns with the order specified in the list config with the opposites to one-sided relationships added at the end.
The name of one-to-one and one-to-many relationships has also changed to include _
between the list key and field key to align with many-to-many relationships.
schema.prisma
file will need to be updated with keystone-next dev
or keystone-next postinstall --fix
.
Text and integer filtering 🪡
A long awaited feature, you can now find an item by a unique field! Filtering now works for text
and integer
fields that have isUnique: true
set, for example:
query {
Post(where: { slug: "something-something-something" }) {
id
title
content
}
}
UI Accessibility 🏷️
A number of updates have been made in this release to improve accessibility in the Admin UI — updates to the DatePicker
labels, relationship fields and more, including visual updates to the segment control (when no value is selected).
Prisma update ⬆️
We've updated our Prisma dependencies to 2.24.1
, check out the Prisma releases page for more information.
Enjoying Keystone?
Star this repo 🌟 ☝️ or connect to Keystone on Twitter and in Slack.
View verbose release notes
Releases
@keystone-next/auth@27.0.0
Major Changes
-
#5665
a3b07ea16
Thanks @mitchellhamilton! - The core of Keystone has been re-implemented to make implementing fields and new features in Keystone easier. While the observable changes for most users should be minimal, there could be breakage. If you implemented a custom field type, you will need to change it to the new API, see fields in the@keystone-next/fields
package for inspiration on how to do this. -
#5665
a3b07ea16
Thanks @mitchellhamilton! - The way that the implementations ofgenerateHash
andcompare
are passed from the password field to auth has changed to be in the extensions object of the GraphQL output field. Unless you've written your own password field implementation or you're using mismatching versions of @keystone-next/auth and @keystone-next/fields, this won't affect you.
Patch Changes
- Updated dependencies [
a3b07ea16
,7eabb4dee
,df7d7b6f6
,5227234a0
,a3b07ea16
,e4c19f808
,4995c682d
,a3b07ea16
,a3b07ea16
,a3b07ea16
,a3b07ea16
,a3b07ea16
,881c9ffb7
,ef14e77ce
,df7d7b6f6
,a3b07ea16
,84a5e7f3b
,a3b07ea16
,a3b07ea16
,a3b07ea16
,8958704ec
,a3b07ea16
,97fd5e05d
,a3b07ea16
]:- @keystone-next/keystone@20.0.0
- @keystone-next/fields@11.0.0
- @keystone-next/types@20.0.0
- @keystone-ui/fields@4.1.1
- @keystone-ui/core@3.1.0
- @keystone-next/admin-ui-utils@5.0.2
@keystone-next/cloudinary@6.0.0
Major Changes
- #5665
a3b07ea16
Thanks @mitchellhamilton! - The core of Keystone has been re-implemented to make implementing fields and new features in Keystone easier. While the observable changes for most users should be minimal, there could be breakage. If you implemented a custom field type, you will need to change it to the new API, see fields in the@keystone-next/fields
package for inspiration on how to do this.
Patch Changes
✨ 2nd June 2021
What's New
We have a new JSON field ✨, a bunch of new learning resources, and plenty of under the hood optimisations in this big release. 💪
JSON Field 👩🏻💻
Thanks to the new json
field, you can now represent JSON blobs in your backend. Check out the JSON example project to learn more.
Package: list({
fields: {
pkgjson: json({ isRequired: true }),
isPrivate: checkbox(),
ownedBy: relationship({ ref: 'Person.packages', many: false }),
},
}),
More Learning Resources 🧑🏫
In addition to the JSON one above, we added new examples for:
- Setting Default Values for fields.
- Extending the GraphQL Schema with custom queries and mutations.
We also published a tutorial that shows you how to embed Keystone and SQLite in a Next.js app. The end result is an app with a queryable GraphQL endpoint based on your Keystone schema that you can run live on Vercel – for free! 🚀
sortBy
deprecated with improvements to orderBy
🤹♂️
We deprecated the sortBy
GraphQL filter and updated the orderBy
GraphQL filter with an improved API.
Previously a User
list's allUsers
query would have the argument:
orderBy: String
The new API gives it the argument:
orderBy: [UserOrderByInput!]! = []
where
input UserOrderByInput {
id: OrderDirection
name: OrderDirection
score: OrderDirection
}
enum OrderDirection {
asc
desc
}
Rather than writing allUsers(orderBy: "name_ASC")
you now write allUsers(orderBy: { name: asc })
. You can also order by multiple fields, e.g. allUsers(orderBy: [{ score: asc }, { name: asc }])
.
Note: each UserOrderByInput
must have exactly one key, or else an error will be returned.
withItemData
replaced with sessionData
🔧
We removed withItemData
in favour of a sessionData
option to the createAuth()
function.
Previously, withItemData
would be used to wrap the config.session
argument:
import { config, createSchema, list } from '@keystone-next/keystone/schema';
import { statelessSessions, withAuthData } from '@keystone-next/keystone/session';
import { text, password, checkbox } from '@keystone-next/fields';
import { createAuth } from '@keystone-next/auth';
const { withAuth } = createAuth({
listKey: 'User',
identityField: 'email',
secretField: 'password',
});
const session = statelessSessions({ secret: '-- EXAMPLE COOKIE SECRET; CHANGE ME --' });
export default withAuth(
config({
lists: createSchema({
fields: {
email: text({ isUnique: true }),
password: password(),
isAdmin: checkbox(),
},
}),
session: withItemData(session, { User: 'id isAdmin' }),
}),
})
);
Now, the fields to populate are configured on sessionData
in createAuth
, and withItemData
is completely removed. 🧹
import { config, createSchema, list } from '@keystone-next/keystone/schema';
import { statelessSessions } from '@keystone-next/keystone/session';
import { text, password, checkbox } from '@keystone-next/fields';
import { createAuth } from '@keystone-next/auth';
const { withAuth } = createAuth({
listKey: 'User',
identityField: 'email',
secretField: 'password',
sessionData: 'id isAdmin',
});
const session = statelessSessions({ secret: '-- EXAMPLE COOKIE SECRET; CHANGE ME --' });
export default withAuth(
config({
lists: createSchema({
fields: {
email: text({ isUnique: true }),
password: password(),
isAdmin: checkbox(),
},
}),
session,
}),
})
);
More consistent and predictable createItems
, updateItems
, and deleteItems
mutations 🧘♀️
We fixed the behaviour of createItems
, updateItems
, and deleteItems
mutations to be consistent and predictable.
Previously, these mutations could return items in an arbitrary order. They now return items in the same order they were provided to the mutation.
Previously, if there was an error (e.g. validation) on one or more of the items – the return value would be null
and a single top level error would be returned. The state of the database in this case was non-deterministic.
The new behaviour is to return values for all items created, with null
values for those that had errors. These errors are returned in the errors
array and have paths which correctly point to the null
values in the returned array. All the valid operations will be completed, leaving the database in a deterministic state.
Previously, if items were filtered out by declarative access control, then no error would be returned, and only those accessible items would be returned. Now the returned data will contain null
values for those items which couldn't accessed, and the errors
array will contain errors with paths which correctly point to the null
values in the returned array.
Previously, if static access control denied access to the mutation, then null
was returned, and a single error
was returned. Now, an array of null
s is returned, with a separate error for each object. This makes the behaviour of static and declarative access control consistent.
Counts Improved 🔢
The GraphQL field _all<path>Meta { count }
generated for many
relationships has been deprecated in favour of a new field <path>Count
, which directly returns the count.
A posts
relationship field would have the following field added to the API:
postsCount(where: PostWhereInput! = {}): Int
Prisma updated to 2.24.0
⬆️
We've updated our Prisma dependency from 2.22.1
to 2.24.0
! Check out the Prisma release notes for more details.
Credits 🎉
-
Thanks @jonowu for adding a
sameSite
option to the session options for cookies. Can be one of true, false, 'strict', 'lax' or 'none' as per Mozilla docs. See the PR for more details! -
Thanks @gabrielkuettel for fixing a typo Database Items API page!
Enjoying Keystone?
Star this repo 🌟 ☝️ or connect to Keystone on Twitter and in Slack.
View verbose release notes
Releases
@keystone-next/auth@26.0.0
Major Changes
-
#5806
0eadba2ba
Thanks [@list({](https://github.com/list({), [@list({](https://github.com/list({)! - RemovedwithItemData
in favour of asessionData
option to thecreateAuth()
function.Previously,
withItemData
would be used to wrap theconfig.session
argument:import { config, createSchema, list } from '@keystone-next/keystone/schema'; import { statelessSessions, withAuthData } from '@keystone-next/keystone/session'; import { text, password, checkbox } from '@keystone-next/fields'; import { createAuth } from '@keystone-next/auth'; const { withAuth } = createAuth({ listKey: 'User', identityField: 'email', secretField: 'password', }); const session = statelessSessions({ secret: '-- EXAMPLE COOKIE SECRET; CHANGE ME --' }); export default withAuth( config({ lists: createSchema({ fields: { email: text({ isUnique: true }), password: password(), isAdmin: checkbox(), }, }), session: withItemData(session, { User: 'id isAdmin' }), }), }) );
Now, the fields to populate are configured on
sessionData
increateAuth
, andwithItemData
is completely removed.import { config, createSchema, list } from '@keystone-next/keystone/schema'; import { statelessSessions } from '@keystone-next/keystone/session'; import { text, password, checkbox } from '@keystone-next/fields'; import { createAuth } from '@keystone-next/auth'; const { withAuth } = createAuth({ listKey: 'User', identityField: 'email', secretField: 'password', sessionData: 'id isAdmin', }); const session = statelessSessions({ secret: '-- EXAMPLE COOKIE SECRET; CHANGE ME --' }); export default withAuth( config({ lists: createSchema({ fields: { email: text({ isUnique: true }), password: password(), isAdmin: checkbox(), }, }), session, }), }) );
-
#5787
bb4f4ac91
Thanks @timleslie! - Replacedreq, session, createContext
args toconfig.ui.pageMiddleware
with acontext
arg.
Patch Changes
-
#5766
a2553ab82
Thanks @gwyneplaine! - Added visually hidden labels to signin / welcome fields for better screen reader experience. -
[#5827](https://github.com/keystonejs/keystone/pull/...
✨ 19th May 2021
What's New
Node updates 🚀
Node.JS engines in our packages have been updated to 12.x
and 14.x
to keep up to date with the latest versions of our dependencies.
Admin UI package moved 🚚
@keystone-next/admin-ui
now lives inside @keystone-next/keystone/admin-ui
.
If you were directly importing from @keystone-next/admin-ui
you can now import the same items from @keystone-next/keystone/admin-ui
.
@keystone-next/admin-ui
in your package.json
files.
Enjoying Keystone?
Star this repo 🌟 ☝️ or connect to Keystone on Twitter and in Slack.
View verbose release notes
Releases
@keystone-ui/button@5.0.0
Major Changes
- #5746
19750d2dc
Thanks @timleslie! - Update Node.js dependency to^12.20 || >= 14.13
.
Patch Changes
- Updated dependencies [
19750d2dc
]:- @keystone-ui/core@3.0.0
- @keystone-ui/icons@4.0.0
- @keystone-ui/loading@4.0.0
@keystone-ui/core@3.0.0
Major Changes
- #5746
19750d2dc
Thanks @timleslie! - Update Node.js dependency to^12.20 || >= 14.13
.
@keystone-ui/fields@4.0.0
Major Changes
- #5746
19750d2dc
Thanks @timleslie! - Update Node.js dependency to^12.20 || >= 14.13
.
Patch Changes
- Updated dependencies [
19750d2dc
]:- @keystone-ui/core@3.0.0
- @keystone-ui/icons@4.0.0
- @keystone-ui/popover@4.0.0
@keystone-ui/icons@4.0.0
Major Changes
- #5746
19750d2dc
Thanks @timleslie! - Update Node.js dependency to^12.20 || >= 14.13
.
Patch Changes
- Updated dependencies [
19750d2dc
]:- @keystone-ui/core@3.0.0
@keystone-ui/loading@4.0.0
Major Changes
- #5746
19750d2dc
Thanks @timleslie! - Update Node.js dependency to^12.20 || >= 14.13
.
Patch Changes
- Updated dependencies [
19750d2dc
]:- @keystone-ui/core@3.0.0
@keystone-ui/modals@4.0.0
Major Changes
- #5746
19750d2dc
Thanks @timleslie! - Update Node.js dependency to^12.20 || >= 14.13
.
Patch Changes
- Updated dependencies [
19750d2dc
]:- @keystone-ui/button@5.0.0
- @keystone-ui/core@3.0.0
@keystone-ui/notice@4.0.0
Major Changes
- #5746
19750d2dc
Thanks @timleslie! - Update Node.js dependency to^12.20 || >= 14.13
.
Patch Changes
- Updated dependencies [
19750d2dc
]:- @keystone-ui/button@5.0.0
- @keystone-ui/core@3.0.0
- @keystone-ui/icons@4.0.0
@keystone-ui/options@4.0.0
Major Changes
- #5746
19750d2dc
Thanks @timleslie! - Update Node.js dependency to^12.20 || >= 14.13
.
Patch Changes
- Updated dependencies [
19750d2dc
]:- @keystone-ui/core@3.0.0
- @keystone-ui/fields@4.0.0
- @keystone-ui/icons@4.0.0
@keystone-ui/pill@4.0.0
Major Changes
- #5746
19750d2dc
Thanks @timleslie! - Update Node.js dependency to^12.20 || >= 14.13
.
Patch Changes
- Updated dependencies [
19750d2dc
]:- @keystone-ui/core@3.0.0
- @keystone-ui/icons@4.0.0
@keystone-ui/popover@4.0.0
Major Changes
- #5746
19750d2dc
Thanks @timleslie! - Update Node.js dependency to^12.20 || >= 14.13
.
Patch Changes
- Updated dependencies [
19750d2dc
]:- @keystone-ui/core@3.0.0
@keystone-ui/segmented-control@4.0.0
Major Changes
- #5746
19750d2dc
Thanks @timleslie! - Update Node.js dependency to^12.20 || >= 14.13
.
Patch Changes
- Updated dependencies [
19750d2dc
]:- @keystone-ui/core@3.0.0
@keystone-ui/toast@4.0.0
Major Changes
- #5746
19750d2dc
Thanks @timleslie! - Update Node.js dependency to^12.20 || >= 14.13
.
Patch Changes
- Updated dependencies [
19750d2dc
]:- @keystone-ui/core@3.0.0
- @keystone-ui/icons@4.0.0
@keystone-ui/tooltip@4.0.0
Major Changes
- #5746
19750d2dc
Thanks @timleslie! - Update Node.js dependency to^12.20 || >= 14.13
.
Patch Changes
- Updated dependencies [
19750d2dc
]:- @keystone-ui/core@3.0.0
- @keystone-ui/popover@4.0.0
@keystone-next/admin-ui@15.0.0
Major Changes
-
#5677
e2232a553
Thanks @timleslie! - Consolidated the@keystone-next/admin-ui
package into@keystone-next/keystone
.If you were directly importing from
@keystone-next/admin-ui
you can now import the same items from@keystone-next/keystone/admin-ui
.
If you have@keystone-next/admin-ui
in yourpackage.json
you should remove it.
@keystone-next/admin-ui-utils@5.0.0
Major Changes
- #5746
19750d2dc
Thanks @timleslie! - Update Node.js dependency to^12.20 || >= 14.13
.
Patch Changes
- Updated dependencies [
19750d2dc
]:- @keystone-ui/core@3.0.0
- @keystone-next/types@18.0.0
@keystone-next/auth@25.0.0
Major Changes
-
#5746
19750d2dc
Thanks @timleslie! - Update Node.js dependency to^12.20 || >= 14.13
. -
#5677
e2232a553
Thanks @timleslie! - Consolidated the@keystone-next/admin-ui
package into@keystone-next/keystone
.If you were directly importing from
@keystone-next/admin-ui
you can now import the same items from@keystone-next/keystone/admin-ui
.
If you have@keystone-next/admin-ui
in yourpackage.json
you should remove it.
Patch Changes
✨ 17th May 2021
What's New
Apollo cache hinting can now be configured on a per list or field basis — which can dramatically improve your applications performance 🔥.
Implementing basic authentication? We've got another example using withAuth
from the auth
package to get you started 🔒.
Focus control is now handled better in the Keystone UI, see the PR for the before and after 👀!
Thanks to @cameronbraid for spotting a session issue and resolving it 🐛.
Enjoying Keystone?
Star this repo 🌟 ☝️ or connect to Keystone on Twitter and in Slack.
View verbose release notes
Releases
@keystone-next/test-utils-legacy@18.0.0
Major Changes
- #5694
b1baeaba1
Thanks @timleslie! - TheSetup
type, returned bysetupFromConfig
and passed into test functions inmultiAdapterRunners
now hasconnect
anddisconnect
functions, rather than akeystone
object.
Patch Changes
@keystone-ui/popover@3.1.0
Minor Changes
- #5670
669f0d8ac
Thanks @gwyneplaine! - Added focustrap to the PopoverDialog component, when the PopoverDialog is open, browser focus is now trapped within it till the dialog is closed.
@keystone-next/keystone@17.2.0
Minor Changes
- #5143
1ef9986dd
Thanks @timleslie! - Addedgraphql.cacheHint
configuration for lists and fields.
Patch Changes
-
#5727
737b3e6e5
Thanks @cameronbraid! - Fixed a bug instoredSessions
not correctly identifying the currentsessionId
. -
#5686
62e68c8e5
Thanks @timleslie! - Reduced the explicit dependence on the internal Keystone object when creating context objects. -
#5673
deb7f9504
Thanks @timleslie! - Refactored code to parseconfig.db
. No functional changes. -
Updated dependencies [
62e68c8e5
,deb7f9504
,1ef9986dd
,669f0d8ac
]:- @keystone-next/types@17.1.0
- @keystone-next/admin-ui@14.1.3
@keystone-next/types@17.1.0
Minor Changes
- #5143
1ef9986dd
Thanks @timleslie! - Addedgraphql.cacheHint
configuration for lists and fields.
Patch Changes
-
#5686
62e68c8e5
Thanks @timleslie! - Reduced the explicit dependence on the internal Keystone object when creating context objects. -
#5673
deb7f9504
Thanks @timleslie! - Refactored code to parseconfig.db
. No functional changes.
@keystone-next/admin-ui@14.1.3
Patch Changes
-
#5670
669f0d8ac
Thanks @gwyneplaine! - Patch update to @keystone-ui/popover. -
Updated dependencies [
669f0d8ac
,737b3e6e5
,62e68c8e5
,deb7f9504
,1ef9986dd
]:- @keystone-ui/popover@3.1.0
- @keystone-next/keystone@17.2.0
- @keystone-next/types@17.1.0
@keystone-next/auth@24.0.0
Patch Changes
- Updated dependencies [
737b3e6e5
,62e68c8e5
,deb7f9504
,1ef9986dd
,669f0d8ac
]:- @keystone-next/keystone@17.2.0
- @keystone-next/types@17.1.0
- @keystone-next/admin-ui@14.1.3
@keystone-next/example-with-auth@1.0.0
Major Changes
- #5612
5606e5965
Thanks @timleslie! - Initial version of thewithAuth
example.
Patch Changes
- Updated dependencies [
737b3e6e5
,62e68c8e5
,deb7f9504
,1ef9986dd
]:- @keystone-next/keystone@17.2.0
- @keystone-next/auth@24.0.0
@keystone-next/example-auth@3.0.3
Patch Changes
- Updated dependencies [
737b3e6e5
,62e68c8e5
,deb7f9504
,1ef9986dd
,669f0d8ac
]:- @keystone-next/keystone@17.2.0
- @keystone-next/admin-ui@14.1.3
- @keystone-next/auth@24.0.0
@keystone-next/app-basic@3.0.4
Patch Changes
- Updated dependencies [
737b3e6e5
,62e68c8e5
,deb7f9504
,1ef9986dd
,669f0d8ac
]:- @keystone-next/keystone@17.2.0
- @keystone-next/types@17.1.0
- @keystone-next/admin-ui@14.1.3
- @keystone-next/auth@24.0.0
@keystone-next/example-ecommerce@3.0.3
Patch Changes
- Updated dependencies [
737b3e6e5
,62e68c8e5
,deb7f9504
,1ef9986dd
,669f0d8ac
]:- @keystone-next/keystone@17.2.0
- @keystone-next/types@17.1.0
- @keystone-next/admin-ui@14.1.3
- @keystone-next/auth@24.0.0
keystone-next-app@0.0.9
Patch Changes
- Updated dependencies [[
737b3e6e5
](h...
✨ 11th May 2021
What's New
A bunch of admin UI tweaks in this release 🖥️, among other minor fixes. We also have the initial stages of a new blog example and a sweet new admin UI logo.
Enjoying Keystone?
Star this repo 🌟 ☝️ or connect to Keystone on Twitter and in Slack.
View verbose release notes
Releases
@keystone-next/fields@8.2.0
Minor Changes
- #5630
79a0844b9
Thanks @mitchellhamilton! - Addedui.displayMode: 'count'
tomany
relationship fields
Patch Changes
-
#5629
11814ce98
Thanks @gwyneplaine! - Updated docs link to next.keystonejs.com. -
#5639
400d88257
Thanks @timleslie! - Fixed Admin UI issues when usingselect
fields withdataType: 'integer'
. -
#5622
bb8920843
Thanks @timleslie! - Disabled sorting for relationship fields. -
Updated dependencies [
3aea3b12f
,11814ce98
,b0a72a112
,2b3efc8a8
,fc9c3d55d
,dbe831976
,53225b0ef
,79d092afc
]:- @keystone-next/admin-ui@14.1.2
- @keystone-ui/core@2.0.3
@keystone-ui/core@2.0.3
Patch Changes
- #5642
dbe831976
Thanks @malitov! - Added hover state to theOptionPrimitive
in Admin UI and updated css colors
@keystone-ui/options@3.0.1
Patch Changes
-
#5642
dbe831976
Thanks @malitov! - Added hover state to theOptionPrimitive
in Admin UI and updated css colors -
Updated dependencies [
dbe831976
]:- @keystone-ui/core@2.0.3
@keystone-next/admin-ui@14.1.2
Patch Changes
-
#5666
3aea3b12f
Thanks @gwyneplaine! - Prettified the logo in the admin-ui. -
#5629
11814ce98
Thanks @gwyneplaine! - Updated docs link to point to next.keystonejs.com. -
#5623
b0a72a112
Thanks @timleslie! - Improved the default value forui.initialColumns
to show the first three fields, rather than just the label field. -
#5633
2b3efc8a8
Thanks @gwyneplaine! - Added minor fixes to filters dialog. -
#5655
fc9c3d55d
Thanks @JedWatson! - Fixed navigation margin when session isn't configured -
#5642
dbe831976
Thanks @malitov! - Added hover state to theOptionPrimitive
in Admin UI and updated css colors -
#5631
53225b0ef
Thanks @gwyneplaine! - Fixed cache querying logic and added explicit query clearing flow to admin-ui. -
#5638
79d092afc
Thanks @timleslie! - Added atitle
value to the create new item button on the dashboard. -
Updated dependencies [
85dfdfb1e
,dbe831976
]:- @keystone-next/keystone@17.1.1
- @keystone-ui/core@2.0.3
- @keystone-ui/options@3.0.1
@keystone-next/auth@23.0.1
Patch Changes
-
#5614
483932276
Thanks @timleslie! - UpdatedwithAuth
to respectconfig.ui.isDisabled
. Now works as expected whenconfig.ui
is undefined. -
#5624
868d89f29
Thanks @timleslie! - Disabled theForgot your password
button on the signin page, which is not yet functional. -
Updated dependencies [
3aea3b12f
,11814ce98
,b0a72a112
,79a0844b9
,11814ce98
,2b3efc8a8
,85dfdfb1e
,fc9c3d55d
,400d88257
,dbe831976
,53225b0ef
,79d092afc
,bb8920843
]:- @keystone-next/admin-ui@14.1.2
- @keystone-next/fields@8.2.0
- @keystone-next/keystone@17.1.1
- @keystone-ui/core@2.0.3
@keystone-next/fields-document@5.0.2
Patch Changes
-
#5618
7e24b9c2a
Thanks @gwyneplaine! - Added logic to ensure the block-menu in the toolbar is hidden when no component blocks or relationships are provided. -
Updated dependencies [
3aea3b12f
,11814ce98
,b0a72a112
,79a0844b9
,11814ce98
,2b3efc8a8
,fc9c3d55d
,400d88257
,dbe831976
,53225b0ef
,79d092afc
, [bb8920843
](bb8920843a1e0d803b8238bd17...
✨ Release - 5th May 2021
What's New
Aside from dependency updates 😴, we added an isIndexed
config option to the text
, integer
, float
, select
, and timestamp
field types.
If you look closely you’ll see the core team working on example projects to share Keystone some best-practices. Keep an eye out for those in the not too distant future 🔮.
Enjoying Keystone?
Star this repo 🌟 ☝️ or connect to Keystone on Twitter and in Slack.
View verbose release notes
Releases
@keystone-next/fields@8.1.0
Minor Changes
- #5616
3d3894679
Thanks @timleslie! - Added anisIndexed
config option to thetext
,integer
,float
,select
, andtimestamp
field types.
Patch Changes
- Updated dependencies [
3d3894679
,8b77b6971
]:- @keystone-next/adapter-prisma-legacy@6.1.0
- @keystone-next/admin-ui@14.1.1
@keystone-next/keystone@17.1.0
Minor Changes
Patch Changes
-
#5601
8b77b6971
Thanks @renovate! - Updated Next.js dependency to^10.2.0
. -
#5592
1043243ff
Thanks @gwyneplaine! - Fixed uncaught exception in file stream. -
Updated dependencies [
3d3894679
,8b77b6971
]:- @keystone-next/fields@8.1.0
- @keystone-next/adapter-prisma-legacy@6.1.0
- @keystone-next/admin-ui@14.1.1
@keystone-next/adapter-prisma-legacy@6.1.0
Minor Changes
- #5616
3d3894679
Thanks @timleslie! - Added anisIndexed
config option to thetext
,integer
,float
,select
, andtimestamp
field types.
Patch Changes
- Updated dependencies [
3d3894679
]:- @keystone-next/fields@8.1.0
@keystone-next/admin-ui@14.1.1
Patch Changes
-
#5601
8b77b6971
Thanks @renovate! - Updated Next.js dependency to^10.2.0
. -
Updated dependencies [
1c0265171
,8b77b6971
,1043243ff
]:- @keystone-next/keystone@17.1.0
@keystone-next/auth@23.0.0
Patch Changes
- Updated dependencies [
1c0265171
,3d3894679
,8b77b6971
,1043243ff
]:- @keystone-next/keystone@17.1.0
- @keystone-next/fields@8.1.0
- @keystone-next/admin-ui@14.1.1
@keystone-next/test-utils-legacy@17.0.2
Patch Changes
- Updated dependencies [
1c0265171
,3d3894679
,8b77b6971
,1043243ff
]:- @keystone-next/keystone@17.1.0
- @keystone-next/adapter-prisma-legacy@6.1.0
@keystone-next/example-todo@3.0.0
Major Changes
- #5591
44c1f9494
Thanks @timleslie! - Simplified the Todo application to just the basics to allow other examples to build on it.
Patch Changes
-
#5594
a3d56570e
Thanks @timleslie! - Updated example projects to only use the sqlite provider. -
#5601
8b77b6971
Thanks @renovate! - Updated Next.js dependency to^10.2.0
. -
Updated dependencies [
1c0265171
,3d3894679
,8b77b6971
,1043243ff
]:- @keystone-next/keystone@17.1.0
- @keystone-next/fields@8.1.0
@keystone-ui/website@2.0.1
Patch Changes
@keystone-next/website@2.0.2
Patch Changes
@keystone-next/example-auth@3.0.2
Patch Changes
-
#5594
a3d56570e
Thanks @timleslie! - Updated example projects to only use the sqlite provider. -
#5601
8b77b6971
Thanks @renovate! - Updated Next.js dependency to^10.2.0
. -
Updated dependencies [
1c0265171
,3d3894679
,8b77b6971
,1043243ff
]:- @keystone-next/keystone@17.1.0
- @keystone-next/fields@8.1.0
- @keystone-next/admin-ui@14.1.1
- @keystone-next/auth@23.0.0
@keystone-next/app-basic@3.0.2
Patch Changes
-
#5594
a3d56570e
Thanks @timleslie! - Updated example projects to only use the sqlite provider. -
#5601
8b77b6971
Thanks @renovate! - Updated Next.js dependency to^10.2.0
. -
Updated dependencies [
1c0265171
,3d3894679
,8b77b6971
,1043243ff
]:- @keystone-next/keystone@17.1.0
- @keystone-next/fields@8.1.0
- @keystone-next/admin-ui@14.1.1
- @keystone-next/auth@23.0.0
@keystone-next/example-ecommerce@3.0.2
Patch Changes
✨ 3rd May 2021
What's New
This release involved a bunch of busywork behind the scenes in Keystone Next 🔧. Stripping away all the things we don't need now that we're using Prisma exclusively. The end of the cleanup is in sight, and we're getting closer to the point where we can start working on some great new features.
Files in Keystone Next 📁. Now you can use Admin UI to upload local files to your repo using SQLite. We also added a maxFileSize
property for easier project config.
Enjoying Keystone?
Star this repo 🌟 ☝️ or connect to Keystone on Twitter and in Slack.
View verbose release notes
Releases
@keystone-next/fields@8.0.0
Major Changes
-
#5578
f7d4c9b9f
Thanks @mitchellhamilton! - Replacedmode
field onImageFieldOutput
GraphQL type with makingImageFieldOutput
an interface and having aLocalImageFieldOutput
type that implementsImageFieldOutput
. -
#5582
49dd46843
Thanks @gwyneplaine! - Changed image ref to now be${mode}:image:${id}
.
Minor Changes
- #5529
b7aeb232d
Thanks @gwyneplaine! - Added file field type.
Patch Changes
-
#5514
8577eb3ba
Thanks @timleslie! - The field hooks API has deprecated theaddFieldValidationError
argument. It has been replaced with the argumentaddValidationError
, and will be removed in a future release. -
#5587
3e33cd3ff
Thanks @timleslie! - Simplified image input resolver. -
Updated dependencies [
b7aeb232d
,7e81b52b0
,fddeacf79
,fdebf79cc
,dbc62ff7c
,05d4883ee
,a0c5aa307
,9fd7cc62a
,b7aeb232d
,49dd46843
,74fed41e2
]:- @keystone-next/admin-ui@14.1.0
- @keystone-next/types@17.0.1
- @keystone-next/adapter-prisma-legacy@6.0.1
- @keystone-next/utils-legacy@10.0.0
- @keystone-next/access-control-legacy@10.0.1
@keystone-next/keystone@17.0.0
Major Changes
- #5582
49dd46843
Thanks @gwyneplaine! - Changed image ref to now be${mode}:image:${id}
.
Minor Changes
- #5570
2df2fa021
Thanks @gwyneplaine! - AddedmaxFileSize
property to keystone config.
Patch Changes
-
#5547
18ae28bde
Thanks @timleslie! - Consolidate the code from the@keystone-next/server-side-graphql-client-legacy
package into the main package. -
#5518
fddeacf79
Thanks @timleslie! - Updated the list item and db item APIs to include an empty default for.findMany()
and.count()
. -
#5522
fbf5f77c5
Thanks @timleslie! - Moved the call tocreateImagesContext
intomakeCreateContext()
. -
#5514
8577eb3ba
Thanks @timleslie! - The field hooks API has deprecated theaddFieldValidationError
argument. It has been replaced with the argumentaddValidationError
, and will be removed in a future release. -
#5523
91e603d7a
Thanks @timleslie! - Moved internal code into subdirectories for easier navigation. -
#5517
a6cdf3da8
Thanks @timleslie! - Fixed a bug using the items API to create/updateimage
field items. -
#5552
a0c5aa307
Thanks @timleslie! - Updatecontext.lists.<list>.count()
to use the GraphQL API rather than directly calling the resolver. -
#5524
ddf51724a
Thanks @timleslie! - Removed un-implemented exportsingleton
fromschema/
. -
#5569
d216fd04c
Thanks @mitchellhamilton! - Refactored implementation of db lists API -
#5515
f76938ac2
Thanks @timleslie! - Simplified the implementation of the images context API. -
Updated dependencies [
b7aeb232d
,b7aeb232d
,f7d4c9b9f
,7e81b52b0
,fddeacf79
,fdebf79cc
,dbc62ff7c
,8577eb3ba
,05d4883ee
,a0c5aa307
,9fd7cc62a
,3e33cd3ff
,b7aeb232d
,49dd46843
,49dd46843
,74fed41e2
]:- @keystone-next/admin-ui@14.1.0
- @keystone-next/fields@8.0.0
- @keystone-next/types@17.0.1
- @keystone-next/adapter-prisma-legacy@6.0.1
- @keystone-next/utils-legacy@10.0.0
- @keystone-next/access-control-legacy@10.0.1
@keystone-next/utils-legacy@10.0.0
Major Changes
- #5582
49dd46843
Thanks @gwyneplaine! - Updated parseImageRef and getRef to accept a different signature for the image ref.
Minor Changes
- #5529 [
b7aeb232d
](https://github.com/...