# Архитектура 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`