Skip to content

test(app-showcase): round-3 permission-model retest — issues register with evidence#2921

Closed
baozhoutao wants to merge 1 commit into
mainfrom
claude/permission-model-testing-d5a460
Closed

test(app-showcase): round-3 permission-model retest — issues register with evidence#2921
baozhoutao wants to merge 1 commit into
mainfrom
claude/permission-model-testing-d5a460

Conversation

@baozhoutao

Copy link
Copy Markdown
Contributor

概要

第三轮权限模型全量复测(只测试、不修改产品代码):fresh DB 起服务 → REST 49/49 断言 → Playwright 25/25 通过(修复测试环境后)。本 PR 只新增测试文档与截图证据。

内容

  • 新增 permission-model-issues.md:全部问题三档分级 + 逐条证据(截图/响应原文)
  • 新增截图 R3-I2a/R3-I2b(cookie-less FLS fail-open 同框对照);L*/N*/O* 系列为复测重跑覆盖
  • 主报告加第三轮小节引用

关键发现(详见 issues 文档)

  • 🔴 锚点岗位 everyone 可被数据 API 物理删除(解除 FK 绑定后 DELETE → 200 success:true;二轮 N6 通过是 FK 假象,managed_by:system 无删除保护)
  • 🔴 无声明式岗位↔权限集绑定:fresh 部署 7 岗位空壳,20/49 静默降级到 everyone 基线无警告;spec isDefault「never auto-bound」与 boot 自动绑 everyone→member_default 实测矛盾
  • 🟡 启动期种子不物化共享规则(须运行时空触碰)
  • 🟡 无 cookie 时 console FLS 渲染 fail-open(数据面仍强制)
  • 🟡 拒绝语义分层不一致:记录范围层 400+裸 error vs 能力门 403+PERMISSION_DENIED
  • 🟡 showcase_announcement 无 name 字段/无种子;perm-setup.sh 复跑不自足

前序:#2910(第一轮)、#2915(第二轮配置面)。

@vercel

vercel Bot commented Jul 14, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
spec Ready Ready Preview, Comment Jul 14, 2026 2:34pm

Request Review

…ister with evidence

Retest-only pass (no code changes): fresh DB → REST 49/49, Playwright 25/25
after test-env fixes. New docs/test/permission-model-issues.md records all
findings in three tiers with screenshots/verbatim responses:

- CRITICAL: anchor position (everyone) physically deletable via data API
  (managed_by:system has no delete guard; round-2 N6 pass was an FK artifact)
- CRITICAL(DX): no declarative position↔permission-set binding — fresh deploy
  silently degrades to everyone baseline (20/49 fail, no warning); spec
  isDefault 'never auto-bound' contradicts observed boot auto-binding
- Seed-loader rows don't materialize sharing rules (runtime touch required)
- Cookie-less console FLS render fail-open (R3-I2a/I2b screenshot pair)
- showcase_announcement: no name field, no seed, ops-only create
- Denial semantics split: scope layer 400+bare error vs capability gate
  403+PERMISSION_DENIED
- perm-setup.sh not self-sufficient (bindings/announcement/sharing touch)
- Env: dev server externally SIGKILLed 5x during the round
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/m

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants