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

GET /api/spaces/:spaceId/blocks — Блоки спейса

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

ПолеЗначение
HTTPGET /api/spaces/:spaceId/blocks
AuthrequireSpaceAccess — requireSpaceAccess
Scope токенаread
PG-функцииapi.list_space_blocks
Таблицыspace_block, space_block_overlay
SRMSRM-161
RP (права)RP-053
Файл роутаserver/routes/spaces.js
Статусdone

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

АргументГдеОбяз.Заметка
default_specialtiesbodyподтвердить
descriptionbodyподтвердить
enabledbodyподтвердить
example_pagebodyподтвердить
is_custombodyподтвердить
layer_idbodyподтвердить
namebodyподтвердить
sort_orderbodyподтвердить

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

Для человека

Как открыть: в верхней панели нажмите «Спейсы», выберите карточку нужного спейса и перейдите на вкладку «Блоки».

Отдаёт список блоков спейса — узлов будущего документа внутри слоёв. Это не сырые блоки коллекции, а уже «склеенный» оверлей: к базовым блокам из коллекции применены все переопределения спейса. У каждого блока видно итоговое имя, описание, слой, специальности по умолчанию и порядок; помеченные галочкой «изменено» поля — те, где спейс отличается от коллекции (см. Настройки спейса → Слои/Блоки/Специальности). Скрытые (удалённые в спейсе) базовые блоки в этот срез не попадают, пока их не вернут.

Кто может. Список видит любой, у кого есть доступ к спейсу: сотрудник, менеджер спейса (спейсмен), наблюдатель, администратор организации (RP-135). Гость на свой гостевой спейс читает через отдельный публичный срез — см. Публичные блоки спейса.

Для агента

Чтение — достаточно токена со scope read (см. Конвенции). Доступ к спейсу проверяется так же, как в UI: токен видит блоки только тех спейсов, к которым у владельца есть доступ, иначе 403.

Путь-параметр — :spaceId (id спейса). Тела у запроса нет.

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

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

Ответ 200 — JSON-массив блоков (уже после применения оверлея):

[
{ "id": "DATA_INGEST", "name": "Приём данных", "description": "...",
"layer_id": "INGESTION", "default_specialties": ["DATA_ENGINEER"],
"sort_order": 10, "is_custom": false, "enabled": true }
]

Этот эндпоинт отдаёт только JSON — Markdown-зеркала, блока ## Actions и ETag/304 у него нет: они есть лишь у ресурса спейса GET /api/spaces/{id} (server/agent/negotiate.js, affordances.js). Меняют этот список write-операции read_write-токена: переопределить, изменить, удалить, снять переопределение, вернуть.

Связанные