@simonecoelhosfo/optimizely-mcp-server
Version:
Optimizely MCP Server for AI assistants with integrated CLI tools
57 lines • 1.68 kB
TypeScript
/**
* QueryValidator - Validates queries for safety, permissions, and complexity
*/
import { QueryIntent, CompiledQuery, HybridQuery, EntityType } from './types.js';
export interface ValidationResult {
valid: boolean;
errors: ValidationError[];
warnings: ValidationWarning[];
sanitizedQuery?: CompiledQuery | HybridQuery;
}
export interface ValidationError {
code: string;
message: string;
field?: string;
value?: any;
}
export interface ValidationWarning {
code: string;
message: string;
suggestion?: string;
}
export interface QueryPermissions {
allowedEntities?: EntityType[];
allowedProjects?: string[];
maxResultLimit?: number;
allowComplexQueries?: boolean;
allowJsonProcessing?: boolean;
}
export declare class QueryValidator {
private permissions;
constructor(permissions?: QueryPermissions);
/**
* Validate a query intent before building
*/
validateIntent(intent: QueryIntent): ValidationResult;
/**
* Validate a compiled SQL query
*/
validateCompiledQuery(query: CompiledQuery): ValidationResult;
/**
* Validate a hybrid query
*/
validateHybridQuery(query: HybridQuery): ValidationResult;
private validateFilter;
private validateJsonataExpression;
private checkSqlInjection;
private checkUnsafeFunctions;
private checkJsonPathInjection;
private calculateIntentComplexity;
private calculateJsonataComplexity;
private sanitizeQuery;
/**
* Update permissions for a specific request
*/
updatePermissions(permissions: Partial<QueryPermissions>): void;
}
//# sourceMappingURL=QueryValidator.d.ts.map