Skip to Content

File uploads on the wire

Catalog hints

Parameters may be classified for QA pickers:

params[].kindMeaning
jsonDefault — JSON-only.
fileSingle file argument.
filesArray of files.

Nested object paths use filePaths (single) and fileArrayPaths (arrays).

Placeholders (JSON-safe)

Wire arguments use placeholders only where the catalog allows:

ShapeUse
{ "__qaFileRef": "<uploadId>" }In-memory upload store (ref mode).
{ "__qaFileRefs": ["id1","id2"] } or array of ref objectsMultiple refs.
{ "__qaFileUrl": "https://…" }URL mode with host fileUrl policy.
{ "__qaFileUrls": [ … ] } or array of url objectsMultiple URLs.

Do not combine __qaFileRef and __qaFileUrl on the same leaf.

Embedded WebSocket (QA_UPLOAD_*, v8+)

When startInspectorWebSocket({ upload: { enabled: true }}):

  • Client sends JSON: QA_UPLOAD_START, QA_UPLOAD_CHUNK (b64 field), QA_UPLOAD_FINISH, QA_UPLOAD_ABORT.
  • Server replies with QA_UPLOAD_ACK, QA_UPLOAD_PROGRESS, QA_UPLOAD_COMPLETE, or QA_UPLOAD_ERROR.

Chunk encoding matches the Socket.IO ref-upload contract documented in sdk/ts/docs/protocol-client.md.

Socket.IO

Ref uploads use qa:upload:* events; host media streaming uses qa:hostMedia:* when enabled (protocol v10). See Socket.IO transport.

Scope

Host Minio / qa:hostMedia:* is available on Socket.IO in v10+ when configured — not on the embedded ws server. For embedded-only hosts, enable upload on WebSocket or use separate HTTP upload APIs.

See also