Files
bare/docs/decisions/019-registration-and-contacts.md
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

2.5 KiB
Raw Permalink Blame History

ADR-019: Регистрация, ники и контакты

Контекст

Открытые вопросы: открытая регистрация или инвайты; как добавляется контакт и начинается чат 1:1. Bare — маленький инструмент для небольших групп, а не публичная сеть.

Решение

  • Ник: ^[a-z0-9_]{2,32}$. Только строчные — уникальность без регистровых коллизий и омоглифов. Ник постоянен, смены нет.
  • Регистрация открыта. Оператор может задать один общий инвайт-код (BARE_INVITE_CODE в окружении); если задан, регистрация требует его. Персональных инвайтов, ссылок и списков нет.
  • Чат 1:1 начинается с ввода ника: клиент получает публичный ключ (GET /api/users/{nick}) и пишет. Согласия получателя не требуется — как в e-mail. Контакт — строка в списке чатов, которую сервер заводит обеим сторонам при первом сообщении в любую сторону, чтобы новое устройство видело список чатов без истории. DELETE /api/contacts/{nick} убирает чат из списка, не блокируя собеседника.
  • Блокировки в v1 нет. Защита от спама — инвайт-код и rate limiting (ADR-021).
  • Удаление аккаунта: DELETE /api/me с подтверждением authKey удаляет аккаунт, устройства, контакты, членство и очереди. Комнаты, где пользователь владелец, передаются по правилу ADR-018.

Следствия

  • Ник — публичный идентификатор; что он существует, узнать можно. Это не секрет и не считается утечкой.
  • Общий инвайт-код — барьер от ботов, не от людей, которым его передали. Большего v1 не обещает.
  • Блокировка и персональные инвайты — кандидаты на следующие ADR, если понадобятся.