pub struct QueryValidator { /* private fields */ }Expand description
Query Validator
Validates incoming GraphQL queries against security policies. Acts as the third layer in the security middleware pipeline.
Delegates AST-based analysis to RequestValidator from
graphql::complexity — the single source of truth for depth,
complexity, and alias-amplification logic.
Implementations§
Source§impl QueryValidator
impl QueryValidator
Sourcepub const fn from_config(config: QueryValidatorConfig) -> Self
pub const fn from_config(config: QueryValidatorConfig) -> Self
Create a new query validator from configuration
Sourcepub const fn permissive() -> Self
pub const fn permissive() -> Self
Create validator with permissive settings
Sourcepub fn validate(&self, query: &str) -> Result<QueryMetrics, SecurityError>
pub fn validate(&self, query: &str) -> Result<QueryMetrics, SecurityError>
Validate a GraphQL query, enforcing all configured limits.
Performs checks in order:
- Query size (O(1) — no parsing)
- AST parse (rejects malformed GraphQL)
- Query depth
- Query complexity
- Alias count (alias amplification protection)
Returns QueryMetrics if all checks pass, or the first
SecurityError encountered.
§Errors
Returns SecurityError::QueryTooLarge if the query exceeds max_size_bytes.
Returns SecurityError::MalformedQuery if GraphQL syntax is invalid.
Returns SecurityError::QueryTooDeep if nesting depth exceeds max_depth.
Returns SecurityError::QueryTooComplex if complexity exceeds max_complexity.
Returns SecurityError::TooManyAliases if alias count exceeds max_aliases.
Sourcepub const fn config(&self) -> &QueryValidatorConfig
pub const fn config(&self) -> &QueryValidatorConfig
Get the underlying configuration
Trait Implementations§
Source§impl Clone for QueryValidator
impl Clone for QueryValidator
Source§fn clone(&self) -> QueryValidator
fn clone(&self) -> QueryValidator
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more