POST /api/auth/register — Регистрация
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | POST /api/auth/register |
| Auth | — |
| Scope токена | read_write |
| PG-функции | api.register, api.transfer_guest_projects |
| Таблицы | user, session, project, space |
| SRM | SRM-085, SRM-143 |
| RP (права) | RP-090, RP-094 |
| Файл роута | server/routes/auth.js |
| Статус | done |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
| Аргумент | Где | Обяз. | Заметка |
|---|---|---|---|
displayName | body | подтвердить | |
email | body | подтвердить | |
password | body | подтвердить | |
termsAccepted | body | подтвердить |
Коды ответов/ошибок (из хендлера): 201, 400, 409, 500 (+ 200) — уточнить причины вручную
Для человека
Как открыть: нажмите «Войти» в верхнем углу → в карточке входа внизу ссылка «Нет аккаунта? Зарегистрироваться» → форма с полями «Имя», e-mail, пароль и галочкой согласия → кнопка «Зарегистрироваться».
Заводит новый аккаунт и сразу открывает сессию — отдельно входить после регистрации не нужно. Имя можно не вводить (тогда подставится часть e-mail до «@»), а вот почта, пароль и согласие с условиями обязательны.
Что проверяется:
- почта — по формату; кривой адрес →
400; - пароль — не короче 8 символов → иначе
400; - галочка «Принимаю условия» — без неё кнопка неактивна, а запрос вернёт
400; - имя — до 100 символов.
Если на такую почту уже есть аккаунт — 409 с понятным сообщением.
Перенос гостевых проектов. Если до регистрации вы что-то создавали как гость, эти проекты переедут в ваш личный спейс автоматически (FM-083, RP-094) — ничего вручную переносить не нужно. Если перенос почему-то не удался, регистрация всё равно проходит: аккаунт создаётся, просто гостевые проекты остаются на месте и их можно создать заново.
Кто может. Регистрация — действие гостя (RP-090): вошедшему пользователю она не нужна и в интерфейсе не предлагается.
Для агента
Регистрация — путь человека к аккаунту, агент его не проходит. У агента нет своего аккаунта: он работает под токеном, который владелец-человек заранее выпускает в профиле (Создать токен). Заводить пользователей через API токен не может и не должен.
Метод задокументирован для полноты. Тело запроса:
| Поле | Тип | Обяз. | Назначение |
|---|---|---|---|
email | string | да | Почта, проверяется по формату |
password | string | да | Не короче 8 символов |
displayName | string | нет | Имя; если опущено — берётся часть e-mail до «@» |
termsAccepted | boolean | да | Согласие с условиями (должно быть true) |
На успех (201) создаёт пользователя, открывает сессию (Set-Cookie) и возвращает профиль:
{ "user": { "id": "a1b2c3d4-...", "email": "user@example.com", "displayName": "Иван" } }Ошибки: 400 (формат почты, короткий пароль, нет согласия), 409 (почта занята). Перенос гостевых проектов запускается, если передан заголовок X-Guest-Projects со списком id. Markdown-зеркала и аффордансов у метода нет — в агентный набор ресурсов он не входит (server/agent/affordances.js).