Page tree
Skip to end of metadata
Go to start of metadata

Magnolia GraphQL is currently in a private beta phase. It is not yet publically available. The full version is still under development.



The GraphQL module allows you to expose content stored in JCR through GraphQL POST and GET requests. The module provides a GraphQL API, a binding to Magnolia assets and a seamless integration with content types.

Module structure

artifactID

magnolia-graphql-parent

Parent reactor.

magnolia-graphql-assets

Integrates GraphQL with Magnolia assets.

magnolia-graphql-core

Provides the API.

magnolia-graphql-jcr

Integrates GraphQL with Magnolia content types and JCR.

Configuration

The module itself doesn't require any configuration tweaks. It is ready for use once the instance is up and running. Registered GraphQL types can be verified using the Definitions app:

Disabling specific GraphQL types

If you need to disable a GraphQL schema for a given content type, you can do so through definition decoration, for example:

/my-module/decorations/graphql-core/graphqlTypes/character.yaml
enabled=false

Disabling GraphQL servlet

By default, the GraphQL servlet is enabled. To disable it, set the /server/filters/servlets/GraphQLServlet@enabled property to false.

Changing endpoint name

All GraphQL requests are by default mapped to /.graphql. You can change this by modifying the pattern property at /server/filters/servlets/GraphQLServlet/mappings/-.graphql--.

Access control

All requests to the GraphQL servlet pass through a filter chain. Make sure that the instance handling GraphQL requests in a production environment has an appropriate assignment of JCR Access Control Lists (ACLs) and Web Access permissions for the GraphQL endpoint and for the JCR workspaces where GraphQL content is stored. For more information, see the Security app.

Usage