- #6391
bc9088f05
Thanks @bladey! - Adds support forintrospection
in the Apollo Server config. Introspection enables you to query a GraphQL server for information about the underlying schema. If the playground is enabled then introspection is automatically enabled - unless specifically disabled.
- #6443
b45536e22
Thanks @timleslie! - Removed unused dependency@types/webpack
.
-
#6467
e0f935eb2
Thanks @JedWatson! - Add extendExpressApp config option for configuring the express app that Keystone creates -
Updated dependencies [
44f2ef60e
,4f36a81af
,32f024738
,8f2786535
,af5e59bf4
,32f024738
,0a189d5d0
]:- @keystone-next/fields-document@9.0.0
- Updated dependencies [
a92169d04
,e985aa010
,272b97b3a
,69f47bfed
,4d9f89f88
]:- @keystone-next/fields-document@8.0.0
-
#6087
139d7a8de
Thanks @JedWatson! - Move source code from thepackages-next
to thepackages
directory. -
Updated dependencies [
139d7a8de
,890e3d0a5
]:- @keystone-next/fields-document@7.0.2
- #6029
038cd09a2
Thanks @bladey! - Updated Keystone URL reference from next.keystonejs.com to keystonejs.com.
- Updated dependencies [
df7d7b6f6
,a3b07ea16
,8958704ec
]:- @keystone-ui/fields@4.1.1
- @keystone-next/fields-document@7.0.0
- @keystone-ui/core@3.1.0
-
#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, }), }) );
-
#5767
02af04c03
Thanks @timleslie! - Deprecated thesortBy
GraphQL filter. Updated theorderBy
GraphQL filter with an improved API.Previously a
User
list'sallUsers
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 writeallUsers(orderBy: { name: asc })
. You can also now order by multiple fields, e.g.allUsers(orderBy: [{ score: asc }, { name: asc }])
. EachUserOrderByInput
must have exactly one key, or else an error will be returned.
- #5823
553bad1e7
Thanks @gabrielkuettel! - Fixed a typo in the db items api sample code.
- #5791
9de71a9fb
Thanks @timleslie! - Changed the return type ofallItems(...)
from[User]
to[User!]
, as this API can never havenull
items in the return array.
-
#5769
08478b8a7
Thanks @timleslie! - The GraphQL query_all<Items>Meta { count }
generated for each list has been deprecated in favour of a new query<items>Count
, which directy returns the count.A
User
list would have the following query added to the API:usersCount(where: UserWhereInput! = {}): Int
-
Updated dependencies [
5cc35170f
,3a7acc2c5
]:- @keystone-next/fields-document@6.0.1
- @keystone-ui/fields@4.1.0
- #5746
19750d2dc
Thanks @timleslie! - Update Node.js dependency to^12.20 || >= 14.13
.
- Updated dependencies [
19750d2dc
,e2232a553
]:- @keystone-ui/button@5.0.0
- @keystone-ui/core@3.0.0
- @keystone-ui/fields@4.0.0
- @keystone-ui/icons@4.0.0
- @keystone-ui/notice@4.0.0
- @keystone-ui/toast@4.0.0
- @keystone-ui/tooltip@4.0.0
- @keystone-next/fields-document@6.0.0
-
#5544
b49befd9c
Thanks @raveling! - copy changes to document-fields guide -
Updated dependencies []:
- @keystone-next/fields-document@5.0.1
- #5397
a5627304b
Thanks @bladey! - Updated Node engine version to 12.x due to 10.x reaching EOL on 2021-04-30.
-
#5451
9e060fe83
Thanks @JedWatson! - With the goal of making the Lists API (i.econtext.lists.{List}
) more intuitive to use, theresolveFields
option has been deprecated in favor of two new methods:(1) You can specify a string of fields to return with the new
query
option, when you want to query for resolved field values (including querying relationships and virtual fields). This replaces theresolveFields: false
use case.For example, to query a Post you would now write:
const [post] = await context.lists.Post.findMany({ where: { slug }, query: ` title content image { src width height }`, });
(2) Alternatively, there is a new set of APIs on
context.db.lists.{List}
which will return the unresolved item data from the database (but with read hooks applied), which can then be referenced directly or returned from a custom mutation or query in the GraphQL API to be handled by the Field resolvers. This replaces theresolveFields: boolean
use case.For example, to query for the raw data stored in the database, you would write:
const [post] = await context.db.lists.Post.findMany({ where: { slug }, });
- #5467
7498fcabb
Thanks @timleslie! - Removed the deprecatedcontext.executeGraphQL
. Identical functionality is available viacontext.graphql.raw
.
-
#5366
115b06130
Thanks @renovate! - Updated Next.js dependency to^10.1.3
. -
Updated dependencies [
fe55e9289
,a5627304b
,1d85d7ff4
,43a0f5429
,d7e8cad4f
,ecf07393a
,8eebf9195
]:- @keystone-next/fields-document@5.0.0
- @keystone-ui/button@4.0.0
- @keystone-ui/fields@3.0.0
- @keystone-ui/icons@3.0.0
- @keystone-ui/notice@3.0.0
- @keystone-ui/toast@3.0.0
- @keystone-ui/tooltip@3.0.0
- #5368
b40016301
Thanks @timleslie! - The config optiondb.adapter
is now deprecated. It has been repaced withdb.provider
which can take the valuespostgresql
orsqlite
.
- #5340
ff472d5af
Thanks @raveling! - copy changes to home page (including CTA to getting started tut)
-
#5283
192393d0d
Thanks @timleslie! - The flag{ experimental: { prismaSqlite: true } }
is no longer required to use the SQLite adapter. -
Updated dependencies [
4fa66ac1f
,d93bab17b
]:- @keystone-next/fields-document@4.0.0
- @keystone-ui/fields@2.1.0
- #3946
8e9b04ecd
Thanks @timleslie! - Added experimental support for Prisma + SQLite as a database adapter.
- #4912
d31acf61b
Thanks @timleslie! - Added aconfig.graphql.apolloConfig
option to allow developers to configure theApolloServer
object provided by Keystone.
-
#5150
3a9d20ce1
Thanks @timleslie! - Applied eslintimport/order
rule. -
Updated dependencies [
8e9b04ecd
,17c86e0c3
,3a9d20ce1
,a4e34e9eb
]:- @keystone-next/fields-document@3.1.0
- @keystone-ui/fields@2.0.2
- @keystone-ui/core@2.0.2
- @keystone-ui/notice@2.0.2
- #5073
ba637676b
Thanks @gwyneplaine! - Moved viewport meta tag from _document to _app to avoid dedupe issues and next warnings.
- #5072
5a78af92e
Thanks @timleslie! - Updated cypress tests to pre-build the site before running the tests.
b1da7806c
#4922 Thanks @timleslie! - Added access control API docs.
f4163a06d
#4838 Thanks @gwyneplaine! - Added anchoring and copy to clipboard functionality to headings
2655c0b1b
#4866 Thanks @timleslie! - Added aconfig.ui.isDisabled
option to completely disable the Admin UI.
f4163a06d
#4838 Thanks @gwyneplaine! - Remove backticks from headings in docs
45d2b7cc9
#4925 Thanks @gwyneplaine! - Removed backticks from inline code blocks in mdx, and made minor styling changes.
1f315bbfb
#4961 Thanks @timleslie! - Added docs for thefloat
field type.
-
954083571
#4926 Thanks @gwyneplaine! - Added a favicon to @keystone-next/website -
Updated dependencies [
f4e4498c6
,556c1f95f
,556c1f95f
,556c1f95f
,556c1f95f
,3ca5038a0
,d53eb872f
]:- @keystone-ui/button@3.0.1
- @keystone-ui/core@2.0.1
- @keystone-ui/fields@2.0.1
- @keystone-ui/icons@2.0.1
- @keystone-ui/notice@2.0.1
- @keystone-ui/toast@2.0.1
- @keystone-ui/tooltip@2.0.1
- @keystone-next/fields-document@3.0.0
-
28c2ee5be
#4811 Thanks @gwyneplaine! - Added syntax highlighting to code in mdx. -
Updated dependencies [
b97216a65
]:- @keystone-ui/button@3.0.0
- @keystone-ui/core@2.0.0
- @keystone-ui/fields@2.0.0
- @keystone-ui/notice@2.0.0
- @keystone-ui/tooltip@2.0.0
75d3c521e
#4770 Thanks @timleslie! - Upgraded Next.js dependency to10.0.5
.
26543bd07
#4758 Thanks @timleslie! - Added documentation for thekeystone-next
CLI.
-
08a67e820
#4764 Thanks @timleslie! - Moved API docs into a separate section from the Guides. -
4c635ae4b
#4737 Thanks @timleslie! - Added API placeholder.