Query complexity validation (#16274)

Validations : 
- relations count (in common api)
- oneToMany relation nested count (in common)
- requested fields count (in gql)
- root resolver count (in gql)
- root resolver duplicates (in gql)
- specific complexity for metadata / nesting count (in gql)
This commit is contained in:
Etienne
2025-12-04 16:33:08 +01:00
committed by GitHub
parent 53d34f4d14
commit d1befa7e35
36 changed files with 1208 additions and 91 deletions
@@ -989,10 +989,26 @@ export class ConfigVariables {
@CastToPositiveNumber()
@ConfigVariablesMetadata({
group: ConfigVariablesGroup.RATE_LIMITING,
description: 'Maximum complexity allowed for GQL queries',
description: 'Maximum fields allowed for GQL queries',
type: ConfigVariableType.NUMBER,
})
GRAPHQL_MAX_COMPLEXITY = 2000;
GRAPHQL_MAX_FIELDS = 2000;
@CastToPositiveNumber()
@ConfigVariablesMetadata({
group: ConfigVariablesGroup.RATE_LIMITING,
description: 'Maximum root resolvers allowed for GQL queries',
type: ConfigVariableType.NUMBER,
})
GRAPHQL_MAX_ROOT_RESOLVERS = 20;
@CastToPositiveNumber()
@ConfigVariablesMetadata({
group: ConfigVariablesGroup.RATE_LIMITING,
description: 'Maximum complexity allowed for Common API queries',
type: ConfigVariableType.NUMBER,
})
COMMON_QUERY_COMPLEXITY_LIMIT = 50;
@ConfigVariablesMetadata({
group: ConfigVariablesGroup.RATE_LIMITING,