cleanup: убрать мёртвые env-переменные, консолидировать чтение в agent/_config.py

Удалены из кода:
- JWT_SECRET — мёртвая (decode_token использует AUTH_SECRET_KEY)
- SESSION_SECRET_KEY — заменён на прямой AUTH_SECRET_KEY
- POSTGRES_URL — deprecated fallback, удалён из database.py и reencrypt.py

Консолидировано чтение env-переменных agent-модуля:
- Создан agent/_config.py — единый модуль для FASTAPI_URL,
  SERVICE_JWT, GRADIO_*, STORAGE_ROOT, AGENT_* (9 констант)
- Все agent/*.py импортируют из _config вместо разрозненных os.getenv

Удалены or-дефолты (безопасность):
- agent/langgraph_setup.py — удалён hardcoded DB URL postgres:postgres
- agent/langgraph_setup.py — удалены fallback API URL и model name
- scripts/reencrypt.py — удалён hardcoded DB URL postgres:postgres
- plugins/llm_analysis/service.py — удалены or-дефолты URL/app name

.env.example — минимализация:
- backend/.env.example: только 4 обязательные переменные
- root/.env.example: обязательные + docker + SSO/админ

Обновлены тесты (139 passed)
This commit is contained in:
2026-07-04 14:58:43 +03:00
parent a99c1d6d01
commit ec9bc76a37
16 changed files with 163 additions and 179 deletions

View File

@@ -1,75 +1,38 @@
# ======================================================================
# superset-tools — Переменные окружения
# Скопируйте в .env и заполните значения
#
# Полный каталог: см. backend/src/core/auth/config.py,
# backend/src/core/database.py, backend/src/app.py
# Только обязательные + docker. Остальное настраивается через web UI.
# ======================================================================
# --- Аутентификация и безопасность (ОБЯЗАТЕЛЬНО) ---
# --- Обязательно: секреты ---
AUTH_SECRET_KEY= # JWT-ключ подписи токенов (обязательно, без него сервер не стартует)
ALLOWED_ORIGINS=* # CORS: список доменов через запятую (по умолчанию *; для прода — явный список)
ENCRYPTION_KEY= # Fernet-ключ шифрования (обязательно)
# --- Базы данных ---
# --- Обязательно: базы данных ---
DATABASE_URL= # Основная БД (обязательно для production)
AUTH_DATABASE_URL= # БД аутентификации (если не задан — fallback на DATABASE_URL)
AUTH_DATABASE_URL= # БД аутентификации (если не задан — требуется явно)
TASKS_DATABASE_URL= # БД задач (если не задан — fallback на DATABASE_URL)
POSTGRES_URL= # Fallback для DATABASE_URL (deprecated; используйте DATABASE_URL)
# --- Режим разработки ---
DEV_MODE=false # true — разрешает dev-fallback для БД и упрощает валидацию секретов
# --- ADFS SSO (опционально) ---
ADFS_CLIENT_ID= # Client ID для ADFS (если не задан — ADFS отключён)
ADFS_CLIENT_SECRET= # Client Secret для ADFS
ADFS_METADATA_URL= # URL метаданных ADFS (например, https://adfs.example.com/FederationMetadata/2007-06/FederationMetadata.xml)
ADFS_METADATA_URL= # URL метаданных ADFS
# --- Администратор (первый запуск) ---
INITIAL_ADMIN_CREATE=false # true — создать администратора при старте (только для первого запуска)
INITIAL_ADMIN_CREATE=false # true — создать администратора при старте
INITIAL_ADMIN_USERNAME=admin # Логин администратора
INITIAL_ADMIN_PASSWORD= # Пароль (обязателен при INITIAL_ADMIN_CREATE=true)
INITIAL_ADMIN_EMAIL= # Email администратора (опционально)
# --- AI / LLM API ключи (опционально) ---
OPENAI_API_KEY= # OpenAI API key
ANTHROPIC_API_KEY= # Anthropic API key
OPENROUTER_SITE_URL= # URL сайта для OpenRouter (если используется)
OPENROUTER_APP_NAME=superset-tools # Название приложения для OpenRouter (по умолчанию superset-tools)
APP_BASE_URL= # Базовый URL приложения для LLM-колбэков
# --- Шифрование ---
ENCRYPTION_KEY= # Ключ Fernet-шифрования (генерируется автоматически при первом запуске)
# --- Хранилище ---
STORAGE_ROOT=./storage # Корневая директория для артефактов и файлов
# --- Порты ---
BACKEND_HOST_PORT=8001 # Внешний порт бэкенда на хосте (маппинг контейнера)
# --- Порты (Docker) ---
BACKEND_HOST_PORT=8001 # Внешний порт бэкенда на хосте
FRONTEND_HOST_PORT=8000 # Внешний порт фронтенда на хосте
BACKEND_PORT=8000 # Внутренний порт бэкенда в контейнере
FRONTEND_PORT=5173 # Порт dev-сервера SvelteKit
FRONTEND_SSL_PORT=443 # SSL-порт для фронтенда (nginx)
# --- Сертификаты ---
CERTS_PATH=./certs # Путь к директории с сертификатами (монтируется в контейнер)
# --- PostgreSQL (прямое подключение, без DATABASE_URL) ---
POSTGRES_HOST=localhost # Хост PostgreSQL
POSTGRES_PORT=5432 # Порт PostgreSQL
POSTGRES_DB=ss_tools # Имя БД
POSTGRES_USER=postgres # Пользователь
POSTGRES_PASSWORD= # Пароль (обязателен для production)
# --- Логирование ---
TASK_LOG_LEVEL=INFO # Уровень логирования задач (DEBUG/INFO/WARNING/ERROR)
ENABLE_BELIEF_STATE_LOGGING=true # Включить belief state логирование (true/false)
# --- Features (фича-флаги) ---
FEATURES__DATASET_REVIEW=true # Включить ревью датасетов
FEATURES__HEALTH_MONITOR=true # Включить мониторинг здоровья
# --- WebSocket (фронтенд) ---
PUBLIC_WS_URL= # URL для WebSocket-соединений из фронтенда (например, ws://localhost:8000)
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=ss_tools
POSTGRES_USER=postgres
POSTGRES_PASSWORD=
# --- Docker Compose ---
COMPOSE_PROJECT_NAME=superset-tools # Имя Docker Compose проекта
COMPOSE_PROJECT_NAME=superset-tools