SG sg.migoo.ai(新申请子域名) sg.migoo.ai(同域名)
我觉得后续最好是 us.migoo.ai + sg.migoo.ai ,后端可以不在 migoo.ai 部署接口
SG sg.migoo.ai(新申请子域名) sg.migoo.ai(同域名)
我觉得后续最好是 us.migoo.ai + sg.migoo.ai ,后端可以不在 migoo.ai 部署接口
auth/validate 是最高频调用(每个 HTTP 请求 + 每个 WS 连接),调用方在调用前没有 user_id。处理方式:JWT 签名校验无需 DB(密钥跨 region 共享),任何 region 均可本地完成JWT claims 中已包含 user status,无需 DB 回查调用方始终调用本地 user 服务,不经过 common/userclient
这里我可能有点疑问。是不是把 home_region 放到 JWT 里即可?如此就不需要改下面的这三点流程了。
相当于我们就从 JWT 中取出 home_region ,判断一下这个用户的 user 回查是不是应该在本地 region 完成。如果不是则调度到对应的 region,或者是直接让客户端自行调度。
SDDL 分片倾斜调研:conversation_id / file_id 从 UUID 切为 snowflake 纯数字字符串,需模拟验证 CRC32 hash 分片的均匀性(P3 前置)
这个不需要了吧...
httpclient.GetRegionHTTPClient(ctx, "chat", convID)
这里是不是可以 GetRegionHTTPClient(ctx, "chat", FromStringID(convID))
如此还可以兼容一些没有 id 但有 home region 的情况。
Region SG: az sg7(1), sg8(2) Region US: az us1(3), us2(4) ← 新增
这里我觉得是不是可以直接复用 CID 概念了
跨 region 服务需能查询到非本区用户信息
这句话怎么理解?
GetRegionHTTPClient(ctx, "chat", convID)
GetRegionHTTPClient(ctx, "chat", region.GetHomeRegion(convID)) --- 这样是不是好些?因为可能有些场景没有一个 ID,但是知道 home_region
的 user 服务
这里好像不是 user 服务?
Region SG: az sg7(1), sg8(2)
这里直接用 CID 会有什么问题吗?
internal/auth/middleware.go AuthMiddleware 新增 Priority 1:检查网关签名 → 合法则信任 X-User-Id 跳过 token 校验;签名非法时拒绝并记录日志(不降级到其他优先级) internal/config/gas.go 新增 SignatureSecret 配置字段 + WatchKey 热更新
user 还需要 auth middleware 吗?
internal/middleware/auth.go 认证通过后:① 写入 X-Gateway-Metadata JSON Header(包含 UserID、TwinID、Email、Status);② 调用 auth.InjectSignature() 对该 Header 做 HMAC 签名 internal/config/config.go 新增 signature_secret 配置字段,支持 GAS 配置中心 WatchKey 热更新密钥至 atomic.Value internal/starter/starter.go 注册 httpclient.SetRequestSigner(),使 handler 路由中通过 httpclient 发出的请求也自动携带签名
同上
新增 SetRequestSigner() 导出函数
同上
HMAC-SHA256 签名核心:Sign()、Verify() 函数,基于 X-Gateway-Metadata JSON 全量签名,支持 5 分钟反重放窗口
我们本次不需要做这个签名
internal/middleware/auth.go 认证通过后:① 写入 X-Gateway-Metadata JSON Header(包含 UserID、TwinID、Email、Status);② 调用 auth.InjectSignature() 对该 Header 做 HMAC 签名
本次先不用做这个签名吧。。。
auth/signature.go HMAC-SHA256 签名核心:Sign()、Verify() 函数,基于 X-Gateway-Metadata JSON 全量签名,支持 5 分钟反重放窗口
认证逻辑其实两方面把: 1. 是在 apigateway/notification 的 c 端接口 2. 是其他的内部接口
本次不用改这个认证的逻辑。
发现某个 skill 需要执行用户脚本后,不直接调用远端命令,而是把该任务转发给远端 Pi Agent,由它在沙箱内部继续规划、执行和产出结果。
注册一个 Tool,让 Tool 去执行 Skill,Tool 就是调用远程沙箱里的 Agent
POST /api/v1/prompts/batch
另外,内部接口以 /inbeeai 标识,下同
POST /api/v1/prompts/batch
我觉得是不是只需要 batch 接口就行?
3b. MCP Server URLs 从 BaseURL 拼接agent-chat/mod/agent-chat/module.go 或新建辅助函数当前:从配置读取 adk.mcp_server_urls 和 compass.mcp_server_urls改为:从 httpclient.GetBeeAIExternalBaseURL() + 固定路径拼接
这里不改成 httpclient.GetInnerHTTPClient 吗?
agent-chat/mod/agent-chat/module.go 或新建辅助函数当前:从配置读取 adk.mcp_server_urls 和 compass.mcp_server_urls改为:从 httpclient.GetBeeAIExternalBaseURL() + 固定路径拼接
这两个是不是也可以用 GetInnerHTTPClient ?