Files
digital-psychology/docs/ECR/ECR-013A-admin-rbac.md
T
jackyu66gitandCursor b5a05941d9 feat(ECR-013A): Admin RBAC 实现并 Closed
角色权限、RequirePermission、/me permissions 与 migration 000015;
Reviewer Approve → Closed。Next:ECR-013B Contract Definition。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 17:19:45 +08:00

2.5 KiB
Raw Blame History

ECR-013A

Title: Admin RBAC(角色 · 权限点 · API 强制鉴权)
Status: Closed
Date: 2026-08-07
Approved: 2026-08-07Human
Coding Start Authorization: 2026-08-07Human
Closed: 2026-08-07Reviewer Approve
Parent: WAVE0-FROZEN (27f27a1)
Change Level: L2(行为:管理员授权模型;栈与分层不变)

Change

  1. Active Feature Spec.ai/product/feature-spec/ops-rbac.md
  2. DomainAdminRole · AdminPermissionAdminAccount.role_id
  3. API 意图:GET/PUT /api/v1/admin/roles* · 扩展 GET /me permissions
  4. 既有 admin 写路径挂 permission;缺权 403 + AuditLog
  5. contract_diffdocs/CONTRACT_DIFF/ECR-013A.yamlP0
  6. 不含 UserStatus / 账户启停(ECR-013B

Motivation

Ops-A 管理员权限扁平;进入多运营角色与 M1+ 前必须有可审计的最小权限模型。

Scope

Allowed

  • 上列 Spec / Domain / API 意图 / BD Draft / AC(四类)
  • feature-map §7 · TRACEABILITY · STATE · TASKarchitect

ForbiddenNon-goals

  • ECR-013B AccountLifecycle(另 Start Authorization
  • 真支付 · UGC · Prompt · 兑换码 · Crisis · 完整角色编辑 UI(本切片 API-first + me 最小展示)

Risk

Risk Mitigation
锁死全部管理员 种子 super_admin 不可删;bootstrap 保留
权限码膨胀 本切片冻结 catalog;新增须新 ECR
与 Ops-B/C 路由遗漏挂权 ENGINEERING_SPEC 列清单;integration 覆盖 grant/content

Acceptance Criteria

见 Spec ops-rbac.md L4AC-F-01..03 · AC-S-01..04 · AC-P-01 · AC-O-01..02(实现轮勾选)

契约 / 实现完成标准:

  • L0L4 填满
  • contract_diff 已交
  • BD Draft + HANDOFF
  • Human Approve ECR+BD + Coding Start Authorization
  • Migration + middleware + roles API + TEST_REPORT
  • Reviewer Approve → Closed

Rollback

  • down migration 000015 + 回退 permission middleware

Risk Review

  • Path: N/A

Linked

  • Feature Spec: .ai/product/feature-spec/ops-rbac.md
  • PRODUCT_SPEC: docs/PRODUCT_SPEC/ECR-013A-admin-rbac.md
  • ENGINEERING_SPEC: docs/ENGINEERING_SPEC/ECR-013A-admin-rbac.md
  • BACKEND_DESIGN: docs/BACKEND_DESIGN/BD-2026-013A-admin-rbac.md
  • CONTRACT_DIFF: docs/CONTRACT_DIFF/ECR-013A.yaml
  • TEST_REPORT: docs/TEST_REPORT/ECR-013A.md
  • CODE_REVIEW: docs/CODE_REVIEW/ECR-013A.md
  • Parent: WAVE0-FROZEN