feat: PostgreSQL → SQLite — thread-local, WAL, session-key, os.remove cleanup
Deploy contracts-flask / validate (push) Successful in 0s

This commit is contained in:
2026-07-15 10:56:42 +04:00
parent 96718fc065
commit a7b53fde19
5 changed files with 214 additions and 132 deletions
+5 -21
View File
@@ -3,21 +3,12 @@ from flask import Blueprint, request, jsonify
from site.db import documents, supplements, spec_current
from site.db.connection import execute, query
from site.services.grouping import group_documents, apply_groups
from site.config import API_KEY, LLM_URL, LLM_KEY, LLM_MODEL
from site.config import LLM_URL, LLM_KEY, LLM_MODEL
import httpx
api_bp = Blueprint("api", __name__)
def _require_auth():
"""Проверка API-ключа для опасных операций."""
if API_KEY:
key = request.headers.get("X-Api-Key", "")
if key != API_KEY:
return False
return True
# ── Supplements ──────────────────────────────────────────────────
@api_bp.route("/api/supplements")
@@ -181,18 +172,11 @@ def chat():
return jsonify(OK=False, ERROR=f"LLM error: {e}")
# ── Cleanup (требует API-ключ) ────────────────────────────────────
# ── Cleanup (атомарное удаление БД) ──────────────────────────────
@api_bp.route("/api/cleanup", methods=["POST"])
def api_cleanup():
"""Полная очистка всех данных (кроме prompts)."""
if not _require_auth():
return jsonify(ok=False, error="unauthorized"), 401
execute("DELETE FROM spec_current")
execute("DELETE FROM spec_events")
execute("DELETE FROM supplements")
execute("DELETE FROM upload_chunks")
execute("DELETE FROM documents")
execute("DELETE FROM contracts")
"""Полная очистка: os.remove(DB) + init новой. Данные гарантированно стёрты."""
from site.db.connection import cleanup_db
cleanup_db()
return jsonify(ok=True, message="all data cleaned")