Skip to content

[attachments] v1 follow-ups: sys_file orphan lifecycle + non-admin permission matrix dogfood #2755

Description

@os-zhuang

#2727 落地的通用 Attachments 面板(framework #2742 + objectui #2374)的两个已知 v1 边界:

1. 删除附件不清理 sys_file 孤儿

RecordAttachmentsPanel 删除走 sys_attachment join 行删除;底层 sys_file 行与存储字节保留。同一 file 可被多处 attach(ContentDocumentLink 模式),所以不能简单级联——需要引用计数或定期 sweep(最后一个 join 行删除后 N 天回收)。归入 ADR-0057 数据生命周期框架(声明式保留契约),建议作为 sys_file 的 lifecycle class 声明落地。

2. 非 admin 附件权限矩阵未 dogfood

E2E 验证(#2742)用的是 seeded admin。待验:普通 member 对 sys_attachment/sys_stobjectstack_file 的 create/read/delete 面——预期:能否给自己可读的记录上传附件?能否删除他人上传的附件(uploaded_by ≠ self)?RLS 是否让 member 只见本租户附件?对照 Salesforce 语义(附件继承父记录可见性,share_type 字段已建模未强制)。发现的缺口按 enforce-or-remove 处置(share_type/visibility 字段当前无 runtime 消费者,liveness 待审计——sys_attachment 是 isSystem 对象不在 governed 集内)。

来源:#2727 v1 收尾评估。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions