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

POST /api/spaces/:id/blocks/:blockId/restore — Вернуть блок

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

ПолеЗначение
HTTPPOST /api/spaces/:id/blocks/:blockId/restore
AuthrequireSpacemanOrOrgAdmin — requireSpacemanOrOrgAdmin
Scope токенаread_write
PG-функцииapi.restore_space_block
Таблицыspace_block_overlay
SRMSRM-257
RP (права)
Файл роутаserver/routes/spaces.js
Статусdone

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

аргументов не обнаружено (подтвердить вручную по server/routes/spaces.js)

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

Для человека

Как открыть: верхняя панель → «Спейсы» → карточка спейса → вкладка «Блоки» → у скрытого (удалённого) базового блока нажмите «Восстановить удалённый элемент».

Возвращает блок, который ранее был удалён в спейсе. Речь именно об унаследованном блоке коллекции: при удалении он не стирался, а помечался скрытым в оверлее — восстановление снимает эту пометку, и блок снова появляется в спейсе со всеми своими (если были) переопределениями. К кастомным блокам это не относится: их удаление безвозвратно, восстанавливать нечего.

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

Кто может. Менеджер своего спейса или администратор организации (RP-130). Сотрудник и наблюдатель оверлей не настраивают.

Для агента

Запись — токен со scope read_write; доступ проверяет requireSpacemanOrOrgAdmin (спейсмен спейса или org-admin его организации), иначе 403. Путь занесён в write-allowlist agent-gate точным шаблоном (server/auth/agentGate.js).

Путь-параметры — :id и :blockId. Тела у запроса нет. Снимает пометку «удалён» с унаследованного блока — операция имеет смысл только для ранее скрытого базового блока.

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

Окно терминала
curl -X POST https://specbuilder.vnimanie.ai/api/spaces/{id}/blocks/{blockId}/restore \
-H "Authorization: Bearer tak_..."

Ответ 200: { "ok": true }. Только JSON, без ETag. Не путать с clear-override: здесь возвращается скрытый блок, а не значение поля. Результат — в списке блоков.

Связанные