Files
bare/docs/decisions/008-server-relay.md
T
mayatnikovandClaude Fable 5 ae55c846aa ADR-015…024 и спецификации v1: криптография, протокол, хранение, UI, деплой, план
Закрыты все открытые вопросы проектирования. Пароль не покидает клиент
(два ключа из мастера), TOFU для публичных ключей, устройства и конверт,
атомарный rekey комнат, регистрация и контакты, схема SQLite и драйвер
без cgo, сессии и CSRF, деплой через nginx+systemd, правила пушей,
айдентика «Скобы» на системном mono. Иконки PWA в web/icons.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015DbCjVfTFq4ZFG8juD45YJ
2026-08-22 10:53:24 +03:00

1.5 KiB

ADR-008: Сервер — реле с per-device очередью

Уточнён ADR-017 (идентификация устройства, конверт, ACK) и ADR-018: к метаданным комнат относятся завёрнутые ключи.

Контекст

Сервер никогда не является местом, где живёт история (философия, п. 2). Но получатель бывает офлайн — сообщение надо где-то подержать до доставки.

Решение

Сервер хранит транзитную очередь зашифрованных недоставленных сообщений, per-device. Доставлено и подтверждено ACK — удалено с сервера. Не забрано за 30 дней — удалено. Кроме очереди сервер хранит только аккаунты и метаданные комнат и контактов.

Следствия

  • На сервере нет истории — компрометация сервера не раскрывает переписку.
  • Устройство, молчавшее больше 30 дней, теряет недоставленные сообщения. Осознанно.
  • Нужна идентификация устройства для очередей — открытый вопрос.