Skip to main content

Max Depth

Limit the depth of a GraphQL document.

It is used to prevent too large queries that could lead to overfetching or DOS attack.

Configuring for GraphQL Armor

maxDepth: {
// Toogle the plugin | default: true
enabled?: boolean,

// Depth threshold | default: 6
n?: int,

// Ignore the depth of introspection queries | default: true
ignoreIntrospection?: boolean,

// Flatten frament spreads and inline framents for the depth count | default: false
flattenFragments?: boolean,

// Callbacks that are ran whenever a Query is accepted
onAccept?: GraphQLArmorAcceptCallback[],

// Callbacks that are ran whenever a Query is rejected
onReject?: GraphQLArmorRejectCallback[],

// Do you want to propagate the rejection to the client? | default: true
propagateOnRejection?: boolean,

Standalone usage



If you want to use the maxDepth plugin out of GraphQL Armor, you can install it from npm:

# npm
npm install

# yarn
yarn add

With @graphql/graphql-js

import { maxDepthRule } from '';

With @envelop/core from @the-guild-org

import { envelop } from '@envelop/core';
import { maxDepthPlugin } from '';

const getEnveloped = envelop({
plugins: [
// ... other plugins ...
n: 6,