Skip to content

Auth Service ​

Назначение ​

Сервис централизованной аутентификации и авторизации платформы Unishift. Обеспечивает регистрацию и вход пользователей, OAuth 2.0 (VK, Google, Yandex, GitHub, GitLab), управление сессиями и токенами доступа, профиль пользователя, администрирование.

Порты ​

  • HTTP: 8091
  • БД: auth_db (PostgreSQL)

Ключевые возможности ​

  • Двойные режимы аутентификации: Cookie (для браузеров/SPA) и Bearer JWT (для API/межсервисного взаимодействия)
  • OAuth 2.0 с 5 провайдерами: VK, Google, Yandex, GitHub, GitLab
  • CSRF-защита через state-параметры в OAuth
  • RBAC: роли user / admin, статусы active / inactive / banned
  • Наборы прав (permission sets): секции UI с уровнями none / view / edit; у пользователя не больше одного набора
  • Секция Concierge (concierge_chats; concierge_settings синхронизируется с ней)
  • Управление сессиями: создание, валидация, продление, завершение (одной/всех)
  • Personal Access Tokens (PAT) с настраиваемым TTL
  • Публикация событий user.created в NATS для реакции других микросервисов
  • Swagger UI: /swagger/index.html
  • Health check: GET /health

Схема БД ​

ТаблицаНазначение
usersУчётные записи (id, login, email, password, имена, avatar, status, role)
sessionsАктивные сессии (user_id, IP, user-agent, expiry)
oauth_providersПривязанные OAuth-аккаунты
access_tokensBearer-токены (name, note, expiry, revoked_at)
permissionsИменованные наборы секций UI

Секции UI ​

Грант на секцию: none / view / edit. Админ получает edit на все ключи; обычный пользователь — edit на продуктовые секции и none на settings, monitoring и concierge.

ГруппаКлючи
Хабыdashboard, ai_router, space, automation, settings, monitoring
Spacespace_chat, space_notes, space_tasks, space_media, space_data_tables
Automationautomation_requests, automation_commands, automation_flows, automation_scheduler
Settingssettings_info, settings_users, settings_groups, settings_permissions, settings_spaces, settings_ai_router* , settings_env_manager, settings_notifications
Monitoringmonitoring_users, monitoring_chats, monitoring_tokens, monitoring_pipelines, monitoring_jobs
Conciergeconcierge_chats (алиас concierge_settings всегда равен ему)

Хабы space / automation / settings / settings_ai_router вычисляются как максимум дочерних грантов. concierge_settings всегда копируется из concierge_chats. Секция Concierge у пользователя по умолчанию выключена — её выдаёт permission set. view открывает Чаты; Настройки Concierge — только edit.

Конфигурация ​

ПеременнаяПо умолчаниюОписание
PORT8091Порт сервера
DB_HOST—Адрес PostgreSQL
DB_PORT5432Порт PostgreSQL
DB_USER—Пользователь PostgreSQL
DB_PASSWORD—Пароль PostgreSQL
DB_NAME—Имя базы данных
DB_SSL_MODEdisableРежим SSL
JWT_SECRET—Секрет для JWT
JWT_ALGORITHMHS256Алгоритм JWT
JWT_TTL24hВремя жизни токена
SESSION_SECRET—Секрет сессий
SESSION_TTL168hВремя жизни сессии (7 дней)
SESSION_COOKIE_NAMEsession_idИмя cookie
SESSION_SECUREfalseHTTPS only cookie
SESSION_HTTP_ONLYtrueДоступ только через HTTP
SESSION_SAME_SITELaxSameSite policy
OAUTH_VK_CLIENT_ID—VK OAuth Client ID
OAUTH_VK_CLIENT_SECRET—VK OAuth Secret
OAUTH_VK_REDIRECT_URL—VK OAuth Callback URL
OAUTH_GOOGLE_CLIENT_ID—Google OAuth Client ID
OAUTH_GOOGLE_CLIENT_SECRET—Google OAuth Secret
OAUTH_GOOGLE_REDIRECT_URL—Google OAuth Callback URL
OAUTH_YANDEX_CLIENT_ID—Yandex OAuth Client ID
OAUTH_YANDEX_CLIENT_SECRET—Yandex OAuth Secret
OAUTH_YANDEX_REDIRECT_URL—Yandex OAuth Callback URL
OAUTH_GITHUB_CLIENT_ID—GitHub OAuth Client ID
OAUTH_GITHUB_CLIENT_SECRET—GitHub OAuth Secret
OAUTH_GITHUB_REDIRECT_URL—GitHub OAuth Callback URL
OAUTH_GITLAB_CLIENT_ID—GitLab OAuth Client ID
OAUTH_GITLAB_CLIENT_SECRET—GitLab OAuth Secret
OAUTH_GITLAB_REDIRECT_URL—GitLab OAuth Callback URL
MESSAGING_TYPEnatsТип брокера сообщений
MESSAGING_URLnats://localhost:4222URL NATS
LOG_LEVELinfoУровень логирования
LOG_FORMATjsonФормат логов
LOG_OUTPUTstdoutКуда писать логи