# ============================================================================= # 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