Files

12 lines
2.8 KiB
Markdown
Raw Permalink Normal View History

## 修复记录
- 22:10记录 bug 修复Agent Run 普通日志跨租户读取与统计泄露。
- Git 提交检查22:10 执行 `git fetch --all --prune``HEAD..origin/main` 无新提交,本地比 `origin/main` ahead 17 个提交,范围为 `661990b2 feat(expenses): add transactional expense case events``242d68c3 feat(approval): add task workflow and waiver decisions`,本次未合并或改写这些既有提交。
- 修改:`agent_run.py` repository 将 `route_json.tenant_id``ontology_json.tenant_id` 的双重一致性条件下推到 SQL在排序和 `limit` 前完成租户过滤;任一标记缺失、空作用域或两处标记冲突的记录均 fail-closed详情也在数据库查询阶段按租户收窄。
- 修改:`agent_runs.py` service 新增显式的租户级列表、统计和详情入口,保留带注释的受信任内部跨作用域入口;`agent_run_access_policy.py` 增加返回前二次租户校验,并把财务快照的角色与 `data_scope` 门禁同步下推,防止不可见快照挤占列表和统计窗口。
- 修改Agent Run API 的列表、统计和详情统一使用当前认证租户;普通 run 的跨租户详情、无作用域旧记录和冲突标记记录均返回 404跨租户管理员也没有旁路工具 `request_json`/`response_json`、语义 `raw_query` 与错误统计不会跨租户暴露。
- 修改:`create_run` 支持显式 `tenant_id` 并同时写入 route/ontology后续整体更新或 route 合并会保留已验证的双重标记发现调用方已有冲突标记时拒绝写入Orchestrator、Ontology、知识同步和财务快照的认证/租户感知创建路径已传入可信 tenant知识同步的活动任务复用也改为租户内查询。
- 操作:新增 `test_agent_run_tenant_security.py`,构造 tenant-a、tenant-b、无作用域、冲突作用域和同租户财务快照覆盖 limit 前过滤、列表、统计、详情、跨租户 admin 及敏感载荷反向断言;全部命令均在 `local-x-financial-linux` 容器内以 60 秒超时执行。
- 验证Agent Run、财务快照、Ontology 端点、Orchestrator 认证和知识服务定向回归 31 个测试通过;核心变更文件 Ruff、`git diff --check`、PostgreSQL 方言 SQL 编译与代码行数检查通过,最大核心文件 `agent_runs.py` 为 760 行,低于 800 行硬上限。额外 Ontology 全文件回归共 82 个通过、4 个既有业务信号识别用例失败,失败堆栈位于未由本次改动触碰的 `_has_supported_business_signal` 判定。
- 影响Agent Run 日志现在以认证租户为强边界,其他租户、历史无归属记录及损坏作用域记录不再进入列表、统计或详情响应,同时保留内部后台任务按明确可信入口读取的兼容性。