Перейти к содержанию

Деплой: прочитанность чатов и уведомления

Миграции

  • Выполнить миграции 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 (нужна подготовка данных и селекторы).