Skip to content

[finding][spec] ViewFilterRuleSchema.value 不按算子约束形状 —— 集合算子配标量在发布期通过,直到运行时才拿到 400 #6227

Description

@baozhoutao

来自 PR #6209(#5869)实施期的范围外观察,按 PD #10 记录,未认领、未入队,交分诊定级。查重:全仓 open issue 仅 #5869 自身命中(其修的是运行时半边)。

事实

ViewFilterRuleSchema(packages/spec)对 value 不按算子约束形状:['stage', 'not_in', 'won'](集合算子 + 标量比较值)是 spec 合法的 ViewFilterRule,发布期校验通过。#5869/PR #6209 之后,这类形状在运行时收到带点名信息的 400 INVALID_FILTER(改前是 500)—— 运行时半边已收口。

缺口

「发布通过 → 运行时 400」仍是两段式:作者在发布期得不到反馈,要到查询真正执行才知道写错。对照:FieldOperatorsSchema$ 算子层早已声明形状($in/$nin 为数组、$between 为二元组)—— 缺的是 view-filter 创作面(三元组语法)按第二元(算子)约束第三元(value)的发布期校验。

方向(供 spec 席判断,不预裁)

spec 侧对 ViewFilterRuleSchema 做按算子的 value 形状精化(discriminated union 或 superRefine)。属创作面收紧一类(同族先例:#5931 的裁量边界),影响所有 view 元数据的发布路径,量级与兼容性(存量已发布的越形 view 怎么办)需要 spec 席评估 —— 这正是 #6209 按纪律不做 rider 的原因。

Refs:#5869、PR #6209(「范围之外」段)、#5348/#5346(点名措辞口径)。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions