Skip to Content

Max Tokens

Limit the number of tokens in a GraphQL document. It is used to prevent DOS attack, heap overflow or server overloading. The token limit is often limited by the GraphQL parser, but this is not always the case and would lead to a fatal heap overflow.

Basic Configuration

Powered by GraphQL Armor.

Hive Gateway ships with the basic “max tokens” security features. You can enable it by setting the maxTokens option to true or configure the amount of allowed tokens by passing a number to the option.

gateway.config.ts
import { defineConfig } from '@graphql-hive/gateway' export const gatewayConfig = defineConfig({ maxTokens: true // defaults to 1000 })

Advanced Configuration

The built-in configuration options are limited and should be enough for most use-cases. However, if you need more control, you can configure more by installing the GraphQL Armor Max Tokens plugin.

npm install @escape.tech/graphql-armor-max-tokens
gateway.config.ts
import { maxTokensPlugin } from '@escape.tech/graphql-armor-max-tokens' import { defineConfig } from '@graphql-hive/gateway' export const gatewayConfig = defineConfig({ plugins: () => [ maxTokensPlugin({ // Toggle the plugin | Default: true enabled: true, // Number of tokens allowed | Default: 5000 n: 5000, // Do you want to propagate the rejection to the client? | default: true propagateOnRejection: true, // List of queries that are allowed to bypass the plugin allowList: [], /* Advanced options (use here on your own risk) */ // Callbacks that are ran whenever a Query is accepted onAccept: [], // Callbacks that are ran whenever a Query is rejected onReject: [] }) ] })
Last updated on