Skip to content

[objectui/framework] enable.files: generic Attachments related-list (Salesforce Notes & Attachments parity) #2727

Description

@os-zhuang

背景

#2707 处置了对象能力 flag 的 dead-property 问题:trackHistory/feeds/activities 已全部接线为 live(见对应 PR),只剩 enable.files 是真 dead——两层(framework 运行时 + objectui 渲染层)都没有消费者,当前保持 dead + authorWarn(liveness ledger),spec describe() 已改为如实标注 RESERVED。

目标

enable.files: true 真正生效 = 通用附件面板(Salesforce "Notes & Attachments" 对齐):

  1. objectui:记录详情页渲染通用 Attachments related-list(上传/列表/下载/删除),gated on enable.files === true(opt-in,spec default false);底层存储走 sys_attachment(polymorphic target: object_name + record_id)。
  2. framework:sys_attachment 目标校验——创建指向 files 未开启对象的附件行为需要决策(fail-closed 403 FILES_DISABLED,复用 FEEDS_DISABLED/CLONE_DISABLED 模式;注意别误伤 Field.file/Field.image 的既有存储路径,它们不依赖该 flag)。
  3. 落地后把 ledger 条目 enable.files 翻 live、删 authorWarn,更新 describe() 与 references 文档。

约束

  • Field.file/Field.image 的字段级附件不受影响(它们是另一条路径,继续不依赖此 flag)。
  • opt-in 语义保持(default(false)):这是"长出新面板"不是"关掉已有行为",与 feeds/activities 的 opt-out 相反。
  • 完成前 enable.files 保持 authorWarn,防止作者误以为设了就有附件。

来源:#2707 评估;liveness ledger packages/spec/liveness/object.jsonenable.files

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions