#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 收尾评估。
Activity
Merge pull request #2969 from objectstack-ai/claude/attachments-v1-fo…
feat(lifecycle): sys_file orphan reclaim — reap guards + attachment t…
feat(storage): parent-derived attachment access + upload auth; drop d…
test(dogfood): attachments non-admin permission matrix + orphan lifec…
docs(adr-0057): reap guards amendment + attachments changeset (object…
feat(attachments): sys_attachment read inherits parent-record visibil…
test(dogfood): prove field-file collection end to end on a real boot (#…
feat(plugin-audit)!: retire sys_comment.visibility / reply_count (obj…