Files
sencho/backend
Anso ba4de2e004 test(stack-files): pin multipart-body forwarding through the remote-node proxy (#1217)
conditionalJsonParser skips express.json() when the request has an
x-node-id pointing at a remote node, leaving the raw body stream intact
so the remote proxy middleware can pipe it upstream. No existing test
pinned that the skip also applies to multipart payloads, not just JSON.

A regression that re-enabled body-parser on multipart would silently
strand POST /api/stacks/<name>/files/upload to remote nodes: the proxy
would forward an already-drained stream, the upstream multer would see
an empty body, and the user would get a 400 from a successful-looking
request.

Two cases pin the behaviour:
- An in-process http capture server is registered as a remote node. A
  multipart upload through the central with x-node-id set must arrive
  with Content-Type carrying the boundary, Content-Length matching the
  raw byte length, the original file bytes intact, an envelope larger
  than a half-drained stream could ever produce, and the user JWT
  rewritten to the remote node's api_token so the central does not
  leak its session token to the peer.
- A second case extracts the boundary from the Content-Type header and
  checks both that the body bytes contain --<boundary> and that the
  original filename is preserved across the proxy.

No production code change. The test runs green against current main;
the value is in regression prevention for a load-bearing assumption.
2026-05-25 01:29:47 -04:00
..