Files
maternal-app/docs
Andrei f83d79a5a7
Some checks failed
CI/CD Pipeline / Lint and Test (push) Has been cancelled
CI/CD Pipeline / E2E Tests (push) Has been cancelled
CI/CD Pipeline / Build Application (push) Has been cancelled
docs: Create comprehensive API Gateway architecture and security plan
Create detailed implementation plan for securing backend API while supporting
web, mobile apps, WebSockets, and GraphQL.

## Current State Analysis
- Backend API fully exposed to internet (security risk)
- Direct API calls from browser
- No infrastructure-level rate limiting
- Future mobile apps need direct access
- WebSocket + GraphQL endpoints require special handling

## Proposed Solutions

### Phase 1: MVP - Next.js BFF Pattern (1-2 weeks)
- Next.js API routes as proxy for web app
- Direct backend access for mobile (with API keys)
- Internal API key authentication
- WebSocket remains direct (Next.js limitation)

### Phase 2: Production - Kong Gateway (4-6 weeks post-MVP)
- Centralized API gateway for all clients
- Backend becomes fully internal
- Advanced features: caching, monitoring, GraphQL federation

## Implementation Details

**Files to Create**:
- app/api/proxy/[...path]/route.ts - Generic REST proxy
- app/api/graphql/route.ts - GraphQL proxy
- src/common/guards/internal-api-key.guard.ts - Backend auth

**Security Features**:
- Internal API key for BFF → Backend communication
- Mobile API key for mobile → Backend
- Rate limiting: 100 req/min (web), 60 req/min (mobile)
- Strict CORS configuration
- Nginx reverse proxy with SSL termination

**Architecture Diagrams**:
- BFF pattern with Next.js (recommended for MVP)
- Kong Gateway pattern (production-ready)
- Mobile app integration strategy

**Includes**:
- Step-by-step implementation plan
- Code samples for all components
- Nginx configuration
- Environment variable setup
- Security enhancements
- Performance considerations (+20-40ms latency)
- Monitoring and logging
- Troubleshooting guide
- Deployment timeline

Addresses security concerns while maintaining support for:
 Web app (through BFF)
 Mobile apps (direct with API key)
 Real-time WebSocket
 GraphQL queries and subscriptions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-03 22:49:23 +00:00
..