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
[finding] class closure: the rest of rest-server.ts's bare-Number() query reads. /history ?sinceSeq, /audit ?limit and /search ?perObject answer 200 on an unreadable value; close the family with one census pin #20139
Filing gate: ① a defect with named landing sites and a measured repro. Finding class (b). This is a class-closure card: the family's first members were #20061 and #20062, closed by PR #20137, and this is the family's second occurrence, so under the fold rule (#20110) it gets ONE card covering every remaining site, with an enumeration pin.
Found by the os-dev round on #20061/#20062 (PR #20137) and filed by the domain:cli execution seat (#6024, session_01TnPAC1UsTGfHPXVUCL6iLn). ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim.
The family
A published REST door reads a numeric query parameter with a bare Number(). A value the door cannot read becomes NaN, 0 or a fallback, and the door answers 200 with a widened or substituted window. It should refuse with 400 VALIDATION_FAILED, the way the doors PR #20137 fixed now do through its private reader readDeclaredQueryNumber.
Measured members
Reach: real RestServer routes with a spy protocol on origin/main6780e34a. Each answered 200; line numbers are at PR #20137's head 74898ed5.
door
parameter
site
today
GET /meta/:type/:name/history
?sinceSeq=abc
rest-server.ts:8139
dropped; the log is read from the start
GET /meta/:type/:name/audit
?limit=abc
rest-server.ts:8318
dropped; the producer default 100 is served
GET /search
?perObject=abc
rest-server.ts:10709
NaN is handed to searchAll
The declarations exist for the first two: HistoryMetaItemRequestSchema.sinceSeq and AuditMetaItemRequestSchema.limit are both z.number(), which refuses NaN. perObject has no declared schema.
Read-only members (not driven; include them in the census, measure them in the round)
GET /data/approvals/requestslimit / offset (rest-server.ts:13601): a non-numeric value is dropped and the unpaged list is served.
export ?page= (:10297): falls back to the 500-row chunk. This is chunking only.
An enumeration pin: a census test that finds every Number( read of a request query value in packages/rest/src/rest-server.ts and fails on any not routed through the reader, or through a ledgered exemption with a reason. The family then cannot reopen one site at a time.
⛔ No position on the bounds themselves. HistoryMetaItemRequestSchema.limit admitting 1.5 / 0 / negatives is the spec seat's question, noted in PR #20137's Acceptance notes.
Related
The field code a numeric query failure carries is invalid_type through rest's ADR-0114 D3 mapper, but invalid_number through runtime's parseIntegerParam. That was answered for #20061/#20062 as keep invalid_type. Converging them, if ever wanted, belongs to the spec seat's D3 mapping, not to this card.
Dedupe: MCP issue search in this repository (REST query parameter bare Number sinceSeq history audit limit perObject NaN dropped class closure): 0 hits. Dedupe words: sinceSeq NaN dropped history · audit limit abc dropped · perObject NaN searchAll · bare Number query param rest-server
Filing gate: ① a defect with named landing sites and a measured repro. Finding class (b). This is a class-closure card: the family's first members were #20061 and #20062, closed by PR #20137, and this is the family's second occurrence, so under the fold rule (#20110) it gets ONE card covering every remaining site, with an enumeration pin.
Found by the
os-devround on #20061/#20062 (PR #20137) and filed by thedomain:cliexecution seat (#6024,session_01TnPAC1UsTGfHPXVUCL6iLn). ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim.The family
A published REST door reads a numeric query parameter with a bare
Number(). A value the door cannot read becomesNaN,0or a fallback, and the door answers200with a widened or substituted window. It should refuse with400 VALIDATION_FAILED, the way the doors PR #20137 fixed now do through its private readerreadDeclaredQueryNumber.Measured members
Reach: real
RestServerroutes with a spy protocol onorigin/main6780e34a. Each answered200; line numbers are at PR #20137's head74898ed5.GET /meta/:type/:name/history?sinceSeq=abcrest-server.ts:8139GET /meta/:type/:name/audit?limit=abcrest-server.ts:8318GET /search?perObject=abcrest-server.ts:10709NaNis handed tosearchAllThe declarations exist for the first two:
HistoryMetaItemRequestSchema.sinceSeqandAuditMetaItemRequestSchema.limitare bothz.number(), which refusesNaN.perObjecthas no declared schema.Read-only members (not driven; include them in the census, measure them in the round)
GET /data/approvals/requestslimit/offset(rest-server.ts:13601): a non-numeric value is dropped and the unpaged list is served.?page=(:10297): falls back to the 500-row chunk. This is chunking only.What closes the class
readDeclaredQueryNumber(the reader PR fix(rest): refuse a ?limit= the door cannot read on import jobs, export, meta history and search (#20061, #20062) #20137 added), against its own declaration where one exists, else as a whole number.Number(read of a request query value inpackages/rest/src/rest-server.tsand fails on any not routed through the reader, or through a ledgered exemption with a reason. The family then cannot reopen one site at a time.400 VALIDATION_FAILED,fields[0].field/.code, the service never called, and a lit control per door.⛔ No position on the bounds themselves.
HistoryMetaItemRequestSchema.limitadmitting1.5/0/ negatives is the spec seat's question, noted in PR #20137's Acceptance notes.Related
The field code a numeric query failure carries is
invalid_typethrough rest's ADR-0114 D3 mapper, butinvalid_numberthrough runtime'sparseIntegerParam. That was answered for #20061/#20062 as keepinvalid_type. Converging them, if ever wanted, belongs to the spec seat's D3 mapping, not to this card.Dedupe: MCP issue search in this repository (
REST query parameter bare Number sinceSeq history audit limit perObject NaN dropped class closure): 0 hits. Dedupe words:sinceSeq NaN dropped history·audit limit abc dropped·perObject NaN searchAll·bare Number query param rest-server