POST /api/spaces/:id/layers/:layerId/restore — Вернуть слой
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | POST /api/spaces/:id/layers/:layerId/restore |
| Auth | requireSpacemanOrOrgAdmin — requireSpacemanOrOrgAdmin |
| Scope токена | read_write |
| PG-функции | api.restore_space_layer |
| Таблицы | space_layer_overlay |
| SRM | SRM-256 |
| 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 и :layerId. Тела у запроса нет. Снимает пометку «удалён» с унаследованного слоя — имеет смысл только для ранее скрытого базового слоя.
Пример запроса:
curl -X POST https://specbuilder.vnimanie.ai/api/spaces/{id}/layers/{layerId}/restore \ -H "Authorization: Bearer tak_..."Ответ 200: { "ok": true }. Только JSON, без ETag. Не путать с clear-override: здесь возвращается скрытый слой, а не значение поля. Результат — в списке слоёв.