PUT /api/admin/roles/:id — Изменить справочную роль
Сгенерировано из матриц + кода. Правки вносить в источники (
docs/matrices/,server/routes/), не здесь.
| Поле | Значение |
|---|---|
| HTTP | PUT /api/admin/roles/:id |
| Auth | requireSiteAdmin — только site-admin |
| Scope токена | read_write |
| PG-функции | api.upsert_template_role |
| Таблицы | — |
| SRM | — (вне SRM, документировано по коду) |
| RP (права) | — |
| Файл роута | server/routes/admin.js |
| Статус | по коду (вне SRM) |
Аргументы запроса (best-effort из хендлера; путь-параметры опущены):
| Аргумент | Где | Обяз. | Заметка |
|---|---|---|---|
border | body | подтвердить | |
color | body | подтвердить | |
description | body | подтвердить | |
light | body | подтвердить | |
name | body | подтвердить | |
sort_order | body | подтвердить |
Коды ответов/ошибок (из хендлера): 400, 500 (+ 200) — уточнить причины вручную
Для человека
Как открыть: войдите как site-admin (TOTP, см. Вход в Admin Panel) → Admin Panel → раздел справочника платформы → выберите справочную роль → измените поля и сохраните.
Меняет существующую эталонную роль справочника: имя, цвета оформления, описание, порядок. id роли — системный ключ, его операцией не трогают (он берётся из адреса). Под капотом тот же upsert, что и при создании.
Что важно знать. Роль справочная, поэтому смена оформления или имени отразится везде, где роль используется как палитра для коллекций. Если ключ из адреса не существует — он просто заведётся как новая запись (логика upsert).
Кто может. Только site-admin.
Для агента
Токену недоступно ни на каком scope. Site-admin-операция: requireSiteAdmin + блокировка /api/admin/* в агентном шлюзе (server/auth/agentGate.js). Bearer → 403. Только cookie-сессия site-admin.
Путь: :id — системный ключ роли (берётся из URL).
Тело запроса (JSON):
| Поле | Тип | Обяз. | Назначение |
|---|---|---|---|
name | string | да | Отображаемое имя |
color | string | да | Основной цвет (заливка) |
light | string | да | Светлый фон |
border | string | да | Цвет контура |
description | string | нет | Описание |
sort_order | int | нет | Порядок сортировки |
Пример (cookie-сессия site-admin):
curl -X PUT https://specbuilder.vnimanie.ai/api/admin/roles/mlops-engineer \ -b cookies.txt \ -H "Content-Type: application/json" \ -d '{"name":"MLOps-инженер","color":"#16a34a","light":"#dcfce7","border":"#15803d","sort_order":40}'Ответ 200:
{ "ok": true }Markdown-зеркала/affordances у ресурса нет.