Перейти к содержимому

POST /api/projects/:id/transfer — Передать проект в организацию

Сгенерировано из матриц + кода. Правки вносить в источники (docs/matrices/, server/routes/), не здесь.

ПолеЗначение
HTTPPOST /api/projects/:id/transfer
AuthrequireAuth — только авторизованный
Scope токенаread_write
PG-функцииapi.transfer_project_to_org
Таблицыproject, space
SRMSRM-237
RP (права)
Файл роутаserver/routes/projects.js
Статусdone

Аргументы запроса (best-effort из хендлера; путь-параметры опущены):

АргументГдеОбяз.Заметка
orgIdbodyподтвердить
org_idbodyподтвердить

Коды ответов/ошибок (из хендлера): 400, 403, 409 (+ 200) — уточнить причины вручную

Для человека

Как открыть: в списке проектов на карточке личного проекта откройте меню «⋯» и выберите «Передать в организацию». Затем укажите организацию-получателя.

Передаёт ваш личный проект в командный спейс выбранной организации — в спейс той же коллекции, к которой привязан проект. После переноса проект перестаёт быть личным и становится доступен команде этого спейса.

Ограничения:

  • Переносить можно только личный проект. Командный проект уже принадлежит организации — переносить нечего.
  • В организации должен быть ровно один спейс с этой коллекцией. Если такого спейса нет — нельзя (409); если их несколько — выбор неоднозначен и перенос тоже отклоняется (409).
  • Личный проект с собственной кастомизацией коллекции (overlay) перенести нельзя: overlay не поддерживается в командном спейсе.
  • Вы должны состоять в этой организации и быть владельцем проекта (403 иначе).

Для агента

Запись — нужен токен со scope read_write (см. Конвенции). Вызывающий должен быть владельцем личного проекта и состоять в целевой организации.

Тело запроса (JSON):

ПолеТипОбяз.Назначение
org_iduuidдаОрганизация-получатель. Перенос идёт в её спейс с той же коллекцией, что у проекта

Пример запроса:

Окно терминала
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_SPACE409В целевой org нет спейса с этой коллекцией (в теле — collection)
MULTIPLE_SPACES409В org несколько подходящих спейсов, выбор неоднозначен (в теле — count)
only_personal_projects_can_be_transferred409Проект не личный — переносить нечего
PERSONAL_HAS_OVERLAY409У личного проекта есть overlay-кастомизация — она не переносится
user_not_org_member403Вызывающий не состоит в целевой организации
not_owner403Вызывающий не владелец проекта

Связанные