Document Storage Service
Component Detail
Service Layer
high complexity
mobilebackend
0
Dependencies
0
Dependents
2
Entities
0
Integrations
Description
Business logic service responsible for uploading files to Supabase Storage using the {org_id}/{activity_id}/{filename} path convention, generating short-lived signed URLs (15-minute TTL) for secure inline display, and coordinating thumbnail generation via Edge Functions. Enforces RLS access policies and orchestrates metadata persistence.
document-storage-service
Responsibilities
- Upload validated files to Supabase Storage with correct path structure
- Generate signed URLs with 15-minute TTL for secure inline display
- Trigger thumbnail generation via Supabase Edge Function after upload
- Coordinate metadata persistence to activity_documents via repository
- Handle deletion of storage objects and associated metadata on remove
Interfaces
uploadDocument(activityId: string, orgId: string, file: File): Future<ActivityDocument>
getSignedUrl(storagePath: string): Future<String>
deleteDocument(documentId: string, storagePath: string): Future<void>
getDocumentsForActivity(activityId: string): Future<List<ActivityDocument>>
triggerThumbnailGeneration(storagePath: string): Future<void>
getThumbnailUrl(storagePath: string): Future<String>
Related Data Entities (2)
Data entities managed by this component