Files
han-app/architectory

Архитектура HAN Chat

Канонический набор архитектурных документов проекта. Описывает границы системы, интеграции, контракты API, инфраструктуру, настройки и процесс разработки.

Детальная схема таблиц App DB, правила проверки файлов (file_rules и др.) и OpenAPI-файлы — зона ответственности соответствующих модулей; архитектура задаёт только границы, контракты и общие правила.

Состав документов

Документ Содержание
arch-00-glossary.md Канонические имена и семантика enum/lifecycle: сущности, поля, id, enum, бакеты S3, env
arch-01-system-architecture.md Общая архитектура: компоненты, сценарии, потоки данных, безопасность
arch-02-api-contracts.md Реестр API-контрактов, realtime, гостевая сессия, OpenAPI, аудит
arch-03-docker-compose-blueprint.md Требования к Docker Compose, nginx, сетям, TLS и rate limits
arch-04-settings-and-content.md .env (infra), таблица app_settings, значения service-token переменных, типы файлов
arch-05-agent-development-process.md Правила разработки модулей отдельными агентами

Как читать

  1. Начните с arch-01 — общая картина и зафиксированные решения MVP.
  2. При работе с API — arch-02; при деплое — arch-03; при настройках — arch-04.
  3. Спорные имена полей, id, enum, бакетов и базовая семантика enum/lifecycle — arch-00. Лимиты и правила реализации остаются в профильных arch-*.
  4. Перед разработкой модуля — arch-05 и релевантные разделы arch-01/arch-02.

Приоритет документов

При конфликте требований:

  1. arch-00имена и базовая семантика (поля, id, enum, бакеты, env, смысл статусов); не бизнес-лимиты и не детальная реализация.
  2. arch-01 — границы сервисов, сценарии, sync, безопасность.
  3. arch-02 — HTTP-контракты и направление вызовов.
  4. arch-03 — инфраструктура и nginx.
  5. arch-04 — env, app_settings, публичные DTO.
  6. arch-05 — процесс разработки.

Профильные спецификации модулей уточняют реализацию внутри этих границ. Если границы не позволяют эффективно реализовать модуль, то агент, разрабатывающий модуль, может предложить внести изменения в архитектуру.

Разрешение конфликтов

  • Имена полей, бакетов, статусов → arch-00, затем синхронизация arch-*.
  • Endpoint или auth → arch-02, при необходимости arch-01/arch-03.
  • Новая интеграция → сначала arch-02.
  • Compose, nginx, TLS → arch-03.

В бэклоге (не MVP)

Тема Где зафиксировано
Доставка документов компании из Bitrix24 в приложение (bitrix-syncapi-backend, уведомление клиента) !Backlog.md, п. 9; arch-01 — заглушка UI «Документы»
Интеграция с SMS-провайдерами (отправка OTP, отключение KEYCLOAK_OTP_MOCK_*) !Backlog.md, п. 10
Изоляция bitrix-sync на отдельную VM !Backlog.md, п. 8

Открытые пробелы

# Пробел Статус
G8 Явный список is_public=true для ключей app_settings Отложить до оформления сервисов; seed в модуле database
G9 GRANT-модель bitrix_sync_user на han_app: таблицы, колонки, read/write границы Уточнить в спецификации database и bitrix-sync
G10 Полный DTO GET /api/v1/public/app-config и мэппинг setting_key → response field Уточнить при оформлении OpenAPI api-backend
G11 Версионирование API/WS: deprecation policy, срок поддержки v1, ws_protocol_version Уточнить перед публичным релизом API
G12 Масштабирование realtime: Redis Pub/Sub, sticky sessions, backpressure при нескольких репликах api-backend Post-MVP / перед горизонтальным масштабированием
G13 Contract tests между api-backend, message-safety, bitrix-local-app, bitrix-sync Добавить в DoD модулей после появления OpenAPI

Обновление документации

  • Изменение MVP → arch-01 + arch-02 (+ arch-03/arch-04 при необходимости).
  • Новый env или ключ app_settings → arch-04.
  • Новый термин / enum → arch-00, затем поиск по arch-*.
  • Закрытие пробела → убрать из «Открытые пробелы» и отразить решение в arch-*.