Commit 4f7321c
committed
fix(scan): degrade proxy batch validation 400s to per-package GETs
The proxy batch endpoint validates its component list all-or-nothing,
so a single crawled PURL of a type the server doesn't recognize (e.g.
pkg:jsr/... from the Deno crawler) rejected the whole chunk and, when
every chunk contained one, flipped the entire scan to exit 1. The
docker e2e deno JSR test caught this against the production proxy:
scan crawled 4 jsr packages, the one batch POST 400'd, and the scan
errored where the old per-package GET path had quietly tolerated the
unresolvable PURLs one by one.
A validation 400 on the proxy batch POST now degrades the chunk to the
legacy per-package GET path, whose per-PURL error swallowing is the
scan semantic that predates the batch optimization: the valid subset
still resolves, the exotic PURLs stay patch-less, and the scan
succeeds. Rate limits, auth statuses, and over-capacity 503s still
surface. is_batch_unsupported keeps detecting deployment-level absence
only; the two fallback causes are logged distinctly.
Verified against the real patches-api.socket.dev with a synthetic JSR
layout: scan now exits 0 with scannedPackages=4 and the debug trace
shows batch POST -> validation 400 -> 4 tolerated per-package GETs.
Assisted-by: Claude Code:claude-fable-51 parent 625188e commit 4f7321c
4 files changed
Lines changed: 120 additions & 40 deletions
File tree
- crates
- socket-patch-cli
- socket-patch-core
- src/api
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
58 | 61 | | |
59 | 62 | | |
60 | 63 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
69 | 69 | | |
70 | 70 | | |
71 | 71 | | |
72 | | - | |
| 72 | + | |
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
297 | 297 | | |
298 | 298 | | |
299 | 299 | | |
300 | | - | |
301 | | - | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
302 | 303 | | |
303 | 304 | | |
304 | 305 | | |
305 | | - | |
306 | 306 | | |
307 | 307 | | |
308 | 308 | | |
| |||
312 | 312 | | |
313 | 313 | | |
314 | 314 | | |
315 | | - | |
316 | | - | |
317 | | - | |
318 | | - | |
319 | | - | |
320 | | - | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
321 | 333 | | |
322 | 334 | | |
323 | 335 | | |
| |||
356 | 368 | | |
357 | 369 | | |
358 | 370 | | |
359 | | - | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
360 | 387 | | |
361 | 388 | | |
362 | 389 | | |
| |||
870 | 897 | | |
871 | 898 | | |
872 | 899 | | |
873 | | - | |
874 | | - | |
875 | | - | |
876 | | - | |
877 | | - | |
878 | | - | |
| 900 | + | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
| 904 | + | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
879 | 908 | | |
880 | 909 | | |
881 | 910 | | |
| |||
1613 | 1642 | | |
1614 | 1643 | | |
1615 | 1644 | | |
1616 | | - | |
| 1645 | + | |
| 1646 | + | |
| 1647 | + | |
| 1648 | + | |
| 1649 | + | |
1617 | 1650 | | |
1618 | 1651 | | |
1619 | 1652 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
146 | | - | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
147 | 152 | | |
148 | 153 | | |
149 | 154 | | |
150 | | - | |
151 | | - | |
152 | | - | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
153 | 161 | | |
154 | 162 | | |
155 | 163 | | |
156 | | - | |
| 164 | + | |
157 | 165 | | |
158 | 166 | | |
159 | | - | |
| 167 | + | |
160 | 168 | | |
161 | 169 | | |
162 | | - | |
163 | | - | |
164 | | - | |
165 | | - | |
166 | | - | |
167 | | - | |
168 | | - | |
169 | | - | |
170 | | - | |
171 | | - | |
172 | | - | |
173 | | - | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
174 | 218 | | |
175 | 219 | | |
176 | 220 | | |
| |||
0 commit comments