merge: 跟进架构师最新 qyqy_develop(38 提交)
- model_gateway 冲突取并集:保留本线对 intent_classification→chat 的修正与空集回退, 并入架构师补充的 5 个风控 task_type;未登记 task_type 的告警留痕一并保留 - docs/25 撞号(本人 JWT 文档 vs 架构师风控评审报告)→ 本人让号到 docs/26,同步 docs/19 引用 - 架构师恢复的 5 份编号文档(04/06/10/13/99)保留其版本(那 5 份已无引用,仅编号占位) - bootstrap/model_gateway/docs/05/test_risk_agent_contract 自动合并成功 测试:1013 passed / 1 failed(既有空集缺陷) 真机:知识问答 succeeded 且声明仅 1 条;画像问答 succeeded;三端点 403/201/200/404 全绿 配置:release 216 仍为生效版本,工具白名单未被顶掉
This commit is contained in:
@@ -148,7 +148,7 @@ D:\conda\envs\jr_py313\python.exe C:\Users\...\e2e_run_check.py --label 手工
|
||||
|
||||
单条链路的手工命令(客户身份 9001,JWT 用配置项 `JWT_PRIVATE_KEY_PATH` 指向的私钥按 RS256 自签,
|
||||
参考 `tools/acceptance_check.py::token()`)。还没有密钥就先跑一次
|
||||
`python tools/generate_jwt_keys.py --out-dir config/jwt/dev`(详见 `docs/25-JWT密钥管理与轮换.md`):
|
||||
`python tools/generate_jwt_keys.py --out-dir config/jwt/dev`(详见 `docs/26-JWT密钥管理与轮换.md`):
|
||||
|
||||
```text
|
||||
POST /api/v1/agent-runs
|
||||
@@ -225,10 +225,10 @@ D:\conda\envs\jr_py313\python.exe tools\demo_agent_e2e.py
|
||||
4. **`docs/05` §9.5 未收录 `agent-intent-configs` 的 `GET` 详情路径**:该接口实际存在(用于获取
|
||||
`If-Match` 所需的 ETag),但权威接口文档未列出,属文档待补项。
|
||||
5. **没有登录接口(已决定推迟,不是遗漏)**:当前没有"账号密码换令牌"的接口,令牌由外部按
|
||||
RS256 用私钥自签(见 `docs/25-JWT密钥管理与轮换.md`)。**决定:等业务 Agent 开发阶段
|
||||
RS256 用私钥自签(见 `docs/26-JWT密钥管理与轮换.md`)。**决定:等业务 Agent 开发阶段
|
||||
结束后再补**。补的时候只需动签发侧(新增 `POST /auth/login`:校验密码 → 用私钥签令牌),
|
||||
验签侧 `JwtAuthenticator` 与身份解析侧 `IdentityService` 都不需要改。
|
||||
代价与约束:开发阶段凡拿到私钥者都能以 `9001/9002/9003` 身份调用(实测**无法**伪造不存在的
|
||||
用户、**无法**使用已禁用账号,边界是"签名有效 + 用户存在且启用"),因此私钥按 `docs/25`
|
||||
用户、**无法**使用已禁用账号,边界是"签名有效 + 用户存在且启用"),因此私钥按 `docs/26`
|
||||
第 7 节的红线管理;同时业务代码必须始终只从 `RequestContext` 取身份,否则后补登录接口会
|
||||
从"增量"变成"翻遍所有业务代码"。
|
||||
|
||||
Reference in New Issue
Block a user