Skip to content

Инфраструктура и секреты 🔐

Все настройки системы Gifty управляются через переменные окружения (.env файл). Этот документ объясняет назначение ключевых параметров и правила работы с токенами.

🔑 Токены и Безопасность

1. Межсервисное взаимодействие

Для безопасности внутренних эндпоинтов (например, когда Скрапер шлет данные в Core API) используется Internal Token.

  • INTERNAL_API_TOKEN: Общий секрет для всех микросервисов. Должен передаваться в заголовке X-Internal-Token.

2. Внешние API токены

  • INTELLIGENCE_API_TOKEN: Токен для доступа к AI-движку (оценка товаров, тегирование). Без него функции ML будут недоступны.
  • WEEEK_API_TOKEN: Позволяет боту управлять задачами в Weeek.
  • ANALYTICS_API_TOKEN: Токен для доступа к сервису аналитики (DAU/MAU).

3. Авторизация (OAuth)

Для каждого провайдера (Google, Yandex, VK) требуются ID и Secret, полученные в консоли разработчика.

  • GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET
  • YANDEX_CLIENT_ID, YANDEX_CLIENT_SECRET
  • VK_CLIENT_ID, VK_CLIENT_SECRET

🏗 Подключения (Data & Infra)

Переменная Описание Значение для Dev
DATABASE_URL Строка подключения к PostgreSQL. postgresql+asyncpg://user:pass@localhost:5432/db
REDIS_URL Адрес Redis для сессий и очередей. redis://localhost:6379/0
RABBITMQ_URL Брокер сообщений для парсинга. amqp://guest:guest@localhost:5672/
API_BASE Публичный URL бэкенда (для колбэков). http://localhost:8000
FRONTEND_BASE URL фронтенда (React). http://localhost:5173

🤖 Настройки Telegram

  • TELEGRAM_BOT_TOKEN: Токен вашего бота от @BotFather.
  • TELEGRAM_ADMIN_SECRET: Секретный ключ для первой регистрации суперадмина через /start <secret>.
  • TELEGRAM_WEBAPP_URL: URL запущенного дашборда парсинга (обязательно HTTPS для работы в телеграме).

⚙️ Системные флаги

  • ENV: Режим работы (dev или prod). Влияет на строгость проверок SSL и логгирование.
  • DEBUG: Если True, FastAPI будет выводить подробные ошибки и интерактивную документацию.
  • SECRET_KEY: Используется для шифрования куки и подписи сессий. В продакшене должен быть длинной случайной строкой.

⚠️ Правила работы с секретами

  1. Никогда не пушьте .env файл в GitHub.
  2. Используйте .env.example для описания новых переменных, но без живых ключей.
  3. Если вы добавили новую переменную в app/config.py, обязательно обновите этот документ и .env.example.