How rohitt-prog/cloudvault works
CloudShare is a multi-tenant cloud file manager with authenticated owners and public guest sharing. Owners register or sign in, upload and manage files, then create expiring share links; guests use a token to view metadata or download through a short-lived signed URL. The map separates client workflows, Supabase-backed identity and persistence, and the privileged sharing boundary. The README documents the broader security architecture; source excerpts verify key service calls and edge-function operations, while some UI wiring is not sampled.
Main entry points: share.service.ts Sharing service · file.service.ts File operations · index.ts Guest access boundary · router.tsx Route handling
Components 25
Web application
- Application entry
frontend/src/App.tsx - Route handling
frontend/src/app/router.tsx - File dashboard
frontend/src/pages/DashboardPage.tsx - Guest file page
frontend/src/pages/SharedFilePage.tsx
Identity
- Login and registration
frontend/src/features/auth/components/LoginForm.tsx - Session context
frontend/src/features/auth/context/AuthProvider.tsx - Authentication service
frontend/src/features/auth/services/auth.service.ts
File management
- File explorer and upload
frontend/src/features/files/components/FileUpload.tsx - File workflow state
frontend/src/features/files/hooks/useFiles.ts - File operations
frontend/src/features/files/services/file.service.ts - File validation and paths
frontend/src/features/files/types.ts
Secure sharing
- Share-link controls
frontend/src/features/sharing/components/ShareModal.tsx - Sharing workflow state
frontend/src/features/sharing/hooks/useShare.ts - Sharing service
frontend/src/features/sharing/services/share.service.ts - Token utilities
frontend/src/features/sharing/utils/sharing-crypto.ts - Create share link
backend/supabase/functions/create-share-link/index.ts - Guest access boundary
backend/supabase/functions/access-shared-file/index.ts - Share security helpers
backend/supabase/functions/_shared/share-security.ts
Supabase platform
- Supabase Auth
- Database schema types
frontend/src/types/database.ts - PostgreSQL metadata
- Private file storage
- Supabase client
frontend/src/lib/supabase.ts
Other components
- File owner
- Guest recipient
Connections 32
- File owner → Application entry: uses application
- Guest recipient → Application entry: opens shared route
- Application entry → Route handling: renders routes
- Route handling → File dashboard: routes to dashboard
- Route handling → Guest file page: routes to token page
- File owner → Login and registration: submits credentials
- Login and registration → Session context: uses session context
- Session context → Authentication service: manages session
- Authentication service → Supabase Auth: authenticates
frontend/src/features/auth/services/auth.service.ts - Supabase Auth → PostgreSQL metadata: provisions profile
- File dashboard → File explorer and upload: presents file tools
- File explorer and upload → File workflow state: uses file workflows
- File workflow state → File operations: invokes operations
frontend/src/features/files/hooks/useFiles.ts - File operations → File validation and paths: validates and builds paths
frontend/src/features/files/services/file.service.ts - File operations → Private file storage: uploads and downloads objects
frontend/src/features/files/services/file.service.ts - File operations → PostgreSQL metadata: writes file metadata
frontend/src/features/files/services/file.service.ts - File dashboard → Share-link controls: offers link sharing
- Share-link controls → Sharing workflow state: uses share workflows
- Sharing workflow state → Sharing service: delegates operations
- Sharing service → Token utilities: validates tokens
frontend/src/features/sharing/services/share.service.ts - Sharing service → Create share link: invokes link creation
frontend/src/features/sharing/services/share.service.ts - Create share link → Share security helpers: validates and hashes token
backend/supabase/functions/create-share-link/index.ts - Create share link → PostgreSQL metadata: checks owner and inserts link
backend/supabase/functions/create-share-link/index.ts - Guest file page → Sharing service: requests metadata or download
- Sharing service → Guest access boundary: invokes guest access
frontend/src/features/sharing/services/share.service.ts - Guest access boundary → Share security helpers: validates and hashes token
backend/supabase/functions/access-shared-file/index.ts - Guest access boundary → PostgreSQL metadata: looks up share record
backend/supabase/functions/access-shared-file/index.ts - Guest access boundary → Private file storage: creates signed URL
backend/supabase/functions/access-shared-file/index.ts - Guest file page → Private file storage: downloads via signed URL
- File operations → Supabase client: uses client configuration
frontend/src/features/files/services/file.service.ts - Sharing service → Supabase client: uses client configuration
frontend/src/features/sharing/services/share.service.ts - Database schema types → PostgreSQL metadata: models table schema
frontend/src/types/database.ts