Cell 角色与权限

wesgine Cell 级别的角色定义和权限控制机制。


设计原则

wesgine 遵循 AX-2(身份无关公理):不定义用户身份体系。

认证、授权、组织架构归应用层(weisyn 平台 / Teleclaw Java)。 但 Cell 内部有角色概念,用于运行时行为控制。


CellSpec.Roles

type CellSpec struct {
    // ...
    Roles  map[string]RoleConfig  // per-Cell 角色定义
}

角色用于决定请求在 Cell 内的权限范围。


Token 类型

Token 类型签发者用途作用域
Admin TokenHypervisor管理所有 Cell/admin/*
Cell TokenCell访问单个 Cell/cells/{id}/*

Scope 控制

Cell Token 携带 scope 声明:

Scope含义典型用途
cell:read只读访问查看会话、记忆
cell:chat对话权限发送消息、管理会话
cell:admin管理权限修改配置、清空记忆

默认 Scope 路由

defaultCellRequiredScope 按 URL 前缀分配 scope:

路径前缀要求 scope
/run, /chatcell:chat
/sessions/* 变更cell:chat
/memory 非 GETcell:admin
/skills, /agentscell:admin
/policy, /quotascell:admin
其余cell:read

Token 签发 API

// Admin Token
token := hyp.Tokens().IssueAdminToken(ttl)
hyp.Tokens().RevokeAdminToken(id)

// Cell Token
token := cell.Tokens().Issue(scope, ttl)
cell.Tokens().Revoke(id)

HTTP 端点

POST /admin/tokens          → 签发 Admin Token
DELETE /admin/tokens/{id}   → 吊销 Admin Token
POST /cells/{id}/tokens     → 签发 Cell Token
DELETE /cells/{id}/tokens/{id} → 吊销 Cell Token

Actor vs Token

概念来自用途
TokenHTTP 请求头鉴权 + scope
ActorAppRunRequest.Actor运行时归属

两者独立:同一个 Admin Token 可以代表不同 Actor 发起请求。


与治理的关系


相关文档