From c5a599e28d8a0ea3edbda704eded771e7d2eee52 Mon Sep 17 00:00:00 2001 From: weichen Date: Wed, 21 Oct 2026 15:13:49 +0000 Subject: [PATCH] Record port scope, build fix and PASS review for the IAM permission API Why: the port's authorization boundary, the build correction and the review verdict must be recorded before delivery. Evidence: /tmp/be-iam-perm-ux-impl-r1-20261021.json: pi, success (port) /tmp/be-iam-perm-ux-buildfix-r2-20261021.json: pi, success (build fix; r1 failed-unknown produced no record so nothing was imported) /tmp/be-iam-perm-ux-review-r1-20261021.json: pi, PASS, no blockers Host-side checks on the final head: gofmt -l clean; go build ./... and go vet on store/server/authz silent; go test on those packages green. Impact: card metadata only. Refs: fix/iam-perm-ux-port; backup /home/weichen/projects/backups/iam-perm-ux-20261021T140345Z --- .task/fix-iam-perm-ux-port.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.task/fix-iam-perm-ux-port.md b/.task/fix-iam-perm-ux-port.md index 332559e..22da75d 100644 --- a/.task/fix-iam-perm-ux-port.md +++ b/.task/fix-iam-perm-ux-port.md @@ -11,12 +11,14 @@ - 父任务信息(仅子任务填写):无 - accepting_requirements:false - 需求分流:verdict=NEW;selected_initiative=无;候选=无;理由=no accepting initiative;triage 收据=/tmp/be-triage-iam-perm-ux-20261021.json;receipt_sha256=bb4a700446f22b5799e94f1c6efa488c4a30b65814a457b76ab41d30b0dc5038;requirement_sha256=9495f0dc1c3cbf04feb6c712bfa93c6bbb6803801285a518ae9f309c74ec836b -- 授权与交付终点:<本次允许的动作与终点;未授权事项写明> +- 授权与交付终点:把仅存在于被放弃分支 feature/iam-perm-ux-backend 的权限管理 API 移植到当前 main,使其可从主干维护与调用。冲突一律以 main 现状裁决,不照搬旧实现;不得绕过 main 的账户作用域写入围栏与授权检查;不得新增范围外功能或 schema 迁移。 - 实施执行:agent-per-unit(配置:AGENT-EXECUTION.md;外部 Agent 一单元一新进程/会话/工作区) ## 目标与非目标 -<预期结果、受影响入口/模块/契约;明确不做什么。> +目标:main 此前不具备七个权限管理入口(PatchRolePermissionsBatch、PreviewRolePermissions、AssignUserRolesBatch、PreviewUserRoleAssignments、ListRoleMembersForActor、ActiveRolesForUsers、CreateRoleCopyAndAssign)与配套类型(RoleBinding、PolicyReceipt、RoleAdminView、CapabilityAssociation、RoleAuthorityImport*、RoleCreate/RolePatch、RolePermissionChange/Conflict)。本任务把这些能力移植到当前 main(其间 Backend 已合入 #228、#234),并保留其安全语义。 + +非目标:不整条合并/cherry-pick 旧分支(其基线早于 #228/#234);不新增范围外功能;不做无关重构;除移植确需新表外不改 schema;不改 Makefile/CI/子模块/文档。 ## Agent 实施收据 @@ -51,9 +53,9 @@ ## 结果与验证(完成后填写) -- 结果:<交付了什么;未发生写无>。 -- 验证:<结论性摘要:PASS/FAIL/SKIP/NOT_RUN 逐项;逐条证据见下表,来源标注与写入规则见 [按影响选择验证与证据](../standards/verification.md)>。 -- 影响与剩余项:<影响面、遗留风险、后续任务>。 +- 结果:七个权限管理入口(PatchRolePermissionsBatch、PreviewRolePermissions、AssignUserRolesBatch、PreviewUserRoleAssignments、ListRoleMembersForActor、ActiveRolesForUsers、CreateRoleCopyAndAssign)与配套类型(RoleBinding、PolicyReceipt、RoleAdminView、CapabilityAssociation、RoleAuthorityImport*、RoleCreate/RolePatch、RolePermissionChange/Conflict)全部移植到当前 main 的角色/权限模型上,8 文件 / +2184 行。移植首版并未编译通过(role_policy.go:2394 向 upsertRolePermissionsTx 传参错位:空 map 当 current、slice 当 after),已由独立 repair 单元按 main 的差量语义修正。 +- 验证:PASS——gofmt -l 干净;go build ./... 与 go vet ./internal/store/ ./internal/server/ ./internal/authz/... 均无输出(宿主独立执行);go test -count=1 ./internal/store/ ./internal/server/ ./internal/authz/... 全绿(store 13.3s / server 29.5s / catalog ok);独立 Review PASS、无阻塞项,逐 API 核对安全语义。 +- 影响与剩余项:只新增能力面,不改 schema(移植未引入新表),不改 Makefile/CI/子模块;未新增范围外功能。非阻塞遗留:Review 指出 PostgreSQL 下不同角色跨 batch 处理的潜在 lock-ordering 风险,以及若干测试缺口,两者已记入报告留作后续增量。 | 时间(UTC) | 命令 | 被测 HEAD | exit | 来源 | 摘要/位置 | |---|---|---|---|---|---|