Техническая спецификация · для разработчиков
Контракт v1
Статус: фаза 1 — контракт (2026-10-21). Здесь REST-контракт
(openapi-v1.yaml), события (asyncapi-v1.yaml), E2EE (e2ee-v1.html) и
правила. Бэкенд пока обслуживает /api/*; /v1 — целевой публичный слой.
Принципы
- Сотрудники и гости. Сотрудники входят по SIWE или корпоративному ID; гости — по подписанному invite-token. Сторонние приложения получают scoped-токены, а не чужой JWT.
- E2EE на клиенте. Сервер хранит и пересылает шифрованные конверты и блобы, но видит метаданные и параметры сигналинга. Базовые сообщения и медиа проектируются как E2EE. Транскрипт и AI-итоги — отдельные функции; в конфиденциальном профиле они отключены.
- Явные версии. Всё в
/v1; ломающие изменения — только в/v2. - Минимум доверия. Приложение видит только те scopes, которые ему выдали; чувствительные действия требуют подписи кошелька.
- Метаданные — тоже данные. Сервер видит, кто/когда/сколько; это фиксируется в политике приватности, а не замалчивается.
Аутентификация
| Субъект | Способ | Токен |
|---|---|---|
| Сотрудник | POST /v1/auth/siwe/challenge → подпись → verify или корпоративный ID |
JWT aud=user, короткий TTL |
| Гость | Подписанный invite-token /i/<token> |
Короткая гостевая сессия, без кошелька |
| Пользователь + приложение | OAuth2 authorization code + PKCE, консент через SIWE | JWT aud=app, wallet, scopes |
| Серверный бот/интеграция | client credentials (по решению оператора) | JWT aud=app, без wallet (только разрешённые scopes) |
Scopes: messages:read, messages:write, keys:read, keys:write,
rooms:create, rooms:join, devices:write, webhooks:manage.
E2EE в двух словах
- У каждого устройства identity key + signed prekey + one-time prekeys.
- Отправитель строит X3DH и шлёт
EncryptedEnvelope(opaque для сервера). - Группы — sender keys внутри E2EE; сервер видит
senderKeyId, конверт и метаданные. - Допуск в комнату — приглашение
/i/<token>; фрагмент#k=— ключ шифрования, а не допуск. Обмен key material — через сигналинг; медиа — frame transforms (Insertable Streams/SFrame).
Статус и ограничения
- Публичная бета; контракт описывает целевой слой
/v1. - Новые комнаты создаются только подключёнными компаниями; самостоятельное создание с сайта отключено.
- Гостевые ссылки — основной способ допуска; код комнаты остаётся legacy.
- Независимый внешний аудит не проводился.
MEETER / DOCS