# 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, если понадобятся.
