From ae4141ba28751778c203e4daccf4f1f9b7028f74 Mon Sep 17 00:00:00 2001 From: SkyForces <64554063+SkyForcesGit@users.noreply.github.com> Date: Fri, 24 Jul 2026 00:46:19 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B2=D1=81=D0=B5=D1=85=20=D0=BD=D0=B0?= =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BE=D0=BA=20=D0=B7=D0=B0=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B8=D0=BE=D0=B4=20=D0=BF=D1=80=D0=B0=D0=BA?= =?UTF-8?q?=D1=82=D0=B8=D0=BA=D0=B8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 20 + .env.example | 27 + .gitattributes | 7 + .gitignore | 6 +- Dockerfile | 25 + README.md | 142 +++- app/main.py | 120 ---- apps/__init__.py | 0 apps/bot/__init__.py | 3 + apps/bot/__main__.py | 3 + apps/bot/binding.py | 88 +++ apps/bot/bitrix.py | 161 +++++ apps/bot/config.py | 42 ++ apps/bot/crypto.py | 20 + apps/bot/database.py | 38 ++ apps/bot/deals.py | 641 ++++++++++++++++++ apps/bot/domain.py | 73 ++ apps/bot/handlers.py | 531 +++++++++++++++ apps/bot/main.py | 57 ++ apps/bot/middleware.py | 34 + apps/bot/oauth.py | 84 +++ apps/bot/presentation.py | 272 ++++++++ apps/site/__init__.py | 3 + apps/site/app.py | 69 ++ apps/site/binding.py | 98 +++ apps/site/bitrix.py | 118 ++++ apps/site/config.py | 57 ++ apps/site/crypto.py | 14 + apps/site/database.py | 39 ++ apps/site/gunicorn.conf.py | 7 + apps/site/routes.py | 67 ++ apps/site/templates/binding.html | 38 ++ compose.yaml | 100 +++ db/init/01-users.sh | 25 + db/migrate.sh | 65 ++ db/migrations/001_initial.sql | 493 ++++++++++++++ docs/adr/001-apps-and-database.md | 64 ++ docs/adr/002-oauth-telegram-binding.md | 46 ++ docs/adr/003-oauth-credential-lifecycle.md | 53 ++ docs/adr/004-bot-layers.md | 61 ++ docs/adr/005-bitrix-deal-read-model.md | 83 +++ docs/adr/006-guarded-deal-mutations.md | 60 ++ docs/adr/007-container-deployment.md | 46 ++ docs/adr/008-data-storage-and-access.md | 70 ++ .../assets/report/architecture-components.png | Bin 0 -> 25350 bytes docs/adr/assets/report/binding-sequence.png | Bin 0 -> 47174 bytes docs/adr/assets/report/bot-class-diagram.png | Bin 0 -> 58830 bytes docs/adr/assets/report/database-schema.png | Bin 0 -> 56578 bytes .../report/deal-assignment-sequence.png | Bin 0 -> 40771 bytes docs/adr/assets/report/deal-card-ui.png | Bin 0 -> 103921 bytes .../assets/report/deal-list-card-sequence.png | Bin 0 -> 43781 bytes docs/adr/assets/report/deal-list-ui.png | Bin 0 -> 218533 bytes .../assets/report/oauth-refresh-sequence.png | Bin 0 -> 41494 bytes .../report/reminder-history-sequence.png | Bin 0 -> 32553 bytes docs/adr/main.md | 46 +- requirements.txt | 7 +- 56 files changed, 3987 insertions(+), 136 deletions(-) create mode 100644 .dockerignore create mode 100644 .env.example create mode 100644 .gitattributes create mode 100644 Dockerfile delete mode 100644 app/main.py create mode 100644 apps/__init__.py create mode 100644 apps/bot/__init__.py create mode 100644 apps/bot/__main__.py create mode 100644 apps/bot/binding.py create mode 100644 apps/bot/bitrix.py create mode 100644 apps/bot/config.py create mode 100644 apps/bot/crypto.py create mode 100644 apps/bot/database.py create mode 100644 apps/bot/deals.py create mode 100644 apps/bot/domain.py create mode 100644 apps/bot/handlers.py create mode 100644 apps/bot/main.py create mode 100644 apps/bot/middleware.py create mode 100644 apps/bot/oauth.py create mode 100644 apps/bot/presentation.py create mode 100644 apps/site/__init__.py create mode 100644 apps/site/app.py create mode 100644 apps/site/binding.py create mode 100644 apps/site/bitrix.py create mode 100644 apps/site/config.py create mode 100644 apps/site/crypto.py create mode 100644 apps/site/database.py create mode 100644 apps/site/gunicorn.conf.py create mode 100644 apps/site/routes.py create mode 100644 apps/site/templates/binding.html create mode 100644 compose.yaml create mode 100644 db/init/01-users.sh create mode 100644 db/migrate.sh create mode 100644 db/migrations/001_initial.sql create mode 100644 docs/adr/001-apps-and-database.md create mode 100644 docs/adr/002-oauth-telegram-binding.md create mode 100644 docs/adr/003-oauth-credential-lifecycle.md create mode 100644 docs/adr/004-bot-layers.md create mode 100644 docs/adr/005-bitrix-deal-read-model.md create mode 100644 docs/adr/006-guarded-deal-mutations.md create mode 100644 docs/adr/007-container-deployment.md create mode 100644 docs/adr/008-data-storage-and-access.md create mode 100644 docs/adr/assets/report/architecture-components.png create mode 100644 docs/adr/assets/report/binding-sequence.png create mode 100644 docs/adr/assets/report/bot-class-diagram.png create mode 100644 docs/adr/assets/report/database-schema.png create mode 100644 docs/adr/assets/report/deal-assignment-sequence.png create mode 100644 docs/adr/assets/report/deal-card-ui.png create mode 100644 docs/adr/assets/report/deal-list-card-sequence.png create mode 100644 docs/adr/assets/report/deal-list-ui.png create mode 100644 docs/adr/assets/report/oauth-refresh-sequence.png create mode 100644 docs/adr/assets/report/reminder-history-sequence.png diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..ebed0bc --- /dev/null +++ b/.dockerignore @@ -0,0 +1,20 @@ +.git/ +.agents/ +.codex/ + +.idea/ +.vscode/ +.venv/ +venv/ +env/ + +__pycache__/ +*.py[cod] +tests +docs +.ruff_cache/ + +.env +.env.* + +db/ diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..90bd831 --- /dev/null +++ b/.env.example @@ -0,0 +1,27 @@ +# PostgreSQL +POSTGRES_DB=bitrix_bot +POSTGRES_USER=postgres +POSTGRES_PASSWORD=change_admin_password +SITE_DB_PASSWORD=change_site_password +BOT_DB_PASSWORD=change_bot_password + +# Внешний nginx проксирует на 127.0.0.1:8000. +PUBLIC_BASE_URL=https://bot.example.ru +SITE_PUBLISHED_PORT=8000 +SITE_PORT=8000 +SITE_WORKERS=2 + +# Локальное приложение Битрикса. Нужно будет заменить ID и SECRET на реальные +# значения, полученные при регистрации приложения в Битриксе. +BITRIX_CLIENT_ID=local.example +BITRIX_CLIENT_SECRET=change_me +BITRIX_OAUTH_TOKEN_URL=https://oauth.bitrix.info/oauth/token/ +BITRIX_TAKE_TO_WORK_STAGE_ID=PREPARATION + +# Telegram +BOT_TOKEN=change_me +BOT_USERNAME=example_bot +BINDING_TOKEN_TTL_SECONDS=600 + +# Ключ шифрования токенов. Должен быть 32 байта в base64. +TOKEN_ENCRYPTION_KEY=change_me diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..786c643 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,7 @@ +* text=auto + +*.sh text eol=lf +*.sql text eol=lf +*.yaml text eol=lf +*.yml text eol=lf +Dockerfile text eol=lf \ No newline at end of file diff --git a/.gitignore b/.gitignore index dda4f8f..7746fd7 100644 --- a/.gitignore +++ b/.gitignore @@ -160,5 +160,9 @@ cython_debug/ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. -#.idea/ +.idea/ +.vscode/ +.agents/ +.codex/ +.ruff_cache/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5b89dc3 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,25 @@ +# Источник: https://jtprog.ru/posts/docker-base/ + +# В качестве родителя используем slim-образ с Python 3.13 +FROM python:3.13-slim + +# Просим Python не писать .pyc файлы и не не буферизовать stdin/stdout +ENV PYTHONDONTWRITEBYTECODE=1 \ + PYTHONUNBUFFERED=1 + +# Задаем рабочую директорию +WORKDIR /srv/bitrix-deals-bot + +# Создаем системную группу и пользователя для запуска приложения +RUN groupadd --system runtime && useradd --system --gid runtime runtime + +# Копируем файл зависимостей и устанавливаем их +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +# Копируем исходный код приложения в контейнер +COPY --chown=runtime:runtime apps ./apps + +# Переходим на созданного пользователя для запуска приложения +USER runtime +CMD ["python", "-m", "apps.bot"] diff --git a/README.md b/README.md index 0fc1ccd..f1c9595 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,156 @@ # BitrixDealsBot -BitrixDealsBot — это телеграм-бот, который позволяет пользователям +**BitrixDealsBot** — это телеграм-бот, который позволяет пользователям взаимодействовать с CRM-системой Bitrix24 для управления сделками и контактами. Цель бота — упростить процесс работы с CRM, предоставляя удобный интерфейс для обновления и отслеживания сделок прямо из Telegram. Задание выполняется в рамках учебной производственной практики для предприятия -Интерволга. +ООО "Интернет-агенство ИНТЕРВОЛГА". ## Формулировка задания + **Telegram-бот “Помощник менеджера CRM”** -Telegram-бот для менеджера по продажам. Бот помогает быстро смотреть новые лиды, +Telegram-бот для менеджера по продажам. Бот помогает быстро смотреть новые лиды, брать их в работу, менять статус и добавлять комментарии. **Стек:** Любой язык, любая БД, REST API Telegram, REST API Битрикс24 **Функции:** + - команда /leads показывает новые лиды (без ответственных); -- команда /lead ### показывает карточку лида по указанному ID: имя, телефон, источник, статус; +- команда /lead ### показывает карточку лида по указанному ID: имя, телефон, + источник, статус; - кнопка “Взять” устанавливает ответственного; -- кнопка “Позвонить позже” устанавливает ответственного и планирует звонок через 1 час; +- кнопка “Позвонить позже” устанавливает ответственного и планирует звонок через + 1 час; - кнопка “Закрыть” возвращает в список лидов /leads; - команда /history показывает историю действий; -- интеграция с Битрикс24 через webhook. \ No newline at end of file +- интеграция с Битрикс24 через webhook (Был осуществлен переход на OAuth). + +## Архитектура решения + +Основные архитектурные решения изложены в разделе ADR (Architecture Decision +Records) в папке `docs/adr`. [Главный документ](docs/adr/main.md) может +использоваться для навигации между заметками о принятых решениях. + +## Настройка + +> [!IMPORTANT] +> Для развертывания проекта требуется Docker и Docker Compose. В Windows +> рекомендуется использовать WSL2. Также требуется внешний nginx для +> проксирования запросов к сайту. + +Клонируйте репозиторий и перейдите в папку проекта: + +```bash +cd BitrixDealsBot +``` + +Скопируйте `.env.example` в `.env` и заполните значения. Ключ шифрования можно +создать командой: + +```bash +python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" +``` + +`TOKEN_ENCRYPTION_KEY` должен быть одинаковым у сайта и бота. В БД OAuth-токены +попадают уже зашифрованными. + +Сгенерируйте или иным способом придумайте пароли для ролей администратора, +пользователя сайта и бота. В PostgreSQL роли создаются автоматически при первом +создании контейнера `db`. + +Также укажите URL, который будет использоваться в качестве базового адреса +сайта. Соответственно, для этого бы желательно иметь свой домен, соответствующие +DNS-записи и TLS-сертификат (например, от Let's Encrypt). + +Создайте локальное приложение в Битрикс24 и укажите в нем URL для привязки: + +```text +https://bot.example.ru/bitrix/bind +``` + +Битрикс сгенерирует `CLIENT_ID` и `CLIENT_SECRET`, которые нужно указать в +`.env`. В настройках приложения разрешите доступ к CRM и к минимальной +информации о пользователе. +Битрикс передает сайту OAuth-данные приложения. Сайт обменивает `REFRESH_ID` на +новую пару токенов и берет доверенные идентификаторы портала и пользователя из +ответа OAuth-сервера. Затем он проверяет пользователя через `user.current`, +сохраняет зашифрованную пару токенов и показывает ссылку на Telegram. + +Также создайте бота в Telegram через BotFather и укажите его токен в `.env`. +Дополнительно укажите в `.env` имя вашего бота, которое будет использоваться в +ссылках на него. + +Вы также можете изменить в '.env' стандартную стадию сделки, которая будет +использоваться при взятии сделки в работу. По умолчанию это стадия "C1:PREPARATION". +Если вы хотите использовать другую стадию, укажите ее код в +переменной `BITRIX_TAKE_TO_WORK_STAGE_ID`. + +## Запуск в Docker + +```bash +docker compose up --build -d +``` + +Создаются четыре контейнера: + +- `db` — PostgreSQL без опубликованного порта; +- `site` — Flask/Gunicorn на `127.0.0.1:8000` хостовой машины; +- `bot` — aiogram polling без входящего порта; +- `migrate` — контейнер для миграции БД, запускается при каждом + `docker compose up` и завершается после выполнения миграций. + +Инициализация БД выполняется автоматически только для нового volume. + +### Внешний nginx + +Nginx работает на хосте, вне Docker: + +```nginx +location / { + proxy_pass http://127.0.0.1:8000; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; +} +``` + +Если на вашем сервере есть панели типа FastPanel, Plesk, ISPmanager, то вы +можете создать сайт с обратным прокси прямо в интерфейсе панели. + +## Транзакции и доступ к БД + +Сайт подключается ролью `site_app`, бот — `bot_app`. Прямого доступа к таблицам +у них нет. + +- `binding.issue_v1` сохраняет OAuth-данные и выпускает ссылку одной + транзакцией. +- `binding.consume_v1` атомарно погашает ссылку и создает привязку. +- `oauth.*` выдает и обновляет токены только боту. +- короткая DB-аренда защищает refresh-токен от параллельного обновления. + +Сетевые запросы к Битриксу не выполняются внутри транзакций. +Назначения на сделки хранятся только в Битриксу. Локальная блокировка в процессе +бота не дает двум Telegram-пользователям одновременно взять одну сделку, а +повторная проверка `ASSIGNED_BY_ID` отсекает устаревшие кнопки. + +## Команды бота + +- `/start bind_` — привязать пользователя. +- `/deals` или `/leads` — показать сделки с фильтром и пагинацией. +- `/deal 123` — открыть карточку сделки. +- `/help` — показать справку. + +Фильтр «Мои сделки» показывает сделки всех стадий, где ответственным назначен +привязанный Битрикс-пользователь. + +Кнопка «Позвонить позже» создает дело с напоминанием в Битриксе через час. +История показывает пять последних переходов сделки по стадиям. Кнопка «Стать +ответственным и взять в работу» использует ID привязанного Битрикс-пользователя. +Ответственный также видит кнопку перехода на следующую стадию; финальный переход +выделен как завершение сделки. Перед переходом бот запрашивает необязательный +комментарий для таймлайна: пустая строка или прочерк означают переход без него. diff --git a/app/main.py b/app/main.py deleted file mode 100644 index e76c1e9..0000000 --- a/app/main.py +++ /dev/null @@ -1,120 +0,0 @@ -import asyncio -import html -import os -import decimal - -import httpx -from aiogram import Bot, Dispatcher -from aiogram.filters import Command -from aiogram.types import Message -from dotenv import load_dotenv - -load_dotenv() - -BOT_TOKEN = os.getenv("BOT_TOKEN") -BITRIX_WEBHOOK_URL = os.getenv("BITRIX_WEBHOOK_URL") - -dp = Dispatcher() - - -async def bitrix_call(method: str, params: dict | None = None) -> dict: - if not BITRIX_WEBHOOK_URL: - raise RuntimeError("BITRIX_WEBHOOK_URL is not set") - - base_url = BITRIX_WEBHOOK_URL.rstrip("/") + "/" - url = base_url + method - - async with httpx.AsyncClient(timeout=15) as client: - response = await client.post(url, json=params or {}) - response.raise_for_status() - data = response.json() - - if "error" in data: - description = data.get("error_description", data["error"]) - raise RuntimeError(f"Bitrix API error: {description}") - - return data - - -def format_deal(deal: dict) -> str: - deal_id = html.escape(str(deal.get("ID", "—"))) - title = html.escape(str(deal.get("TITLE", "Без названия"))) - stage = html.escape(str(deal.get("STAGE_ID", "—"))) - opportunity = html.escape(str(deal.get("OPPORTUNITY", "—"))) - currency = html.escape(str(deal.get("CURRENCY_ID", ""))) - date = html.escape(str(deal.get("DATE_CREATE", "—"))) - - return ( - f"#{deal_id} — {title}\n" - f"Стадия: {stage}\n" - f"Сумма: {decimal.Decimal(opportunity):,.2f} {currency}\n" - f"Дата создания: {date}" - ) - - -@dp.message(Command("start")) -async def start_handler(message: Message) -> None: - await message.answer( - "Привет. Команда /leads покажет последние сделки из Битрикс24." - ) - - -@dp.message(Command("leads")) -async def leads_handler(message: Message) -> None: - await message.answer("Запрашиваю сделки...") - - try: - data = await bitrix_call( - "crm.deal.list", - { - "order": {"DATE_CREATE": "DESC"}, - "filter": {}, - "select": [ - "ID", - "TITLE", - "STAGE_ID", - "OPPORTUNITY", - "CURRENCY_ID", - "DATE_CREATE", - ], - "start": 0, - }, - ) - - deals = data.get("result", []) - - if not deals: - await message.answer("Сделки не найдены.") - return - - text = "\n\n".join(format_deal(deal) for deal in deals[:10]) - - await message.answer( - f"Последние сделки:\n\n{text}", - parse_mode="HTML", - ) - - except httpx.HTTPStatusError as e: - await message.answer( - f"Ошибка HTTP при запросе к Битрикс24: {e.response.status_code}") - - except httpx.RequestError: - await message.answer("Не удалось подключиться к Битрикс24.") - - except RuntimeError as e: - await message.answer(f"Ошибка: {html.escape(str(e))}") - - except Exception: - await message.answer("Произошла неизвестная ошибка.") - - -async def main() -> None: - if not BOT_TOKEN: - raise RuntimeError("BOT_TOKEN is not set") - - bot = Bot(token=BOT_TOKEN) - await dp.start_polling(bot) - - -if __name__ == "__main__": - asyncio.run(main()) diff --git a/apps/__init__.py b/apps/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/apps/bot/__init__.py b/apps/bot/__init__.py new file mode 100644 index 0000000..21db616 --- /dev/null +++ b/apps/bot/__init__.py @@ -0,0 +1,3 @@ +from .main import main + +__all__ = ["main"] diff --git a/apps/bot/__main__.py b/apps/bot/__main__.py new file mode 100644 index 0000000..5d6a810 --- /dev/null +++ b/apps/bot/__main__.py @@ -0,0 +1,3 @@ +from .main import main + +main() diff --git a/apps/bot/binding.py b/apps/bot/binding.py new file mode 100644 index 0000000..68f1c2b --- /dev/null +++ b/apps/bot/binding.py @@ -0,0 +1,88 @@ +import hashlib +import re + +from .database import BotDatabase +from .domain import Binding + +TOKEN_PATTERN = re.compile(r"^[A-Za-z0-9_-]{20,100}$") + + +def hash_token(token: str) -> bytes: + return hashlib.sha256(token.encode("utf-8")).digest() + + +class BotBindingRepository: + """Доступ бота только к функциям БД схемы binding. + Обертка над хранимыми функциями БД.""" + + def __init__(self, database: BotDatabase) -> None: + self.database = database + + async def consume( + self, + token_hash: bytes, + telegram_user_id: int, + telegram_chat_id: int + ) -> Binding | None: + async with self.database.transaction() as connection: + cursor = await connection.execute( + """ + SELECT * + FROM binding.consume_v1(%s, %s, %s) + """, + (token_hash, telegram_user_id, telegram_chat_id) + ) + row = await cursor.fetchone() + return self._binding(row) if row else None + + async def find( + self, + telegram_user_id: int, + member_id: str | None = None, + ) -> Binding | None: + async with self.database.transaction() as connection: + cursor = await connection.execute( + """ + SELECT * + FROM binding.find_by_telegram_v1(%s, %s) + """, + (telegram_user_id, member_id) + ) + row = await cursor.fetchone() + return self._binding(row) if row else None + + @staticmethod + def _binding(row: dict) -> Binding: + return Binding( + member_id=str(row["member_id"]), + domain=str(row["domain"]), + bitrix_user_id=int(row["bitrix_user_id"]), + telegram_user_id=int(row["telegram_user_id"]) + ) + + +class BindingService: + """Служба управления привязками пользователей.""" + + def __init__( + self, + repository: BotBindingRepository + ) -> None: + self.repository = repository + + async def consume( + self, + token: str, + telegram_user_id: int, + telegram_chat_id: int + ) -> Binding | None: + if not TOKEN_PATTERN.fullmatch(token): + return None + return await self.repository.consume( + hash_token(token), + telegram_user_id, + telegram_chat_id + ) + + async def find(self, telegram_user_id: int) -> Binding | None: + return await self.repository.find(telegram_user_id) diff --git a/apps/bot/bitrix.py b/apps/bot/bitrix.py new file mode 100644 index 0000000..fe57c10 --- /dev/null +++ b/apps/bot/bitrix.py @@ -0,0 +1,161 @@ +import asyncio +from datetime import UTC, datetime, timedelta +from typing import Any + +import httpx + +from .crypto import TokenCipher +from .domain import Binding, OAuthCredentials +from .oauth import BotOAuthRepository + +AUTH_ERRORS = {"expired_token", "invalid_token", "no_auth_found"} + + +class BitrixClient: + """REST-клиент Битрикса с OAuth-контекстом привязанного пользователя.""" + + def __init__( + self, + credentials: BotOAuthRepository, + cipher: TokenCipher, + client_id: str, + client_secret: str, + oauth_token_url: str, + client: httpx.AsyncClient | None = None + ) -> None: + self.credentials = credentials + self.cipher = cipher + self.client_id = client_id + self.client_secret = client_secret + self.oauth_token_url = oauth_token_url + # Передача клиента для упрощения тестирования. + self._client = client or httpx.AsyncClient(timeout=15) + self._owns_client = client is None + + async def call( + self, + binding: Binding, + method: str, + params: dict[str, Any] | None = None + ) -> dict[str, Any]: + credentials = await self.credentials.get(binding) + if not credentials: + raise RuntimeError("OAuth-данные пользователя не найдены") + + # Отправляем запрос и в случае истечения токена запрашиваем обновление. + data = await self._request(credentials, method, params) + if str(data.get("error") or "").lower() in AUTH_ERRORS: + credentials = await self._refresh(credentials, binding) + data = await self._request(credentials, method, params) + + if "error" in data: + description = data.get("error_description", data["error"]) + raise RuntimeError(f"Bitrix API error: {description}") + return data + + async def _request( + self, + credentials: OAuthCredentials, + method: str, + params: dict[str, Any] | None + ) -> dict[str, Any]: + payload = dict(params or {}) + payload["auth"] = self.cipher.decrypt(credentials.access_token) + response = await self._client.post( + f"https://{credentials.domain}/rest/{method}.json", + json=payload + ) + try: + data = response.json() + except ValueError: + response.raise_for_status() + raise RuntimeError("Bitrix вернул некорректный ответ") from None + + # Битрикс присылает полезное описание ошибки и при HTTP 4xx. + if response.is_error and "error" not in data: + response.raise_for_status() + return data + + async def _refresh( + self, + credentials: OAuthCredentials, + binding: Binding + ) -> OAuthCredentials: + # Если другой процесс уже обновляет токен, ждем его завершения. + if not await self.credentials.claim_refresh(credentials): + return await self._wait_for_refresh(credentials, binding) + + try: + # Битрикс возвращает новую пару, поэтому обновляем оба токена. + try: + response = await self._client.get( + self.oauth_token_url, + params={ + "grant_type": "refresh_token", + "client_id": self.client_id, + "client_secret": self.client_secret, + "refresh_token": self.cipher.decrypt( + credentials.refresh_token) + } + ) + response.raise_for_status() + except httpx.HTTPError: + # Не включаем URL с OAuth-секретами в traceback. + raise RuntimeError("Не удалось обновить OAuth-токен") from None + + data = response.json() + if "error" in data: + raise RuntimeError( + "Bitrix OAuth error: " + + str(data.get("error_description") or data["error"]) + ) + + # Проверяем, что обновленный токен принадлежит тому же порталу + # и пользователю. + if data.get("member_id") not in {None, credentials.member_id}: + raise RuntimeError("Bitrix вернул токен другого портала") + if int(data.get("user_id", credentials.bitrix_user_id)) != ( + credentials.bitrix_user_id + ): + raise RuntimeError("Bitrix вернул токен другого пользователя") + + # Обновляем токены в базе и возвращаем новые данные. + expires_at = datetime.now(UTC) + timedelta( + seconds=int(data.get("expires_in", 3600)) + ) + saved = await self.credentials.finish_refresh( + credentials, + self.cipher.encrypt(str(data["access_token"])), + self.cipher.encrypt(str(data["refresh_token"])), + expires_at + ) + + # Если другой процесс успел обновить токен, ждем его завершения. + if not saved: + return await self._wait_for_refresh(credentials, binding) + + updated = await self.credentials.get(binding) + if not updated: + raise RuntimeError("Обновленные OAuth-данные не найдены") + return updated + + except Exception: + await self.credentials.release_refresh(credentials) + raise + + async def _wait_for_refresh( + self, + previous: OAuthCredentials, + binding: Binding + ) -> OAuthCredentials: + for _ in range(80): + await asyncio.sleep(0.2) + current = await self.credentials.get(binding) + if current and current.version > previous.version: + return current + + raise RuntimeError("Не удалось дождаться обновления OAuth-токена") + + async def close(self) -> None: + if self._owns_client: + await self._client.aclose() diff --git a/apps/bot/config.py b/apps/bot/config.py new file mode 100644 index 0000000..7f310ad --- /dev/null +++ b/apps/bot/config.py @@ -0,0 +1,42 @@ +import os +from dataclasses import dataclass + +DEFAULT_TAKE_TO_WORK_STAGE_ID = "PREPARATION" + + +def _required(name: str) -> str: + value = os.getenv(name) + if not value: + raise RuntimeError(f"{name} is not set") + return value + + +@dataclass(frozen=True) +class BotConfig: + """Настройки процесса Telegram-бота.""" + + bot_token: str + database_url: str + bitrix_client_id: str + bitrix_client_secret: str + token_encryption_key: str + oauth_token_url: str + take_to_work_stage_id: str = DEFAULT_TAKE_TO_WORK_STAGE_ID + + @classmethod + def from_env(cls) -> "BotConfig": + return cls( + bot_token=_required("BOT_TOKEN"), + database_url=_required("DATABASE_URL"), + bitrix_client_id=_required("BITRIX_CLIENT_ID"), + bitrix_client_secret=_required("BITRIX_CLIENT_SECRET"), + token_encryption_key=_required("TOKEN_ENCRYPTION_KEY"), + oauth_token_url=os.getenv( + "BITRIX_OAUTH_TOKEN_URL", + "https://oauth.bitrix.info/oauth/token/", + ), + take_to_work_stage_id=os.getenv( + "BITRIX_TAKE_TO_WORK_STAGE_ID", + DEFAULT_TAKE_TO_WORK_STAGE_ID + ) + ) diff --git a/apps/bot/crypto.py b/apps/bot/crypto.py new file mode 100644 index 0000000..2eb831a --- /dev/null +++ b/apps/bot/crypto.py @@ -0,0 +1,20 @@ +from cryptography.fernet import Fernet, InvalidToken + + +class TokenCipher: + """Шифрует OAuth-токены перед хранением в БД.""" + + def __init__(self, key: str) -> None: + try: + self._fernet = Fernet(key.encode("ascii")) + except (ValueError, UnicodeEncodeError) as error: + raise RuntimeError("TOKEN_ENCRYPTION_KEY is invalid") from error + + def encrypt(self, value: str) -> bytes: + return self._fernet.encrypt(value.encode("utf-8")) + + def decrypt(self, value: bytes) -> str: + try: + return self._fernet.decrypt(value).decode("utf-8") + except InvalidToken as error: + raise RuntimeError("Не удалось расшифровать OAuth-токен") from error diff --git a/apps/bot/database.py b/apps/bot/database.py new file mode 100644 index 0000000..b3c2d63 --- /dev/null +++ b/apps/bot/database.py @@ -0,0 +1,38 @@ +from collections.abc import AsyncGenerator +from contextlib import asynccontextmanager + +from psycopg import AsyncConnection +from psycopg.rows import dict_row +from psycopg_pool import AsyncConnectionPool + + +class BotDatabase: + """Пул соединений БД для асинхронного процесса бота.""" + + def __init__(self, database_url: str) -> None: + # Пул может содержать в себе максимум 5 соединений. + self.pool = AsyncConnectionPool( + conninfo=database_url, + min_size=1, + max_size=5, + open=False, + # Фабрика для представления строк БД как словарей. + kwargs={"row_factory": dict_row} + ) + + async def open(self) -> None: + await self.pool.open(wait=True) + + async def close(self) -> None: + await self.pool.close() + + @asynccontextmanager + async def transaction(self) -> AsyncGenerator[AsyncConnection]: + async with self.pool.connection() as connection: + async with connection.transaction(): + yield connection + + async def ping(self) -> bool: + async with self.pool.connection() as connection: + cursor = await connection.execute("SELECT 1") + return await cursor.fetchone() is not None diff --git a/apps/bot/deals.py b/apps/bot/deals.py new file mode 100644 index 0000000..2ee6328 --- /dev/null +++ b/apps/bot/deals.py @@ -0,0 +1,641 @@ +import asyncio +import logging +import time +from collections.abc import AsyncGenerator +from contextlib import asynccontextmanager +from dataclasses import dataclass +from datetime import UTC, datetime, timedelta + +from .bitrix import BitrixClient +from .domain import ( + DEALS_PER_PAGE, + Binding, + ClientInfo, + DealPage, + DealStage, + DealStageAdvance, + DealStageFilter, +) + +logger = logging.getLogger(__name__) + + +class DealAssignmentConflict(RuntimeError): + """Ответственный изменился после показа карточки.""" + + +class DealAdvanceForbidden(RuntimeError): + """Стадию может менять только ответственный за сделку.""" + + +class DealStageConflict(RuntimeError): + """Стадия изменилась после запроса комментария.""" + + +class DealCommentSaveError(RuntimeError): + """Стадия изменена, но комментарий не добавлен.""" + + def __init__(self, advance: DealStageAdvance) -> None: + super().__init__( + "Стадия изменена, но комментарий не удалось сохранить." + ) + self.advance = advance + + +@dataclass +class _DealLockEntry: + lock: asyncio.Lock + users: int = 0 + + +class DealService: + """Загрузка и изменение сделок Bitrix.""" + + deal_select = [ + "ID", + "TITLE", + "STAGE_ID", + "IS_NEW", + "OPPORTUNITY", + "CURRENCY_ID", + "DATE_CREATE", + "ASSIGNED_BY_ID", + "CONTACT_ID", + "COMPANY_ID", + "SOURCE_ID", + "COMMENTS", + ] + + def __init__( + self, + bitrix: BitrixClient, + take_to_work_stage_id: str + ) -> None: + self.bitrix = bitrix + self.take_to_work_stage_id = take_to_work_stage_id + self._deal_locks: dict[tuple[str, str], _DealLockEntry] = {} + self._deal_locks_guard = asyncio.Lock() + self._stage_cache: dict[ + tuple[str, int, int], tuple[float, tuple[DealStage, ...]] + ] = {} + + async def list_by_stage( + self, + binding: Binding, + stage_key: str = "new", + page: int = 0, + limit: int = DEALS_PER_PAGE + ) -> DealPage: + stage_filters = await self.stage_filters(binding) + stage_filter = self._select_stage_filter(stage_filters, stage_key) + bitrix_filter = {} + if stage_filter.stage_id: + bitrix_filter["STAGE_ID"] = stage_filter.stage_id + if stage_filter.assigned_to_viewer: + bitrix_filter["ASSIGNED_BY_ID"] = binding.bitrix_user_id + + page = max(page, 0) + start_index = page * limit + end_index = start_index + limit + loaded_deals = [] + bitrix_start: int | None = 0 + total_deals = 0 + + # Битрикс и Telegram используют страницы разного размера. + while bitrix_start is not None and len(loaded_deals) < end_index: + # https://apidocs.bitrix24.ru/api-reference/crm/deals/crm-deal-list.html + data = await self.bitrix.call( + binding, + "crm.deal.list", + { + "order": {"DATE_CREATE": "DESC"}, + "filter": bitrix_filter, + "select": self.deal_select, + "start": bitrix_start + } + ) + loaded_deals.extend(data.get("result", [])) + total_deals = int(data.get("total", len(loaded_deals))) + bitrix_start = data.get("next") + + deals = loaded_deals[start_index:end_index] + total_pages = max(1, (total_deals + limit - 1) // limit) + return DealPage( + deals, + page, + total_deals, + total_pages, + stage_filter, + stage_filters + ) + + async def stage_filters( + self, + binding: Binding + ) -> tuple[DealStageFilter, ...]: + stages = await self._stages(binding, category_id=0) + filters = [ + DealStageFilter( + key="mine", + title="Мои сделки", + stage_id=None, + assigned_to_viewer=True, + ) + ] + filters.extend( + DealStageFilter(stage.stage_id, stage.title, stage.stage_id) + for stage in stages + ) + filters.append(DealStageFilter("all", "Все", None)) + return tuple(filters) + + def _select_stage_filter( + self, + filters: tuple[DealStageFilter, ...], + stage_key: str + ) -> DealStageFilter: + initial = next( + (item for item in filters if item.stage_id is not None), + filters[-1] + ) + # Callback `new` означает первую стадию, полученную из Битрикса. + if stage_key == "new": + return initial + + selected = next((item for item in filters if item.key == stage_key), + None) + return selected or initial + + async def _stages( + self, + binding: Binding, + category_id: int + ) -> tuple[DealStage, ...]: + key = (binding.member_id, binding.bitrix_user_id, category_id) + cached = self._stage_cache.get(key) + if cached and cached[0] > time.monotonic(): + return cached[1] + + entity_id = "DEAL_STAGE" if category_id == 0 else ( + f"DEAL_STAGE_{category_id}" + ) + items = [] + bitrix_start: int | None = 0 + # https://apidocs.bitrix24.ru/api-reference/crm/status/crm-status-list.html + while bitrix_start is not None: + data = await self.bitrix.call( + binding, + "crm.status.list", + { + "order": {"SORT": "ASC"}, + "filter": {"ENTITY_ID": entity_id}, + "start": bitrix_start + } + ) + items.extend(data.get("result", [])) + bitrix_start = data.get("next") + + stages = [] + seen_stage_ids = set() + for item in items: + raw_stage_id = str(item.get("STATUS_ID") or "") + if not raw_stage_id: + continue + + stage_id = raw_stage_id + prefix = f"C{category_id}:" + if category_id and not stage_id.startswith(prefix): + stage_id = prefix + stage_id + if stage_id in seen_stage_ids: + continue + + semantics = self._stage_semantics(item) + stages.append( + DealStage( + stage_id=stage_id, + title=str(item.get("NAME") or raw_stage_id), + semantics=semantics, + ) + ) + seen_stage_ids.add(stage_id) + + result = tuple(stages) + self._stage_cache[key] = (time.monotonic() + 300, result) + return result + + async def _stage_map( + self, + binding: Binding, + category_id: int + ) -> dict[str, str]: + stages = await self._stages(binding, category_id) + return {stage.stage_id: stage.title for stage in stages} + + @staticmethod + def _stage_semantics(item: dict) -> str: + semantics = str(item.get("SEMANTICS") or "").upper() + if semantics in {"P", "S", "F"}: + return semantics + + extra_semantics = str( + (item.get("EXTRA") or {}).get("SEMANTICS") or "" + ).lower() + return { + "process": "P", + "success": "S", + "failure": "F", + }.get(extra_semantics, "P") + + async def stage_name( + self, + binding: Binding, + category_id: int, + stage_id: str + ) -> str | None: + stages = await self._stage_map(binding, category_id) + return stages.get(stage_id) + + async def get(self, binding: Binding, deal_id: str) -> dict | None: + # https://apidocs.bitrix24.ru/api-reference/crm/deals/crm-deal-get.html + data = await self.bitrix.call(binding, "crm.deal.get", {"id": deal_id}) + deal = data.get("result") + if not deal: + return None + + client = await self.get_client_info(binding, deal) + deal["CLIENT_NAME"] = client.name + deal["CLIENT_COMPANY"] = client.company + deal["CLIENT_PHONE"] = client.phone + deal["SOURCE_NAME"] = await self.get_source_name( + binding, str(deal.get("SOURCE_ID") or "") + ) + deal["STAGE_NAME"] = await self.stage_name( + binding, + int(deal.get("CATEGORY_ID") or 0), + str(deal.get("STAGE_ID") or "") + ) + next_stage = await self._next_stage(binding, deal) + if next_stage: + deal["NEXT_STAGE_ID"] = next_stage.stage_id + deal["NEXT_STAGE_NAME"] = next_stage.title + deal["NEXT_STAGE_IS_FINAL"] = next_stage.is_final + return deal + + async def prepare_stage_advance( + self, + binding: Binding, + deal_id: str + ) -> DealStageAdvance: + deal = await self._get_raw(binding, deal_id) + if not deal: + raise RuntimeError("Сделка не найдена") + self._ensure_responsible(binding, deal) + + next_stage = await self._next_stage(binding, deal) + if not next_stage: + raise RuntimeError("Сделка уже находится на финальной стадии") + + return DealStageAdvance( + deal_id=deal_id, + current_stage_id=str(deal.get("STAGE_ID") or ""), + target_stage_id=next_stage.stage_id, + target_stage_title=next_stage.title, + is_final=next_stage.is_final, + ) + + async def advance_stage( + self, + binding: Binding, + deal_id: str, + expected_stage_id: str, + expected_target_stage_id: str, + comment: str | None, + ) -> DealStageAdvance: + async with self._deal_lock(binding, deal_id): + current = await self._get_raw(binding, deal_id) + if not current: + raise RuntimeError("Сделка не найдена") + self._ensure_responsible(binding, current) + + current_stage_id = str(current.get("STAGE_ID") or "") + if current_stage_id != expected_stage_id: + raise DealStageConflict( + "Стадия уже изменилась. Обновите карточку сделки." + ) + + next_stage = await self._next_stage(binding, current) + if ( + not next_stage + or next_stage.stage_id != expected_target_stage_id + ): + raise DealStageConflict( + "Набор стадий изменился. Откройте сделку заново." + ) + + advance = DealStageAdvance( + deal_id=deal_id, + current_stage_id=current_stage_id, + target_stage_id=next_stage.stage_id, + target_stage_title=next_stage.title, + is_final=next_stage.is_final, + ) + # https://apidocs.bitrix24.ru/api-reference/crm/deals/crm-deal-update.html + await self.bitrix.call( + binding, + "crm.deal.update", + { + "id": deal_id, + "fields": {"STAGE_ID": next_stage.stage_id}, + "params": {"REGISTER_HISTORY_EVENT": "Y"}, + }, + ) + + updated = await self._get_raw(binding, deal_id) + if str((updated or {}).get( + "STAGE_ID") or "") != next_stage.stage_id: + raise DealStageConflict( + "Стадия изменилась одновременно с обновлением." + ) + + if comment: + try: + # Комментарий добавляется в таймлайн, не затирая COMMENTS. + await self.bitrix.call( + binding, + "crm.timeline.comment.add", + { + "fields": { + "ENTITY_ID": int(deal_id), + "ENTITY_TYPE": "deal", + "COMMENT": comment, + } + }, + ) + except Exception as error: + raise DealCommentSaveError(advance) from error + + return advance + + async def _next_stage( + self, + binding: Binding, + deal: dict + ) -> DealStage | None: + current_stage_id = str(deal.get("STAGE_ID") or "") + current_semantics = str( + deal.get("STAGE_SEMANTIC_ID") or "" + ).upper() + if current_semantics in {"S", "F"}: + return None + + stages = await self._stages( + binding, + int(deal.get("CATEGORY_ID") or 0), + ) + current_index = next( + ( + index + for index, stage in enumerate(stages) + if stage.stage_id == current_stage_id + ), + None, + ) + if current_index is None or stages[current_index].is_final: + return None + if current_index + 1 >= len(stages): + return None + return stages[current_index + 1] + + @staticmethod + def _ensure_responsible(binding: Binding, deal: dict) -> None: + responsible_id = str(deal.get("ASSIGNED_BY_ID") or "") + if responsible_id != str(binding.bitrix_user_id): + raise DealAdvanceForbidden( + "Переводить сделку может только ответственный за нее." + ) + + async def history( + self, + binding: Binding, + deal_id: str, + limit: int = 5 + ) -> list[dict]: + # https://apidocs.bitrix24.ru/api-reference/crm/crm-stage-history-list.html + data = await self.bitrix.call( + binding, + "crm.stagehistory.list", + { + "entityTypeId": 2, + "order": {"ID": "DESC"}, + "filter": {"OWNER_ID": int(deal_id)}, + "select": [ + "ID", + "TYPE_ID", + "CATEGORY_ID", + "STAGE_ID", + "CREATED_TIME" + ], + "start": 0 + } + ) + result = data.get("result") or {} + events = list(result.get("items") or [])[:limit] + for event in events: + event["STAGE_NAME"] = await self.stage_name( + binding, + int(event.get("CATEGORY_ID") or 0), + str(event.get("STAGE_ID") or "") + ) + return events + + async def remind_to_call( + self, + binding: Binding, + deal_id: str + ) -> datetime: + deadline = datetime.now(UTC) + timedelta(hours=1) + # https://apidocs.bitrix24.ru/api-reference/crm/timeline/activities/todo/crm-activity-todo-add.html + await self.bitrix.call( + binding, + "crm.activity.todo.add", + { + "ownerTypeId": 2, + "ownerId": int(deal_id), + "deadline": deadline.isoformat(), + "title": "Позвонить клиенту", + "description": f"Отложенный звонок по сделке #{deal_id}", + "responsibleId": binding.bitrix_user_id, + "pingOffsets": [0] + } + ) + return deadline + + async def take_to_work( + self, + binding: Binding, + deal_id: str, + expected_responsible_id: str + ) -> bool: + async with self._deal_lock(binding, deal_id): + current = await self._get_raw(binding, deal_id) + if not current: + raise RuntimeError("Сделка не найдена") + + responsible_id = str(current.get("ASSIGNED_BY_ID") or "") + target_id = str(binding.bitrix_user_id) + if responsible_id == target_id: + return False + if responsible_id != expected_responsible_id: + raise DealAssignmentConflict( + "Ответственный уже изменился. Обновите карточку сделки." + ) + + target_stage_id = await self._take_to_work_stage_id( + binding, + int(current.get("CATEGORY_ID") or 0) + ) + + # https://apidocs.bitrix24.com/api-reference/crm/deals/crm-deal-update.html + await self.bitrix.call( + binding, + "crm.deal.update", + { + "id": deal_id, + "fields": { + "ASSIGNED_BY_ID": binding.bitrix_user_id, + "STAGE_ID": target_stage_id + }, + "params": {"REGISTER_HISTORY_EVENT": "Y"} + }, + ) + + # REST Bitrix не поддерживает условный UPDATE, поэтому проверяем результат. + updated = await self._get_raw(binding, deal_id) + if str((updated or {}).get("ASSIGNED_BY_ID") or "") != target_id: + raise DealAssignmentConflict( + "Ответственный изменился одновременно с назначением." + ) + return True + + async def _take_to_work_stage_id( + self, + binding: Binding, + category_id: int + ) -> str: + stages = await self._stage_map(binding, category_id) + candidates = [self.take_to_work_stage_id] + if category_id and ":" not in self.take_to_work_stage_id: + candidates.append( + f"C{category_id}:{self.take_to_work_stage_id}" + ) + + target = next((item for item in candidates if item in stages), None) + if target: + return target + + raise RuntimeError( + "Стадия для взятия в работу " + f"{self.take_to_work_stage_id} не найдена в Битриксе" + ) + + async def _get_raw(self, binding: Binding, deal_id: str) -> dict | None: + data = await self.bitrix.call(binding, "crm.deal.get", {"id": deal_id}) + return data.get("result") or None + + @asynccontextmanager + async def _deal_lock( + self, + binding: Binding, + deal_id: str + ) -> AsyncGenerator[None]: + key = (binding.member_id, deal_id) + async with self._deal_locks_guard: + entry = self._deal_locks.get(key) + if entry is None: + entry = _DealLockEntry(asyncio.Lock()) + self._deal_locks[key] = entry + entry.users += 1 + + await entry.lock.acquire() + try: + yield + finally: + entry.lock.release() + async with self._deal_locks_guard: + entry.users -= 1 + if entry.users == 0: + self._deal_locks.pop(key, None) + + async def get_client_info(self, binding: Binding, deal: dict) -> ClientInfo: + contact = None + company = None + + contact_id = str(deal.get("CONTACT_ID") or "") + if contact_id: + # https://apidocs.bitrix24.com/api-reference/crm/contacts/crm-contact-get.html + contact = await self._entity(binding, "crm.contact.get", contact_id) + + company_id = str(deal.get("COMPANY_ID") or "") + if company_id: + # https://apidocs.bitrix24.com/api-reference/crm/companies/crm-company-get.html + company = await self._entity(binding, "crm.company.get", company_id) + + return ClientInfo( + name=self._contact_name(contact), + company=self._company_name(company), + phone=( + self._phone_from_entity(contact) or self._phone_from_entity( + company) + ) + ) + + async def get_source_name(self, binding: Binding, + source_id: str) -> str | None: + if not source_id: + return None + + try: + # https://apidocs.bitrix24.ru/api-reference/crm/status/crm-status-list.html + data = await self.bitrix.call( + binding, + "crm.status.list", + { + "filter": { + "ENTITY_ID": "SOURCE", + "STATUS_ID": source_id + } + } + ) + except Exception: + logger.exception("Failed to load Bitrix source name") + return None + + sources = data.get("result", []) + return str(sources[0].get("NAME") or "") or None if sources else None + + async def _entity(self, binding: Binding, method: str, + entity_id: str) -> dict: + data = await self.bitrix.call(binding, method, {"id": entity_id}) + return data.get("result", {}) or {} + + @staticmethod + def _phone_from_entity(entity: dict | None) -> str | None: + phones = (entity or {}).get("PHONE") or [] + return str(phones[0].get("VALUE") or "") or None if phones else None + + @staticmethod + def _contact_name(contact: dict | None) -> str | None: + if not contact: + return None + parts = [ + str(contact.get("LAST_NAME") or "").strip(), + str(contact.get("NAME") or "").strip(), + str(contact.get("SECOND_NAME") or "").strip() + ] + return " ".join(part for part in parts if part) or None + + @staticmethod + def _company_name(company: dict | None) -> str | None: + if not company: + return None + return str(company.get("TITLE") or "").strip() or None diff --git a/apps/bot/domain.py b/apps/bot/domain.py new file mode 100644 index 0000000..c2802bd --- /dev/null +++ b/apps/bot/domain.py @@ -0,0 +1,73 @@ +from dataclasses import dataclass +from datetime import datetime + +DEALS_PER_PAGE = 5 +MAX_DEAL_MESSAGE_LENGTH = 3900 + + +@dataclass(frozen=True) +class Binding: + member_id: str + domain: str + bitrix_user_id: int + telegram_user_id: int + + +@dataclass(frozen=True) +class OAuthCredentials: + member_id: str + domain: str + bitrix_user_id: int + access_token: bytes + refresh_token: bytes + expires_at: datetime + version: int + + +@dataclass(frozen=True) +class ClientInfo: + name: str | None = None + company: str | None = None + phone: str | None = None + + +@dataclass(frozen=True) +class DealStageFilter: + key: str + title: str + stage_id: str | None + assigned_to_viewer: bool = False + + +@dataclass(frozen=True) +class DealStage: + stage_id: str + title: str + semantics: str + + @property + def is_final(self) -> bool: + return self.semantics in {"S", "F"} + + +@dataclass(frozen=True) +class DealStageAdvance: + deal_id: str + current_stage_id: str + target_stage_id: str + target_stage_title: str + is_final: bool + + +@dataclass(frozen=True) +class DealPage: + deals: list[dict] + page: int + total_deals: int + total_pages: int + stage_filter: DealStageFilter + stage_filters: tuple[DealStageFilter, ...] + + @property + def has_next(self) -> bool: + return self.page + 1 < self.total_pages diff --git a/apps/bot/handlers.py b/apps/bot/handlers.py new file mode 100644 index 0000000..a3a7c6d --- /dev/null +++ b/apps/bot/handlers.py @@ -0,0 +1,531 @@ +import html +import logging + +import httpx +from aiogram import F, Router +from aiogram.exceptions import TelegramAPIError, TelegramBadRequest +from aiogram.filters import Command, CommandObject +from aiogram.fsm.context import FSMContext +from aiogram.fsm.state import State, StatesGroup +from aiogram.types import ( + CallbackQuery, + ForceReply, + InlineKeyboardMarkup, + Message, +) + +from .binding import BindingService +from .deals import ( + DealAssignmentConflict, + DealCommentSaveError, + DealService, +) +from .domain import Binding, DealPage +from .middleware import BindingRequiredMiddleware +from .presentation import DealFormatter, DealKeyboards + +logger = logging.getLogger(__name__) + + +class DealAdvanceStates(StatesGroup): + waiting_comment = State() + + +def normalize_comment(value: str | None) -> str | None: + comment = (value or "").strip() + if not comment: + return None + if all( + character.isspace() or character in "-‐‑‒–—―" + for character in comment + ): + return None + return comment + + +class StartBotHandlers: + """Справка и погашение одноразовой ссылки.""" + + def __init__(self, bindings: BindingService) -> None: + self.bindings = bindings + self.router = Router(name="start") + self.router.message.register(self.start, Command("start", "help")) + + async def start(self, message: Message, command: CommandObject) -> None: + payload = (command.args or "").strip() + # Если команда /start пришла с параметром bind_*, + # то это одноразовая ссылка для привязки. + if command.command == "start" and payload.startswith("bind_"): + await self.bind(message, payload.removeprefix("bind_")) + return + + # pyrefly: ignore [missing-attribute] + binding = await self.bindings.find(message.from_user.id) + if binding: + await message.answer( + "Аккаунт привязан. /deals покажет сделки, а /deal ID откроет карточку." + ) + else: + await message.answer( + "Открой приложение в Bitrix24 и нажми кнопку привязки Telegram." + ) + + async def bind(self, message: Message, token: str) -> None: + if message.chat.type != "private": + await message.answer( + "Привязку нужно открыть в личном чате с ботом.") + return + + binding = await self.bindings.consume( + token, + message.from_user.id, # pyrefly: ignore [missing-attribute] + message.chat.id + ) + if not binding: + await message.answer("Ссылка недействительна или уже использована.") + return + + await message.answer( + "Telegram успешно привязан к Bitrix24. Теперь доступна команда /deals." + ) + + +class DealBotHandlers: + """Команды и inline-кнопки для сделок.""" + + def __init__( + self, + service: DealService, + bindings: BindingService | None = None + ) -> None: + self.service = service + self.router = Router(name="deals") + self.router.message.register(self.deals, Command("leads", "deals")) + self.router.message.register(self.deal_by_command, + Command("lead", "deal")) + self.router.message.register( + self.cancel_stage_advance, + DealAdvanceStates.waiting_comment, + Command("cancel"), + ) + self.router.message.register( + self.advance_stage, + DealAdvanceStates.waiting_comment, + F.text, + ) + self.router.message.register( + self.require_stage_comment, + DealAdvanceStates.waiting_comment, + ) + self.router.callback_query.register( + self.deals_page, F.data.startswith("deals:page:") + ) + self.router.callback_query.register( + self.deal_by_button, F.data.startswith("deal:view:") + ) + self.router.callback_query.register( + self.assign_responsible, F.data.startswith("deal:assign:") + ) + self.router.callback_query.register( + self.request_stage_advance, + F.data.startswith("deal:advance:"), + ) + self.router.callback_query.register( + self.show_history, F.data.startswith("deal:history:") + ) + self.router.callback_query.register( + self.remind_to_call, F.data.startswith("deal:remind:") + ) + + # Подвязываем middleware, который проверяет наличие привязки к Битриксу. + if bindings: + middleware = BindingRequiredMiddleware(bindings) + self.router.message.middleware(middleware) + self.router.callback_query.middleware(middleware) + + async def deals(self, message: Message, binding: Binding) -> None: + try: + await self.send_deals_page(message, binding, stage_key="new", + page=0) + except Exception as error: + await self.answer_error(message, error) + + async def deal_by_command( + self, + message: Message, + command: CommandObject, + binding: Binding + ) -> None: + deal_id = (command.args or "").strip() + if not deal_id.isdigit(): + await message.answer( + "Укажи ID сделки: /deal 123", + parse_mode="HTML", + ) + return + + try: + await self.send_deal(message, binding, deal_id) + except Exception as error: + await self.answer_error(message, error) + + async def deals_page(self, callback: CallbackQuery, + binding: Binding) -> None: + parts = (callback.data or "deals:page:new:0").split(":") + stage_key = parts[2] if len(parts) > 2 else "new" + page = int(parts[3]) if len(parts) > 3 else 0 + + try: + deal_page = await self.service.list_by_stage(binding, stage_key, + page) + changed = await self.edit_callback_message( + callback, + self.page_text(deal_page), + DealKeyboards.deals_page( + deal_page.deals, + deal_page.stage_filters, + deal_page.stage_filter.key, + deal_page.page, + deal_page.has_next + ), + unchanged_text="Список уже актуален." + ) + if changed: + await callback.answer() + + except Exception as error: + await self.answer_callback_error(callback, error) + + async def deal_by_button(self, callback: CallbackQuery, + binding: Binding) -> None: + deal_id = (callback.data or "").split(":")[-1] + try: + deal = await self.service.get(binding, deal_id) + if not deal: + await callback.answer("Сделка не найдена.", show_alert=True) + return + + changed = await self.edit_callback_message( + callback, + DealFormatter.deal_details(deal), + DealKeyboards.deal_card( + deal, + binding.bitrix_user_id, + ), + unchanged_text="Карточка уже открыта." + ) + if changed: + await callback.answer() + + except Exception as error: + await self.answer_callback_error(callback, error) + + async def assign_responsible( + self, callback: CallbackQuery, binding: Binding + ) -> None: + parts = (callback.data or "").split(":") + if len(parts) != 4: + await callback.answer( + "Карточка устарела. Откройте сделку заново.", + show_alert=True + ) + return + + deal_id, expected_responsible_id = parts[2], parts[3] + try: + assigned = await self.service.take_to_work( + binding, + deal_id, + expected_responsible_id + ) + deal = await self.service.get(binding, deal_id) + if not deal: + await callback.answer( + "Сделка обновлена, но повторно не найдена.", + show_alert=True + ) + return + + changed = await self.edit_callback_message( + callback, + DealFormatter.deal_details(deal), + DealKeyboards.deal_card( + deal, + binding.bitrix_user_id, + ), + unchanged_text="Сделка уже отображается актуально." + ) + if changed: + text = ( + "Сделка переведена в работу." + if assigned + else "Вы уже ответственный за эту сделку." + ) + await callback.answer(text) + + except DealAssignmentConflict as error: + await callback.answer(str(error), show_alert=True) + except Exception as error: + await self.answer_callback_error(callback, error) + + async def request_stage_advance( + self, + callback: CallbackQuery, + binding: Binding, + state: FSMContext, + ) -> None: + deal_id = (callback.data or "").split(":")[-1] + if not deal_id.isdigit() or not isinstance(callback.message, Message): + await callback.answer( + "Карточка устарела. Откройте сделку заново.", + show_alert=True, + ) + return + + try: + advance = await self.service.prepare_stage_advance( + binding, + deal_id, + ) + await state.set_state(DealAdvanceStates.waiting_comment) + await state.set_data( + { + "deal_id": advance.deal_id, + "current_stage_id": advance.current_stage_id, + "target_stage_id": advance.target_stage_id, + "target_stage_title": advance.target_stage_title, + "is_final": advance.is_final, + } + ) + + final_note = " (финальная)" if advance.is_final else "" + await callback.message.answer( + ( + f"Следующая стадия: " + f"{html.escape(advance.target_stage_title)}" + f"{final_note}.\n" + "Введите комментарий одним сообщением. " + "Чтобы продолжить без комментария, отправьте " + "-. Для отмены — /cancel." + ), + parse_mode="HTML", + reply_markup=ForceReply( + selective=True, + input_field_placeholder="Комментарий или -", + ), + ) + await callback.answer("Жду комментарий.") + except Exception as error: + await self.answer_callback_error(callback, error) + + async def advance_stage( + self, + message: Message, + binding: Binding, + state: FSMContext, + ) -> None: + data = await state.get_data() + await state.clear() + deal_id = str(data.get("deal_id") or "") + expected_stage_id = str(data.get("current_stage_id") or "") + target_stage_id = str(data.get("target_stage_id") or "") + if not deal_id or not expected_stage_id or not target_stage_id: + await message.answer( + "Запрос устарел. Откройте карточку сделки заново." + ) + return + + comment = normalize_comment(message.text) + try: + advance = await self.service.advance_stage( + binding, + deal_id, + expected_stage_id, + target_stage_id, + comment, + ) + if advance.is_final: + result_text = ( + "Сделка переведена на финальную стадию " + f"«{html.escape(advance.target_stage_title)}»." + ) + else: + result_text = ( + "Сделка переведена на стадию " + f"«{html.escape(advance.target_stage_title)}»." + ) + if comment: + result_text += " Комментарий добавлен в таймлайн." + else: + result_text += " Переход выполнен без комментария." + await message.answer(result_text, parse_mode="HTML") + await self.send_deal(message, binding, deal_id) + except DealCommentSaveError: + await message.answer( + ( + "Стадия изменена, но комментарий не удалось " + "сохранить в Битриксе." + ) + ) + try: + await self.send_deal(message, binding, deal_id) + except Exception: + logger.exception( + "Failed to refresh deal after comment save error" + ) + except Exception as error: + await self.answer_error(message, error) + + @staticmethod + async def cancel_stage_advance( + message: Message, + state: FSMContext, + ) -> None: + await state.clear() + await message.answer("Переход на следующую стадию отменен.") + + @staticmethod + async def require_stage_comment(message: Message) -> None: + await message.answer( + "Отправьте комментарий текстом или прочерк " + "-, чтобы продолжить без него.", + parse_mode="HTML", + ) + + async def show_history(self, callback: CallbackQuery, + binding: Binding) -> None: + deal_id = (callback.data or "").split(":")[-1] + try: + events = await self.service.history(binding, deal_id) + changed = await self.edit_callback_message( + callback, + DealFormatter.deal_history(deal_id, events), + DealKeyboards.deal_history(deal_id), + unchanged_text="История уже открыта.", + ) + if changed: + await callback.answer() + except Exception as error: + await self.answer_callback_error(callback, error) + + async def remind_to_call( + self, + callback: CallbackQuery, + binding: Binding + ) -> None: + deal_id = (callback.data or "").split(":")[-1] + try: + await self.service.remind_to_call(binding, deal_id) + await callback.answer( + "Напоминание создано в Битриксе на час позже.", + show_alert=True + ) + except Exception as error: + await self.answer_callback_error(callback, error) + + async def send_deals_page( + self, + message: Message, + binding: Binding, + stage_key: str, + page: int + ) -> None: + deal_page = await self.service.list_by_stage(binding, stage_key, page) + await message.answer( + self.page_text(deal_page), + reply_markup=DealKeyboards.deals_page( + deal_page.deals, + deal_page.stage_filters, + deal_page.stage_filter.key, + deal_page.page, + deal_page.has_next + ), + parse_mode="HTML" + ) + + async def send_deal(self, message: Message, binding: Binding, + deal_id: str) -> None: + deal = await self.service.get(binding, deal_id) + if not deal: + await message.answer("Сделка не найдена.") + return + + await message.answer( + DealFormatter.deal_details(deal), + reply_markup=DealKeyboards.deal_card( + deal, + binding.bitrix_user_id + ), + parse_mode="HTML" + ) + + @staticmethod + def page_text(deal_page: DealPage) -> str: + title = DealFormatter.list_title( + deal_page.stage_filter, + deal_page.page, + deal_page.total_deals, + deal_page.total_pages + ) + if not deal_page.deals: + return f"{title}\n\nСделки в этом фильтре не найдены." + return title + + @staticmethod + async def edit_callback_message( + callback: CallbackQuery, + text: str, + reply_markup: InlineKeyboardMarkup, + unchanged_text: str + ) -> bool: + if not isinstance(callback.message, Message): + await callback.answer("Не удалось обновить сообщение.", + show_alert=True) + return False + + try: + await callback.message.edit_text( + text, + reply_markup=reply_markup, + parse_mode="HTML" + ) + return True + + except TelegramBadRequest as error: + if "message is not modified" in str(error).lower(): + await callback.answer(unchanged_text) + return False + raise + + @staticmethod + async def answer_error(message: Message, error: Exception) -> None: + if isinstance(error, httpx.HTTPStatusError): + logger.exception("Bitrix HTTP error") + await message.answer( + f"Ошибка HTTP Битрикс24: {error.response.status_code}") + elif isinstance(error, httpx.RequestError): + logger.exception("Bitrix connection error") + await message.answer("Не удалось подключиться к Битрикс24.") + elif isinstance(error, TelegramAPIError): + logger.exception("Telegram API error") + await message.answer("Telegram не смог выполнить действие.") + elif isinstance(error, RuntimeError): + logger.exception("Runtime error") + await message.answer(f"Ошибка: {html.escape(str(error))}") + else: + logger.exception("Unexpected bot error") + await message.answer("Произошла неизвестная ошибка.") + + @classmethod + async def answer_callback_error( + cls, + callback: CallbackQuery, + error: Exception + ) -> None: + if isinstance(callback.message, Message): + await cls.answer_error(callback.message, error) + try: + await callback.answer("Не удалось выполнить действие.", + show_alert=True) + except TelegramAPIError: + logger.exception("Failed to answer callback after error") diff --git a/apps/bot/main.py b/apps/bot/main.py new file mode 100644 index 0000000..5dc9162 --- /dev/null +++ b/apps/bot/main.py @@ -0,0 +1,57 @@ +import asyncio +import logging + +from aiogram import Bot, Dispatcher +from dotenv import load_dotenv + +from .binding import BindingService, BotBindingRepository +from .bitrix import BitrixClient +from .config import BotConfig +from .crypto import TokenCipher +from .database import BotDatabase +from .deals import DealService +from .handlers import DealBotHandlers, StartBotHandlers +from .oauth import BotOAuthRepository + + +async def run() -> None: + load_dotenv() + logging.basicConfig(level=logging.INFO) + logging.getLogger("httpx").setLevel(logging.WARNING) + logging.getLogger("httpcore").setLevel(logging.WARNING) + config = BotConfig.from_env() + + database = BotDatabase(config.database_url) + await database.open() + + bitrix = BitrixClient( + BotOAuthRepository(database), + TokenCipher(config.token_encryption_key), + config.bitrix_client_id, + config.bitrix_client_secret, + config.oauth_token_url, + ) + + bindings = BindingService(BotBindingRepository(database)) + deals = DealService( + bitrix, + config.take_to_work_stage_id, + ) + + dispatcher = Dispatcher() + dispatcher.include_router(StartBotHandlers(bindings).router) + dispatcher.include_router(DealBotHandlers(deals, bindings).router) + + try: + await dispatcher.start_polling(Bot(token=config.bot_token)) + finally: + await bitrix.close() + await database.close() + + +def main() -> None: + asyncio.run(run()) + + +if __name__ == "__main__": + main() diff --git a/apps/bot/middleware.py b/apps/bot/middleware.py new file mode 100644 index 0000000..bdb7850 --- /dev/null +++ b/apps/bot/middleware.py @@ -0,0 +1,34 @@ +from collections.abc import Awaitable, Callable +from typing import Any + +from aiogram import BaseMiddleware +from aiogram.types import CallbackQuery, Message, TelegramObject + +from .binding import BindingService + + +class BindingRequiredMiddleware(BaseMiddleware): + """Не пропускает CRM-команды до привязки аккаунта.""" + + def __init__(self, bindings: BindingService) -> None: + self.bindings = bindings + + async def __call__( + self, + handler: Callable[[TelegramObject, dict[str, Any]], Awaitable[Any]], + event: TelegramObject, + data: dict[str, Any] + ) -> Any: + user = data.get("event_from_user") + if user: + binding = await self.bindings.find(user.id) + if binding: + data["binding"] = binding + return await handler(event, data) + + text = "Сначала привяжи Telegram через приложение в Bitrix24." + if isinstance(event, CallbackQuery): + await event.answer(text, show_alert=True) + elif isinstance(event, Message): + await event.answer(text) + return None diff --git a/apps/bot/oauth.py b/apps/bot/oauth.py new file mode 100644 index 0000000..b98c93c --- /dev/null +++ b/apps/bot/oauth.py @@ -0,0 +1,84 @@ +from datetime import datetime + +from .database import BotDatabase +from .domain import Binding, OAuthCredentials + + +class BotOAuthRepository: + """Транзакционные операции с OAuth-данными Битрикса. + Обертка над хранимыми функциями БД.""" + + def __init__(self, database: BotDatabase) -> None: + self.database = database + + async def get(self, binding: Binding) -> OAuthCredentials | None: + async with self.database.transaction() as connection: + cursor = await connection.execute( + "SELECT * FROM oauth.get_credentials_v1(%s, %s)", + (binding.member_id, binding.bitrix_user_id) + ) + row = await cursor.fetchone() + # pyrefly: ignore [bad-argument-type] + return self._credentials(row) if row else None + + async def claim_refresh(self, credentials: OAuthCredentials) -> bool: + async with self.database.transaction() as connection: + cursor = await connection.execute( + "SELECT oauth.claim_refresh_v1(%s, %s, %s)", + ( + credentials.member_id, + credentials.bitrix_user_id, + credentials.version + ) + ) + row = await cursor.fetchone() + + # pyrefly: ignore [missing-attribute] + return bool(row and next(iter(row.values()))) + + async def finish_refresh( + self, + credentials: OAuthCredentials, + access_token: bytes, + refresh_token: bytes, + expires_at: datetime + ) -> bool: + async with self.database.transaction() as connection: + cursor = await connection.execute( + "SELECT oauth.finish_refresh_v1(%s, %s, %s, %s, %s, %s)", + ( + credentials.member_id, + credentials.bitrix_user_id, + credentials.version, + access_token, + refresh_token, + expires_at + ) + ) + row = await cursor.fetchone() + + # pyrefly: ignore [missing-attribute] + return bool(row and next(iter(row.values()))) + + async def release_refresh(self, credentials: OAuthCredentials) -> None: + async with self.database.transaction() as connection: + await connection.execute( + "SELECT oauth.release_refresh_v1(%s, %s, %s)", + ( + credentials.member_id, + credentials.bitrix_user_id, + credentials.version + ) + ) + + @staticmethod + def _credentials(row: dict) -> OAuthCredentials: + return OAuthCredentials( + member_id=str(row["member_id"]), + domain=str(row["domain"]), + bitrix_user_id=int(row["bitrix_user_id"]), + access_token=bytes(row["access_token"]), + refresh_token=bytes(row["refresh_token"]), + expires_at=row["expires_at"], + version=int(row["version"]) + ) diff --git a/apps/bot/presentation.py b/apps/bot/presentation.py new file mode 100644 index 0000000..2577a51 --- /dev/null +++ b/apps/bot/presentation.py @@ -0,0 +1,272 @@ +import decimal +import html +from typing import Any + +from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup + +from .domain import ( + MAX_DEAL_MESSAGE_LENGTH, + DealStageFilter, +) + + +class DealFormatter: + """Тексты карточек и списков Telegram.""" + + @staticmethod + def truncate(text: str, limit: int) -> str: + if len(text) <= limit: + return text + return text[: limit - 3].rstrip() + "..." + + @staticmethod + def list_title( + stage_filter: DealStageFilter, + page: int, + total_deals: int, + total_pages: int + ) -> str: + title = html.escape(stage_filter.title) + return ( + f"Сделки: {title}\n" + f"Всего сделок: {total_deals}\n" + f"Страница {page + 1} из {total_pages}" + ) + + @staticmethod + def money(value: Any, currency: Any) -> str: + try: + amount = decimal.Decimal(str(value or "0")) + formatted = f"{amount:,.2f}".replace(",", " ") + except decimal.InvalidOperation: + formatted = html.escape(str(value or "0")) + return f"{formatted} {html.escape(str(currency or ''))}".strip() + + @classmethod + def deal_summary(cls, deal: dict) -> str: + summary = " · ".join( + ( + f"#{deal.get('ID', '-')}", + str(deal.get("TITLE") or "Без названия"), + cls.money(deal.get("OPPORTUNITY"), deal.get("CURRENCY_ID")) + ) + ) + return cls.truncate(summary, 60) + + @classmethod + def deal_details(cls, deal: dict) -> str: + deal_id = html.escape(str(deal.get("ID", "-"))) + title = html.escape(str(deal.get("TITLE") or "Без названия")) + stage = html.escape( + str(deal.get("STAGE_NAME") or deal.get("STAGE_ID") or "-") + ) + source = html.escape( + str(deal.get("SOURCE_NAME") or deal.get("SOURCE_ID") or "-") + ) + assigned = html.escape(str(deal.get("ASSIGNED_BY_ID") or "не назначен")) + date = html.escape(str(deal.get("DATE_CREATE") or "-")) + client = html.escape(str(deal.get("CLIENT_NAME") or "не указан")) + company = html.escape(str(deal.get("CLIENT_COMPANY") or "")) + phone = html.escape(str(deal.get("CLIENT_PHONE") or "не найден")) + comments = html.escape(str(deal.get("COMMENTS") or "")).strip() + + lines = [ + f"Сделка #{deal_id}", + f"{title}", + "", + f"Клиент: {client}", + *([f"Компания: {company}"] if company else []), + f"Телефон клиента: {phone}", + f"Стадия: {stage}", + f"Источник сделки: {source}", + f"Сумма: {cls.money(deal.get('OPPORTUNITY'), deal.get('CURRENCY_ID'))}", + f"Ответственный: {assigned}", + f"Дата создания: {date}" + ] + if comments: + lines.extend(["", f"Комментарий:\n{comments}"]) + + return cls.truncate("\n".join(lines), MAX_DEAL_MESSAGE_LENGTH) + + @classmethod + def deal_history(cls, deal_id: str, events: list[dict]) -> str: + lines = [f"История сделки #{html.escape(deal_id)}"] + if not events: + lines.extend(["", "Изменения стадий пока не найдены."]) + return "\n".join(lines) + + event_names = { + "1": "Сделка создана", + "2": "Переход на стадию", + "3": "Переход на финальную стадию", + "5": "Изменение воронки" + } + for event in events: + date = html.escape( + str(event.get("CREATED_TIME") or "дата не указана")) + event_type = str(event.get("TYPE_ID") or "") + name = event_names.get(event_type, "Изменение стадии") + stage = html.escape(str( + event.get("STAGE_NAME") + or event.get("STAGE_ID") + or "не указана" + )) + lines.extend( + [ + "", + f"• {name}", + f" Стадия: {stage}", + f" {date}" + ] + ) + + return cls.truncate("\n".join(lines), MAX_DEAL_MESSAGE_LENGTH) + + +class DealKeyboards: + @staticmethod + def deals_page( + deals: list[dict], + stage_filters: tuple[DealStageFilter, ...], + stage_key: str, + page: int, + has_next: bool + ) -> InlineKeyboardMarkup: + filter_buttons = [ + InlineKeyboardButton( + text=("✓ " if stage.key == stage_key else "") + stage.title, + callback_data=f"deals:page:{stage.key}:0" + ) + for stage in stage_filters + ] + rows = [ + [ + InlineKeyboardButton( + text=DealFormatter.deal_summary(deal), + callback_data=f"deal:view:{deal['ID']}" + ) + ] + for deal in deals + ] + + navigation = [] + if page > 0: + navigation.append( + InlineKeyboardButton( + text="Назад", + callback_data=f"deals:page:{stage_key}:{page - 1}" + ) + ) + if has_next: + navigation.append( + InlineKeyboardButton( + text="Вперед", + callback_data=f"deals:page:{stage_key}:{page + 1}" + ) + ) + if navigation: + rows.append(navigation) + + rows.append( + [ + InlineKeyboardButton( + text="Обновить", + callback_data=f"deals:page:{stage_key}:{page}" + ) + ] + ) + rows.extend( + filter_buttons[index: index + 2] + for index in range(0, len(filter_buttons), 2) + ) + + return InlineKeyboardMarkup(inline_keyboard=rows) + + @staticmethod + def deal_card( + deal: dict, + viewer_bitrix_user_id: int + ) -> InlineKeyboardMarkup: + deal_id = str(deal["ID"]) + responsible_id = str(deal.get("ASSIGNED_BY_ID") or "") + rows = [] + + if ( + str(deal.get("IS_NEW") or "").upper() == "Y" + and responsible_id != str(viewer_bitrix_user_id) + ): + rows.append( + [ + InlineKeyboardButton( + text="Стать ответственным и взять в работу", + callback_data=( + f"deal:assign:{deal_id}:{responsible_id}") + ) + ] + ) + + if ( + responsible_id == str(viewer_bitrix_user_id) + and deal.get("NEXT_STAGE_ID") + ): + next_stage_name = DealFormatter.truncate( + str(deal.get("NEXT_STAGE_NAME") or "следующая стадия"), + 42, + ) + if deal.get("NEXT_STAGE_IS_FINAL"): + button_text = f"Завершить: {next_stage_name}" + else: + button_text = f"Следующая стадия: {next_stage_name}" + rows.append( + [ + InlineKeyboardButton( + text=button_text, + callback_data=f"deal:advance:{deal_id}", + ) + ] + ) + + rows.append( + [ + InlineKeyboardButton( + text="Позвонить позже", + callback_data=f"deal:remind:{deal_id}" + ) + ] + ) + rows.append( + [ + InlineKeyboardButton( + text="История изменений", + callback_data=f"deal:history:{deal_id}" + ) + ] + ) + rows.append( + [ + InlineKeyboardButton( + text="К списку сделок", + callback_data="deals:page:new:0" + ) + ] + ) + return InlineKeyboardMarkup(inline_keyboard=rows) + + @staticmethod + def deal_history(deal_id: str) -> InlineKeyboardMarkup: + return InlineKeyboardMarkup( + inline_keyboard=[ + [ + InlineKeyboardButton( + text="К сделке", + callback_data=f"deal:view:{deal_id}" + ) + ], + [ + InlineKeyboardButton( + text="К списку сделок", + callback_data="deals:page:new:0" + ) + ], + ] + ) diff --git a/apps/site/__init__.py b/apps/site/__init__.py new file mode 100644 index 0000000..b94a1e8 --- /dev/null +++ b/apps/site/__init__.py @@ -0,0 +1,3 @@ +from .app import create_app + +__all__ = ["create_app"] diff --git a/apps/site/app.py b/apps/site/app.py new file mode 100644 index 0000000..f56e24a --- /dev/null +++ b/apps/site/app.py @@ -0,0 +1,69 @@ +import atexit +import logging + +import httpx +from flask import Flask, jsonify +from dotenv import load_dotenv +from werkzeug.middleware.proxy_fix import ProxyFix + +from .binding import BindingService, SiteBindingRepository +from .bitrix import BitrixAuthError, BitrixClient +from .config import SiteConfig +from .crypto import TokenCipher +from .database import SiteDatabase +from .routes import SiteInputError, create_blueprint + +logger = logging.getLogger(__name__) + + +def create_app() -> Flask: + load_dotenv() + logging.getLogger("httpx").setLevel(logging.WARNING) + logging.getLogger("httpcore").setLevel(logging.WARNING) + config = SiteConfig.from_env() + app = Flask(__name__) + app.config["PUBLIC_BASE_URL"] = config.public_base_url + + if config.trust_proxy: + # Используется конфигурация, при которой снаружи контейнера находится + # обратный прокси nginx. + app.wsgi_app = ProxyFix( + app.wsgi_app, + x_for=1, + x_proto=1, + x_host=1, + ) + + database = SiteDatabase(config.database_url) + database.open() + bitrix = BitrixClient( + config.bitrix_client_id, + config.bitrix_client_secret, + config.oauth_token_url, + ) + bindings = BindingService( + SiteBindingRepository(database), + TokenCipher(config.token_encryption_key), + config.bot_username, + config.binding_ttl_seconds, + ) + + app.extensions["database"] = database + app.register_blueprint(create_blueprint(bindings, bitrix)) + atexit.register(database.close) + atexit.register(bitrix.close) + + @app.errorhandler(SiteInputError) + def input_error(error: SiteInputError): + return jsonify(error=str(error)), 400 + + @app.errorhandler(BitrixAuthError) + def auth_error(error: BitrixAuthError): + return jsonify(error=str(error)), 403 + + @app.errorhandler(httpx.HTTPError) + def bitrix_error(error: httpx.HTTPError): + logger.exception("Bitrix request failed") + return jsonify(error="Не удалось проверить пользователя Bitrix24"), 502 + + return app diff --git a/apps/site/binding.py b/apps/site/binding.py new file mode 100644 index 0000000..41dd274 --- /dev/null +++ b/apps/site/binding.py @@ -0,0 +1,98 @@ +import hashlib +import secrets +from dataclasses import dataclass +from datetime import UTC, datetime, timedelta + +from .database import SiteDatabase +from .crypto import TokenCipher + + +def hash_token(token: str) -> bytes: + return hashlib.sha256(token.encode("utf-8")).digest() + + +@dataclass(frozen=True) +class BindingLink: + url: str + expires_at: datetime + + +class SiteBindingRepository: + """Доступ сайта только к функциям выпуска токенов.""" + + def __init__(self, database: SiteDatabase) -> None: + self.database = database + + def issue( + self, + member_id: str, + domain: str, + bitrix_user_id: int, + token_hash: bytes, + token_expires_at: datetime, + access_token: bytes, + refresh_token: bytes, + oauth_expires_at: datetime, + ) -> None: + """Сохраняет в БД информацию о токене, выданном пользователю.""" + query = """ + SELECT * + FROM binding.issue_v1(%s, %s, %s, %s, %s, %s, %s, %s) \ + """ + with self.database.transaction() as connection: + connection.execute( + query, + ( + member_id, + domain, + bitrix_user_id, + token_hash, + token_expires_at, + access_token, + refresh_token, + oauth_expires_at, + ), + ).fetchone() + + +class BindingService: + def __init__( + self, + repository: SiteBindingRepository, + cipher: TokenCipher, + bot_username: str, + ttl_seconds: int, + ) -> None: + self.repository = repository + self.cipher = cipher + self.bot_username = bot_username + self.ttl_seconds = ttl_seconds + + def issue( + self, + member_id: str, + domain: str, + bitrix_user_id: int, + access_token: str, + refresh_token: str, + auth_expires_seconds: int, + ) -> BindingLink: + """Выдает ссылку для привязки аккаунта.""" + token = secrets.token_urlsafe(32) + now = datetime.now(UTC) + token_expires_at = now + timedelta(seconds=self.ttl_seconds) + oauth_expires_at = now + timedelta(seconds=auth_expires_seconds) + self.repository.issue( + member_id, + domain, + bitrix_user_id, + hash_token(token), + token_expires_at, + self.cipher.encrypt(access_token), + self.cipher.encrypt(refresh_token), + oauth_expires_at, + ) + return BindingLink( + url=f"https://t.me/{self.bot_username}?start=bind_{token}", + expires_at=token_expires_at, + ) diff --git a/apps/site/bitrix.py b/apps/site/bitrix.py new file mode 100644 index 0000000..1c25509 --- /dev/null +++ b/apps/site/bitrix.py @@ -0,0 +1,118 @@ +from dataclasses import dataclass +from urllib.parse import urlparse + +import httpx + + +class BitrixAuthError(RuntimeError): + pass + + +@dataclass(frozen=True) +class BitrixUser: + id: int + name: str + + +@dataclass(frozen=True) +class BitrixAuth: + member_id: str + domain: str + access_token: str + refresh_token: str + expires_in: int + user: BitrixUser + + +class BitrixClient: + """Получает доверенный OAuth-контекст и проверяет пользователя.""" + + def __init__( + self, + client_id: str, + client_secret: str, + oauth_token_url: str, + client: httpx.Client | None = None, + ) -> None: + self.client_id = client_id + self.client_secret = client_secret + self.oauth_token_url = oauth_token_url + # Клиент передается как внешняя зависимость для модульного тестирования. + self._client = client or httpx.Client(timeout=15) + # Соответственно, если клиент внешний, то класс + # этим ресурсом не управляет. + self._owns_client = client is None + + def authorize(self, refresh_token: str) -> BitrixAuth: + try: + # Обмениваем рефреш-токен на новую пару токенов. + # https://apidocs.bitrix24.com/settings/oauth/auto-renewal.html + # https://apidocs.bitrix24.com/settings/oauth/simple-way.html + response = self._client.get( + self.oauth_token_url, + params={ + "grant_type": "refresh_token", + "client_id": self.client_id, + "client_secret": self.client_secret, + "refresh_token": refresh_token, + }, + ) + response.raise_for_status() + except httpx.HTTPError: + # URL запроса содержит секреты, поэтому не пробрасываем его выше. + raise BitrixAuthError("Не удалось обновить OAuth-токен") from None + + data = response.json() + if "error" in data: + raise BitrixAuthError( + str(data.get("error_description") or data["error"])) + + # Получаем эндпоинт, с которым связаны наши токены. + endpoint = str(data.get("client_endpoint") or "") + parsed_endpoint = urlparse(endpoint) + if parsed_endpoint.scheme != "https" or not parsed_endpoint.hostname: + raise BitrixAuthError("Bitrix вернул некорректный REST endpoint") + + # Сохраняем токен доступа и проверяем пользователя. + access_token = str(data["access_token"]) + user = self._current_user(endpoint, access_token) + expected_user_id = data.get("user_id") + if expected_user_id is not None and user.id != int(expected_user_id): + raise BitrixAuthError( + "OAuth-токен принадлежит другому пользователю") + + return BitrixAuth( + member_id=str(data["member_id"]), + domain=parsed_endpoint.hostname.lower(), + access_token=access_token, + refresh_token=str(data["refresh_token"]), + expires_in=int(data.get("expires_in", 3600)), + user=user, + ) + + def _current_user(self, endpoint: str, access_token: str) -> BitrixUser: + """Получение информации о пользователе для проверки работоспособности.""" + # https://apidocs.bitrix24.com/api-reference/user/user-current.html + response = self._client.post( + endpoint.rstrip("/") + "/user.current.json", + data={"auth": access_token}, + ) + response.raise_for_status() + data = response.json() + if "error" in data or not data.get("result"): + raise BitrixAuthError("Bitrix не подтвердил текущего пользователя") + + user = data["result"] + name = " ".join( + part + for part in ( + str(user.get("NAME") or "").strip(), + str(user.get("LAST_NAME") or "").strip(), + ) + if part + ) + return BitrixUser(id=int(user["ID"]), name=name or f"ID {user['ID']}") + + def close(self) -> None: + if self._owns_client: + self._client.close() diff --git a/apps/site/config.py b/apps/site/config.py new file mode 100644 index 0000000..bb9fcd0 --- /dev/null +++ b/apps/site/config.py @@ -0,0 +1,57 @@ +import os +from dataclasses import dataclass +from urllib.parse import urlparse + + +def _required(name: str) -> str: + value = os.getenv(name) + if not value: + raise RuntimeError(f"{name} is not set") + return value + + +def _as_bool(value: str | None, default: bool = False) -> bool: + if value is None: + return default + return value.lower() in {"1", "true", "yes", "on"} + + +@dataclass(frozen=True) +class SiteConfig: + """Настройки HTTP-приложения.""" + + database_url: str + public_base_url: str + bot_username: str + token_encryption_key: str + bitrix_client_id: str + bitrix_client_secret: str + oauth_token_url: str + binding_ttl_seconds: int = 600 + trust_proxy: bool = True + + @classmethod + def from_env(cls) -> "SiteConfig": + public_base_url = _required("PUBLIC_BASE_URL").rstrip("/") + parsed_url = urlparse(public_base_url) + if parsed_url.scheme not in {"http", "https"} or not parsed_url.netloc: + raise RuntimeError("PUBLIC_BASE_URL must be an absolute URL") + + ttl = int(os.getenv("BINDING_TOKEN_TTL_SECONDS", "600")) + if not 60 <= ttl <= 3600: + raise RuntimeError("BINDING_TOKEN_TTL_SECONDS must be 60..3600") + + return cls( + database_url=_required("DATABASE_URL"), + public_base_url=public_base_url, + bot_username=_required("BOT_USERNAME").lstrip("@"), + token_encryption_key=_required("TOKEN_ENCRYPTION_KEY"), + bitrix_client_id=_required("BITRIX_CLIENT_ID"), + bitrix_client_secret=_required("BITRIX_CLIENT_SECRET"), + oauth_token_url=os.getenv( + "BITRIX_OAUTH_TOKEN_URL", + "https://oauth.bitrix.info/oauth/token/", + ), + binding_ttl_seconds=ttl, + trust_proxy=_as_bool(os.getenv("TRUST_PROXY"), default=True), + ) diff --git a/apps/site/crypto.py b/apps/site/crypto.py new file mode 100644 index 0000000..e858e3a --- /dev/null +++ b/apps/site/crypto.py @@ -0,0 +1,14 @@ +from cryptography.fernet import Fernet + + +class TokenCipher: + """Шифрует OAuth-токены перед передачей в БД.""" + + def __init__(self, key: str) -> None: + try: + self._fernet = Fernet(key.encode("ascii")) + except (ValueError, UnicodeEncodeError) as error: + raise RuntimeError("TOKEN_ENCRYPTION_KEY is invalid") from error + + def encrypt(self, value: str) -> bytes: + return self._fernet.encrypt(value.encode("utf-8")) diff --git a/apps/site/database.py b/apps/site/database.py new file mode 100644 index 0000000..12b6839 --- /dev/null +++ b/apps/site/database.py @@ -0,0 +1,39 @@ +from collections.abc import Generator +from contextlib import contextmanager + +from psycopg import Connection +from psycopg.rows import dict_row +from psycopg_pool import ConnectionPool + + +class SiteDatabase: + """Данный класс представляет собой обертку над пулом соединений + с базой данных PostgreSQL.""" + + def __init__(self, database_url: str) -> None: + # Пул может содержать в себе максимум 5 соединений. + self.pool = ConnectionPool( + conninfo=database_url, + min_size=1, + max_size=5, + open=False, + # Фабрика для представления строк БД как словарей. + kwargs={"row_factory": dict_row}, + ) + + def open(self) -> None: + self.pool.open(wait=True) + + def close(self) -> None: + self.pool.close() + + @contextmanager + def transaction(self) -> Generator[Connection]: + with self.pool.connection() as connection: + with connection.transaction(): + yield connection + + def ping(self) -> bool: + """Простая проверка подключения к БД.""" + with self.pool.connection() as connection: + return connection.execute("SELECT 1").fetchone() is not None diff --git a/apps/site/gunicorn.conf.py b/apps/site/gunicorn.conf.py new file mode 100644 index 0000000..cc06043 --- /dev/null +++ b/apps/site/gunicorn.conf.py @@ -0,0 +1,7 @@ +import os + +bind = f"{os.getenv('SITE_HOST', '0.0.0.0')}:{os.getenv('SITE_PORT', '8000')}" +workers = int(os.getenv("SITE_WORKERS", "2")) +accesslog = "-" +errorlog = "-" +timeout = 30 diff --git a/apps/site/routes.py b/apps/site/routes.py new file mode 100644 index 0000000..44c66f4 --- /dev/null +++ b/apps/site/routes.py @@ -0,0 +1,67 @@ +from collections.abc import Mapping +from typing import Any + +from flask import Blueprint, current_app, jsonify, render_template, request + +from .binding import BindingService +from .bitrix import BitrixClient + + +class SiteInputError(ValueError): + pass + + +def _field(payload: Mapping[str, Any], name: str) -> str: + """Проверка существования обязательного поля с именем name.""" + for key in (name, name.lower(), name.upper()): + value = payload.get(key) + if value is not None and str(value).strip(): + return str(value).strip() + raise SiteInputError(f"Не передано поле {name}") + + +def create_blueprint( + bindings: BindingService, + bitrix: BitrixClient, +) -> Blueprint: + blueprint = Blueprint("site", __name__) + + @blueprint.get("/") + def index(): + return jsonify( + service="bitrix-telegram-binding", + public_url=current_app.config["PUBLIC_BASE_URL"], + ) + + @blueprint.get("/health") + def health(): + database = current_app.extensions["database"] + try: + available = database.ping() + except Exception: + available = False + status = "ok" if available else "error" + return jsonify(status=status), 200 if available else 503 + + @blueprint.post("/bitrix/bind") + def bind(): + payload = request.get_json(silent=True) or request.form + refresh_token = _field(payload, "REFRESH_ID") + + # OAuth-ответ дает доверенные ID портала и пользователя. + auth = bitrix.authorize(refresh_token) + link = bindings.issue( + auth.member_id, + auth.domain, + auth.user.id, + auth.access_token, + auth.refresh_token, + auth.expires_in, + ) + return render_template( + "binding.html", + user=auth.user, + link=link, + ) + + return blueprint diff --git a/apps/site/templates/binding.html b/apps/site/templates/binding.html new file mode 100644 index 0000000..2042a60 --- /dev/null +++ b/apps/site/templates/binding.html @@ -0,0 +1,38 @@ + + + + + + Привязка Telegram + + + +

