# =============================================================================
# documentations-api / documentations-filestream — пример переменных окружения
# =============================================================================
# Все переменные читаются напрямую из окружения процесса библиотекой
# kelseyhightower/envconfig (config/config.go). Префикса и вложенности НЕТ —
# имена плоские. Значения ниже — ориентир для локального запуска (аналог
# .docker/.env). Оба бинарника (api и filestreamer) используют один и тот же
# набор переменных.

# --- Адреса прослушивания ----------------------------------------------------
API_ADDRESS=0.0.0.0:6666          # порт основного API (cmd/api)
API_ADDRESS_FILE=0.0.0.0:7777     # порт файлового стримера (cmd/filestreamer)

# --- PostgreSQL --------------------------------------------------------------
POSTGRES_ADDRESS=127.0.0.1
POSTGRES_PORT=5432
POSTGRES_USER=user
POSTGRES_PASSWORD=password
POSTGRES_DB=documentations
POSTGRES_POOL_SIZE=10             # учитывается только в api; filestreamer жёстко использует 50
ENABLE_SSL=0                      # 1 — TLS к БД, тогда нужен YC-PG-CERTIFICATE
# YC-PG-CERTIFICATE=              # PEM CA-сертификат PostgreSQL (в проде — из секрета)

# --- S3 (объектное хранилище) ------------------------------------------------
ENABLE_S3=0                       # в api при 0 сервис стартует без S3; в filestreamer S3 обязателен
S3_SERVICE_ACCOUNT=/etc/sarex/yc_s3_doc_account.json   # путь к JSON сервис-аккаунта
# S3_SERVICE_ACCOUNT_STR=         # альтернатива: сам JSON строкой

# --- Sarex backend (Django) --------------------------------------------------
DJANGO_HOST=https://stage.sarex.io
DJANGO_BASIC_AUTH=               # basic-auth для системных вызовов Django
DJANGO_BASIC_AUTH_FOR_GET_USER=  # отдельный basic-auth для получения пользователей
DJANGO_ORIGINATOR=docs_local

# --- Zitadel (опциональная аутентификация) -----------------------------------
USE_ZITADEL=0
ZITADEL_DOMAIN=idp.dev.stage.sarex.io
ZITADEL_ACCOUNT=/etc/sarex/zitadel/zitadel-account.json

# --- Внешние сервисы (базовые URL) -------------------------------------------
FILE_URL_EXTERNAL=https://stage-api.sarex.io/files
DOCUMENTATION_URL=http://localhost:8000/
WORKFLOW_URL=https://stage-api.sarex.io/workflows/api
WORKSPACE_URL=https://stage-api.sarex.io/worspace/api
WORKSPACE_V2_EXTERNAL_URL=https://stage.sarex.io/workspaces-v2/
WORKSPACE_BUNDLE_VERSION=v1
MARKS_PROCESSING_URL=http://marks-service.documentations:8000
BIM_API_URL=http://bim-api-service.bim-api-stage/
BIM_API_V2_URL=http://bim-core-api.platform.svc.cluster.local:8000/
BIM_API_URL_EXTERNAL=https://stage-api.sarex.io/bim
SYSTEM_LOG_URL=http://localhost:8888
FLOWS_URL=http://backend-service.proc.svc.cluster.local:8000
AUTOMATION_URL=http://automation-api-service.automation-stage.svc.cluster.local:8000
# TRANSMITTALS_BASE_URL=http://transmittal-service.documentations:8000   # опционально

# --- Публичные ссылки на документы -------------------------------------------
PUBLIC_LINK_HOST=https://document-link.stage.sarex.io
PUBLIC_KEY=                       # PEM RSA public key (PKIX) для проверки JWT
DOCUMENT_PUBLIC_LINK_JWT_SECRET=  # секрет HMAC для JWT публичных ссылок/временных загрузок
DOCUMENT_PUBLIC_LINK_JWT_EXPIRATION_MINUTES=5
PUBLIC_LINK_FOLDER_CONNECTOR_ENABLED=1

# --- Подпись ссылок скачивания (signature-in-URL) ----------------------------
ENABLE_SIGNATURE_IN_URL=false     # при true обязателен рабочий Valkey и SIGNATURE_SECRET_KEY
SIGNATURE_SECRET_KEY=
SIGNATURE_IN_URL_EXPIRATION_SECONDS=600
ENABLE_AUTH_JWT_IN_URL=true

# --- Valkey / Redis (кэши, кэш подписей) -------------------------------------
VALKEY_ADDR=localhost:6380        # host:port; пустая строка полностью отключает клиент
VALKEY_LOGIN=
VALKEY_PASSWORD=
VALKEY_HOST=
VALKEY_DB=0
VALKEY_CACHE_TTL=1h
VALKEY_SSL=false
VALKEY_SSL_CA_CERTS=

# --- Файловый стример / кэш --------------------------------------------------
READ_WRITE_TIMEOUT_FILE_STREAM=6h
USE_CACHE_IN_FILE_STREAMER=true
CACHE_DEFAULT_EXPIRATION=30s
CACHE_CLEANUP_INTERVAL=35s

# --- BIM / обработка ---------------------------------------------------------
USE_BIMV1_FOR_BIMV2=1
USE_BIM_INSERTER=1
USE_LEGACY_BIM_FLOW=0
LAST_MASTER_BIM=1541
LAST_SLAVE_1_BIM=5000
LAST_SLAVE_2_BIM=15000
CONVERT_DWG_TO_GEOJSON=true
CONVERT_DXF_TO_GEOJSON=true
IS_CONVERTED_PDF_UPLOADING_TO_S3=true
DELETE_S3D_AFTER_MESHOPT=false
WORKFLOW_IMAGES_VERSION=develop
WORKFLOWS_IMAGES_VERSION=develop
CONTAINER_REGISTRY=cr.yandex/crp3ccidau046kdj8g9q
WORKFLOWS_CONFIG_FILEPATH=.example.tasks_execution_config.json

# --- Штампы/маркировки: HTTP или RabbitMQ ------------------------------------
USE_MARKS_RABBITMQ=0              # 0 — ходить в MARKS_PROCESSING_URL по HTTP; 1 — через RabbitMQ
MARKS_RABBITMQ_HOST=
MARKS_RABBITMQ_PORT=
MARKS_RABBITMQ_USER=
MARKS_RABBITMQ_PASSWORD=
MARKS_RABBITMQ_API=

# --- Rate limit для /documents/metadata --------------------------------------
METADATA_RATE_LIMIT_ENABLED=true
METADATA_RATE_LIMIT_MAX_REQUESTS=10

# --- Почта (флаги; сама отправка идёт через внешние сервисы) ------------------
ENABLE_MAILGUN=true
ENABLE_SMTP=false

# --- Наблюдаемость -----------------------------------------------------------
ENVIRONMENT=stage
SENTRY_DSN=
SENTRY_DEBUG=0
NAMESPACE=local
ENABLE_SQL_QUERY=1                # логировать SQL-запросы (для локальной отладки)
TRACER_USE=false
TRACER_HOST=localhost:4317
TRACER_USE_INSECURE=true
TRACER_LOGGER_NAME=tracer_logger
SERVICE_NAME=documentations-api
SERVICE_NAME_FILESTREAM=filestream-api

# --- Только для интеграционных тестов (кодом приложения не читается) ----------
# KEY_JWT=example_jwt
