Skip to content

Emoji, stickers & attachments

Emoji and stickers are server-managed custom assets. Both have a numeric-style ID, name, and image payload; stickers also have a description. Their allowed file extensions are advertised in the handshake. Mutations require manage_emojis and use the focused asset database modules.

Attachments are user uploads referenced by messages. The handshake advertises whether they are enabled, MIME allowlist, byte limit, account quota, and configured permanent tiers. Upload happens over HTTP; message handlers resolve known client references into public attachment objects before persistence. The handshake’s uploads.uploads_per_minute is currently hard-coded to 10, while enforcement reads attachments.uploads_per_minute from configuration.

The storage backend can be local or S3-compatible. Compression settings exist in configuration but are not used by the current upload path. Attachment metadata can be migrated at startup. Deleting a message deletes each referenced attachment; explicit attachment deletion is allowed for its uploader or a user with manage_server.

See HTTP & uploads, asset commands, and manage media.