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

Set Context Grant

PUT
/v1/deployments/{deployment_id}/context-grant
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 } }'

Записать решение владельца целиком.

Разом, а не по частям: разрешение — одно утверждение «вот этому агенту вот эти папки и вот эти права». Частичная правка порождала бы состояния, которых человек не выбирал.

Папки и файлы проверяются на принадлежность. Чужой идентификатор — отказ, а не молчаливое отбрасывание: сохранив его, мы показали бы на экране разрешение, которого нет.

deployment_id
required
Deployment Id
string format: uuid
Media typeapplication/json
ContextGrantIn

Решение владельца целиком. Присылается разом, а не по частям.

Разом — потому что разрешение это одно утверждение: «вот этому агенту вот эти папки и вот эти права». Частичная правка порождала бы состояния, которых человек не выбирал: режим уже сменился, а права остались от прежнего.

object
collection_ids
Collection Ids
Array<string>
<= 200 items
expires_at
Any of:
string format: date-time
mode
required
Mode
string
/^(none|selected|all)$/
object_ids
Object Ids
Array<string>
<= 200 items
permissions
ContextPermissions

Таблица разрешений п. 12. Все по умолчанию выключены, включая чтение.

В ТЗ у read_files написано «OFF для стороннего / ON только после grant». Трактовать это как «включается вместе с выбором папок» значит выдать доступ, которого человек не давал: выбрать папку и разрешить её читать — разные решения, и второе он принимает отдельно.

object
attachments
Attachments
boolean
external_actions
External Actions
boolean
modify_files
Modify Files
boolean
read_files
Read Files
boolean
save_incoming_files
Save Incoming Files
boolean
search
Search
boolean
use_memory
Use Memory
boolean
web_search
Web Search
boolean
default: true
write_files
Write Files
boolean

Successful Response

Media typeapplication/json
ContextGrantOut

Что разрешено сейчас.

granted=false — разрешения НЕТ вовсе: человек его не выдавал или отозвал. Это не то же самое, что режим none: во втором случае решение принято и записано, в первом — не принималось. Различать их нужно, чтобы экран не показывал «вы запретили» тому, кого ещё не спрашивали.

object
active
Active
boolean
collection_ids
Collection Ids
Array<string>
expires_at
Any of:
string format: date-time
granted
Granted
boolean
mode
Mode
string
default: none
object_ids
Object Ids
Array<string>
permissions
ContextPermissions

Таблица разрешений п. 12. Все по умолчанию выключены, включая чтение.

В ТЗ у read_files написано «OFF для стороннего / ON только после grant». Трактовать это как «включается вместе с выбором папок» значит выдать доступ, которого человек не давал: выбрать папку и разрешить её читать — разные решения, и второе он принимает отдельно.

object
attachments
Attachments
boolean
external_actions
External Actions
boolean
modify_files
Modify Files
boolean
read_files
Read Files
boolean
save_incoming_files
Save Incoming Files
boolean
search
Search
boolean
use_memory
Use Memory
boolean
web_search
Web Search
boolean
default: true
write_files
Write Files
boolean
updated_at
Any of:
string format: date-time
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

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
ctx
Context
object
input
Input
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
Examplegenerated
{
"detail": [
{
"ctx": {},
"input": "example",
"loc": [
"example"
],
"msg": "example",
"type": "example"
}
]
}