7.1 KiB
arch-00. Глоссарий и единый словарь терминов
Назначение
Канонические имена сущностей, полей, идентификаторов, enum-значений, бакетов S3, env-переменных и терминов проекта.
При расхождении имён приоритет у настоящего словаря.
Bucket Selectel S3
| Логическое имя | env-переменная | Пример физического бакета |
|---|---|---|
| S3-quarantine | SELECTEL_S3_BUCKET_QUARANTINE |
han-chat-quarantine |
| S3-data (attachments) | SELECTEL_S3_BUCKET_ATTACHMENTS |
han-chat-attachments |
| S3-data (documents) | SELECTEL_S3_BUCKET_DOCUMENTS |
han-chat-documents |
В тексте: S3-quarantine — временное хранилище до вердикта Message Safety; S3-data — проверенные файлы (attachments и documents — два физических бакета).
Сущности App DB (основные)
| Имя | Схема | Назначение (кратко) |
|---|---|---|
UserIdentity |
han_app |
Локальный пользователь, связь с Keycloak |
UxSession |
han_app |
Аналитическая UX-сессия (период активности пользователя) |
UserConsent |
han_app |
Запись о принятии согласий (до OTP) |
ClientProfile |
han_app |
Кэш профиля для UI |
Dialog |
han_app |
Диалог клиента с Open Lines |
Message |
han_app |
Сообщение в диалоге |
MessageAttachment |
han_app |
Вложение к сообщению |
sync_queue |
han_app |
Очередь sync App → Bitrix24 |
entity_external_mapping |
han_app |
Маппинг App entity ↔ Bitrix entity |
app_settings |
han_app |
Бизнес-настройки |
text_resources |
han_app |
Тексты UI по мнемоникам |
popular_questions |
han_app |
Популярные вопросы главного экрана |
dialog_sessions |
bitrix_local |
Маппинг чата Open Lines |
Идентификаторы
| Имя | Где используется |
|---|---|
dialog_id |
UUID диалога в приложении; равен external_chat_id в Open Lines |
external_chat_id |
Идентификатор чата для bitrix-local-app / imconnector |
keycloak_sub |
Subject JWT Keycloak; ключ UserIdentity |
guest_session_id |
UUID гостевой сессии до OTP |
ux_session_id |
UUID аналитической UX-сессии; заголовок X-Ux-Session-Id |
bitrix_contact_id |
ID Contact в Bitrix24 CRM |
bitrix_chat_id |
ID чата Open Lines в Bitrix24 |
session_id |
ID сессии Open Lines (поле dialog_sessions; не путать с ux_session_id) |
task_id |
ID async-проверки Message Safety |
request_id |
Корреляция HTTP-запроса (заголовок X-Request-ID) |
Публичные id сущностей — UUID.
UxSession (аналитическая UX-сессия)
Определение
UxSession — период непрерывной активности пользователя в приложении (web / iOS / Android) для аналитики и сквозной корреляции логов и событий.
- Идентификатор периода —
ux_session_id(UUID). - Начало периода фиксируется событием
session_start(ровно один раз на период). - Запись создаётся в App DB при
POST /api/v1/analytics/session-start(см. arch-02). - Frontend передаёт
X-Ux-Session-Idво всех запросах к backend, пока сессия активна.
UxSession не является механизмом авторизации. Отсутствие или неизвестный ux_session_id не блокирует API (кроме endpoint, где id обязателен по контракту, напр. POST /api/v1/consents).
Когда начинается новая UxSession
Новый ux_session_id + событие session_start — только если:
first_launch— приложение открыто, в памяти нетux_session_id.cold_start— после kill app или закрытия вкладки браузера (память очищена).idle_timeout— возврат спустя более N минут (ux.session.idle_timeout_minutesвapp_settings, default 30).
Когда та же UxSession продолжается
- возврат из фона в пределах idle timeout (напр. через 5 минут — без нового
session_start); - успешный OTP или refresh access token;
- навигация между экранами внутри приложения.
Message — enum и поля
| Имя | Допустимые значения |
|---|---|
Message.sender_type |
client, company |
Message.safety_status |
pending, allowed, blocked (needs_review — зарезервирован, MVP не используется) |
Message.text |
текст сообщения; пустая строка для файлового сообщения |
content_kind (логическое) |
text, file — тип исходящего сообщения клиента (MVP) |
Семантика allow / deny / pending в message-safety и HTTP-коды — arch-02-api-contracts.md.
MessageAttachment.scan_status
| Значение | Смысл |
|---|---|
pending |
Файл в S3-quarantine, проверка не завершена |
clean |
Проверка завершена, allow |
infected |
Проверка завершена, deny |
failed |
Ошибка инфраструктуры проверки |
Мнемоники internal API
Префикс: /internal/{service_mnemonic}/v1/. Health: /health/*.
{service_mnemonic} |
Сервис |
|---|---|
safety |
message-safety |
openlines |
bitrix-local-app, приёмник inbox на api-backend |
sync |
bitrix-sync |
Bitrix24 Open Lines
| Имя | Значение |
|---|---|
BITRIX_CONNECTOR_ID / connector |
han_mobile_app |
BITRIX_OPEN_LINE_ID |
8 |
| Канонический URL коннектора | https://han0107.bitrix24.ru/contact_center/connector/?ID=han_mobile_app&LINE=8 |
Термины чата
| Термин | Message.sender_type / направление |
|---|---|
| клиент | client; исходящее сообщение |
| оператор | company; входящее сообщение |
| сообщение пользователя | исходящее; проверяет Message Safety |