How iyadeh/vaultshare works
VaultShare is a multi-tenant file-storage and controlled-link sharing application. Owners authenticate, upload and manage files, configure share protections, and review link status and access activity; recipients open public share links to access files. The README documents password protection, download limits, expiration, audit logs, and PostgreSQL RLS. The tree and sampled excerpts support the main UI, auth, and file-management boundaries; unsampled share, audit, and settings internals are represented at their existing enclosing paths, with uncertain implementation wiring omitted.
Main entry points: server.ts Server client · files-view.tsx File management · route.ts Auth callback · page.tsx Public share route
Components 27
Identity and access
- Sign in
src/app/login/page.tsx - Register
src/app/register/page.tsx - Auth callback
src/app/auth/callback/route.ts - Session routing
src/proxy.ts - Session refresh
src/lib/supabase/proxy.ts
Owner workspace
- Dashboard
src/app/dashboard/page.tsx - Dashboard views
src/components/dashboard - File workspace
src/app/files/page.tsx - File management
src/components/files/files-view.tsx - List files
src/lib/files/get-files.ts - Upload file
src/lib/files/upload-file.ts - Delete file
src/lib/files/delete-file.ts - Access activity
src/app/activity/page.tsx - Activity views
src/components/activity/activity-view.tsx - Owner settings
src/app/settings/page.tsx - Settings views
src/components/settings/settings-view.tsx
Controlled sharing
- Share management
src/app/shares/page.tsx - Share links view
src/components/shares/shares-view.tsx - Public share route
src/app/s/[token]/page.tsx - Recipient experience
src/components/public-share/public-share-view.tsx
Supabase services
- Browser client
src/lib/supabase/client.ts - Server client
src/lib/supabase/server.ts - Supabase Auth
- Supabase Storage
- PostgreSQL RLS
Other components
- File owner
- Link recipient
Connections 32
- File owner → Sign in: signs in
- File owner → Register: registers
- Sign in → Browser client: creates client
- Register → Browser client: creates client
- Browser client → Supabase Auth: authenticates
- Supabase Auth → Auth callback: redirects
- Auth callback → Server client: creates client
- Auth callback → Supabase Auth: exchanges code
- Session routing → Session refresh: refreshes session
- Session refresh → Supabase Auth: validates session
- File owner → Dashboard: opens workspace
- Dashboard → Dashboard views: renders
- File owner → File workspace: manages files
- File workspace → File management: renders
- File management → List files: loads files
- File management → Delete file: deletes file
- File management → Upload file: uploads file
- List files → Server client: queries as user
- Delete file → Server client: deletes as user
- Upload file → Server client: stores as user
- Server client → PostgreSQL RLS: reads and writes
- Server client → Supabase Storage: transfers files
- File owner → Share management: manages links
- Share management → Share links view: renders
- File owner → Access activity: reviews access
- Access activity → Activity views: renders
- File owner → Owner settings: updates preferences
- Owner settings → Settings views: renders
- Link recipient → Public share route: opens link
- Public share route → Recipient experience: renders
- Public share route → Server client: loads share
- Server client → PostgreSQL RLS: enforces RLS