KamoCRM

Carry website visitors' Live Support files through the gateway

FeatureAPIService
Shipped
October 14, 2026 at 11:02 PM UTC
Author
Kamo
Commit
9ac029c

- POST **************** the multipart "files" parts are re-sent to MediaService as a fresh multipart body, streamed from the container's spooled copies (the generic proxy cannot forward multipart: Spring has already parsed it). More than 5 files, or one over 25 MB, is refused here without an upstream hop. - GET …/attachments/{objImgId} and …/preview: streamed byte-for-byte (an agent's file may be gigabytes; the generic proxy buffers in heap), Range forwarded, and only the file's own headers cross (type, length, range, disposition, nosniff, CSP, rendition). - CORS now exposes Content-Disposition, Content-Length, Content-Range, Accept-Ranges, X-Attachment-Rendition and Retry-After to the widget (Traefik's cors middleware sets no expose list of its own). - An upstream refusal keeps its Content-Type, so a JSON error reaches the widget as JSON. - Rate limiter: attachment routes are conversation traffic, not session creation (they were throttled at 3/min/IP); uploads 10/min/IP per conversation, downloads 120/min/IP per attachment.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing