agent-exec transport be0c4744ff5899017313eb3f4fbd4a3f/43fe057c8332
governance / governance (pull_request) Successful in 16s
ci / vet-and-test (pull_request) Successful in 1m43s

This commit is contained in:
agent-exec-transport
2026-10-20 11:57:53 +00:00
parent d8923f18ec
commit 612e04402d
10 changed files with 303 additions and 9 deletions
+1
View File
@@ -7,6 +7,7 @@ const AccountDirectorySchemaVersion = 1
const (
AccountDirectoryPurposeSystemUsers = "system.users"
AccountDirectoryPurposeProjectMembers = "project.member-candidate"
AccountDirectoryPurposeProjectRoster = "project.member-roster"
AccountDirectoryPurposeDocumentDuties = "document.duty-candidate"
AccountDirectoryModeExact = "exact"
AccountDirectoryModeFuzzy = "fuzzy"
+5 -1
View File
@@ -71,7 +71,11 @@ import (
// (CapabilityExplain / MemberBasicCollaborate / DocumentQualify for the
// Host-bound actor) and categorized WorkFailure for create, member add and
// conversation work.
const SurfaceVersion = "2.27.0-experimental"
// 2.28.0-experimental: optional RoleOptionsProvider (read-only enabled role
// directory: RoleOption roleId+name, no permissions or bindings) and the
// AccountDirectory purpose project.member-roster, an explicit project member
// enumeration inside the trusted RDM scope.
const SurfaceVersion = "2.28.0-experimental"
// ErrNotLinked 表示进程没有空白导入 link 包,Main 无法启动服务。
var ErrNotLinked = errors.New("extension: runner not linked; blank-import agent-system-backend/pkg/extension/link")
+15
View File
@@ -56,6 +56,21 @@ type RolePolicyProvider interface {
CheckRoleAction(context.Context, string, string) (RoleActionDecision, error)
}
// RoleOption is the public directory projection of one enabled role: a stable
// identifier and its display name only. It never carries permissions,
// bindings or counts, so a non-admin caller learns nothing about authority.
type RoleOption struct {
RoleID string `json:"roleId"`
Name string `json:"name"`
}
// RoleOptionsProvider is optional on a trusted dispatch Host. The Host binds
// the actor; callers still authorize their own domain action before offering
// the options.
type RoleOptionsProvider interface {
ListRoleOptions(context.Context) ([]RoleOption, error)
}
type SystemActionDecision struct {
ActionID string `json:"actionId"`
Allowed bool `json:"allowed"`
+4
View File
@@ -9,6 +9,7 @@ AccountDirectoryProvider.LookupAccountDirectoryOwner
AccountDirectoryProvider.QueryAccountDirectory
AccountDirectoryPurposeDocumentDuties
AccountDirectoryPurposeProjectMembers
AccountDirectoryPurposeProjectRoster
AccountDirectoryPurposeSystemUsers
AccountDirectoryQuery
AccountDirectoryRegistrar
@@ -206,6 +207,9 @@ RoleAuthorityImportProjection
RoleAuthorityImportResult
RoleAuthorityImportRole
RoleBindingResult
RoleOption
RoleOptionsProvider
RoleOptionsProvider.ListRoleOptions
RolePermission
RolePolicyAdmin
RolePolicyAdmin.ActivateRoleAuthorityImport