Kit.Db/projects/pg/kit_auth_pg/_docs/architecture.md

3.4 KiB
Raw Blame History

Архитектура Kit.Auth.Db

Обзор

База данных авторизации платформы Kit. Хранит данные пользователей и связанные сущности (кабинеты — LEGACY).

Схема

Единая схема auth — изолирует объекты авторизации от других доменов.

Таблицы

auth."user"

Основная таблица пользователей. Зарезервированное слово PostgreSQL, поэтому имя экранируется кавычками.

Ключевые колонки:

  • id (serial PK) — идентификатор
  • login (text, NOT NULL) — логин для входа
  • email (text) — электронная почта (дополнительный вход)
  • password (text) — хеш PBKDF2 (формат: pbkdf2-sha256$iter$salt$hash)
  • password_temp (text) — DEPRECATED, временный пароль (оставлен для совместимости)
  • outer_user_id (text) — идентификатор во внешней системе
  • is_blocked (boolean) — флаг блокировки
  • is_deleted / date_deleted — мягкое удаление

Примечание: Состояние аутентификации (подтверждение email, lockout, счётчик неудач) и сессии вынесены в токен-БД (Kit.Auth.Token.Db).

auth.cabinet (LEGACY)

Кабинеты/организации. Будет убрана в будущем.

auth.user_cabinet (LEGACY)

Связь пользователей с кабинетами. Без PK и FK (legacy).

Функции

user

Функция Описание
user_insert Вставка пользователя
user_select Выборка с пейджингом и фильтрами
user_select_by_ids Batch-выборка по списку id
user_get_by_login Поиск по логину и паролю
user_get_for_auth Поиск для аутентификации (без проверки пароля)
user_get_profile Профиль владельца токена
user_delete Мягкое удаление
user_update Обновление профиля
user_update_password Установка постоянного пароля
user_update_password_temp Установка временного пароля
user_set_is_blocked Блокировка/разблокировка
user_login_exists Проверка занятости логина
user_email_exists Проверка занятости email

cabinet (LEGACY)

Функция Описание
cabinet_insert Вставка кабинета
cabinet_select Выборка с пейджингом
cabinet_update Обновление
cabinet_delete Мягкое удаление

user_cabinet (LEGACY)

Функция Описание
user_cabinet_bulk_insert Полная замена привязок
user_cabinet_select Кабинеты пользователя

Связи с другими БД

  • Kit.Auth.Token.Db (схема token) — токены авторизации ссылаются на пользователей по user_id