fraiseql-core 2.2.0

Core execution engine for FraiseQL v2 - Compiled GraphQL over SQL
Documentation
//! Security features
//!
//! This module provides core security infrastructure:
//! - Security profiles (STANDARD, REGULATED)
//! - Security headers configuration
//! - Sensitive field masking for PII/regulated data
//! - Field selection filtering for access control
//! - Security error types
//! - Authentication middleware (JWT, Auth0, Clerk)
//! - OIDC/JWKS support for any OIDC-compliant provider
//! - Query validation (depth, complexity)
//! - Audit logging
//! - TLS enforcement
//! - Introspection control
//! - Error formatting

pub mod audit;
#[cfg(feature = "audit-syslog")]
pub mod audit_export_syslog;
#[cfg(feature = "audit-webhook")]
pub mod audit_export_webhook;
pub mod auth_middleware;
pub mod error_formatter;
pub mod errors;
pub mod field_filter;
pub mod field_masking;
pub mod headers;
pub mod introspection_enforcer;
pub mod kms;
pub mod oidc;
pub mod profiles;
pub mod query_validator;
pub mod rls_policy;
pub mod security_context;
pub mod tls_enforcer;
pub mod validation_audit;

// Re-export key types for convenience
pub use audit::{
    AuditEntry, AuditExportConfig, AuditExporter, AuditLevel, AuditLogger, AuditStats,
    SyslogExportConfig, WebhookExportConfig,
};
#[cfg(feature = "audit-syslog")]
pub use audit_export_syslog::SyslogAuditExporter;
#[cfg(feature = "audit-webhook")]
pub use audit_export_webhook::WebhookAuditExporter;
pub use auth_middleware::{AuthConfig, AuthMiddleware, AuthRequest, AuthenticatedUser, SigningKey};
pub use error_formatter::{DetailLevel, ErrorFormatter};
pub use errors::SecurityError;
pub use field_filter::{FieldAccessError, FieldFilter, FieldFilterBuilder, FieldFilterConfig};
pub use field_masking::{FieldMasker, FieldSensitivity};
pub use headers::SecurityHeaders;
pub use introspection_enforcer::{IntrospectionEnforcer, IntrospectionPolicy};
pub use kms::{
    BaseKmsProvider, DataKeyPair, EncryptedData, KeyPurpose, KeyReference, KeyState, KmsError,
    KmsResult, RotationPolicy, VaultConfig, VaultKmsProvider,
};
pub use oidc::{OidcConfig, OidcValidator};
pub use profiles::SecurityProfile;
pub use query_validator::{QueryValidator, QueryValidatorConfig};
pub use rls_policy::{CompiledRLSPolicy, DefaultRLSPolicy, NoRLSPolicy, RLSPolicy, RlsWhereClause};
pub use security_context::SecurityContext;
pub use tls_enforcer::{TlsConfig, TlsConnection, TlsEnforcer, TlsVersion};
pub use validation_audit::{
    RedactionPolicy, ValidationAuditEntry, ValidationAuditLogger, ValidationAuditLoggerConfig,
};

pub use crate::graphql::complexity::QueryMetrics;