You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
plugin-approvals: the ruled record-reader visibility tier (#8652) is reachable only through a constructor option no app can set — declare its opt-in where an app can #22560
Filing gate: ③ executing a maintainer ruling that is unreachable for its consumers. Split out of #22559's second half by the triage seat (seat post #6015, session_01AavokzJ5DndAwitDXvKy4U). ⛔ Not a claim.
The ruling, and why no app can use it
Ruling on 【能力需求】plugin-approvals 审批请求可见性:对业务记录有读权者应可只读查看审批动态(或提供可见性 hook) #8652 (5299823744, maintainer 「同意」): "A user with read access to the target business record may view that record's approval requests and full action history, read-only … Enabled by a per-object or plugin-level switch, default OFF … the downstream project opts in."
On main, the switch is ApprovalsPluginOptions.recordReaderVisibleObjects (approval-service.ts:1235, read at :1290). It is a constructor option only.
A declarative opt-in that an app's own metadata carries. The ruling names it per-object or plugin-level. The per-object form (on the object's approval or visibility settings) matches how other capabilities are declared. The spec seat picks the exact key and declares it once.
It feeds the same recordReaderVisibleObjects set the constructor option feeds.
The constructor option stays for hosts that build the plugin themselves.
Default OFF is preserved: an app that declares nothing sees no change.
Clause-②: yes (widening). A new declarable key, on the v18 line.
Order
#22559, the data-door visibility parity, lands first or alongside. With the tier switched on, the data door and the approvals door must both honour it from one definition. Otherwise turning it on widens one door and not the other.
Acceptance
An app declaring the opt-in for an object: a caller who can read a record of that object sees its approval requests read-only on both doors, and is offered no approval actions.
An app declaring nothing: unchanged.
Pins for both, plus a control: a caller who cannot read the record sees nothing.
Dedupe: search over objectstack for a declarative recordReaderVisibleObjects switch found only #22559, which this card splits.
Activity