Add tenant-safe value, telemetry, connector, commercial, and production-readiness foundations.
2.8 KiB
2.8 KiB
修复记录
- 22:10:记录 bug 修复:Agent Run 普通日志跨租户读取与统计泄露。
- Git 提交检查:22:10 执行
git fetch --all --prune;HEAD..origin/main无新提交,本地比origin/mainahead 17 个提交,范围为661990b2 feat(expenses): add transactional expense case events至242d68c3 feat(approval): add task workflow and waiver decisions,本次未合并或改写这些既有提交。 - 修改:
agent_run.pyrepository 将route_json.tenant_id与ontology_json.tenant_id的双重一致性条件下推到 SQL,在排序和limit前完成租户过滤;任一标记缺失、空作用域或两处标记冲突的记录均 fail-closed,详情也在数据库查询阶段按租户收窄。 - 修改:
agent_runs.pyservice 新增显式的租户级列表、统计和详情入口,保留带注释的受信任内部跨作用域入口;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 日志现在以认证租户为强边界,其他租户、历史无归属记录及损坏作用域记录不再进入列表、统计或详情响应,同时保留内部后台任务按明确可信入口读取的兼容性。
- Git 提交检查:22:10 执行