chore: 删除退役的旧 JWT 密钥,同步过时引用并记录登录接口决策

1. 删除 config/jwt/jwt-private.pem 与 jwt-public.pem(旧密钥,配置已不再指向)。
   删除后复跑全量门禁以确认没有残留依赖:ruff 通过、unit+contract 447 passed、
   acceptance_check --production 7 PASS、demo_agent_e2e 9/9 PASS。
2. 修掉 4 处引用旧密钥路径的地方(它们会在删除密钥后直接失败或误导接入方):
   - tests/unit/core/test_security.py 的三处硬编码路径改为单一常量 DEV_KEY_DIR,
     否则删除旧密钥后该测试会因读不到文件而失败;
   - tools/demo_agent_e2e.py 的 docstring 前置条件;
   - docs/09 的配置示例;docs/19 的手工自签说明(改为指向配置项与
     tools/generate_jwt_keys.py)。
3. docs/21 记录旧密钥已删除,并注明删除后已复跑验证无残留引用。
4. docs/19 未解决项新增第 5 条:无登录接口属于**有意识的推迟**(等业务 Agent 开发阶段
   结束后再补),写明补的时候只需动签发侧、验签侧与身份解析侧都不需要改,
   并附上当前私钥边界的实测结论(无法伪造不存在的用户、无法使用已禁用账号)。
This commit is contained in:
2026-09-10 18:18:00 +08:00
parent c32d3dbd06
commit 2c5ef35d18
5 changed files with 22 additions and 8 deletions
+2 -1
View File
@@ -9,7 +9,8 @@
python tools/demo_agent_e2e.py # 全流程并清理 run 数据
python tools/demo_agent_e2e.py --keep-run # 保留 run/审计数据便于排查
前置:数据库与配置中心已就绪;`config/jwt/jwt-private.pem` 存在;
前置:数据库与配置中心已就绪;JWT 私钥存在(配置项 `JWT_PRIVATE_KEY_PATH`,默认
`config/jwt/dev/jwt-private.pem`,没有就先跑 `tools/generate_jwt_keys.py`);
**运行前请停掉常驻 Worker**,否则它会抢走本次 run 并使用同一队列的执行路径。
复核方式:配置发布保留"提交审核 → 审核 → 激活"状态机,但**不再要求审核人不是创建人**,