M10: harden knowledge trust and telemetry
This commit is contained in:
@@ -80,9 +80,17 @@ def _read_csv(name: str) -> list[dict[str, str]]:
|
||||
return list(csv.DictReader(handle))
|
||||
|
||||
|
||||
def clear_all(db: Session) -> None:
|
||||
_PERSISTENT_TELEMETRY_ACTIONS = (
|
||||
"mcp_tool_request",
|
||||
"n8n_return_followup_recorded",
|
||||
"n8n_workflow_failure_registered",
|
||||
"n8n_procedures_synced",
|
||||
"knowledge_question_asked",
|
||||
)
|
||||
|
||||
|
||||
def clear_all(db: Session, *, preserve_integration_telemetry: bool = False) -> None:
|
||||
for model in (
|
||||
AuditEvent,
|
||||
OutboxEvent,
|
||||
IdempotencyRecord,
|
||||
DataQualityIssue,
|
||||
@@ -94,6 +102,10 @@ def clear_all(db: Session) -> None:
|
||||
User,
|
||||
):
|
||||
db.execute(delete(model))
|
||||
if preserve_integration_telemetry:
|
||||
db.execute(delete(AuditEvent).where(AuditEvent.action.not_in(_PERSISTENT_TELEMETRY_ACTIONS)))
|
||||
else:
|
||||
db.execute(delete(AuditEvent))
|
||||
|
||||
|
||||
def load_seed(db: Session) -> SeedResult:
|
||||
@@ -428,10 +440,12 @@ def load_seed(db: Session) -> SeedResult:
|
||||
return SeedResult(counts=counts, anchor_date=today, seeded_at=seeded_at)
|
||||
|
||||
|
||||
def reset_and_seed(db: Session) -> SeedResult:
|
||||
def reset_and_seed(
|
||||
db: Session, *, preserve_integration_telemetry: bool = False
|
||||
) -> SeedResult:
|
||||
from app.services.data_quality import run_scan
|
||||
|
||||
clear_all(db)
|
||||
clear_all(db, preserve_integration_telemetry=preserve_integration_telemetry)
|
||||
result = load_seed(db)
|
||||
db.commit()
|
||||
scan = run_scan(db)
|
||||
|
||||
Reference in New Issue
Block a user