Get Avatar Upload URL
Generate a signed upload URL for user avatar.Original file name (sanitized for storage)
MIME type (e.g., “image/jpeg”, “image/png”)
File size in bytes
Signed URL for uploading the file (valid for limited time)
Public URL to access the uploaded file
Storage key/path for the uploaded file
- Max file size: 5 MB
- Allowed types: image/jpeg, image/jpg, image/png, image/gif, image/webp
- Storage path:
users/{userId}/avatar/{uuid}-{fileName} - Rate limit: Prevents abuse with per-user limits
After uploading to the signed URL, use the
publicUrl to reference the avatar in user settings.Get Workspace Upload URL
Generate signed upload URL for workspace assets (logos, images).Workspace slug
Upload folder: “logo”, “images”, or other allowed folder
File name
MIME type
File size in bytes
- Logo
- Images
- Max size: 2 MB
- Types: image/jpeg, image/png, image/svg+xml, image/webp
- Path:
workspaces/{slug}/logo/
- User must be workspace owner or admin
- Rate limited per user to prevent abuse
workspaces/{slug}/{folder}/{uuid}-{fileName}
Get Post Image Upload URL
Generate signed upload URL for post images (public boards).Workspace slug
Board slug
Image file name
Image MIME type
File size in bytes
- Max size: 10 MB
- Allowed types: image/jpeg, image/png, image/gif, image/webp
- Storage path:
workspaces/{slug}/posts/{uuid}-{fileName}
- Board must exist and be public
- If board doesn’t allow anonymous posts, user must be authenticated
- Rate limited per user (or by IP for anonymous)
Get Comment Image Upload URL
Generate signed upload URL for comment images.ID of the post where comment will be added
Image file name
Image MIME type
File size in bytes
- Max size: 5 MB
- Allowed types: image/jpeg, image/png, image/gif, image/webp
- Storage path:
workspaces/{slug}/comments/{uuid}-{fileName}
- Post must exist and not be locked
- Board must allow comments
- For private boards, user must have workspace access
- Rate limited per user
Upload Flow
Security Notes:
- All signed URLs have time-limited validity
- File names are sanitized to prevent path traversal
- Content types are validated and normalized
- File sizes are enforced server-side
- Rate limiting prevents abuse
- JPEG/JPG (image/jpeg)
- PNG (image/png)
- GIF (image/gif)
- WebP (image/webp)
- SVG (image/svg+xml) - logo uploads only