---
# System prepended metadata

title: Untitled

---

# Storage Service

## First Release
### Http Endpoints
- Public Upload temp Binary File/Image (HTTP Multipart: File Binary and JSON Metadata)
	-  Bucket: `{App}-{Tenant}` Example: `Check-Dev`
	- Directory: `{Module}/{Entity-EntityId}/` Example: `Survey/Answers-926a987f-2506-4bd9-8aa0-df5f2377029c/`
- Public Download Binary File/Image by Id
- Public Get File/Image Metadata by Id
- Public Download Image Thumbnail Metadata by Id
	- TBD: Should we return thumbnail as part of metadata endpoint or separate endpoint
### Queue Events (Service to Service)
- **Listener:** Confirm Uploaded Files (Save Temp Files and Remove Expire Time)
- **Listener:** Delete Uploaded Files (Set Status to Deleted and set Expire Time)
### Settings
- Settings Levels
	- Global Server Settings
	- `Future:` Global Module Settings
	- `Future:` Global Entity Settings
	- `Future:` App-Tenant Settings
	- `Future:` App-Tenant Module Settings
	- `Future:` App-Tenant Entity Settings
- TBD: Each setting levels should add more restriction or allow override the previous level (`and` vs `or` relation)
- Settings should be pre-processed and cached on memory
- Settings:
	- Max-Upload Size
	- Allowed File Extensions
	- `Future:` Max-Upload Size per Extension
	- Allowed App-Tenants
	- Allowed App -> Modules -> Entities
### Internal Abstractions
- Upload Pipeline
	- `Future:` Access Control
	- File Validation
	- File Processing/Encoding
- `Future:` Access Policy/Guard (Tenant Based, Module Bases, File Type Based, User Based)
- File Validators (Magic-Number, File-Size-Limiter, File-Type, File-Name, ...etc)
- File Processors (Metadata Definition, Image WebP Conversion, Image Thumbnail Generator)
## Future Releases
### Http Endpoints
- Public Upload temp Base64 File/Image
- Public Download Base64 File/image by Id
- Chunk Upload (parallel, resume)
- Chunk Download (parallel, resume)
- List Entity Files By Entity Id
- Label Files and Search By Label
- Compress and Download All Entity Files
- Private (Authorized and Access Control)
	- Upload temp Binary File/Image (HTTP Multipart: File Binary and JSON Metadata)
	- Upload temp Base64 File/Image
	- Download Binary File/Image by Id
	- Download Base64 File/image by Id
	- Get File/Image Metadata by Id
	- Download Image Thumbnail Metadata by Id
