fix admin feature pricing visibility
Independent Staging Quality Gate / validate (push) Failing after 26m23s
Independent Staging Quality Gate / publish (push) Has been skipped

This commit is contained in:
Jesse_Chen
2026-08-31 19:57:08 +08:00
parent 47b4b06bfb
commit afb8305ca1
9 changed files with 141 additions and 9 deletions
+16
View File
@@ -7006,3 +7006,19 @@
- 相关记录:BUG-452、BUG-453
- 复发自:BUG-452(非终态出口只覆盖 message,未覆盖 opening
- 修复版本:待发布(Skill 保持 `10.0.13`
## BUG-457 | 功能定价草稿保存成功但列表为空且菜单入口被隐藏
- 状态:resolved
- 首次发现:2026-08-31
- 最近更新:2026-08-31
- 影响面:`/admin/feature-pricing``/admin/pricing-simulator``GET /api/admin/feature-pricing`、后台功能定价可读性
- 用户现象:管理员保存定价草稿后接口没有报错,但列表仍为空;左侧菜单找不到“功能定价”;功能和模型档位只显示内部英文键,非研发人员无法判断含义。
- 触发条件:以 `admin_runtime` 读取启用 RLS 的 `public.feature_pricing`;或由 Refine 根据 `resourcePermissions` 生成后台菜单;或打开功能定价、定价测算列表。
- 根因:建表迁移只向 `admin_runtime` 授予了 `SELECT`,没有为启用 RLS 的表创建读取策略,因此安全定义者函数可以保存草稿,但后台直查被 RLS 静默过滤为 0 行;同时 `feature-pricing``pricing-simulator` 未加入菜单权限映射;界面直接渲染稳定内部键值。
- 修复:新增向前迁移,为 `admin_runtime` 添加 `feature_pricing` 只读 RLS 策略;补齐两个 Refine 资源的权限映射;统一提供中文标签并保留括号内原始键值,供功能定价和定价测算共同使用,同时把草稿、已发布、已停用状态本地化。
- 验证:契约测试锁定菜单映射、中文标签/原始值以及只读 RLS 策略;本地 PostgreSQL fixture 插入 `rectification/standard` 草稿后,以 `admin_runtime` 成功读回该行;TypeScript、ESLint 与聚焦测试通过。
- 防复发:任何后台运行角色直查启用 RLS 的新表时,表权限和对应只读 policy 必须成对交付并用该真实角色查询验证;新增 Refine resource 必须同步 `resourcePermissions`;后台稳定键值必须显示可读标签且不得改变提交值。
- 相关记录:BUG-454、BUG-455
- 复发自:无
- 修复版本:待发布