Files and Uploads
Files and Uploads
Section titled “Files and Uploads”Not in v1 product scope; pattern is decided for when attachments ship.
Upload flow
Section titled “Upload flow”- GraphQL mutation
requestUpload(mimeType, byteSize, purpose)→ presigned PUT URL +file_id. - Client uploads to object storage (S3-compatible) directly.
- GraphQL mutation
confirmUpload(file_id)→ virus scan / moderation queue → linkable. - Entities (notes, messages, forum) reference
file_idonly.
Do not use GraphQL multipart for large binaries (mobile timeouts, scanning before commit).
Storage keys
Section titled “Storage keys”- Content-addressed hash for deduplication (same bytes → one object).
- Stable
file_idin API for permissions, deletion, and user quotas.
Moderation (when UGC attachments exist)
Section titled “Moderation (when UGC attachments exist)”Run checks on confirmUpload before the file is attachable to shared content.
Quotas
Section titled “Quotas”Per-user storage limits (TBD at implementation); platform admin visibility in job UI (Deployment).