Files on a ticket
Attachments appear under the message they came with and download on a tap. Serving files from disk is the most dangerous thing this module does, so the rules are strict: the link names the file rather than the caller doing so, it works once and for five minutes, the stored name is reduced to its basename before it goes anywhere near the filesystem, and the resolved path must sit inside the attachments directory after symlinks are followed. Everything is sent as a download rather than displayed, so an uploaded HTML or SVG file cannot run in the browser against your portal.