Type Definitions

  • 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

  • Directives Special instructions for the GraphQL runtime

  • Field Extensions Programmatically modify field configuration and resolution


  • Overview Overview of GraphQL authorization in general and an intro to the built-in framework.

  • Visibility Programmatically hide parts of the GraphQL schema from some users.

  • Authorization During execution, check if the current user has permission to access retrieved objects.

  • CanCan Integration Hook up GraphQL to CanCan abilities

  • Pundit Integration Hook up GraphQL to Pundit policies

  • Scoping Filter lists to match the current viewer and context


  • Introduction Implement fields and resolvers with the Ruby DSL

  • Arguments Fields may take arguments as inputs

  • Resolvers Reusable, extendable resolution logic for complex fields

  • Validation Rails-like validations for arguments

  • Limits Always limit lists of items







GraphQL Pro

GraphQL Pro - OperationStore

  • Overview Learn how persisted queries work and how OperationStore implements them.

  • Getting Started Add GraphQL::Pro::OperationStore to your app

  • ActiveRecord Backend Storing persisted queries with ActiveRecord

  • Redis Backend Storing persisted queries with Redis

  • 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.

GraphQL Pro - Defer

  • Overview What is @defer, and why use it?

  • Server Setup Configuring the schema and server to use @defer

  • Usage Using @defer on the client side

  • Stream Using @stream to receive list items one at a time

  • Use with GraphiQL Using @defer with the GraphiQL IDE

GraphQL Enterprise - Rate Limiters

GraphQL Enterprise - Object Cache

GraphQL Enterprise - Changesets

JavaScript Client

Language Tools

  • AST Visitor Analyze and modify parsed GraphQL code

  • C-based Parser The GraphQL::CParser gem is a drop-in replacement for the built-in parser