Skip to content

[cli/plugin-security] dev 元数据物化不一致:默认权限集 insert-if-not-exists 不重物化(声明集走 upsert) #2705

Description

@baozhoutao

概述

objectstack dev 开发期把元数据物化进持久化表。不同元数据类型在重启时「从源重新物化」行为不一致:改了权限集 system_permissions 源码 + compile + 重启(不 --fresh)后,运行时仍服务旧值,难以察觉(排查动作按权限集门控时曾被此误导)。

定位

  • packages/plugins/plugin-security/src/bootstrap-platform-admin.ts:83-87 —— 默认权限集走 insert-if-not-exists,已存在即跳过,不重物化。
  • packages/plugins/plugin-security/src/bootstrap-declared-permissions.ts:133-139 —— 声明权限集走 upsert
    → 同为权限集,两条路径行为不一,是本 issue 核心。

期望

  • dev 启动对权限集统一做「从 dist upsert 覆盖」,与声明集一致;或
  • 提供 os metadata resync:从当前 dist 重物化元数据、不动业务数据,避免被迫 --fresh

补充(已裁掉的证伪子主张)

原 issue 另称「默认列表视图不物化」「对象/动作总 upsert」——经核查:全仓无「默认视图物化」代码;对象/动作是内存 registry 重建(非 upsert 分支)。本 issue 仅聚焦权限集物化不一致这一成立部分。


来源(项目 dogfood):steedos-labs/os-tianshun-mtc#25

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions