IntroductiongraphqlBefore you begin: This guide assumes you have a running instance of Keystone with the GraphQL App configured, and a list with some data to query. (Get started in 5min by running npx create-keystone-5-app and select the Starter project)Read Introduction
PhilosophygraphqlNote: This is a conceptual introduction to how the Keystone team think about GraphQL APIs (and hence how Keystone's GraphQL API is generated). For more specific API docs, see the GraphQL API Introduction.Read Philosophy
Access controladvancedAccess control enforces who can do what with your GraphQL API.Read Access control
Cache hintsadvancedAutomatically set HTTP cache headers and save full responses in a cache. For more information please see the Apollo docs and the HTTP spec.Read Cache hints
Configuring relationshipsKeystone allows you to model your data by declaring relationships between lists. There are a number of different ways you can configure relationships, depending on how you want to model your data and how you need to access it from the graphQL API. This guide will step you through the decision making process to help you get all your configurations just right.Read Configuring relationships
Custom schemaadvancedOut of the box, Keystone provides predictable CRUD (Create, Read, Update, Delete) GraphQL operations for Lists. They are the primary methods for updating list data and should be enough for most applications. However, custom types, queries and mutations may be added if you wish to preform non-CRUD operations.Read Custom schema
Custom serveradvancedBy default, the Keystone CLI starts an express-powered server for you when running the keystone dev or keystone start commands.Read Custom server