Media Upload — SanadiqCloud
Product version: 1.0.0+1
Last updated: 2026-10-02
Audience: Tenant Owners, Tenant Employees, Regular Users withmedia:create
A. Upload Page
Path: /media/upload (from Library Upload).
Fields
| Field | Notes |
|---|---|
| Media type | Product, Brand, Organization, Certificate, General |
| Alt text | Optional |
| Description | Optional |
| Tags | Optional |
| File | File picker — images for product/brand/organization; broader types for certificate/general |
Flow
- Choose type and optional metadata.
- Review storage usage summary when shown.
- Pick a file (app rejects files over 25 MB).
- On success → snack → return to library (library reloads).
- Quota/storage failures appear as error snacks.
Batch multi-file upload UI is not shipped.
Profile photos
Profile pictures are not uploaded here. Use Profile → change photo (profile upload API, type user_profile). The previous photo is removed only after the new one is saved to your profile; if saving fails, the new upload is deleted. Removing the photo deletes your stored profile images.
B. Business rules
- Tenant scope is required for library uploads.
- Uploading the same file twice creates two separate library items.
- Delete with active references requires force on the detail page.
- Allowed formats: images (JPEG, PNG, GIF, WebP, BMP, TIFF, AVIF, HEIC/HEIF), videos (MP4, WebM, Ogg, MOV), PDF, Word, Excel, plain text and CSV.
- SVG, HTML, scripts and executables are blocked, and the file content must match its declared type.
- If the storage limit cannot be checked, the upload is refused rather than allowed.