- #6391
bc9088f05Thanks @bladey! - Adds support forintrospectionin 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
b45536e22Thanks @timleslie! - Removed unused dependency@types/webpack.
-
#6467
e0f935eb2Thanks @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
139d7a8deThanks @JedWatson! - Move source code from thepackages-nextto thepackagesdirectory. -
Updated dependencies [
139d7a8de,890e3d0a5]:- @keystone-next/fields-document@7.0.2
- #6029
038cd09a2Thanks @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
0eadba2baThanks [@list({](https://github.com/list({), [@list({](https://github.com/list({)! - RemovedwithItemDatain favour of asessionDataoption to thecreateAuth()function.Previously,
withItemDatawould be used to wrap theconfig.sessionargument: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
sessionDataincreateAuth, andwithItemDatais 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
02af04c03Thanks @timleslie! - Deprecated thesortByGraphQL filter. Updated theorderByGraphQL filter with an improved API.Previously a
Userlist'sallUsersquery 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 }]). EachUserOrderByInputmust have exactly one key, or else an error will be returned.
- #5823
553bad1e7Thanks @gabrielkuettel! - Fixed a typo in the db items api sample code.
- #5791
9de71a9fbThanks @timleslie! - Changed the return type ofallItems(...)from[User]to[User!], as this API can never havenullitems in the return array.
-
#5769
08478b8a7Thanks @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
Userlist 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
19750d2dcThanks @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
b49befd9cThanks @raveling! - copy changes to document-fields guide -
Updated dependencies []:
- @keystone-next/fields-document@5.0.1
- #5397
a5627304bThanks @bladey! - Updated Node engine version to 12.x due to 10.x reaching EOL on 2021-04-30.
-
#5451
9e060fe83Thanks @JedWatson! - With the goal of making the Lists API (i.econtext.lists.{List}) more intuitive to use, theresolveFieldsoption has been deprecated in favor of two new methods:(1) You can specify a string of fields to return with the new
queryoption, when you want to query for resolved field values (including querying relationships and virtual fields). This replaces theresolveFields: falseuse 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: booleanuse 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
7498fcabbThanks @timleslie! - Removed the deprecatedcontext.executeGraphQL. Identical functionality is available viacontext.graphql.raw.
-
#5366
115b06130Thanks @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
b40016301Thanks @timleslie! - The config optiondb.adapteris now deprecated. It has been repaced withdb.providerwhich can take the valuespostgresqlorsqlite.
- #5340
ff472d5afThanks @raveling! - copy changes to home page (including CTA to getting started tut)
-
#5283
192393d0dThanks @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
8e9b04ecdThanks @timleslie! - Added experimental support for Prisma + SQLite as a database adapter.
- #4912
d31acf61bThanks @timleslie! - Added aconfig.graphql.apolloConfigoption to allow developers to configure theApolloServerobject provided by Keystone.
-
#5150
3a9d20ce1Thanks @timleslie! - Applied eslintimport/orderrule. -
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
ba637676bThanks @gwyneplaine! - Moved viewport meta tag from _document to _app to avoid dedupe issues and next warnings.
- #5072
5a78af92eThanks @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.isDisabledoption 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 thefloatfield 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-nextCLI.
-
08a67e820#4764 Thanks @timleslie! - Moved API docs into a separate section from the Guides. -
4c635ae4b#4737 Thanks @timleslie! - Added API placeholder.