Set Context Grant
const url = 'https://api.cloud.agentums.ru/v1/deployments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/context-grant';const options = { method: 'PUT', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"collection_ids":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"],"expires_at":"2026-04-15T12:00:00Z","mode":"example","object_ids":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"],"permissions":{"attachments":false,"external_actions":false,"modify_files":false,"read_files":false,"save_incoming_files":false,"search":false,"use_memory":false,"web_search":true,"write_files":false}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://api.cloud.agentums.ru/v1/deployments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/context-grant \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "collection_ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "expires_at": "2026-04-15T12:00:00Z", "mode": "example", "object_ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "permissions": { "attachments": false, "external_actions": false, "modify_files": false, "read_files": false, "save_incoming_files": false, "search": false, "use_memory": false, "web_search": true, "write_files": false } }'Записать решение владельца целиком.
Разом, а не по частям: разрешение — одно утверждение «вот этому агенту вот эти папки и вот эти права». Частичная правка порождала бы состояния, которых человек не выбирал.
Папки и файлы проверяются на принадлежность. Чужой идентификатор — отказ, а не молчаливое отбрасывание: сохранив его, мы показали бы на экране разрешение, которого нет.
Authorizations
Заголовок раздела «Authorizations»Parameters
Заголовок раздела «Parameters»Path Parameters
Заголовок раздела «Path Parameters»Request Bodyrequired
Заголовок раздела «Request Bodyrequired»Решение владельца целиком. Присылается разом, а не по частям.
Разом — потому что разрешение это одно утверждение: «вот этому агенту вот эти папки и вот эти права». Частичная правка порождала бы состояния, которых человек не выбирал: режим уже сменился, а права остались от прежнего.
object
Таблица разрешений п. 12. Все по умолчанию выключены, включая чтение.
В ТЗ у read_files написано «OFF для стороннего / ON только после grant». Трактовать это
как «включается вместе с выбором папок» значит выдать доступ, которого человек не давал:
выбрать папку и разрешить её читать — разные решения, и второе он принимает отдельно.
object
Responses
Заголовок раздела «Responses»Successful Response
Что разрешено сейчас.
granted=false — разрешения НЕТ вовсе: человек его не выдавал или отозвал. Это не то же
самое, что режим none: во втором случае решение принято и записано, в первом — не
принималось. Различать их нужно, чтобы экран не показывал «вы запретили» тому, кого ещё
не спрашивали.
object
Таблица разрешений п. 12. Все по умолчанию выключены, включая чтение.
В ТЗ у read_files написано «OFF для стороннего / ON только после grant». Трактовать это
как «включается вместе с выбором папок» значит выдать доступ, которого человек не давал:
выбрать папку и разрешить её читать — разные решения, и второе он принимает отдельно.
object
Example
{ "active": false, "granted": false, "mode": "none", "permissions": { "attachments": false, "external_actions": false, "modify_files": false, "read_files": false, "save_incoming_files": false, "search": false, "use_memory": false, "web_search": true, "write_files": false }}Validation Error
object
object
object
Examplegenerated
{ "detail": [ { "ctx": {}, "input": "example", "loc": [ "example" ], "msg": "example", "type": "example" } ]}