refactor(env): unify Docker env vars — canonical AUTH_SECRET_KEY, remove JWT_SECRET fallback
Canonical variables:
- AUTH_SECRET_KEY — JWT signing key for backend + agent (was split across
AUTH_SECRET_KEY / JWT_SECRET)
- SERVICE_JWT — agent→backend service token
- No JWT_SECRET fallback: decoder fails with migration guidance if only
JWT_SECRET is set
Compose files unified:
- docker-compose.yml, docker-compose.enterprise-clean.yml,
docker-compose.e2e.yml — all use AUTH_SECRET_KEY
- build.sh generated compose now passes AUTH_SECRET_KEY + ENCRYPTION_KEY
to backend
Env examples unified and completed:
- .env.example — comprehensive template, all compose vars
- .env.enterprise-clean.example — production template
- backend/.env.example — backend-only run
- docker/.env.agent.example — agent-only run
- NEW: .env.current.example, .env.master.example,
.env.e2e.example, frontend/.env.example
Tests aligned:
- conftest sets AUTH_SECRET_KEY (canonical value matched across test files)
- test mocks use canonical name
- 1176 passed, 0 failed
This commit is contained in:
@@ -1,22 +1,49 @@
|
||||
# ======================================================================
|
||||
# superset-tools — backend .env.example
|
||||
# Только обязательные переменные. Остальное настраивается через web UI.
|
||||
# Используется для прямого запуска бекенда (без docker compose).
|
||||
# При использовании docker-compose — переменные задаются в compose/environment.
|
||||
# ======================================================================
|
||||
|
||||
# ── Обязательно: секреты ──
|
||||
# JWT-ключ подписи токенов (backend + agent используют один)
|
||||
# Сгенерировать: python -c "import secrets; print(secrets.token_urlsafe(32))"
|
||||
AUTH_SECRET_KEY=change-me-to-a-random-secret
|
||||
# ── Безопасность (ОБЯЗАТЕЛЬНО) ─────────────────────────────────────────
|
||||
# JWT-ключ подписи токенов — единый для backend и agent.
|
||||
# Сгенерировать: python3 -c "import secrets; print(secrets.token_urlsafe(32))"
|
||||
AUTH_SECRET_KEY=change-me-to-a-random-secret-32-chars-min
|
||||
|
||||
# Fernet-ключ шифрования паролей подключений и API-ключей
|
||||
# Fernet-ключ шифрования паролей подключений и API-ключей.
|
||||
# Сгенерировать: python3 -c "import base64,os; print(base64.urlsafe_b64encode(os.urandom(32)).decode())"
|
||||
# Пример (сгенерируйте свой для прода):
|
||||
ENCRYPTION_KEY=3YIxOr3_GFht9ZyjRQMqOdtuO1CKOj8Y9mpY89iMbZY=
|
||||
|
||||
# ── Обязательно: база данных ──
|
||||
# PostgreSQL (пример для локальной разработки через docker-compose)
|
||||
# JWT audience / issuer (опционально)
|
||||
# JWT_AUDIENCE=superset-tools-api
|
||||
# JWT_ISSUER=superset-tools
|
||||
|
||||
# ── База данных (ОБЯЗАТЕЛЬНО) ──────────────────────────────────────────
|
||||
DATABASE_URL=postgresql+psycopg2://postgres:postgres@localhost:5432/ss_tools
|
||||
# Отдельная БД для аутентификации (если не задана — требуется явно)
|
||||
AUTH_DATABASE_URL=postgresql+psycopg2://postgres:postgres@localhost:5432/ss_tools
|
||||
# Отдельная БД для задач (если не задана — DATABASE_URL)
|
||||
TASKS_DATABASE_URL=postgresql+psycopg2://postgres:postgres@localhost:5432/ss_tools
|
||||
|
||||
# ── Admin bootstrap ────────────────────────────────────────────────────
|
||||
# INITIAL_ADMIN_CREATE=true
|
||||
# INITIAL_ADMIN_USERNAME=admin
|
||||
# INITIAL_ADMIN_PASSWORD=change-me
|
||||
|
||||
# ── LLM / провайдеры ───────────────────────────────────────────────────
|
||||
OPENAI_API_KEY=
|
||||
ANTHROPIC_API_KEY=
|
||||
LLM_SSL_VERIFY=true
|
||||
LLM_CA_CERT_URLS=
|
||||
|
||||
# ── CORS / Безопасность ────────────────────────────────────────────────
|
||||
ALLOWED_ORIGINS=http://localhost:5173,http://127.0.0.1:5173
|
||||
FORCE_HTTPS=false
|
||||
APP_TIMEZONE=Europe/Moscow
|
||||
|
||||
# ── ADFS SSO (опционально) ─────────────────────────────────────────────
|
||||
# ADFS_CLIENT_ID=
|
||||
# ADFS_CLIENT_SECRET=
|
||||
# ADFS_METADATA_URL=
|
||||
|
||||
# ── OpenRouter (опционально) ───────────────────────────────────────────
|
||||
# OPENROUTER_SITE_URL=
|
||||
# OPENROUTER_APP_NAME=
|
||||
# APP_BASE_URL=
|
||||
|
||||
Reference in New Issue
Block a user