Контекст: Карта технического долга и архитектурных решений проекта PhotoPlaces для оценки жизнеспособности и планирования рефакторинга.
Проект — fullstack приложение (Next.js + Go) для карты мест фотосъёмок, аренды студий и найма фотографов. Использует PostgreSQL + PostGIS, Redis, MinIO. Развертывание через Docker Compose.
docker-compose.yml (postgres, redis, minio, backend, frontend)deploy/docker-compose.prod.yml + deploy/deploy.sh| Проблема | Файл | Описание |
|---|---|---|
| Refresh tokens не хранятся в БД | auth.go |
Refresh токены валидируются только по подписи, нет отзыва, нет ротации, утечка = полный доступ 30 дней |
| Rate limiter in-memory | ratelimit.go, main.go |
Не работает в кластере, сбрасывается при рестарте |
| Нет валидации входных данных | handlers | Ручная проверка if req.Title == "", нет схем валидации |
| Hardcoded secrets в dev | .env.example, docker-compose.yml |
dev-secret, photoplaces_dev — опасно если попадут в прод |
| Нет тестов | Везде | 0% покрытие — нельзя рефакторить безопасно |
#architecture #backend #frontend #security #technical-debt #moc