Version 6 pre-stable
This version of Silverstripe CMS has not yet been given a stable release. See the release roadmap for more information. Go to documentation for the most recent stable version.

Extending the schema

Adding a custom model
Add a new class-backed type beyond DataObject
Adding a custom operation
Add a new operation for model types
Adding middleware
Add middleware to to extend query execution
The global schema
How to push modifications to every schema in the project

The global schema

Developers of thirdparty modules that influence GraphQL schemas may want to take advantage of the global schema. This is a pseudo-schema that will merge itself with all other schemas that have been defined. A good use case is in the silverstripe/versioned module, where it is critical that all schemas can leverage its schema modifications.

The global schema is named *.

# app/_config/graphql.yml
SilverStripe\GraphQL\Schema\Schema:
  schemas:
    '*':
      enums:
        VersionedStage:
          DRAFT: DRAFT
          LIVE: LIVE

Further reading

Adding a custom model
Add a new class-backed type beyond DataObject
Adding a custom operation
Add a new operation for model types
Adding middleware
Add middleware to to extend query execution
The global schema
How to push modifications to every schema in the project