Account for limit param when calculating query complexity
This commit is contained in:
parent
03a2a00b30
commit
adbb1a1d79
3 changed files with 54 additions and 3 deletions
|
@ -216,7 +216,8 @@ class SchemaBuilder
|
|||
$dbForProject,
|
||||
$databaseId,
|
||||
$collectionId
|
||||
)
|
||||
),
|
||||
'complexity' => fn (int $complexity, array $args) => $complexity * $args['limit'],
|
||||
];
|
||||
$mutationFields[$collectionId . 'Create'] = [
|
||||
'type' => $objectType,
|
||||
|
|
|
@ -43,9 +43,9 @@ class GraphQLAbuseTest extends Scope
|
|||
'x-appwrite-project' => $projectId,
|
||||
], $this->getHeaders()), $graphQLPayload);
|
||||
|
||||
\var_dump($response);
|
||||
$max = App::getEnv('_APP_GRAPHQL_MAX_QUERY_COMPLEXITY', 50);
|
||||
|
||||
$this->assertEquals('Too many queries.', $response['body']['message']);
|
||||
$this->assertEquals('Max query complexity should be ' . $max . ' but got 51.', $response['body']['errors'][0]['message']);
|
||||
}
|
||||
|
||||
public function testTooManyQueriesBlocked()
|
||||
|
|
|
@ -1356,8 +1356,58 @@ trait GraphQLBase
|
|||
}
|
||||
databasesCreateCollection(databaseId: $databaseId, collectionId: $collectionId, name: $collectionName, permission: $collectionPermission, read: $collectionRead, write: $collectionWrite) {
|
||||
_id
|
||||
_createdAt
|
||||
_updatedAt
|
||||
_read
|
||||
_write
|
||||
databaseId
|
||||
name
|
||||
permission
|
||||
attributes {
|
||||
key
|
||||
type
|
||||
status
|
||||
}
|
||||
indexes {
|
||||
key
|
||||
type
|
||||
status
|
||||
}
|
||||
}
|
||||
databasesCreateStringAttribute(databaseId: $databaseId, collectionId: $collectionId, key: "name", size: 255, required: true) {
|
||||
key
|
||||
type
|
||||
status
|
||||
size
|
||||
required
|
||||
default
|
||||
array
|
||||
}
|
||||
databasesCreateIntegerAttribute(databaseId: $databaseId, collectionId: $collectionId, key: "age", min: 0, max: 150, required: true) {
|
||||
key
|
||||
type
|
||||
status
|
||||
required
|
||||
min
|
||||
max
|
||||
default
|
||||
array
|
||||
}
|
||||
usersCreate(userId: "unique()", email: "test1@appwrite.io", password: "password", name: "Tester 1") {
|
||||
_id
|
||||
_createdAt
|
||||
_updatedAt
|
||||
name
|
||||
registration
|
||||
status
|
||||
passwordUpdate
|
||||
email
|
||||
emailVerification
|
||||
phone
|
||||
phoneVerification
|
||||
prefs {
|
||||
data
|
||||
}
|
||||
}
|
||||
}';
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue