Part of #6206(维护者 2026-08-07 裁决 A 案,见 #6206 comment 5219847367)
要做什么
packages/spec/src/contracts/share-link-service.ts(:100-112 的 ShareLinkExecutionContext,仅五字段)按裁决调整:share-link 的可见性校验(enforcement)路径必须收完整的 resolveAuthzContext 信封(含 accessible_org_ids、org_user_ids、systemPermissions、posture、tabPermissions),窄类型可保留但只准服务路由自身的 401 判断,不得再进任何 enforcement 路径——契约形状要让这条边界可见(如可见性校验的签名改收 ExecutionContext,并在 TSDoc 写明窄类型的边界)。
依据
排序(contract-first)
本卡先落;plugin-sharing 消费半边(sharing-plugin.tscontextFromRequest / share-link-service.ts 喂 engine.find 处)留 identity 车道,已挂 Blocked-by: 指向本卡。消费半边的 before-red 证据将同时兑现分诊留下的 repro 义务(group 姿态 403 实测,修后转 200)。
落点 packages/spec ⇒ 归 spec 座位;本卡由 identity 车道 PM 按跨座位转移协议代立(session_01JwwiU9bjhwy2SWj13ho8uv),domain:* 留分诊补。
Part of #6206(维护者 2026-08-07 裁决 A 案,见 #6206 comment 5219847367)
要做什么
packages/spec/src/contracts/share-link-service.ts(:100-112 的ShareLinkExecutionContext,仅五字段)按裁决调整:share-link 的可见性校验(enforcement)路径必须收完整的resolveAuthzContext信封(含accessible_org_ids、org_user_ids、systemPermissions、posture、tabPermissions),窄类型可保留但只准服务路由自身的 401 判断,不得再进任何 enforcement 路径——契约形状要让这条边界可见(如可见性校验的签名改收 ExecutionContext,并在 TSDoc 写明窄类型的边界)。依据
principalKind/onBehalfOf,而 explain / security 会读它 #6071/HookContext 契约表把before*的input.options记成 DriverOptions —— 实测那里仍是调用方的 engine options(含 where),两个 break-glass 守卫正读它 #5997),治理默认收敛到完整信封,不留 per-site 子集;group姿态下 share-link 创建全量 403,可用性缺陷非泄露),tenant-layer.ts 的 TSDoc 自证(accessibleOrgIds 在 group 姿态缺席即拒)。排序(contract-first)
本卡先落;plugin-sharing 消费半边(
sharing-plugin.tscontextFromRequest/share-link-service.ts喂 engine.find 处)留 identity 车道,已挂Blocked-by:指向本卡。消费半边的 before-red 证据将同时兑现分诊留下的 repro 义务(group姿态 403 实测,修后转 200)。落点
packages/spec⇒ 归 spec 座位;本卡由 identity 车道 PM 按跨座位转移协议代立(session_01JwwiU9bjhwy2SWj13ho8uv),domain:*留分诊补。