Source code for sqldbagent.safety.models

"""Safety models."""

from __future__ import annotations

from pydantic import BaseModel, Field


[docs] class QueryGuardResult(BaseModel): """Guard evaluation result. Attributes: allowed: Whether the query passed safety validation. statement_type: Root SQL statement type. dialect: SQL dialect used for parsing and normalization. original_sql: Original SQL text. normalized_sql: Normalized SQL text after linting or guarding. row_limit_applied: Whether the guard injected or reduced a row limit. max_rows: Maximum rows allowed by policy. referenced_schemas: Schemas referenced by the statement. referenced_tables: Tables referenced by the statement. reasons: Validation failure reasons when not allowed. summary: Generated short summary. """ allowed: bool statement_type: str | None = None dialect: str original_sql: str normalized_sql: str | None = None row_limit_applied: bool = False max_rows: int | None = None referenced_schemas: list[str] = Field(default_factory=list) referenced_tables: list[str] = Field(default_factory=list) reasons: list[str] = Field(default_factory=list) summary: str | None = None