# =============================================================================
# Пример конфигурации sarex-backend (Django) + sarex-frontend
# Значения читаются кодом через django-environ (env(...)) и pydantic-settings
# (классы *Settings с env_prefix) в config/settings/*.py.
# В кластере переменные приходят из Vault (файлы /vault/secrets/*) и из блока
# env Deployment-манифестов (см. base/backend-deployment.yaml, celery-deployment.yaml).
# =============================================================================

# -----------------------------------------------------------------------------
# Django core
# -----------------------------------------------------------------------------
DJANGO_SETTINGS_MODULE=config.settings.production
DJANGO_DEBUG=False
DJANGO_ISOLATED=False
ALLOWED_HOSTS='*'
APPEND_SLASH=True
FZ152_COMPLIANCE=False
PDM_SYNC=1
OBJECT_STORAGE_SYNC=True
# Секретный ключ Django. В production.py по умолчанию задан хардкодом,
# при необходимости переопределяется переменной SECRET_KEY.
SECRET_KEY=
# STATIC_ROOT / MEDIA_ROOT нужны только если раскомментированы в production.py
# STATIC_ROOT=/opt/sarex/static
# MEDIA_ROOT=/opt/sarex/media
DISK_USAGE_ROOT=/
USE_SSL_FOR_URL_SERIALIZATION=True
WEB_APP_AUTH_MODE=jwt-session-based

# -----------------------------------------------------------------------------
# База данных (PostgreSQL) — читается в config/settings/production.py
# В кластере приходит из Vault-секрета secrets/data/postgresql/apps/django
# -----------------------------------------------------------------------------
DJANGO_POSTGRES_HOST=postgresql.django.svc.cluster.local
DJANGO_POSTGRES_PORTS=5432
DJANGO_POSTGRES_DATABASE=sarex_db
DJANGO_POSTGRES_USER=sarex
DJANGO_POSTGRES_PASSWORD=password

# -----------------------------------------------------------------------------
# JWT (RS512). Ключи в кластере приходят из Vault (rsa_keys), \n экранируются.
# -----------------------------------------------------------------------------
JWT_PRIVATE_KEY=
JWT_PUBLIC_KEY=
JWT_KID=1
DJANGO_JWT_SECRET='Froom too much love of living'
SIMPLE_JWT_ISSUER=django

# -----------------------------------------------------------------------------
# Celery — брокер (RabbitMQ) и backend результатов (Redis или Postgres)
# CELERY_RABBITMQ_* приходит из Vault-секрета secrets/data/rabbitmq/apps/django
# -----------------------------------------------------------------------------
CELERY_USE_POSTGRES=False
CELERY_RABBITMQ_HOST=rabbitmq.rabbitmq.svc.cluster.local
CELERY_RABBITMQ_PORT=5672
CELERY_RABBITMQ_USER=rabbit
CELERY_RABBITMQ_PASSWORD=rabbit
CELERY_RABBITMQ_VHOST=api
CELERY_REDIS_HOST=redis
CELERY_REDIS_PORT=6379
CELERY_REDIS_DATABASE=0
# Backend результатов на Postgres (используется при CELERY_USE_POSTGRES=True)
CELERY_POSTGRES_DATABASE=celery_db
CELERY_POSTGRES_USER=sarex
CELERY_POSTGRES_PASSWORD=sarex
CELERY_POSTGRES_HOST=localhost
CELERY_POSTGRES_PORT=5432

# Дублирующий набор RabbitMQ (django), прокидывается Vault-шаблоном
DJANGO_RABBIT_HOSTNAME=rabbitmq.rabbitmq.svc.cluster.local
DJANGO_RABBIT_USER=rabbit
DJANGO_RABBIT_PASS=rabbit
DJANGO_RABBIT_VHOST=api

# Redis для Django-кеша/сервисов
DJANGO_REDIS_HOST=redis
DJANGO_REDIS_PORT=6379

# -----------------------------------------------------------------------------
# Redis-кеш (CacheSettings)
# -----------------------------------------------------------------------------
CACHE_HOST=localhost
CACHE_PORT=6379
# CACHE_PASSWORD=
CACHE_SSL=False
# CACHE_SSL_CA_CERTS=