Привязка Telegram

+

{{ user.name }}, откройте бота и подтвердите привязку.

+Открыть Telegram +Ссылка одноразовая и действует до {{ link.expires_at.strftime('%H:%M + UTC') }}. + + diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..5f52d72 --- /dev/null +++ b/compose.yaml @@ -0,0 +1,100 @@ +# Источник: https://jtprog.ru/posts/docker-base/ + +# Четыре моих основных сервиса: база данных, миграция, сайт и бот. Сайт и бот +# используют одну базу данных, но от имени разных пользователей. +services: + db: + image: postgres:17-alpine + restart: unless-stopped + environment: + POSTGRES_DB: ${POSTGRES_DB:-bitrix_bot} + POSTGRES_USER: ${POSTGRES_USER:-postgres} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required} + SITE_DB_PASSWORD: ${SITE_DB_PASSWORD:?SITE_DB_PASSWORD is required} + BOT_DB_PASSWORD: ${BOT_DB_PASSWORD:?BOT_DB_PASSWORD is required} + volumes: + # Данные базы данных будут храниться в volume, чтобы при + # пересоздании контейнера данные не терялись. + - postgres_data:/var/lib/postgresql/data + # Скрипты инициализации базы данных будут монтироваться в контейнер (только для чтения), + # чтобы при пересоздании контейнера они не терялись. + - ./db/init:/docker-entrypoint-initdb.d:ro + # Проверка готовности базы данных. + # Контейнеры сайта и бота будут ждать, пока база данных не станет доступной. + healthcheck: + test: [ "CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres} -d ${POSTGRES_DB:-bitrix_bot}" ] + interval: 5s + timeout: 3s + retries: 10 + + # Сервис для выполнения миграций базы данных. + migrate: + image: postgres:17-alpine + environment: + PGHOST: db + PGPORT: 5432 + PGUSER: ${POSTGRES_USER:-postgres} + PGDATABASE: ${POSTGRES_DB:-bitrix_bot} + PGPASSWORD: ${POSTGRES_PASSWORD} + command: [ "sh", "/scripts/migrate.sh" ] + volumes: + - ./db/migrations:/migrations:ro + - ./db/migrate.sh:/scripts/migrate.sh:ro + depends_on: + db: + condition: service_healthy + + site: + # Сборка отдельного образа для сайта из Dockerfile в корне проекта. + build: . + restart: unless-stopped + # Gunicorn будет запускать приложение Flask. + command: + - gunicorn + - --config + - apps/site/gunicorn.conf.py + - apps.site:create_app() + environment: + DATABASE_URL: postgresql://site_app:${SITE_DB_PASSWORD}@db:5432/${POSTGRES_DB:-bitrix_bot} + PUBLIC_BASE_URL: ${PUBLIC_BASE_URL} + BOT_USERNAME: ${BOT_USERNAME} + BITRIX_CLIENT_ID: ${BITRIX_CLIENT_ID} + BITRIX_CLIENT_SECRET: ${BITRIX_CLIENT_SECRET} + BITRIX_OAUTH_TOKEN_URL: ${BITRIX_OAUTH_TOKEN_URL:-https://oauth.bitrix.info/oauth/token/} + TOKEN_ENCRYPTION_KEY: ${TOKEN_ENCRYPTION_KEY} + BINDING_TOKEN_TTL_SECONDS: ${BINDING_TOKEN_TTL_SECONDS:-600} + TRUST_PROXY: "true" + SITE_HOST: 0.0.0.0 + SITE_PORT: ${SITE_PORT:-8000} + # Количество воркеров Gunicorn. + SITE_WORKERS: ${SITE_WORKERS:-2} + ports: + # Публикуем порт сайта на хост-машине. + - "127.0.0.1:${SITE_PUBLISHED_PORT:-8000}:${SITE_PORT:-8000}" + depends_on: + db: + condition: service_healthy + migrate: + condition: service_completed_successfully + + bot: + build: . + restart: unless-stopped + command: [ "python", "-m", "apps.bot" ] + environment: + DATABASE_URL: postgresql://bot_app:${BOT_DB_PASSWORD}@db:5432/${POSTGRES_DB:-bitrix_bot} + BOT_TOKEN: ${BOT_TOKEN} + BITRIX_CLIENT_ID: ${BITRIX_CLIENT_ID} + BITRIX_CLIENT_SECRET: ${BITRIX_CLIENT_SECRET} + BITRIX_OAUTH_TOKEN_URL: ${BITRIX_OAUTH_TOKEN_URL:-https://oauth.bitrix.info/oauth/token/} + TOKEN_ENCRYPTION_KEY: ${TOKEN_ENCRYPTION_KEY} + BITRIX_TAKE_TO_WORK_STAGE_ID: ${BITRIX_TAKE_TO_WORK_STAGE_ID:-PREPARATION} + depends_on: + db: + condition: service_healthy + migrate: + condition: service_completed_successfully + +# Именованный volume для хранения базы данных. +volumes: + postgres_data: diff --git a/db/init/01-users.sh b/db/init/01-users.sh new file mode 100644 index 0000000..43a25b0 --- /dev/null +++ b/db/init/01-users.sh @@ -0,0 +1,25 @@ +#!/bin/sh +set -eu + +: "${SITE_DB_PASSWORD:?SITE_DB_PASSWORD is required}" +: "${BOT_DB_PASSWORD:?BOT_DB_PASSWORD is required}" + +psql -v ON_ERROR_STOP=1 \ + --username "$POSTGRES_USER" \ + --dbname "$POSTGRES_DB" \ + --set=site_password="$SITE_DB_PASSWORD" \ + --set=bot_password="$BOT_DB_PASSWORD" <<'SQL' +DO $roles$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'site_role') THEN + CREATE ROLE site_role NOLOGIN; + END IF; + IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'bot_role') THEN + CREATE ROLE bot_role NOLOGIN; + END IF; +END +$roles$; + +CREATE ROLE site_app LOGIN PASSWORD :'site_password' IN ROLE site_role; +CREATE ROLE bot_app LOGIN PASSWORD :'bot_password' IN ROLE bot_role; +SQL diff --git a/db/migrate.sh b/db/migrate.sh new file mode 100644 index 0000000..9c6b0ac --- /dev/null +++ b/db/migrate.sh @@ -0,0 +1,65 @@ +#!/bin/sh +set -eu + +PSQL="psql --no-psqlrc --set=ON_ERROR_STOP=1" + +echo "Проверка таблицы миграций" + +$PSQL <<'SQL' +CREATE TABLE IF NOT EXISTS public.schema_migrations ( + version text PRIMARY KEY, + checksum text NOT NULL, + applied_at timestamptz NOT NULL DEFAULT now() +); + +REVOKE ALL ON public.schema_migrations FROM PUBLIC; +SQL + +find /migrations \ + -maxdepth 1 \ + -type f \ + -name '[0-9][0-9][0-9]_*.sql' | +sort | +while IFS= read -r file; do + version="$(basename "$file")" + checksum="$(sha256sum "$file" | cut -d ' ' -f 1)" + + saved_checksum="$( + $PSQL \ + --tuples-only \ + --no-align \ + --set=migration_version="$version" <<'SQL' +SELECT checksum +FROM public.schema_migrations +WHERE version = :'migration_version'; +SQL + )" + + if [ -n "$saved_checksum" ]; then + if [ "$saved_checksum" != "$checksum" ]; then + echo "Ошибка: применённая миграция $version была изменена" + exit 1 + fi + + echo "Пропуск $version" + continue + fi + + echo "Применение $version" + + { + echo "BEGIN;" + cat "$file" + echo "" + echo "INSERT INTO public.schema_migrations(version, checksum)" + echo "VALUES (:'migration_version', :'migration_checksum');" + echo "COMMIT;" + } | + $PSQL \ + --set=migration_version="$version" \ + --set=migration_checksum="$checksum" + + echo "Миграция $version применена" +done + +echo "Все миграции применены" diff --git a/db/migrations/001_initial.sql b/db/migrations/001_initial.sql new file mode 100644 index 0000000..d321b58 --- /dev/null +++ b/db/migrations/001_initial.sql @@ -0,0 +1,493 @@ +-- Подключение расширения pgcrypto для генерации UUID. +CREATE EXTENSION IF NOT EXISTS pgcrypto; +CREATE SCHEMA IF NOT EXISTS binding; +CREATE SCHEMA IF NOT EXISTS oauth; + +CREATE TABLE IF NOT EXISTS binding.portals ( + id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY, + -- member_id - уникальный идентификатор портала из Битрикса. + member_id text NOT NULL UNIQUE, + -- domain - домен портала, например: example.bitrix24.ru. + domain text NOT NULL, + created_at timestamptz NOT NULL DEFAULT now(), + updated_at timestamptz NOT NULL DEFAULT now() +); + +CREATE TABLE IF NOT EXISTS binding.tokens ( + id uuid PRIMARY KEY DEFAULT gen_random_uuid(), + portal_id bigint NOT NULL REFERENCES binding.portals(id) ON DELETE CASCADE, + bitrix_user_id bigint NOT NULL, + -- Хеш токена, генерируется сервером. + token_hash bytea NOT NULL UNIQUE, + expires_at timestamptz NOT NULL, + consumed_at timestamptz, + revoked_at timestamptz, + created_at timestamptz NOT NULL DEFAULT now() +); + +CREATE INDEX IF NOT EXISTS binding_tokens_owner_idx + ON binding.tokens (portal_id, bitrix_user_id, created_at DESC); + +CREATE TABLE IF NOT EXISTS binding.user_bindings ( + id uuid PRIMARY KEY DEFAULT gen_random_uuid(), + portal_id bigint NOT NULL REFERENCES binding.portals(id) ON DELETE CASCADE, + bitrix_user_id bigint NOT NULL, + telegram_user_id bigint NOT NULL, + telegram_chat_id bigint NOT NULL, + created_at timestamptz NOT NULL DEFAULT now(), + updated_at timestamptz NOT NULL DEFAULT now(), + UNIQUE (portal_id, bitrix_user_id), + UNIQUE (portal_id, telegram_user_id) +); + +CREATE TABLE IF NOT EXISTS oauth.user_credentials ( + portal_id bigint NOT NULL REFERENCES binding.portals(id) ON DELETE CASCADE, + bitrix_user_id bigint NOT NULL, + access_token bytea NOT NULL, + refresh_token bytea NOT NULL, + expires_at timestamptz NOT NULL, + -- Двойной механизм защиты от гонок данных при обновлении токенов. + version bigint NOT NULL DEFAULT 1, + refresh_locked_until timestamptz, + updated_at timestamptz NOT NULL DEFAULT now(), + PRIMARY KEY (portal_id, bitrix_user_id) +); + +CREATE OR REPLACE FUNCTION binding.issue_v1( + p_member_id text, + p_domain text, + p_bitrix_user_id bigint, + p_token_hash bytea, + p_token_expires_at timestamptz, + p_access_token bytea, + p_refresh_token bytea, + p_oauth_expires_at timestamptz +) +RETURNS TABLE(token_id uuid, expires_at timestamptz) +LANGUAGE plpgsql +-- Задаем SECURITY DEFINER, чтобы функция выполнялась с правами владельца +-- схемы binding. +SECURITY DEFINER +-- Устанавливаем search_path в pg_catalog, чтобы нельзя было подменить +-- функции в схеме binding или oauth. +SET search_path = pg_catalog +AS $function$ +#variable_conflict error +DECLARE + v_portal_id bigint; + v_token_id uuid; +BEGIN + -- Добавляем данные о портале, если его ещё нет, + -- или обновляем домен, если портал уже существует. + INSERT INTO binding.portals(member_id, domain) + VALUES (p_member_id, lower(p_domain)) + ON CONFLICT (member_id) DO UPDATE + SET domain = EXCLUDED.domain, + updated_at = now() + RETURNING id INTO v_portal_id; + + -- Сохраняем OAuth-данные пользователя, если их ещё нет, + -- или обновляем их, если они уже существуют. + INSERT INTO oauth.user_credentials( + portal_id, + bitrix_user_id, + access_token, + refresh_token, + expires_at + ) + VALUES ( + v_portal_id, + p_bitrix_user_id, + p_access_token, + p_refresh_token, + p_oauth_expires_at + ) + ON CONFLICT (portal_id, bitrix_user_id) DO UPDATE + SET access_token = EXCLUDED.access_token, + refresh_token = EXCLUDED.refresh_token, + expires_at = EXCLUDED.expires_at, + version = oauth.user_credentials.version + 1, + refresh_locked_until = NULL, + updated_at = now(); + + -- Отзываем все предыдущие неиспользованные токены пользователя. + UPDATE binding.tokens + SET revoked_at = now() + WHERE portal_id = v_portal_id + AND bitrix_user_id = p_bitrix_user_id + AND consumed_at IS NULL + AND revoked_at IS NULL; + + -- Выпускаем новый токен привязки. + INSERT INTO binding.tokens( + portal_id, + bitrix_user_id, + token_hash, + expires_at + ) + VALUES ( + v_portal_id, + p_bitrix_user_id, + p_token_hash, + p_token_expires_at + ) + RETURNING id INTO v_token_id; + + -- Возвращаем идентификатор токена и срок его действия. + RETURN QUERY SELECT v_token_id, p_token_expires_at; +END +$function$; + +COMMENT ON FUNCTION binding.issue_v1( + text, + text, + bigint, + bytea, + timestamptz, + bytea, + bytea, + timestamptz +) +IS $doc$ +Сохраняет OAuth-данные пользователя и выпускает токен привязки. + +Гарантии: +- предыдущие неиспользованные токены отзываются; +- при обновлении OAuth-данных увеличивается их версия. + +Возвращает: +- token_id - идентификатор токена; +- expires_at - срок действия токена. +$doc$; + +CREATE OR REPLACE FUNCTION binding.consume_v1( + p_token_hash bytea, + p_telegram_user_id bigint, + p_telegram_chat_id bigint +) +RETURNS TABLE( + member_id text, + domain text, + bitrix_user_id bigint, + telegram_user_id bigint +) +LANGUAGE plpgsql +SECURITY DEFINER +SET search_path = pg_catalog +AS $function$ +#variable_conflict error +DECLARE + v_portal_id bigint; + v_bitrix_user_id bigint; +BEGIN + -- UPDATE не позволит двум запросам погасить один токен. + UPDATE binding.tokens AS token + SET consumed_at = now() + WHERE token.token_hash = p_token_hash + AND token.consumed_at IS NULL + AND token.revoked_at IS NULL + AND token.expires_at > now() + RETURNING token.portal_id, token.bitrix_user_id + INTO v_portal_id, v_bitrix_user_id; + + -- Если UPDATE не вернул ни одной строки, значит токен недействителен. + IF NOT FOUND THEN + RETURN; + END IF; + + -- Удаляем все привязки к Telegram для данного портала и пользователя Битрикса, + -- кроме той, которая соответствует текущему пользователю Битрикса. + DELETE FROM binding.user_bindings AS user_binding + WHERE user_binding.portal_id = v_portal_id + AND user_binding.telegram_user_id = p_telegram_user_id + AND user_binding.bitrix_user_id <> v_bitrix_user_id; + + -- Добавляем или обновляем привязку к Telegram для данного портала + -- и пользователя Битрикса. + INSERT INTO binding.user_bindings( + portal_id, + bitrix_user_id, + telegram_user_id, + telegram_chat_id + ) + VALUES ( + v_portal_id, + v_bitrix_user_id, + p_telegram_user_id, + p_telegram_chat_id + ) + ON CONFLICT ON CONSTRAINT user_bindings_pkey DO UPDATE + SET telegram_user_id = EXCLUDED.telegram_user_id, + telegram_chat_id = EXCLUDED.telegram_chat_id, + updated_at = now(); + + RETURN QUERY + SELECT + portal.member_id, + portal.domain, + v_bitrix_user_id, + p_telegram_user_id + FROM binding.portals AS portal + WHERE portal.id = v_portal_id; +END +$function$; + +COMMENT ON FUNCTION binding.consume_v1( + bytea, + bigint, + bigint +) +IS $doc$ +Погашает токен привязки и сохраняет привязку к Telegram. + +Гарантии: +- токен погашается только один раз; +- если токен недействителен, функция возвращает пустой результат; +- если токен действителен, функция возвращает данные портала и пользователя +Битрикса, а также сохраняет привязку к Telegram; +- если пользователь Битрикса уже был привязан к другому пользователю Telegram, +старая привязка удаляется. + +Возвращает: +- member_id - идентификатор портала; +- domain - домен портала; +- bitrix_user_id - идентификатор пользователя Битрикса; +- telegram_user_id - идентификатор пользователя Telegram. +$doc$; + +CREATE OR REPLACE FUNCTION binding.find_by_telegram_v1( + p_telegram_user_id bigint, + p_member_id text DEFAULT NULL +) +RETURNS TABLE( + member_id text, + domain text, + bitrix_user_id bigint, + telegram_user_id bigint +) +LANGUAGE sql +STABLE +SECURITY DEFINER +SET search_path = pg_catalog +AS $function$ + SELECT + portal.member_id, + portal.domain, + user_binding.bitrix_user_id, + user_binding.telegram_user_id + FROM binding.user_bindings AS user_binding + JOIN binding.portals AS portal ON portal.id = user_binding.portal_id + WHERE user_binding.telegram_user_id = p_telegram_user_id + AND (p_member_id IS NULL OR portal.member_id = p_member_id) + ORDER BY user_binding.updated_at DESC + LIMIT 1 +$function$; + +COMMENT ON FUNCTION binding.find_by_telegram_v1( + bigint, + text +) +IS $doc$ +Находит привязку к Telegram по идентификатору пользователя Telegram. + +Возвращает: +- member_id - идентификатор портала; +- domain - домен портала; +- bitrix_user_id - идентификатор пользователя Битрикса; +- telegram_user_id - идентификатор пользователя Telegram. +Если p_member_id не NULL, то поиск ограничивается указанным порталом. +$doc$; + +CREATE OR REPLACE FUNCTION oauth.get_credentials_v1( + p_member_id text, + p_bitrix_user_id bigint +) +RETURNS TABLE( + member_id text, + domain text, + bitrix_user_id bigint, + access_token bytea, + refresh_token bytea, + expires_at timestamptz, + version bigint +) +LANGUAGE sql +STABLE +SECURITY DEFINER +SET search_path = pg_catalog +AS $function$ + SELECT + portal.member_id, + portal.domain, + credentials.bitrix_user_id, + credentials.access_token, + credentials.refresh_token, + credentials.expires_at, + credentials.version + FROM oauth.user_credentials AS credentials + JOIN binding.portals AS portal ON portal.id = credentials.portal_id + WHERE portal.member_id = p_member_id + AND credentials.bitrix_user_id = p_bitrix_user_id +$function$; + +COMMENT ON FUNCTION oauth.get_credentials_v1( + text, + bigint +) +IS $doc$ +Находит OAuth-данные пользователя по идентификатору портала и идентификатору +пользователя Битрикса. + +Возвращает: +- member_id - идентификатор портала; +- domain - домен портала; +- bitrix_user_id - идентификатор пользователя Битрикса; +- access_token - токен доступа; +- refresh_token - токен обновления; +- expires_at - срок действия токена доступа; +- version - версия данных. +$doc$; + +CREATE OR REPLACE FUNCTION oauth.claim_refresh_v1( + p_member_id text, + p_bitrix_user_id bigint, + p_version bigint +) +RETURNS boolean +LANGUAGE sql +VOLATILE +SECURITY DEFINER +SET search_path = pg_catalog +AS $function$ + -- Создаем временную таблицу claimed, + -- которая будет содержать результат обновления (CTE). + WITH claimed AS ( + UPDATE oauth.user_credentials AS credentials + SET refresh_locked_until = now() + interval '30 seconds' + FROM binding.portals AS portal + WHERE credentials.portal_id = portal.id + AND portal.member_id = p_member_id + AND credentials.bitrix_user_id = p_bitrix_user_id + AND credentials.version = p_version + AND ( + credentials.refresh_locked_until IS NULL + OR credentials.refresh_locked_until < now() + ) + RETURNING 1 + ) + SELECT EXISTS(SELECT 1 FROM claimed) +$function$; + +COMMENT ON FUNCTION oauth.claim_refresh_v1( + text, + bigint, + bigint +) +IS $doc$ +Пытается захватить токен обновления для пользователя. + +Возвращает: +- true, если захват успешен; +- false, если захват не удался. +$doc$; + +CREATE OR REPLACE FUNCTION oauth.finish_refresh_v1( + p_member_id text, + p_bitrix_user_id bigint, + p_version bigint, + p_access_token bytea, + p_refresh_token bytea, + p_expires_at timestamptz +) +RETURNS boolean +LANGUAGE sql +VOLATILE +SECURITY DEFINER +SET search_path = pg_catalog +AS $function$ + WITH updated AS ( + UPDATE oauth.user_credentials AS credentials + SET access_token = p_access_token, + refresh_token = p_refresh_token, + expires_at = p_expires_at, + version = credentials.version + 1, + refresh_locked_until = NULL, + updated_at = now() + FROM binding.portals AS portal + WHERE credentials.portal_id = portal.id + AND portal.member_id = p_member_id + AND credentials.bitrix_user_id = p_bitrix_user_id + AND credentials.version = p_version + RETURNING 1 + ) + SELECT EXISTS(SELECT 1 FROM updated) +$function$; + +COMMENT ON FUNCTION oauth.finish_refresh_v1( + text, + bigint, + bigint, + bytea, + bytea, + timestamptz +) IS $doc$ +Завершает процесс обновления токена для пользователя. + +Возвращает: +- true, если обновление успешно завершено; +- false, если обновление не удалось. +$doc$; + +CREATE OR REPLACE FUNCTION oauth.release_refresh_v1( + p_member_id text, + p_bitrix_user_id bigint, + p_version bigint +) +RETURNS void +LANGUAGE sql +VOLATILE +SECURITY DEFINER +SET search_path = pg_catalog +AS $function$ + UPDATE oauth.user_credentials AS credentials + SET refresh_locked_until = NULL + FROM binding.portals AS portal + WHERE credentials.portal_id = portal.id + AND portal.member_id = p_member_id + AND credentials.bitrix_user_id = p_bitrix_user_id + AND credentials.version = p_version +$function$; + +COMMENT ON FUNCTION oauth.release_refresh_v1( + text, + bigint, + bigint +) IS $doc$ +Освобождает токен обновления для пользователя. + +Возвращает: +- void. +$doc$; + +-- Отзываем все права у PUBLIC. +REVOKE ALL ON ALL TABLES IN SCHEMA binding, oauth FROM PUBLIC; +REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA binding, oauth FROM PUBLIC; + +-- Даем права на использование схемы и выполнение функций ролям site_role +-- и bot_role. +GRANT USAGE ON SCHEMA binding TO site_role, bot_role; +GRANT USAGE ON SCHEMA oauth TO bot_role; + +-- Даем права на выполнение функций ролям site_role и bot_role. +GRANT EXECUTE ON FUNCTION binding.issue_v1( + text, text, bigint, bytea, timestamptz, bytea, bytea, timestamptz +) TO site_role; +GRANT EXECUTE ON FUNCTION binding.consume_v1(bytea, bigint, bigint) TO bot_role; +GRANT EXECUTE ON FUNCTION binding.find_by_telegram_v1(bigint, text) TO bot_role; +GRANT EXECUTE ON FUNCTION oauth.get_credentials_v1(text, bigint) TO bot_role; +GRANT EXECUTE ON FUNCTION oauth.claim_refresh_v1(text, bigint, bigint) TO bot_role; +GRANT EXECUTE ON FUNCTION oauth.finish_refresh_v1( + text, bigint, bigint, bytea, bytea, timestamptz +) TO bot_role; +GRANT EXECUTE ON FUNCTION oauth.release_refresh_v1(text, bigint, bigint) + TO bot_role; diff --git a/docs/adr/001-apps-and-database.md b/docs/adr/001-apps-and-database.md new file mode 100644 index 0000000..bf496ef --- /dev/null +++ b/docs/adr/001-apps-and-database.md @@ -0,0 +1,64 @@ +# ADR-001: разделение приложения на сайт, Telegram-бот и базу данных + +**Статус:** Принято +**Дата:** 2026-07-23 + +## Контекст + +Приложение включает страницу привязки пользователя Битрикс24, Telegram-интерфейс +менеджера и хранилище интеграционных данных. HTTP-сайт обрабатывает короткие +входящие запросы, тогда как Telegram-бот выполняет длительный polling и +параллельные REST-операции. + +## Решение + +Архитектура разделена на три основные структурные единицы: сайт привязки, +Telegram-бот и база данных, которая обслуживает остальные компоненты. Зона +ответственности каждого модуля определена отдельно. Сайт и бот не делят общий +код, а их права на уровне базы данных ограничены. + +HTTP-приложение `site` обслуживает только инициацию привязки и взаимодействует с +REST API и OAuth Битрикс24. Telegram-приложение `bot` обрабатывает команды +менеджера и взаимодействует как с REST API и OAuth Битрикс24, так и с Telegram +Bot API. PostgreSQL предоставляет обоим процессам устойчивый версионированный +контракт в виде `SECURITY DEFINER`-функций и поддерживает применение миграций. + +Программное решение регистрируется администратором портала как локальное +приложение с указанием ссылки на страницу привязки. Локальное приложение +отправляет на HTTPS-адрес `/bitrix/bind` идентификационные данные пользователя и +refresh-токен. Сайт обменивает его на новую пару OAuth-токенов, извлекает +доверенные `member_id`, `user_id` и `client_endpoint` из ответа Битрикс24, +проверяет пользователя методом `user.current` и только после этого выпускает +одноразовую ссылку Telegram. + +![UML-диаграмма компонентов программного решения](assets/report/architecture-components.png) + +*Рисунок ADR-001/1. UML-диаграмма компонентов программного решения* + +На схеме также обозначен сервис `migrate`. Он не является постоянно запущенным +модулем, но отвечает за миграции схемы БД. При перезапуске Docker Compose сервис +последовательно выполняет необходимые SQL-скрипты. Сайт имеет право выполнять +только функцию выпуска ссылки `binding.issue_v1`. Бот погашает ссылку, получает +привязку и обращается к OAuth-функциям. Прямые операции `SELECT`, `INSERT` и +`UPDATE` над таблицами для ролей приложений запрещены, поэтому граница базы +данных одновременно является границей доступа. + +| Компонент | Ответственность | Внешний интерфейс | +|------------|----------------------------------------------------------|------------------------------------------| +| nginx | Завершение TLS и проксирование только к сайту | HTTPS → 127.0.0.1:8000 | +| apps.site | OAuth-проверка пользователя и выпуск одноразовой ссылки | POST /bitrix/bind, GET /health | +| apps.bot | Команды Telegram, карточки и операции со сделками | Telegram Bot API, Битрикс REST | +| PostgreSQL | Привязки, токены, транзакционная синхронизация | binding.\* и oauth.\* | +| migrate | Однократное применение SQL-миграций до старта приложений | db/migrations/\*.sql | +| Битрикс24 | Источник CRM-данных и OAuth-контекста | oauth/token, user.current, crm.\* | +| Telegram | Пользовательский канал и доставка callback-событий | getUpdates, sendMessage, editMessageText | + +*Таблица ADR-001/1. Ответственность компонентов архитектуры* + +## Последствия + +Разделение уменьшает связанность и позволяет перезапускать или масштабировать +процессы независимо. Для коротких входящих запросов используется синхронный +Flask/Gunicorn, а для длительного polling и параллельных REST-операций — +asyncio/aiogram. Связь приложений формализована версионированными функциями +PostgreSQL вместо общего программного модуля. diff --git a/docs/adr/002-oauth-telegram-binding.md b/docs/adr/002-oauth-telegram-binding.md new file mode 100644 index 0000000..64a0a4b --- /dev/null +++ b/docs/adr/002-oauth-telegram-binding.md @@ -0,0 +1,46 @@ +# ADR-002: привязка пользователей Битрикс24 и Telegram + +**Статус:** Принято +**Дата:** 2026-07-23 + +## Контекст + +Локальное приложение CRM отправляет на HTTPS-адрес `/bitrix/bind` +идентификационные данные пользователя и refresh-токен. Идентификаторам портала и +пользователя из входной формы доверять нельзя: контекст должен быть получен от +OAuth-сервера Битрикс24 и подтверждён методом `user.current`. + +## Решение + +Сайт использует refresh-токен для получения новой OAuth-пары, доверенных +`member_id`, `user_id` и `client_endpoint`. После этого `BitrixClient` сверяет +`user_id` с результатом `user.current`. + +Процесс привязки учётных записей представлен на диаграмме последовательности. + +![Диаграмма последовательности привязки Битрикс24 к Telegram](assets/report/binding-sequence.png) + +*Рисунок ADR-002/1. Диаграмма последовательности привязки Битрикс24 к Telegram* + +После проверки пользователя функцией `secrets.token_urlsafe(32)` формируется +одноразовый токен привязки. В БД записывается только SHA-256-хеш, поэтому +компрометация базы не позволяет восстановить действующую ссылку. Срок жизни +задаётся переменной окружения `BINDING_TOKEN_TTL_SECONDS`, ограничен диапазоном +от 60 до 3600 секунд и по умолчанию равен 600 секундам. При повторном выпуске +прежние непогашенные токены того же пользователя отзываются. + +Пользователь переходит по одноразовой ссылке в чат с Telegram-ботом. Бот +повторно вычисляет SHA-256-хеш и сверяет его с активными токенами. Если токен +существует, не истёк, не отозван и ещё не погашен, он помечается использованным, +а в таблице привязок создаётся или обновляется связь пользователя Битрикс24 с +аккаунтом Telegram. + +Погашение выполняется только в личном чате. Проверка токена и изменение привязки +выполняются функцией `binding.consume_v1` в одной транзакции. + +## Последствия + +Привязка не использует идентификаторы пользователя из недоверенной входной +формы. В базе хранится только хеш одноразового токена, а повторный выпуск ссылки +отзывает предыдущие непогашенные токены. Атомарное погашение не позволяет двум +запросам одновременно использовать одну ссылку. diff --git a/docs/adr/003-oauth-credential-lifecycle.md b/docs/adr/003-oauth-credential-lifecycle.md new file mode 100644 index 0000000..8b783cf --- /dev/null +++ b/docs/adr/003-oauth-credential-lifecycle.md @@ -0,0 +1,53 @@ +# ADR-003: защита и обновление OAuth-токенов + +**Статус:** Принято +**Дата:** 2026-07-23 + +## Контекст + +Для выполнения REST-запросов приложение хранит `access_token` и `refresh_token`. +Битрикс24 возвращает новую пару токенов при каждом обновлении, поэтому +одновременное использование одного refresh-токена несколькими воркерами может +привести к потере актуальной пары. + +## Решение + +До передачи в PostgreSQL `access_token` и `refresh_token` шифруются алгоритмом +Fernet. Общий `TOKEN_ENCRYPTION_KEY` передаётся контейнерам `site` и `bot` через +переменные окружения, но не записывается в базу. Бот расшифровывает access-токен +непосредственно перед REST-запросом и не включает OAuth-параметры в тексты +ошибок. + +Принятые меры защиты сведены в таблицу. + +| Риск | Реализованная мера | Остаточный контроль | +|---------------------------------|--------------------------------------------|--------------------------------------| +| Утечка одноразовой ссылки из БД | Хранение SHA-256-хеша | Короткий TTL и однократное погашение | +| Чтение OAuth-токенов из БД | Fernet-шифрование до INSERT/UPDATE | Секретный ключ вне БД | +| Подмена пользователя | member_id/user_id из OAuth + user.current | Проверка HTTPS endpoint | +| Гонка refresh token | Версия и аренда refresh_locked_until | Повторное чтение до версии N+1 | +| Избыточные права приложений | Разные роли и EXECUTE только на функции | REVOKE для PUBLIC | +| Долгая транзакция | Сетевые запросы выполняются вне транзакции | Короткие контексты Psycopg | + +*Таблица ADR-003/1. Риски и меры защиты от них* + +При получении `expired_token`, `invalid_token` или `no_auth_found` клиент +пытается обновить пару токенов. Поле `version` реализует оптимистическую +проверку, а `refresh_locked_until` — короткую аренду продолжительностью 30 +секунд. Это предотвращает одновременное использование одного refresh-токена +несколькими воркерами. + +После успешного обновления токенов воркер освобождает аренду. Если она занята, +другой воркер ожидает обновления, после чего повторяет обращение к API с новой +парой токенов. + +![Диаграмма последовательности обновления OAuth-токена](assets/report/oauth-refresh-sequence.png) + +*Рисунок ADR-003/1. Диаграмма последовательности обновления OAuth-токена* + +## Последствия + +Сетевой запрос к OAuth выполняется вне транзакции PostgreSQL. Версия и аренда +координируют обновление между воркерами, а повторное чтение позволяет продолжить +работу с версией `N+1`. Дальнейшее развитие механизма защиты предусматривает +ротацию ключей шифрования. diff --git a/docs/adr/004-bot-layers.md b/docs/adr/004-bot-layers.md new file mode 100644 index 0000000..96d3728 --- /dev/null +++ b/docs/adr/004-bot-layers.md @@ -0,0 +1,61 @@ +# ADR-004: слоистая организация Telegram-бота + +**Статус:** Принято +**Дата:** 2026-07-23 + +## Контекст + +Telegram-бот принимает команды и callback-запросы, проверяет привязку +пользователя, обращается к PostgreSQL и REST API Битрикс24, а затем формирует +HTML-сообщения и inline-клавиатуры. + +## Решение + +Бот организован по слоям: обработчики принимают события Telegram, middleware +добавляет проверенную привязку в контекст, сервисы реализуют прикладные +сценарии, `BitrixClient` отвечает за OAuth и HTTP, а классы представления +формируют HTML-тексты и inline-клавиатуры. + +![UML-диаграмма основных классов решения](assets/report/bot-class-diagram.png) + +*Рисунок ADR-004/1. UML-диаграмма основных классов решения* + +Классы `Binding`, `OAuthCredentials`, `ClientInfo`, `DealStageFilter` и +`DealPage` являются dataclass-моделями передачи данных. Они отделяют словари +REST-ответов и строки БД от интерфейсов сервисов. `DealPage` дополнительно +вычисляет признак `has_next`, который используется при построении кнопок +пагинации. + +Основные команды и callback-действия Telegram-бота приведены в таблице. + +| Ввод | Обработчик | Результат | +|-----------------------------------------|---------------------------------|--------------------------------------------| +| /start, /help | StartBotHandlers.start | Справка или состояние привязки | +| /start bind_<token> | StartBotHandlers.bind | Погашение одноразовой ссылки в личном чате | +| /deals, /leads | DealBotHandlers.deals | Первая страница сделок начальной стадии | +| /deal ID, /lead ID | DealBotHandlers.deal_by_command | Карточка сделки по идентификатору | +| deals:page:<stage>:<page> | deals_page | Фильтрация по стадии и пагинация | +| deal:view:<id> | deal_by_button | Карточка выбранной сделки | +| deal:assign:<id>:<expected> | assign_responsible | Назначение текущего Битрикс-пользователя | +| deal:remind:<id> | remind_to_call | Создание дела на звонок через час | +| deal:history:<id> | show_history | Пять последних переходов по стадиям | + +*Таблица ADR-004/1. Пользовательские команды и callback-действия* + +Навигация по страницам списка, переход к карточке и возврат выполняются кнопками +клавиатуры с редактированием исходного сообщения бота. Список сделок также +поддерживает фильтрацию, которая задаётся дополнительными кнопками на странице +просмотра списка. + +Перед выполнением CRM-команд `BindingRequiredMiddleware` ищет привязку по +Telegram user id. При успешной проверке объект `Binding` помещается в словарь +`data` и передаётся именованным параметром обработчика. Если привязки нет, +цепочка прерывается до REST-запроса, а пользователь получает инструкцию открыть +приложение в Битрикс24. + +## Последствия + +Конструкторы принимают зависимости явно, поэтому сервисы можно тестировать с +имитационными репозиториями и REST-клиентами. Проверка middleware ограждает +пользователя от ошибочного поведения и гарантирует наличие привязки перед +обращением к CRM. diff --git a/docs/adr/005-bitrix-deal-read-model.md b/docs/adr/005-bitrix-deal-read-model.md new file mode 100644 index 0000000..5c7c844 --- /dev/null +++ b/docs/adr/005-bitrix-deal-read-model.md @@ -0,0 +1,83 @@ +# ADR-005: получение списка и карточки сделки из Битрикс24 + +**Статус:** Принято +**Дата:** 2026-07-23 + +## Контекст + +Приложение не копирует CRM-данные в локальную базу. Сведения о сделках, +контактах, компаниях, стадиях и истории запрашиваются через REST API +непосредственно в момент действия пользователя. PostgreSQL хранит только данные, +необходимые для идентификации пользователя и выполнения авторизованных запросов. + +Реализация работает с сущностью сделки и методами `crm.deal.*`. Команды `/leads` +и `/lead` используются как пользовательские псевдонимы `/deals` и `/deal`. + +## Решение + +Для получения и изменения данных применяются следующие методы REST API +Битрикс24. + +| Метод | Назначение | Ключевые параметры | +|-----------------------|-------------------------------|----------------------------------------| +| crm.deal.list | Список и пагинация | filter, select, order, start | +| crm.deal.get | Карточка и контроль состояния | id | +| crm.deal.update | Ответственный и стадия | id, fields, REGISTER_HISTORY_EVENT | +| crm.status.list | Стадии воронки и источники | ENTITY_ID, STATUS_ID | +| crm.contact.get | ФИО и телефон контакта | id | +| crm.company.get | Название и телефон компании | id | +| crm.stagehistory.list | История переходов | entityTypeId=2, OWNER_ID | +| crm.activity.todo.add | Отложенный звонок | ownerTypeId=2, deadline, responsibleId | + +*Таблица ADR-005/1. Используемые методы REST API Битрикс24* + +### Формирование списка + +Названия стадий не зашиты в интерфейсе. Метод `crm.status.list` получает +актуальную конфигурацию воронки, после чего первая стадия трактуется как +псевдофильтр `new`. Карта стадий кэшируется в памяти на 300 секунд отдельно для +портала, пользователя и категории. Дополнительно добавляется фильтр «Все», не +передающий `STAGE_ID` в Битрикс24. + +Размер страницы Telegram равен пяти сделкам, тогда как Битрикс24 может +возвращать другое количество элементов за запрос. `DealService` собирает +REST-страницы по полю `next` до тех пор, пока не сможет выделить диапазон +`[page * limit; page * limit + limit)`. Значение `total` используется для +расчёта общего числа страниц. Список сделок запрашивается методом +`crm.deal.list` с параметрами фильтрации. + +![Список сделок в интерфейсе Telegram](assets/report/deal-list-ui.png) + +*Рисунок ADR-005/1. Список сделок в интерфейсе Telegram* + +### Формирование карточки + +Получение карточки сделки продолжает сценарий работы со списком. + +![Диаграмма последовательности просмотра списка и карточки сделки](assets/report/deal-list-card-sequence.png) + +*Рисунок ADR-005/2. Диаграмма последовательности просмотра списка и карточки +сделки* + +Карточка загружается методом `crm.deal.get`, затем обогащается данными связанных +сущностей. Для контакта составляется ФИО и выбирается первый телефон; при +отсутствии телефона контакта проверяется компания. Идентификаторы источника и +стадии преобразуются в человекочитаемые названия. В итоговое сообщение +включаются сумма, валюта, ответственный, дата создания и комментарий. + +Все динамические строки перед включением в HTML-ответ Telegram проходят +`html.escape`. Длина карточки ограничена 3900 символами, что оставляет запас до +ограничения Telegram и предотвращает ошибку отправки из-за длинного комментария. +Кнопка назначения отображается только для новой сделки, если текущий +пользователь ещё не является ответственным. + +![Карточка сделки в интерфейсе Telegram](assets/report/deal-card-ui.png) + +*Рисунок ADR-005/3. Карточка сделки в интерфейсе Telegram* + +## Последствия + +Битрикс24 остаётся источником актуальных CRM-данных, а локальная база не требует +синхронизации сделок и связанных сущностей. В качестве дальнейшего развития +предусмотрен переход с устаревающих методов `crm.deal.*` на универсальные методы +`crm.item.*`. diff --git a/docs/adr/006-guarded-deal-mutations.md b/docs/adr/006-guarded-deal-mutations.md new file mode 100644 index 0000000..f9b59e7 --- /dev/null +++ b/docs/adr/006-guarded-deal-mutations.md @@ -0,0 +1,60 @@ +# ADR-006: изменение сделки с проверкой актуального состояния + +**Статус:** Принято +**Дата:** 2026-07-23 + +## Контекст + +Состояние сделки может измениться в Битрикс24 после формирования карточки в +Telegram, но до нажатия callback-кнопки. Используемый метод `crm.deal.update` не +предоставляет условный `UPDATE`, поэтому перед изменением требуется проверить, +что показанное пользователю состояние остаётся актуальным. + +## Решение + +### Назначение ответственного и изменение стадии + +Callback-кнопка назначения содержит не только id сделки, но и `ASSIGNED_BY_ID`, +который был показан пользователю: +`deal:assign::`. Перед изменением сервис +повторно загружает сделку и сравнивает фактического ответственного с ожидаемым. +Если карточка устарела, REST-обновление не выполняется. + +Внутри одного процесса операции по паре `(member_id, deal_id)` последовательно +выполняются под `asyncio.Lock`. После `crm.deal.update` сервис повторно читает +сделку и убеждается, что ответственным стал `bitrix_user_id` привязанного +пользователя. + +![Диаграмма последовательности взятия сделки в работу](assets/report/deal-assignment-sequence.png) + +*Рисунок ADR-006/1. Диаграмма последовательности взятия сделки в работу* + +При обновлении одновременно передаются `ASSIGNED_BY_ID` связанного пользователя, +рабочая `STAGE_ID` и параметр `REGISTER_HISTORY_EVENT=Y`. После REST-запроса +выполняется контрольное чтение сделки. + +### Планирование звонка и просмотр истории + +Действие «Позвонить позже» создаёт в Битрикс24 дело типа `todo` с крайним сроком +через один час. Владельцем является сделка (`ownerTypeId=2`), а ответственным — +связанный пользователь Битрикс24. Массив `pingOffsets=[0]` включает напоминание +в момент наступления срока. + +История загружается методом `crm.stagehistory.list` с фильтром `OWNER_ID` и +сортировкой по убыванию идентификатора. В интерфейс выводятся первые пять +событий. Для каждого события идентификатор стадии преобразуется в название с +учётом `CATEGORY_ID`, после чего `DealFormatter` формирует защищённый HTML-текст +и клавиатуру возврата к карточке или списку. + +![Диаграмма последовательности планирования звонка и просмотра истории](assets/report/reminder-history-sequence.png) + +*Рисунок ADR-006/2. Диаграмма последовательности планирования звонка и просмотра +истории* + +## Последствия + +Локальный `asyncio.Lock` защищает только один процесс `bot`. При горизонтальном +масштабировании на несколько контейнеров потребуется распределённая блокировка +либо серверная условная операция. Повторная проверка REST-результата сохраняет +защиту от внешних изменений, но не делает два удалённых вызова одной транзакцией +Битрикс24. diff --git a/docs/adr/007-container-deployment.md b/docs/adr/007-container-deployment.md new file mode 100644 index 0000000..50bdd77 --- /dev/null +++ b/docs/adr/007-container-deployment.md @@ -0,0 +1,46 @@ +# ADR-007: развёртывание приложения с помощью Docker Compose + +**Статус:** Принято +**Дата:** 2026-07-23 + +## Контекст + +Программное решение состоит из PostgreSQL, сервиса миграций, Telegram-бота и +Flask-сайта. База данных должна быть готова до запуска приложений, а +SQL-миграции должны выполняться последовательно с сохранением истории +применения. + +## Решение + +Для развёртывания используется Docker Compose из четырёх основных сервисов: +`db`, `site`, `bot` и `migrate`. Сервисы базы данных и миграций используют +готовые образы на основе Alpine Linux. Модули приложения собираются с помощью +Dockerfile на базе среды выполнения Python 3.13 и включают необходимые +библиотеки. + +Первым запускается контейнер `db` с PostgreSQL, который также импортирует +первичные настройки ролей. Контейнер PostgreSQL не публикует порт на хост и +остаётся доступным только внутри сети Compose. + +Затем запускается контейнер `migrate`. Он последовательно применяет SQL-скрипты +из `db/migrations` и сохраняет историю их применения в таблице +`public.schema_migrations`. Для каждой миграции хранится контрольная сумма. Если +уже применённый файл был изменён, выполнение завершается с ошибкой. + +После успешного завершения миграций запускаются Telegram-бот и Flask-сайт. +Условиями их запуска являются нормальное состояние контейнера базы данных и +успешное завершение контейнера `migrate`. + +Сайт доступен только через loopback-адрес `127.0.0.1`. Внешний nginx принимает +HTTPS-трафик и передаёт заголовки `X-Forwarded-*`. Бот не имеет входящего порта +и получает обновления методом long polling. + +Контейнеры приложения выполняются от системного пользователя `runtime`, а не от +`root`. + +## Последствия + +Миграции выполняются до запуска прикладных процессов. PostgreSQL не публикуется +наружу, сайт доступен извне только через HTTPS-прокси, а Telegram-бот не требует +входящего сетевого порта. Изменение уже применённой миграции обнаруживается по +несовпадению контрольной суммы. diff --git a/docs/adr/008-data-storage-and-access.md b/docs/adr/008-data-storage-and-access.md new file mode 100644 index 0000000..8e43971 --- /dev/null +++ b/docs/adr/008-data-storage-and-access.md @@ -0,0 +1,70 @@ +# ADR-008: хранение интеграционных данных и разграничение доступа + +**Статус:** Принято +**Дата:** 2026-07-23 + +## Контекст + +Основное назначение базы данных — хранение авторизационных данных, токенов +привязки, OAuth-токенов и связей между пользователями Битрикс24 и Telegram. +Сделки, контакты, компании, стадии и история остаются в Битрикс24 и в локальной +базе не дублируются. + +## Решение + +Модель хранения нормализована вокруг портала Битрикс24. + +![Схема базы данных](assets/report/database-schema.png) + +*Рисунок ADR-008/1. Схема базы данных* + +| Таблица | Ключевые данные | Назначение и ограничения | +|------------------------|-------------------------------------------------|-------------------------------------------------------| +| binding.portals | member_id, domain | Справочник порталов; member_id уникален | +| binding.tokens | token_hash, expires_at, consumed_at, revoked_at | Одноразовые ссылки; токен хранится только как хеш | +| binding.user_bindings | portal_id, bitrix_user_id, telegram_user_id | Однозначная привязка пользователей в пределах портала | +| oauth.user_credentials | access_token, refresh_token, version, lock | Зашифрованные OAuth-данные и координация обновления | + +*Таблица ADR-008/1. Назначение таблиц базы данных* + +Поле `member_id` является устойчивым внешним идентификатором портала, а числовой +`bitrix_user_id` имеет смысл только вместе с `portal_id`. Связи с `portals` +используют `ON DELETE CASCADE`: удаление портала автоматически удаляет его +ссылки, привязки и OAuth-данные. Составной первичный ключ +`oauth.user_credentials(portal_id, bitrix_user_id)` исключает две конкурирующие +записи учётных данных одного пользователя. Поля `consumed_at` и `revoked_at` +разделяют два независимых основания недействительности одноразовой ссылки. + +Для работы с данными в PostgreSQL созданы две роли: `site_role` и `bot_role`. +Они имеют разные права доступа к хранимым функциям и не могут редактировать +таблицы напрямую. + +| Функция | Вызывающая роль | Назначение | +|-----------------------------|-----------------|-------------------------------------------------------------------------------------| +| binding.issue_v1 | site_role | Сохранить OAuth-данные, отозвать старые ссылки и выпустить новую в одной транзакции | +| binding.consume_v1 | bot_role | Однократно погасить ссылку и создать привязку | +| binding.find_by_telegram_v1 | bot_role | Получить актуальную привязку Telegram | +| oauth.get_credentials_v1 | bot_role | Получить учётные данные связанного пользователя | +| oauth.claim_refresh_v1 | bot_role | Получить короткую аренду на обновление токена | +| oauth.finish_refresh_v1 | bot_role | Атомарно записать новую пару при совпадении версии | +| oauth.release_refresh_v1 | bot_role | Освободить аренду после ошибки | + +*Таблица ADR-008/2. Контракт хранимых функций PostgreSQL* + +Сайт использует роль `site_role` и может вызывать только функцию привязки. +Telegram-бот использует `bot_role` и может вызывать функции погашения токенов, +получения привязки и работы с OAuth. Роль `site_role` не имеет доступа к схеме +`oauth` и не может читать сохранённые токены; роль `bot_role` не может выпускать +новые ссылки от имени сайта. + +Все функции объявлены `SECURITY DEFINER` и фиксируют `search_path` в +`pg_catalog`, что уменьшает риск подмены объектов. Права `PUBLIC` на таблицы и +функции отозваны. + +## Последствия + +Конкурирующие вызовы `binding.consume_v1` для одного хеша не смогут одновременно +пройти условие `consumed_at IS NULL`: `UPDATE` блокирует строку, а после +завершения первой транзакции второй вызов видит уже установленное время +погашения. Проверка и изменение не разделены между приложением и базой, поэтому +отсутствует окно гонки между `SELECT` и `UPDATE`. diff --git a/docs/adr/assets/report/architecture-components.png b/docs/adr/assets/report/architecture-components.png new file mode 100644 index 0000000000000000000000000000000000000000..42a4177096eeb30ffc09b8c04416e132b1c997be GIT binary patch literal 25350 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%0ALZ%n0)u(8XC@Pg87eSegvTgfBIqcMTYc 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 literal 0 HcmV?d00001 diff --git a/docs/adr/assets/report/binding-sequence.png b/docs/adr/assets/report/binding-sequence.png new file mode 100644 index 0000000000000000000000000000000000000000..06601c3337b80f0c24276fec238d0587c9936f9e GIT binary patch literal 47174 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 Rub=Ftvb?%ng{=AO{{ahm!Hoa_ literal 0 HcmV?d00001 diff --git a/docs/adr/assets/report/bot-class-diagram.png b/docs/adr/assets/report/bot-class-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..84e85338d2e68a29c8533341d393b82f6927780b GIT binary patch literal 58830 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 AwEzGB literal 0 HcmV?d00001 diff --git a/docs/adr/assets/report/database-schema.png b/docs/adr/assets/report/database-schema.png new file mode 100644 index 0000000000000000000000000000000000000000..7a3062e7038b2d60988e70175237d0c3e45515ba GIT binary patch literal 56578 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 Y4_ma#Cp(!JN&o-=07*qoM6N<$f_X&QfB*mh literal 0 HcmV?d00001 diff --git a/docs/adr/assets/report/deal-list-card-sequence.png b/docs/adr/assets/report/deal-list-card-sequence.png new file mode 100644 index 0000000000000000000000000000000000000000..13d1dd95876bf5941052043c66db8283e96ed859 GIT binary patch literal 43781 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 literal 0 HcmV?d00001 diff --git a/docs/adr/assets/report/deal-list-ui.png b/docs/adr/assets/report/deal-list-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..8dca83b398a062fff8f7bfa25ecb51e806097370 GIT binary patch literal 218533 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 DpY28J literal 0 HcmV?d00001 diff --git a/docs/adr/assets/report/oauth-refresh-sequence.png b/docs/adr/assets/report/oauth-refresh-sequence.png new file mode 100644 index 0000000000000000000000000000000000000000..ea4bf49930ffa0fdcc8c8514d7ad38357d79464b GIT binary patch literal 41494 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%0D_SSYBbad9{I+peh7Ur~i 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 literal 0 HcmV?d00001 diff --git a/docs/adr/main.md b/docs/adr/main.md index 15cc34c..6f1031e 100644 --- a/docs/adr/main.md +++ b/docs/adr/main.md @@ -1,13 +1,43 @@ -# Архитектурные решения (ADR) +# Архитектурные решения BitrixDealsBot -## Введение +В ходе производственной практики разработано серверное приложение +BitrixDealsBot, которое предоставляет менеджеру по продажам интерфейс Telegram +для работы со сделками CRM Битрикс24. Разработанное решение не копирует +CRM-данные в локальную базу: все сведения о сделках, контактах, компаниях, +стадиях и истории запрашиваются через REST API непосредственно в момент действия +пользователя. PostgreSQL хранит только данные, необходимые для идентификации +пользователя Битрикс24 и его привязки к пользователю Telegram-бота, включая +OAuth-токены. -Данный раздел содержит архитектурные решения (ADR) для проекта. -Архитектурные решения описывают ключевые решения, принятые в процессе разработки -системы, включая выбор технологий, подходов и структурных решений. +В индивидуальном задании используется термин «лид», однако реализация работает с +сущностью сделки и методами `crm.deal.*`. Команды `/leads` и `/lead` сохранены +как пользовательские псевдонимы `/deals` и `/deal`, поэтому интерфейс остаётся +совместимым с формулировкой задания, а в документации используется технически +точное понятие «сделка». -## Оглавление +## Технологический стек -**В данном разделе представлены следующие архитектурные решения:** +| Уровень | Технология | Назначение | +|---------------|---------------------------|--------------------------------------------------------------------------| +| Язык | Python 3.13 | Серверная логика сайта и Telegram-бота | +| Telegram | aiogram 3 | Асинхронная маршрутизация команд, callback-запросов и опроса сервера | +| HTTP-сервер | Flask 3 + Gunicorn | Страница привязки пользователя Битрикс24 к конкретному аккаунту Telegram | +| Запросы к API | httpx | Синхронные и асинхронные запросы к OAuth и REST API Битрикс24 | +| Хранилище | PostgreSQL 17 + Psycopg 3 | Транзакции, хранимые функции и пулы соединений | +| Защита | Fernet + SHA-256 | Шифрование OAuth-токенов и хеширование одноразовых ссылок | +| Развёртывание | Docker Compose + nginx | Изоляция процессов, миграции, HTTPS и обратное проксирование | -_(В процессе разработки будут добавляться новые решения)_ \ No newline at end of file +*Таблица 1. Технологический стек решения* + +## Состав группы ADR + +| ADR | Архитектурное решение | Статус | +|----------------------------------------------|-----------------------------------------------------------|---------| +| [ADR-001](001-apps-and-database.md) | Разделение приложения на сайт, Telegram-бот и базу данных | Принято | +| [ADR-002](002-oauth-telegram-binding.md) | Привязка пользователей Битрикс24 и Telegram | Принято | +| [ADR-003](003-oauth-credential-lifecycle.md) | Защита и обновление OAuth-токенов | Принято | +| [ADR-004](004-bot-layers.md) | Слоистая организация Telegram-бота | Принято | +| [ADR-005](005-bitrix-deal-read-model.md) | Получение списка и карточки сделки из Битрикс24 | Принято | +| [ADR-006](006-guarded-deal-mutations.md) | Изменение сделки с проверкой актуального состояния | Принято | +| [ADR-007](007-container-deployment.md) | Развёртывание приложения с помощью Docker Compose | Принято | +| [ADR-008](008-data-storage-and-access.md) | Хранение интеграционных данных и разграничение доступа | Принято | diff --git a/requirements.txt b/requirements.txt index 71badf2..b965b7e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,8 @@ httpx~=0.28.1 aiogram~=3.29.1 -python-dotenv~=1.2.2 \ No newline at end of file +python-dotenv~=1.2.2 +Flask>=3.1,<4 +gunicorn>=23,<24 +psycopg[binary,pool]>=3.2,<4 +cryptography>=44,<48 +werkzeug>=3.1,<4 \ No newline at end of file

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 literal 0 HcmV?d00001 diff --git a/docs/adr/assets/report/deal-assignment-sequence.png b/docs/adr/assets/report/deal-assignment-sequence.png new file mode 100644 index 0000000000000000000000000000000000000000..3296112f7bb407d1a3746da44ea8a00f1dbd9efc GIT binary patch literal 40771 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 S-{sZ>U}0)&g1>a_{=We}b8CwL literal 0 HcmV?d00001 diff --git a/docs/adr/assets/report/deal-card-ui.png b/docs/adr/assets/report/deal-card-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..0d8eb3dde0cc5db7581b517d09cf6d4d359b3464 GIT binary patch literal 103921 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