Problem
The Express backend accepts arbitrary request bodies with no validation and has no rate limiting. This opens injection and abuse vectors.
What needs to be done
- Zod validation on all routes (Zod already used in frontend)
- Rate limiting — `express-rate-limit`: 100 req / 15min per IP
- Helmet.js security headers
- No raw Supabase/service errors leaked to clients
Routes to validate (`backend/src/routes/`)
- Message send / inbox fetch
- Notification endpoints
- Groq AI proxy endpoints
Acceptance criteria
Problem
The Express backend accepts arbitrary request bodies with no validation and has no rate limiting. This opens injection and abuse vectors.
What needs to be done
Routes to validate (`backend/src/routes/`)
Acceptance criteria