# ============================================================================= # flows-backend (.env.example) # ============================================================================= # Приложение читает переменные окружения напрямую через pydantic BaseSettings # (src/flow/config.py). У верхнеуровневого класса Settings префикса нет — его # поля задаются переменными с именем поля в ВЕРХНЕМ регистре (напр. BASE_HOST). # Вложенные секции конфигурируются отдельными классами со своим env_prefix # (PG_, DJANGO_, DOCUMENTATION_, RABBITMQ_, TRACING_ и т.д.). # # Приложение НЕ загружает .env автоматически (нет python-dotenv/env_file) — # экспортируйте переменные в окружение самостоятельно, напр.: # set -a && . ./.env && set +a # ============================================================================= # App / общие настройки (класс Settings, без префикса) SERVICE_NAME=review-service SERVICE_HOST=0.0.0.0 SERVICE_PORT=8000 # Префикс за реверс-прокси (в кластере: /flows) PROXY_PATH_PREFIX= API_PREFIX=/api/v1 API_INTERNAL_PREFIX=/internal/v1 BASE_HOST=https://lk.sarex.io DEBUG=False # Проверка подписи JWT (True в кластере; False удобно для локальной разработки) JWT_AUTH_ENABLE=True # Таймаут gunicorn (используется в entrypoint.sh, не кодом) TIMEOUT=120 # Feature-флаги ENABLE_MAILINGS=True ENABLE_MAILGUN=True ENABLE_CELERY=True ENABLE_EVENTS=True ENABLE_ANALYTICS=False SYNC_RESOURCE_ID=False # Logger (класс LoggerSettings, префикс LOG_) LOG_LEVEL=INFO # Database — основной PostgreSQL (класс PostgresSettings, префикс PG_) PG_HOST=127.0.0.1 PG_PORT=6432 PG_LOGIN=flow PG_PASSWORD=password PG_DB=flows_db # Documentation PG — БД сервиса документаций (класс DocumentationDBSettings, префикс DOCUMENTATION_PG_) DOCUMENTATION_PG_HOST=127.0.0.1 DOCUMENTATION_PG_PORT=6432 DOCUMENTATION_PG_USERNAME=flow DOCUMENTATION_PG_PASSWORD=password DOCUMENTATION_PG_DATABASE=flows_db # RabbitMQ (класс RabbitSettings, префикс RABBITMQ_) RABBITMQ_HOST=localhost RABBITMQ_PORT=5672 RABBITMQ_USERNAME=flow RABBITMQ_PASSWORD=flow RABBITMQ_VHOST=flows # Celery (класс CelerySettings, префикс CELERY_; брокер берётся из RABBITMQ_*) CELERY_QUEUE=flow # Sarex backend (Django) (класс DjangoSettings, префикс DJANGO_) DJANGO_USE=True DJANGO_HOST=http://localhost:8000/api DJANGO_TIMEOUT=60 # base64(login:password) для Basic-auth DJANGO_TOKEN= # Documentation service (класс DocumentationSettings, префикс DOCUMENTATION_) DOCUMENTATION_USE=True DOCUMENTATION_HOST=https://api.sarex.io/documentations/api/v1 DOCUMENTATION_EXTERNAL_HOST=https://api.sarex.io/documentations/api/v1 DOCUMENTATION_TIMEOUT=60 # EAV service (класс EAVSettings, префикс EAV_) EAV_HOST=http://eav-service.eav-prod EAV_TIMEOUT=60 # Planning management / MSP (класс PlanningManagementSettings, префикс PLANNING_) PLANNING_USE=True PLANNING_HOST=https://api.sarex.io/api/pm/msp PLANNING_TIMEOUT=60 # Checklists service (класс CheckListsSettings, префикс CHECKLIST_) CHECKLIST_USE=True CHECKLIST_HOST=https://stage-api.sarex.io/checklists CHECKLIST_TIMEOUT=60 # Workflows service (класс WorkflowsSettings, префикс WORKFLOWS_) WORKFLOWS_USE=True WORKFLOWS_HOST=https://lk.sarex.io/workflows/api/v1 WORKFLOWS_TIMEOUT=60 # Gateway / Resources (поля класса Settings, используются при SYNC_RESOURCE_ID=1) GATEWAY_URL=https://stage-api.sarex.io/gateway RESOURCE_URL=https://stage-api.sarex.io/resources # Event bus (класс EventBusSettings, префикс EVENTS_) EVENTS_HOST=ws://localhost:8000/ws EVENTS_CONNECTION_TIMEOUT=5 EVENTS_COUNT_RETRIES=100 # Admin panel (класс AdminPanelSettings, префикс ADMIN_PANEL_) ADMIN_PANEL_SECRET_KEY=hex ADMIN_PANEL_TOKEN_MAX_AGE=86400 # Auth (RSA public key для проверки JWT; в кластере монтируется как JWT_PUBLIC_KEY) JWT_PUBLIC_KEY= # Sentry (класс SentrySettings, префикс SENTRY_) SENTRY_DSN= SENTRY_ENVIRONMENT=production SENTRY_TRACES_SAMPLE_RATE=1.0 SENTRY_SEND_DEFAULT_PII=True # Почта: SMTP (поля класса Settings; альтернатива Mailgun) SMTP_HOST= SMTP_PORT= FROM_EMAIL= # OpenTelemetry / трейсинг (класс TraceSettings, префикс TRACING_) TRACING_USE=False TRACING_HOST=localhost:4317 TRACING_INSECURE=False TRACING_SERVICE_NAME=flows TRACING_ENVIRONMENT=prod TRACING_MODULE=flows TRACING_TEAM=team_proc TRACING_COMPONENT=backend # Прочее (не читается приложением, задаётся в инфраструктуре) # ENABLE_METRICS=0 # ============================================================================= # Переменные ТОЛЬКО для celery-воркера и scheduler # (src/worker/notifications_config.py, src/worker/sync_config.py) # ============================================================================= # Flows DB (класс FlowsDatabase, префикс FLOWS_DB_) FLOWS_DB_HOST=127.0.0.1 FLOWS_DB_PORT=6432 FLOWS_DB_DB=flows_db FLOWS_DB_USERNAME=flow FLOWS_DB_PASSWORD=password # Issues DB (класс IssuesDatabase, префикс ISSUES_DB_) ISSUES_DB_HOST=127.0.0.1 ISSUES_DB_PORT=6432 ISSUES_DB_DB=issues_db ISSUES_DB_USERNAME=issues ISSUES_DB_PASSWORD=password # RFI DB (класс RFIDatabase, префикс RFI_DB_) RFI_DB_HOST=127.0.0.1 RFI_DB_PORT=6432 RFI_DB_DB=rfi_db RFI_DB_USERNAME=rfi RFI_DB_PASSWORD=password # Django-клиент воркера (класс DjangoClient, префикс DJANGO_) DJANGO_BASE_HOST=https://lk.sarex.io # DJANGO_HOST — см. выше # DJANGO_AUTH — base64(login:password); в кластере берётся из секрета django DJANGO_AUTH= # Resources-клиент воркера (класс ResourcesClient, префикс RESOURCES_) RESOURCES_HOST=http://iams.iam.svc.cluster.local:8080 # Flows-клиент воркера (класс FlowsClient, префикс FLOWS_) FLOWS_HOST=https://api.sarex.io/flows # Настройки рассылок воркера (класс NotificationGlobalSettings, префикс NOTIFICATION_SETTINGS_) NOTIFICATION_SETTINGS_ENABLE_MAILINGS=True NOTIFICATION_SETTINGS_USE_MAILGUN=True # Mailgun (класс MailgunClient, префикс MAILGUN_) MAILGUN_HOST=https://api.mailgun.net/v3/mg.sarex.io MAILGUN_API_KEY= # Отправка уведомлений через Workflows (класс WorkflowsNotificationsSettings, префикс WORKFLOWS_NOTIFICATIONS_) WORKFLOWS_NOTIFICATIONS_REGISTRY=cr.yandex/crp3ccidau046kdj8g9q WORKFLOWS_NOTIFICATIONS_SMTP_HOST=127.0.0.1 WORKFLOWS_NOTIFICATIONS_SMTP_PORT=42069 WORKFLOWS_NOTIFICATIONS_FROM_EMAIL=hello@sarex.io