# -----------------------------------------------------------------------------
# S3 / объектное хранилище (S3Settings, env_prefix S3_)
# S3_* приходит из Vault-секрета secrets/data/minio/apps/django
# -----------------------------------------------------------------------------
S3_HOST=https://storage.yandexcloud.net
AWS_S3_ENDPOINT_URL=https://storage.yandexcloud.net
S3_LOGIN=
S3_PASSWORD=
S3_BUCKET=sarex-media-storage
S3_REGION=ru-central1
# AWS_DEFAULT_REGION=ru-central1
# Нативная библиотека загрузки в S3 (см. Dockerfile)
S3TOOLS_LIB_PATH=/opt/sarex/lib/s3tools.so
S3TOOLS_WORKERS=10

# -----------------------------------------------------------------------------
# Kafka (KafkaSettings, env_prefix KAFKA_)
# Аутентификация приходит из Vault-секрета secrets/data/kafka/apps/django
# -----------------------------------------------------------------------------
KAFKA_BOOTSTRAP_SERVERS='["localhost:9092"]'
KAFKA_SECURITY_PROTOCOL=
KAFKA_SASL_MECHANISM=
KAFKA_SASL_PLAIN_USERNAME=user
KAFKA_SASL_PLAIN_PASSWORD=password
KAFKA_SSL_CAFILE=/usr/local/share/ca-certificates/kafka.crt
KAFKA_TOPICS='{"planning": "message-hub-stage", "ams-sync": "ams-sync"}'

# -----------------------------------------------------------------------------
# Sentry (SentrySettings, env_prefix SENTRY_) — читается из .env.base/.env
# -----------------------------------------------------------------------------
SENTRY_USE=0
SENTRY_HOST="https://sentry.sarex.io/"
SENTRY_ENVIRONMENT="production"
SENTRY_TRACES_SAMPLE_RATE=1.0
SENTRY_PROFILES_SAMPLE_RATE=0.1

# -----------------------------------------------------------------------------
# Server-флаги приложения (ServerSettings, env_prefix SERVER_)
# Ниже — переменные, реально задаваемые в манифестах кластера.
# -----------------------------------------------------------------------------
SERVER_HOST=https://lk.sarex.io
SERVER_API_HOST=https://api.sarex.io
SERVER_ZITADEL_ENABLED=True
SERVER_KAFKA_ENABLED=False
SERVER_USE_METASHAPE=0
SERVER_USE_CLICKHOUSE=0
SERVER_USE_CHANGELOG=0
SERVER_CHANGELOG_MODE=0
SERVER_CHANGELOG_MODE_SYSTEM_LOG=1
SERVER_SAVE_DIFF_DEM=1
SERVER_S3_STREAM_IMPORT=1
SERVER_USE_DJANGO_STORAGE=1
SERVER_DJANGO_URLS=1
SERVER_CHECK_IMPORT_HASH=1
SERVER_USE_WRORKFLOW_STATUS=1
SERVER_HIDE_USER_SCROLL_PERMISSIONS=0
SERVER_EXTERNAL_FIND_BY_USERNAME_ENABLED=True
SERVER_EXTERNAL_FIND_BY_EMAIL_ENABLED=True
SERVER_CHUNKED_PATH=/tmp/chunked_uploads/%Y/%m/%d
CHECK_IMPORT_HASH=1

# -----------------------------------------------------------------------------
# Workflows / processing (WorkFlowsSettings, env_prefix WORKFLOWS_)
# -----------------------------------------------------------------------------
WORKFLOWS_USE=1
WORKFLOWS_HOST=https://api.sarex.io
WORKFLOWS_BASE_HOST=https://lk.sarex.io
WORKFLOWS_PREFIX=/internal/v1
# WORKFLOWS_TIMEOUT=120
# WORKFLOWS_REGISTRY=cr.yandex/crp3ccidau046kdj8g9q
# WORKFLOWS_TAG=stable

# -----------------------------------------------------------------------------
# Внешние API-сервисы (наследуют BaseApiServiceMixin:
#   host / api_prefix / internal_host / internal_prefix / timeout / enable)
# -----------------------------------------------------------------------------
# Gateway (env_prefix GATEWAY_)
# GATEWAY_HOST=https://api.sarex.io
# Gatekeeper (env_prefix GK_)
# GK_ENCRYPTION_KEY=
# BIM v2 (env_prefix BIMV2_)
BIMV2_INTERNAL_HOST=http://bim-backend-v2-service.bim-api
BIMV2_TIMEOUT=60
# EAV (env_prefix EAV_)
EAV_ENABLE=1
# Documentation (env_prefix DOCUMENTATION_)
# DOCUMENTATION_HOST=https://api.sarex.io
# Analytics (env_prefix ANALYTICS_)
# ANALYTICS_HOST=https://lk.sarex.io
# Users (env_prefix USERS_)
# USERS_HOST=https://lk.sarex.io
# System log (env_prefix SYSTEM_LOG_)
# SYSTEM_LOG_INTERNAL_HOST=
# Resources (env_prefix RESOURCES_)
# RESOURCES_INTERNAL_HOST=http://localhost:8001

