Fill the audit owner-scoping task card
Why: The fix must carry its requirement row, design choice, and authorization boundary before implementation starts.
Evidence: Source citations verified at Dev 34a2bbe (backend fe7c245) in the U0 review.
Impact: Task card only.
Refs: RDM PR #105 U0 proposal section 5 C7 / 11.1; user go-ahead 2026-10-08.
This commit is contained in:
@@ -1,13 +1,17 @@
|
||||
# feature/command-audit-owner-scoping 任务卡
|
||||
|
||||
任务主记录:<PR 链接,交付前填写>;状态:进行中;owner:weichen
|
||||
任务主记录:<PR 链接,交付前填写>;状态:进行中;owner:weichen(授权见下)
|
||||
|
||||
## 基线与授权
|
||||
|
||||
- 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= 34a2bbe15793f7cf91ffd907123deb4113230794
|
||||
- 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-command-audit-owner-scoping(worktree);分支:feature/command-audit-owner-scoping
|
||||
|
||||
- 授权与交付终点:<本次允许的动作与终点;未授权事项写明>
|
||||
- 授权与交付终点:用户 2026-10-08 会话「继续推进」,覆盖 U0 §11.1 首推任务(修复命令
|
||||
审计跨租户可见,见 Agent-System-RDM PR #105 之 U0 提案)。允许:Backend 组件分支实现与
|
||||
PR、Dev gitlink bump PR、任务工作区操作与 evidence。终点:Backend PR + Dev PR 建立,
|
||||
**均不合入**(合入属 owner 评审动作)。未授权:合入、基座其他改动、公开面(pkg/extension)
|
||||
变更(本修复纯 internal,不动 SurfaceVersion)。
|
||||
- 交付模式:manual(逐阶段人工评审);明确授权后可记为 authorized-continuous
|
||||
- 自动推进授权:无;授权范围:无;授权来源:无;授权终点:无;停止条件:无(未授权)
|
||||
- 当前阶段:需求拆解;当前增量:I1(待定义)
|
||||
@@ -15,25 +19,35 @@
|
||||
|
||||
## 目标与非目标
|
||||
|
||||
<预期结果、受影响入口/模块/契约;明确不做什么。>
|
||||
**问题**(U0 §5 C7 附带安全发现,SELF·源码级):`GET /api/commands/audit` 无租户过滤——
|
||||
`store.ListAudits` 无 owner 条件、`command_audit` 表无 owner 列
|
||||
(`internal/store/audit.go:25-37`、`internal/store/migrate.go` v7、`internal/server/server.go:861-865`)。
|
||||
多用户认证档下任何登录用户可读**全租户**命令审计(命令 ID、入口、会话 ID、参数摘要、状态)。
|
||||
|
||||
**目标**:命令审计按 owner 作用域——写入记 owner 列,查询按请求租户过滤;存量行回填。
|
||||
受影响:backend internal/{store,cmdbus,server};v18 迁移;不改 pkg/extension 公开面
|
||||
(cmdbus.AuditStore 为 internal 端口)。
|
||||
|
||||
**非目标**:管理员全局审计视图(后续按需另案);平台审计 AppendAuditEvent(另一张表,
|
||||
本就带 owner);Host/EXT 面变更;前端改动(该端点现无工作台消费)。
|
||||
|
||||
## 关联方向与规划
|
||||
|
||||
- 适用状态:待核对(无适用规划时说明原因)
|
||||
- 主记录路径/版本:待核对(路径按仓库根目录定位,归档后不变;只引用唯一正文)
|
||||
- 对应里程碑:待核对
|
||||
- 适用状态:适用(U0 提案 §5 C7 附带安全发现 + §11.1 首推后续任务)
|
||||
- 主记录路径/版本:Agent-System-RDM `docs/proposals/2026-10-08-U0-baseline-and-shared-contracts.md`(RDM feature/u0-baseline-contracts 分支,PR #105 待评审);基座引用组合 Dev@34a2bbe(backend fe7c245)
|
||||
- 对应里程碑:多用户档部署前硬前置(非 MS 编号项)
|
||||
|
||||
## 需求分析
|
||||
|
||||
| ID | 描述 | 项目符合度及依据 | 优先级 | 验收条件 | 依赖 | 结论 |
|
||||
|---|---|---|---|---|---|---|
|
||||
| R1 | 待填写 | 待评估 | 待定 | 待定义 | 待确认 | 待评审 |
|
||||
| R1 | 命令审计按租户作用域:写入带 owner,查询只返回请求租户的行;存量行按 payload.actor 回填 | 不符合——现状无 owner 列与过滤(audit.go/migrate.go v7/server.go listAudits,见目标节引证) | P0 | 红测先行:两租户各写一条审计,任一租户经 API 查询只见自己的行;迁移回填后旧行归 actor 租户;actor 为空的存量行不再经 API 返回(数据保留可直查,卡内记录该取舍) | 无 | 纳入本增量 |
|
||||
|
||||
## 方案与计划
|
||||
|
||||
- 方案引用:待填写(含对象版本)
|
||||
- 实施计划引用:待填写(含增量与需求 ID)
|
||||
- 测试计划引用:待填写(含需求 ID 与验收条件)
|
||||
- 方案引用:本卡(backend@fe7c245 基线)——①迁移 v18:command_audit 加 owner 列(两方言)+ 存量回填 `COALESCE(json actor,'')` + 索引 (owner, conversation_id, time);②`AppendAudit(owner, env)`/`ListAudits(owner, conversationID, limit)` 签名加 owner,cmdbus.AuditStore 端口与 auditReceipt 传 req.Owner,server.listAudits 传 s.owner(r);③测试假体同步。备选(否决):仅按 Actor 过滤——Actor 语义是"发起主体"非租户,且与信封耦合。
|
||||
- 实施计划引用:增量 I1=R1。顺序:红测(HTTP 层两租户泄漏)→迁移→实现→回填测试→绿。
|
||||
- 测试计划引用:`internal/server/audit_scope_test.go`(HTTP 两租户);`internal/store` 回填测试(MigrateDown(17)→插旧行→重开触发 v18→断言归属);既有 e2e(同租户路径)不回归;Dev `make test` 组合验证。
|
||||
|
||||
## 阶段评审
|
||||
|
||||
|
||||
Reference in New Issue
Block a user