mirror of
https://github.com/omnivore-app/omnivore.git
synced 2026-03-11 08:54:26 +00:00
## Major Accomplishments ### ✅ Authentication System (ARC-003) - COMPLETED - **Full NestJS Auth Module**: Complete authentication system with JWT, OAuth, and RBAC - **Type-Safe API Responses**: Comprehensive DTO system with Swagger documentation - **Web Integration**: Successfully integrated web frontend with NestJS API endpoints - **Security Hardening**: Fixed authentication vulnerabilities and implemented proper patterns ### ✅ Database Integration (ARC-003B) - COMPLETED - **Entity Mapping**: Complete TypeORM entities for User, Profile, Personalization, Roles - **Migration System**: Hybrid approach using existing Postgrator system - **Schema Compatibility**: Both Express and NestJS APIs access same database ### ✅ Development Environment Optimization - **Performance Boost**: 25-50x faster cold starts (30-60s → 1.2s) - **Turbopack Integration**: Next.js 13.5+ experimental bundler enabled - **Sentry Disabled**: Clean development logs and faster builds - **Docker Optimization**: Streamlined development workflow ## Technical Details ### Authentication Features Implemented - JWT token generation and validation - Email/password login and registration - OAuth structure (Google, Apple) - ready for testing - Role-based access control (RBAC) - Comprehensive error handling with typed responses - CORS configuration for web frontend ### Web Frontend Integration - Updated API endpoints to /api/v2 prefix - Fixed authentication flow with proper JSON responses - Eliminated backend redirects (anti-pattern) - Client-side navigation based on API responses - CORS and CSP optimizations ### Performance Improvements - Turbopack bundler: 20-40x faster cold starts - SWC minification: Rust-based compilation - Filesystem caching: Persistent across restarts - Smart code splitting: Vendor, Radix UI, Phosphor icons - Import optimization: Tree-shaking for icon libraries ## Testing Status - ✅ Email/password login: Working - ✅ User registration: Working - ⏳ Google OAuth: Ready for testing - ⏳ Apple OAuth: Ready for testing - ⏳ Email verification: Pending email service integration ## Next Phase Recommendations 1. **Vite Migration**: Consider migrating from Next.js to Vite for 50-100x performance gains 2. **GraphQL Setup**: Begin ARC-004 for GraphQL module implementation 3. **OAuth Testing**: Complete Google/Apple authentication testing 4. **Email Service**: Integrate email verification system ## Files Changed - Complete NestJS authentication system (100+ files) - Web frontend integration and optimization - Docker development environment - Performance optimizations and Sentry configuration - Comprehensive documentation and migration tracking This commit represents a major milestone in the Express-to-NestJS migration, establishing a solid foundation for continued development.
64 lines
1.8 KiB
Text
64 lines
1.8 KiB
Text
# Omnivore NestJS API - Environment Variables Template
|
|
# Copy this file to .env and update the values for your environment
|
|
|
|
# ================================
|
|
# APPLICATION CONFIGURATION
|
|
# ================================
|
|
|
|
# Environment (development, production, test)
|
|
NODE_ENV=development
|
|
|
|
# NestJS API port
|
|
NEST_PORT=4001
|
|
|
|
# ================================
|
|
# JWT CONFIGURATION (REQUIRED)
|
|
# ================================
|
|
|
|
# JWT secret key - MUST be at least 32 characters!
|
|
JWT_SECRET=your-super-secret-jwt-key-change-in-production-min-32-chars
|
|
|
|
# JWT token expiration (1h, 30m, 7d, etc.)
|
|
JWT_EXPIRES_IN=1h
|
|
|
|
# ================================
|
|
# FRONTEND CONFIGURATION
|
|
# ================================
|
|
|
|
# Frontend application URL for CORS
|
|
FRONTEND_URL=http://localhost:3000
|
|
|
|
# ================================
|
|
# DATABASE CONFIGURATION (REQUIRED)
|
|
# ================================
|
|
|
|
# PostgreSQL connection details
|
|
DATABASE_HOST=localhost
|
|
DATABASE_PORT=5432
|
|
DATABASE_USER=app_user
|
|
DATABASE_PASSWORD=your-database-password-change-in-production
|
|
DATABASE_NAME=omnivore
|
|
|
|
# Alternative: Full connection string (overrides individual settings above)
|
|
# DATABASE_URL=postgresql://app_user:password@localhost:5432/omnivore
|
|
|
|
# Optional CA certificate for TLS connections
|
|
# DATABASE_CA_FILE=/path/to/ca.pem
|
|
|
|
# ================================
|
|
# REDIS CONFIGURATION (REQUIRED FOR EMAIL VERIFICATION)
|
|
# ================================
|
|
|
|
REDIS_URL=redis://localhost:6379
|
|
# Optional TLS certificate contents (PEM encoded)
|
|
# REDIS_TLS_CERT="-----BEGIN CERTIFICATE-----..."
|
|
|
|
# ================================
|
|
# AUTHENTICATION WORKFLOW
|
|
# ================================
|
|
|
|
# Toggle whether newly registered users require email confirmation before login
|
|
AUTH_REQUIRE_EMAIL_CONFIRMATION=false
|
|
|
|
# Verification token TTL in seconds (default 15 minutes)
|
|
AUTH_EMAIL_TOKEN_TTL=900
|