Скоупинг источников и учётных данных
Скоупинг источников и учётных данных (modules/sourcescope) отвечает на
один вопрос во время выполнения: когда агент или сессия обращается к
подключённому источнику — MCP-серверу, модели, провайдеру, базе знаний или
источнику данных — находится ли этот актор в области и какая ссылка на учётные
данные применяется? Модуль LIVE: таблица привязок, её API записи и
резолвер, который вызывают рантайм-PEP, — всё поставляется в бинарнике.
Это модуль, а не столбец, потому что область, которую он обеспечивает, не
является свойством какой-либо одной сущности-источника — MCP-конфигурация,
модели, провайдеры и базы знаний живут в разных модулях, и только ось
агент/сессия/ресурс вообще несёт рабочее пространство. Область — это
привязка: (источник) → (рабочее пространство или группа агентов), с
необязательной скоупленной ссылкой на учётные данные. Этот модуль владеет той
таблицей привязок и резолвером.
Привязка и её API
Заголовок раздела «Привязка и её API»/v1/m/sourcescope/bindings — это стандартная CRUD-поверхность, ограниченная
sourcescope:binding:read и :binding:write. Привязка нацелена на один тип
источника (mcp, model, provider, knowledge, data) и одно дерево
областей (workspace, agent_group) и несёт CredRef без значения —
логическое имя, локатор ref_kind (env, vault, secret_manager, file,
other) и необязательную замаскированную подсказку. Ни одно поле не может
содержать пригодный к использованию секрет; обработчик отклоняет встроенные
учётные данные — тот же инвариант минимума данных, что и у
capabilities.mcp_config.secret_refs.
Как принимает решение резолвер
Заголовок раздела «Как принимает решение резолвер»Решение является deny-closed и составным, а не вторым движком авторизации:
- Содержание (containment) — источник, привязанный к рабочему пространству W, разрешим агентом или сессией в W без какой-либо дополнительной настройки.
- Грант (grant) — охватывающий
x-models, скоупленный Cedar-грант изvi-governanceоткрывает чужое рабочее пространство. - RBAC — общетенантная авторитетность по-прежнему видит всё; рабочее пространство — это мягкая изоляция, тенант — жёсткая граница.
- Запрет (forbid) — скоупленный Cedar-forbid переопределяет всё вышеперечисленное.
Гейт является аддитивным: непривязанный источник остаётся глобальным для
обратной совместимости; привязанный источник без содержащей области, без гранта
и без RBAC запрещается. Резолвер подключён как ScopeGate на цепочке
выполнения модели и на извлечении
viii-knowledge.
Ограниченный контекст, сказанный прямо
Заголовок раздела «Ограниченный контекст, сказанный прямо»- Это только привязка ссылок. Потребление скоупленных учётных данных в реальном вызове провайдера и рантайм-MCP-брокер, который дозванивается до сервера от имени агента, пока не существуют в дереве — резолвер возвращает ссылку в области, но ничто здесь не использует её для аутентификации исходящего вызова.
- Область актора берётся из агента/сессии, названных в ссылке на актора вызывающего. Значения области читаются из сохранённой строки (вызывающий не может внедрить рабочее пространство), но выбор агента — это выбор вызывающего; привязка этой ссылки к принципалу — последующая работа по упрочнению. См. честность и ограничения.
Связанное
Заголовок раздела «Связанное»- Управление (vi) — алгебра Cedar-грантов/запретов и RBAC, которые компонует резолвер.
- Модели (x) — цепочка выполнения, где работает
ScopeGate. - Знания (viii) — управляемое извлечение, второе место, где гейтит резолвер.