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 Token | Hypervisor | 管理所有 Cell | /admin/* |
| Cell Token | Cell | 访问单个 Cell | /cells/{id}/* |
Scope 控制
Cell Token 携带 scope 声明:
| Scope | 含义 | 典型用途 |
|---|---|---|
cell:read | 只读访问 | 查看会话、记忆 |
cell:chat | 对话权限 | 发送消息、管理会话 |
cell:admin | 管理权限 | 修改配置、清空记忆 |
默认 Scope 路由
defaultCellRequiredScope 按 URL 前缀分配 scope:
| 路径前缀 | 要求 scope |
|---|---|
/run, /chat | cell:chat |
/sessions/* 变更 | cell:chat |
/memory 非 GET | cell:admin |
/skills, /agents | cell:admin |
/policy, /quotas | cell: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
| 概念 | 来自 | 用途 |
|---|---|---|
| Token | HTTP 请求头 | 鉴权 + scope |
| Actor | AppRunRequest.Actor | 运行时归属 |
两者独立:同一个 Admin Token 可以代表不同 Actor 发起请求。
与治理的关系
- GovernMode 控制行为边界(open / locked)
- Token scope 控制操作权限(read / chat / admin)
- 两者正交,共同决定请求能否执行
相关文档
- Token 管理 →
token-management.md - Actor 模型 →
actor-model.md - 治理系统 →
governance.md - HTTP Gateway →
http-gateway.md