axe/internal/db/migrations/0012_user_bot_tokens.sql
2026-10-18 22:07:25 +03:00

26 lines
1.9 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 0012_user_bot_tokens — токен собственного бота у каждого пользователя.
--
-- Зачем: раньше бот был один на весь сервис (TELEGRAM_BOT_TOKEN в env
-- сервера), и уведомления шли только от него. Теперь пользователь может
-- подключить своего бота сам, из раздела «Настройки»: создаёт его в
-- @BotFather, вставляет токен — уведомления уходят через его бота.
-- Глобальный бот остаётся запасным вариантом для тех, кто токен не ввёл.
--
-- Хранение: токен зашифрован на стороне приложения (AES-256-GCM, ключ —
-- секрет DATA_ENCRYPTION_KEY), в базе лежит bytea. Ответ «что это за
-- бот» (telegram_bot_username) берётся из getMe при сохранении и лежит
-- открыто: имя бота секрета не представляет.
--
-- Кто чем владеет:
-- * telegram_bot_token — приватно, читается только своим пользователем,
-- в API не отдаётся вообще (в статусе только has_bot_token);
-- * telegram_target — куда слать (та же колонка, что и раньше).
--
-- Применённый файл не редактировать (checksum в schema_migrations).
ALTER TABLE profiles ADD COLUMN IF NOT EXISTS telegram_bot_token bytea;
ALTER TABLE profiles ADD COLUMN IF NOT EXISTS telegram_bot_username text;
-- Отбор пользователей со своим ботом при старте процесса (реестр ботов
-- и их поллеры): колонка трогается редко, индекс не нужен.