POST /api/projects/:id/transfer — Передать проект в организацию
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | POST /api/projects/:id/transfer |
| Auth | requireAuth — только авторизованный |
| Scope токена | read_write |
| PG-функции | api.transfer_project_to_org |
| Таблицы | project, space |
| SRM | SRM-237 |
| RP (права) | — |
| Файл роута | server/routes/projects.js |
| Статус | done |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
| Аргумент | Где | Обяз. | Заметка |
|---|---|---|---|
orgId | body | подтвердить | |
org_id | body | подтвердить |
Коды ответов/ошибок (из хендлера): 400, 403, 409 (+ 200) — уточнить причины вручную
Для человека
Как открыть: в списке проектов на карточке личного проекта откройте меню «⋯» и выберите «Передать в организацию». Затем укажите организацию-получателя.
Передаёт ваш личный проект в командный спейс выбранной организации — в спейс той же коллекции, к которой привязан проект. После переноса проект перестаёт быть личным и становится доступен команде этого спейса.
Ограничения:
- Переносить можно только личный проект. Командный проект уже принадлежит организации — переносить нечего.
- В организации должен быть ровно один спейс с этой коллекцией. Если такого спейса нет — нельзя (
409); если их несколько — выбор неоднозначен и перенос тоже отклоняется (409). - Личный проект с собственной кастомизацией коллекции (overlay) перенести нельзя: overlay не поддерживается в командном спейсе.
- Вы должны состоять в этой организации и быть владельцем проекта (
403иначе).
Для агента
Запись — нужен токен со scope read_write (см. Конвенции). Вызывающий должен быть владельцем личного проекта и состоять в целевой организации.
Тело запроса (JSON):
| Поле | Тип | Обяз. | Назначение |
|---|---|---|---|
org_id | uuid | да | Организация-получатель. Перенос идёт в её спейс с той же коллекцией, что у проекта |
Пример запроса:
curl -X POST https://specbuilder.vnimanie.ai/api/projects/a1b2c3d4-.../transfer \ -H "Authorization: Bearer tak_..." \ -H "Content-Type: application/json" \ -d '{"org_id":"f9e8d7c6-..."}'Ответ 200:
{ "ok": true, "space_id": "f9e8d7c6-...", "collection": "ml-ai-development" }Ответ всегда JSON.
Доменные коды (тело { error: "<КОД>", … }) — см. Ошибки:
| Код | HTTP | Когда |
|---|---|---|
NO_COMPATIBLE_SPACE | 409 | В целевой org нет спейса с этой коллекцией (в теле — collection) |
MULTIPLE_SPACES | 409 | В org несколько подходящих спейсов, выбор неоднозначен (в теле — count) |
only_personal_projects_can_be_transferred | 409 | Проект не личный — переносить нечего |
PERSONAL_HAS_OVERLAY | 409 | У личного проекта есть overlay-кастомизация — она не переносится |
user_not_org_member | 403 | Вызывающий не состоит в целевой организации |
not_owner | 403 | Вызывающий не владелец проекта |
Связанные
- Экраны: Список проектов
- Конвенции · Роли · Ошибки · Глоссарий