POST /api/spaces/:id/blocks/:blockId/clear-override — Снять переопределение блока
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | POST /api/spaces/:id/blocks/:blockId/clear-override |
| Auth | requireSpacemanOrOrgAdmin — requireSpacemanOrOrgAdmin |
| Scope токена | read_write |
| PG-функции | api.clear_space_block_override |
| Таблицы | space_block_overlay |
| SRM | SRM-254 |
| RP (права) | — |
| Файл роута | server/routes/spaces.js |
| Статус | done |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
| Аргумент | Где | Обяз. | Заметка |
|---|---|---|---|
field | body | подтвердить | |
field | query | подтвердить |
Коды ответов/ошибок (из хендлера): 400 (+ 200) — уточнить причины вручную
Для человека
Как открыть: верхняя панель → «Спейсы» → карточка спейса → вкладка «Блоки» → у поля, помеченного «изменено», нажмите «Вернуть исходное значение».
Снимает переопределение одного поля блока: значение этого атрибута возвращается к тому, что задано в коллекции, и пометка «изменено» с поля исчезает. Остальные переопределения блока остаются на месте — откатывается ровно то поле, которое вы указали.
Важно не путать два «возврата»:
- снять переопределение (этот метод) — поле возвращается к базовому значению из коллекции. Блок всё это время оставался в спейсе;
- вернуть — возвращает блок, который ранее был удалён (скрыт) в спейсе.
Чтобы откатить весь спейс целиком — отдельное действие «Вернуть всё к исходному» в меню спейса.
Кто может. Менеджер своего спейса или администратор организации (RP-129). Сотрудник и наблюдатель оверлей не трогают.
Для агента
Запись — токен со scope read_write; доступ проверяет requireSpacemanOrOrgAdmin (спейсмен спейса или org-admin его организации), иначе 403. Путь занесён в write-allowlist agent-gate точным шаблоном (server/auth/agentGate.js).
Путь-параметры — :id и :blockId. Нужно имя поля, которое снимаем с переопределения: передаётся как ?field=<имя> в query или как field в JSON-теле. Без него — 400 { "error": "field required" }. Имя поля — атрибут блока (name, description, layer_id, sort_order, …).
Пример запроса:
curl -X POST "https://specbuilder.vnimanie.ai/api/spaces/{id}/blocks/{blockId}/clear-override?field=name" \ -H "Authorization: Bearer tak_..."Ответ 200: { "ok": true }. Только JSON, без ETag. Это возврат поля к значению коллекции — не путать с восстановлением удалённого блока.