Gateway 中间件链
wesgine HTTP Gateway 的请求处理中间件管线。
中间件执行顺序
path parse → cell exist → auth → state → quota → dispatch
每个请求经过六层中间件,依次完成路径解析、Cell 存在性验证、认证鉴权、状态检查、配额检查和最终分派。
Gateway 双模式
单 Cell 模式
gateway.ServeSingleCell(cell, opts)
无 cellID 路径前缀。适用于单租户桌面部署(wescode / wesclaw / wescraft)。
多 Cell 模式
gateway.ServeMultiCell(hyp, opts)
所有业务路径 /cells/{cellID}/*。适用于多租户服务端部署(teleclaw)。
Cell 温度中间件
中间件根据 Cell 温度决定请求处理方式:
| 温度 | 中间件行为 |
|---|---|
| Hot / Warm | 直接通过 |
| Cool | 首请求同步 WarmUp,后续请求等待 |
| Cold | 返回 503 + Retry-After: 5,后台异步唤醒 |
认证分层
Admin Token
- 签发:
hyp.Tokens().IssueAdminToken(ttl) - 范围:
/admin/*端点 - 吊销:
hyp.Tokens().RevokeAdminToken(id)
Cell Token
- 签发:
cell.Tokens()Handle - 范围:
/cells/{id}/*端点 - 作用域:
cell:read/cell:chat/cell:admin
路由结构
基础设施路由(无前缀)
GET /health— 健康检查(无 auth)GET /metrics— Prometheus 指标
Admin 路由(/admin/...)
管理 Cells、SharedProviders、Tokens、Observe。
Cell 路由(/cells/{id}/...)
25 个 Handle 访问器的 HTTP 映射。
Scope 控制
defaultCellRequiredScope 定义了各端点的最低权限:
/memory非 GET →cell:admin/sessions变更 →cell:chat/observe/evidence//audit/*→cell:admin(排在/observe泛前缀之前)
Go switch 按序匹配——顺序承重。