Деплой: прочитанность чатов и уведомления
Миграции
- Выполнить миграции SQL:
supabase/migrations/20251204_chat_unread_view_and_functions.sql
supabase/migrations/20251204_chat_triggers_unread_clear.sql
supabase/migrations/20251204_chat_audit_and_indexes.sql
supabase/migrations/20251204_chat_rate_limit.sql
Edge-функция
- Развернуть
supabase/functions/chat-mark-read/index.ts:
supabase functions deploy chat-mark-read
- Ответы ошибок:
- 401:
{ "error": "Authorization header required" }
- 422:
{ "error": "Invalid session_id" }
- 400:
{ "error": "Failed to mark read", "details": "..." }
- Логирование:
- Записывать
user_id, session_id, up_to_message_id, status и details в chat_read_events/Edge logs.
- На повторяющихся 4xx — включать заголовок
Retry-After: 300 для клиентского бэк‑оффа.
Наблюдение
- Метрики и логи Supabase Edge: панель Supabase → Functions → chat-mark-read.
- SQL мониторинг:
chat_read_events — аудит обращений.
- Реалтайм: подписки
chat_messages и chat_participants в клиенте.
Проверка
- Прогнать Jest:
npm test.
- Запустить e2e Playwright:
npx playwright test tests/e2e/chat-read.spec.ts (нужна подготовка данных и селекторы).