Files
TestingWebApp/flask_app/.env.example
T
Константин Лебединский 4b0d56ff0e feat(flask): E1.0–E1.3, E1.8 — миграция на Python/Flask + AI v2
Этап 1 миграции TestingWebApp на целевой стек (Python/Flask/Jinja),
БД остаётся clinic_tests.

E1.0 — База Flask-приложения: SQLAlchemy/psycopg2 пул, Flask sessions,
фабрика create_app, blueprint main с / и /health, base.html в стиле
кабинета HR (Tailwind CDN + Manrope + Material Symbols), 404/500.

E1.1 — Auth + /api/me: Flask sessions (signed cookie) вместо JWT,
bcrypt + Werkzeug, опц. HR_AUTH=1 с UPSERT в clinic_tests.users по
staff_id. UI /login, JSON /api/auth/{login,logout,me}, декораторы
@login_required / @require_role.

E1.2 — Тесты: список + редактор. 10 эндпоинтов, сервисы test_draft,
test_access, test_chain, ai_editor, llm_client, draft_validator,
editor_content. UI /tests (каталог + создание) и /tests/<id>/edit
(редактор с AI). Полный мобильный UX (аккордеоны/drag-n-drop) — в E1.7.

E1.3 — Импорт документов: pypdf + python-docx, эндпоинт
POST /api/tests/import/document, кнопка «Импорт документа» в
AI-панели редактора, лимит 16 МБ.

E1.8 — AI v2: страница /settings (статус ENV-ключа + ping),
ai/generate-by-title (без сетки), ai/check (рецензия), ai/improve
(массовое было→стало с чекбоксами). Унифицированный ответ AI-ошибок:
{ error, code, settingsUrl }.

Docker:
- docker-compose.dev.yml: добавлены DATABASE_URL, HR_AUTH/HR_DATABASE_URL,
  DEEPSEEK_API_KEY/OPENAI_API_KEY/LLM_BASE_URL/LLM_MODEL и сеть postgres
  для testing-flask.

Документация:
- docs/migration-final.md — двух-этапный план (Этап 1: унификация
  стека внутри TestingWebApp; Этап 2: слияние с tgFlaskForm).
- docs/migration-final-inventory.md — карта 22 эндпоинтов Express.

Made-with: Cursor
2026-04-27 23:29:26 +05:00

26 lines
1.6 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ─── HTTP сервер ─────────────────────────────────────────────────
# Порт (не пересекать с :3107 текущего docker-compose.dev.yml)
PORT=3108
FLASK_DEBUG=1
# В Docker задайте WEB_USE_WAITRESS=1 (см. docker-compose.dev.yml)
# WEB_USE_WAITRESS=1
# Секрет для подписи cookies / Flask sessions.
# В dev можно оставить заглушку — будет сгенерирован случайный, но при рестарте
# процесса сессии "обнулятся" (это критично для логина/CSRF).
SECRET_KEY=change-me-in-dev-only
# ─── База данных (clinic_tests, та же, что у Express-бэкенда) ────
# Этап 1: продолжаем работать с clinic_tests, схему не меняем.
# Локально:
# DATABASE_URL=postgresql://hr_bot_user:hrbot123@localhost:5432/clinic_tests
# В Docker рядом с HR (общая сеть Postgres_TG_Bots):
# DATABASE_URL=postgresql://hr_bot_user:hrbot123@hr_postgres_dev:5432/clinic_tests
DATABASE_URL=postgresql://hr_bot_user:hrbot123@localhost:5432/clinic_tests
# ─── Опциональная HR-аутентификация (как в Express-бэкенде) ──────
# Если HR_AUTH=1, используем БД hr_bot_test для проверки логина/пароля
# (Werkzeug-хеш в public.users.password по web_login = username).
# HR_AUTH=1
# HR_DATABASE_URL=postgresql://hr_bot_user:hrbot123@localhost:5432/hr_bot_test