Definition Defining your schema
Introspection GraphQL has an introspection system that tells about the schema.
Generators Use Rails generators to install GraphQL and scaffold new types.
Testing Techniques for testing your GraphQL system
Class-based API Define your GraphQL schema with Ruby classes (1.8.x alpha releases)
Dynamic definition You can define your schema dynamically based on other data
Lazy Execution Resolve functions can return "unfinished" results. GraphQL will defer finishing them until other fields have been resolved.
Limiting Visibility Flag types and fields so that only some clients can see them.
Root Types Root types are the entry points for queries, mutations and subscriptions.
Executing Queries Evaluate GraphQL queries with your schema
Ahead-of-Time Analysis Check incoming query strings and reject them if they don't pass your checks
Phases of Execution The steps GraphQL takes to run your query
Complexity & Depth Limiting query depth and field selections
Timeout Cutting off GraphQL execution
Multiplex Run multiple queries concurrently
Tracing Observation hooks for execution
Backtrace Annotations Use the GraphQL backtrace for debugging
Instrumentation Wrap query execution with custom logic
Objects Objects expose data and link to other objects
Scalars Scalars are "simple" data types like integers and strings
Enums Enums are sets of discrete values
Input Objects Input objects are sets of key-value pairs which can be used as field arguments.
Interfaces Interfaces are lists of fields which objects may implement
Unions Unions are sets of types which may appear in the same place (but don't share fields).
Lists Ordered lists containing other types
Non-Null Types Values which must be present
Extending the GraphQL-Ruby Type Definition System Adding metadata and custom helpers to the DSL
Overview Overview of GraphQL authorization in general and an intro to the built-in framework.
Visibility Programatically hide parts of the GraphQL schema from some users.
Accessibility Reject queries from unauthorized users if they access certain parts of the schema.
Authorization During execution, check if the current user has permission to access retrieved objects.
Pundit Integration Hook up GraphQL to Pundit policies
Scoping Filter lists to match the current viewer and context
CanCan Integration Hook up GraphQL to CanCan abilities
Mutation Root The Mutation object is the entry point for mutation operations.
Mutation Classes Use mutation classes to implement behavior, then hook them up to your schema.
Mutation errors Tips for handling and returning errors from mutations
Mutation authorization Checking permissions for mutations
Overview Introduction to Subscriptions in GraphQL-Ruby
Subscription Type The root type for subscriptions
Triggers Sending updates from your application to GraphQL
Implementation Subscription execution and delivery
Action Cable Implementation GraphQL subscriptions over ActionCable
Pusher Implementation GraphQL subscriptions over Pusher
GraphQL::Pro Home Overview of GraphQL::Pro features
Installation Get started with GraphQL::Pro
Authorization Framework GraphQL::Pro's comprehensive access control system, including CanCan and Pundit integrations
Dashboard Installing GraphQL-Pro's Dashboard
Stable Cursors for ActiveRecord Value-based cursors for stable pagination over ActiveRecord::Relations
Encrypted, Versioned Cursors and IDs Increased opacity and configurability for Relay identifiers
Overview Learn how persisted queries work and how OperationStore implements them.
Getting Started Add GraphQL::Pro::OperationStore to your app
Client Workflow Add clients to the system, then sync their operations with the database.
Server Management Tips for administering persisted queries with OperationStore
Access Control Manage authentication & visibility for your OperationStore server.
Apollo Subscriptions GraphQL subscriptions with GraphQL-Ruby and Apollo Client
Relay Subscriptions GraphQL subscriptions with GraphQL-Ruby and Relay Modern