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
103 lines
4.4 KiB
Plaintext
103 lines
4.4 KiB
Plaintext
# #region env.enterprise-clean [C:2] [TYPE Module] [SEMANTICS env,docker,enterprise]
|
|
# @BRIEF Переменные окружения для docker-compose.enterprise-clean.yml.
|
|
# Сервисы собираются из исходников — не требуют pre-built images.
|
|
# Используется внешний PostgreSQL (корпоративный).
|
|
# @LAYER Infrastructure
|
|
# @RELATION DEPENDS_ON -> [docker-compose.enterprise-clean.yml]
|
|
# #endregion env.enterprise-clean
|
|
|
|
# ======================================================================
|
|
# PostgreSQL (внешний, корпоративный) — ОБЯЗАТЕЛЬНО
|
|
# ======================================================================
|
|
POSTGRES_HOST=postgres.company.local
|
|
POSTGRES_PORT=5432
|
|
POSTGRES_DB=ss_tools
|
|
POSTGRES_USER=postgres
|
|
POSTGRES_PASSWORD=change-me
|
|
|
|
# ======================================================================
|
|
# Порты хоста
|
|
# ======================================================================
|
|
BACKEND_HOST_PORT=8001
|
|
FRONTEND_HOST_PORT=8000
|
|
FRONTEND_SSL_PORT=443
|
|
AGENT_HOST_PORT=7860
|
|
|
|
# ======================================================================
|
|
# Безопасность (ОБЯЗАТЕЛЬНО)
|
|
# ======================================================================
|
|
# 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-ключей.
|
|
# Сгенерировать: python3 -c "import base64,os; print(base64.urlsafe_b64encode(os.urandom(32)).decode())"
|
|
ENCRYPTION_KEY=3YIxOr3_GFht9ZyjRQMqOdtuO1CKOj8Y9mpY89iMbZY=
|
|
|
|
# Сервисный токен для agent→backend вызовов.
|
|
# Сгенерировать: python3 -c "import secrets; print('svc-' + secrets.token_urlsafe(24))"
|
|
SERVICE_JWT=agent-service-secret
|
|
|
|
# ======================================================================
|
|
# Сертификаты (корпоративные)
|
|
# ======================================================================
|
|
CERTS_PATH=./certs
|
|
SSL_KEY_PASSPHRASE=
|
|
|
|
# ======================================================================
|
|
# LLM / AI провайдеры
|
|
# ======================================================================
|
|
OPENAI_API_KEY=
|
|
ANTHROPIC_API_KEY=
|
|
# Агент: LLM настройки (если не подтягиваются из FastAPI /api/agent/llm-config)
|
|
LLM_API_KEY=
|
|
LLM_BASE_URL=https://api.openai.com/v1
|
|
LLM_MODEL=gpt-4o
|
|
LLM_SSL_VERIFY=true
|
|
# LLM CA-сертификаты (скачка по URL на старте контейнера, через запятую)
|
|
LLM_CA_CERT_URLS=
|
|
|
|
# ======================================================================
|
|
# Логирование
|
|
# ======================================================================
|
|
ENABLE_BELIEF_STATE_LOGGING=true
|
|
TASK_LOG_LEVEL=INFO
|
|
|
|
# ======================================================================
|
|
# Admin bootstrap (первый запуск)
|
|
# ======================================================================
|
|
INITIAL_ADMIN_CREATE=false
|
|
INITIAL_ADMIN_USERNAME=admin
|
|
INITIAL_ADMIN_PASSWORD=change-me
|
|
INITIAL_ADMIN_EMAIL=
|
|
|
|
# ======================================================================
|
|
# CORS / Безопасность деплоя
|
|
# ======================================================================
|
|
ALLOWED_ORIGINS=http://localhost:8000
|
|
FORCE_HTTPS=false
|
|
APP_TIMEZONE=Europe/Moscow
|
|
|
|
# ======================================================================
|
|
# Features
|
|
# ======================================================================
|
|
FEATURES__DATASET_REVIEW=true
|
|
FEATURES__HEALTH_MONITOR=true
|
|
|
|
# ======================================================================
|
|
# Агент (опциональные тонкие настройки)
|
|
# ======================================================================
|
|
# GRADIO_ALLOW_PORT_FALLBACK=true
|
|
# AGENT_ENABLE_LLM_TITLES=true
|
|
# AGENT_TITLE_GENERATION_TIMEOUT_S=0.25
|
|
# AGENT_PREFETCH_DASHBOARD_LIMIT=25
|
|
# AGENT_CONFIRM_TOOLS=false
|
|
# AGENT_INTERRUPT_BEFORE=
|
|
|
|
# ======================================================================
|
|
# ADFS SSO (опционально)
|
|
# ======================================================================
|
|
# ADFS_CLIENT_ID=
|
|
# ADFS_CLIENT_SECRET=
|
|
# ADFS_METADATA_URL=
|