# -----------------------------------------------------------------------------
# Measurements (MeasurementSettings, env_prefix MEASUREMENTS_)
# -----------------------------------------------------------------------------
MEASUREMENTS_HOST=https://api.sarex.io/measurements/
# MEASUREMENTS_TIMEOUT=180
# MEASUREMENTS_WINDOW_SIZE=1000

# -----------------------------------------------------------------------------
# ClickHouse (ClickHouseSettings, env_prefix CLICKHOUSE_)
# -----------------------------------------------------------------------------
# CLICKHOUSE_HOST=
# CLICKHOUSE_PORT=9000
# CLICKHOUSE_USER=
# CLICKHOUSE_PASSWORD=
# CLICKHOUSE_DATABASE=values_db
# CLICKHOUSE_TABLE=values
# CLICKHOUSE_SECURE=False
# CLICKHOUSE_VERIFY=False
# CLICKHOUSE_CERT=

# -----------------------------------------------------------------------------
# Zitadel (ZitadelSettings, env_prefix ZITADEL_)
# ZITADEL_ACCESS_TOKEN приходит из Vault-секрета secrets/data/vault/common/django_auth
# -----------------------------------------------------------------------------
ZITADEL_HOST=https://zitadel.contour.infra.sarex.tech
ZITADEL_ACCESS_TOKEN=
# ZITADEL_USERS_ENDPOINT=/v2/users

# -----------------------------------------------------------------------------
# Keycloak (KeyCloakSettings env_prefix KC_, KeyCloakSyncSettings env_prefix KC_SYNC)
# -----------------------------------------------------------------------------
KC_SYNC_ENABLE=0
KC_USE_REDIRECT_LOGOUT=False
# KC_CLIENT_ID=
# KC_CLIENT_SECRET=
# KC_DISCOVERY_URL=
# KC_REALM=sarex

# -----------------------------------------------------------------------------
# Трейсинг (TracingConfig, env_prefix TRACING_) + OpenTelemetry
# -----------------------------------------------------------------------------
# TRACING_SERVICE_NAME=backend.sarex-stage
# TRACING_ENDPOINT=localhost:4317
# TRACING_INSECURE=False
# TRACING_ENVIRONMENT=prod

# -----------------------------------------------------------------------------
# Comparator / прочее
# -----------------------------------------------------------------------------
COMPARATOR_URL=https://wb.sarex.io/comparator
COMPARATOR_SECTION=sarex-production-storage
# COMPARATOR_JWT=
# COMPARATOR_BASIC_TOKEN=
# WORKFLOWSSETTINGS_HOST=https://api.sarex.io   # используется в configmap production.py
# WORKFLOWSSETTINGS_REGISTRY=cr.yandex/crp3ccidau046kdj8g9q

# -----------------------------------------------------------------------------
# Легаси/интеграции (значения по умолчанию есть в base.py)
# -----------------------------------------------------------------------------
# PG_NODE_HOST=127.0.0.1:5000
# PG_API_KEY=
# PG_MONGO_HOST=localhost
# PG_MONGO_PORT=27017
# PG_IMPORT_PATH=/home/sarex/pg/import
# WIKIMAPIA_API_KEY=
# ANALYTICS_IMPORT_METRICS_SHEET_NAME=SRX

# =============================================================================
# Frontend (sarex-frontend) — сборочные переменные (webpack DefinePlugin)
# Базовые хосты сервисов берутся из endpoints.js по ключу ENDPOINT.
# =============================================================================
# ENDPOINT=prod            # stage | prod | preprod | contour | local
# SAREX_BACKEND=https://stage.sarex.io/   # прокси-таргет backend при npm start (env.js)
# TYPE_OF_HTTP_SERVICE=original
# CLIENT_ID=
# AMPLITUDE_ENABLED=false
