Перейти к содержанию

Backend

Общая структура

  • Основной сервис: FastAPI (директория api-admin/)
  • Доп. сервис: Python backend + Celery worker (директория backend/)
  • Отдельный сервис: Rust API (директория api-rust/)

Стек

  • Python + FastAPI
  • SQLAlchemy + Alembic (миграции)
  • Supabase (PostgreSQL/Auth/Storage)
  • Redis (broker/result backend Celery, realtime/счётчики)
  • MongoDB (вспомогательное хранилище)

Маршруты и префиксы

  • Основной API смонтирован на / и на /api/v1 (важно для прокси и корректных base URL).
  • Auth endpoint'ы (примерно): /auth/login, /auth/token, /auth/refresh, /auth/me (уточняется по роутерам).

Авторизация

  • Используется Supabase Auth как база пользователей + связанная доменная таблица public.users.
  • Критично: триггеры/функции синхронизации пользователей должны заполнять обязательные поля (например role_id), иначе регистрация может падать.

Работа с БД

  • Операционная БД: PostgreSQL внутри Supabase (контейнер db).
  • Доступ из backend через переменные окружения (SUPABASE_DB_* / прямой DSN).

Интеграции

  • Платежи: backend обрабатывает init/webhook.
  • Файлы: через Supabase Storage или S3 (в зависимости от конфигурации).

Ошибки и проблемные места (первичный список)

  • Стабильность dev-логина зависит от корректных URL и прокси (Vite / Docker internal/external).
  • Расхождения миграций/схемы при “чистом” старте могут ломать авторизацию/сидинг.

Текущие backend-задачи

  • Актуализировать список endpoint'ов и схемы в [[docs/08_api/api]].
  • Уточнить домены MongoDB и ClickHouse (если используются).