feat(pitch-deck): passwordless investor auth, audit logs, snapshots & PWA #2
Reference in New Issue
Block a user
Delete Branch "feature/pitch-deck-investor-auth"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
New files (26)
migrations/001_investor_auth.sql— 5 tables (investors, magic_links, audit_logs, snapshots, sessions)middleware.ts— auth enforcement on all routeslib/auth.ts,lib/email.ts,lib/rate-limit.ts— core auth utilitieslib/hooks/useAuth.ts,lib/hooks/useAuditTracker.ts— client hooksapp/api/auth/*— verify, logout, me endpointsapp/api/admin/*— invite, investors, revoke, audit-logs endpointsapp/api/audit/,app/api/snapshots/,app/api/health/— audit, snapshot, health endpointsapp/auth/,app/auth/verify/— login and verification pagescomponents/Watermark.tsx— diagonal email watermarkpublic/manifest.json,public/sw.js,public/icons/— PWA assetsModified files (9)
docker-compose.coolify.yml— add pitch-deck service + update health-aggregatorpackage.json— add jose, nodemailer depsnext.config.js— security headersapp/layout.tsx— PWA meta tags + service worker registrationapp/page.tsx— auth wrapper with useAuth hookcomponents/PitchDeck.tsx— investor prop, audit tracker, watermark, content protectioncomponents/slides/FinancialsSlide.tsx— snapshot status indicator + reset buttonlib/hooks/useFinancialModel.ts— snapshot save/restore logiclib/types.ts— Investor, InvestorSnapshot typesTest plan
curl -X POST /api/admin/invite -H "Authorization: Bearer $PITCH_ADMIN_SECRET"/without cookie — should redirect to/authpitch_audit_logstable for eventscurl -I)/api/admin/invite— confirm 429 after 3rd requestdocker compose -f docker-compose.coolify.yml build pitch-deck— confirm build succeedsGenerated with Claude Code
bd2835dec4tobbe7a74715