# Code Review Request v2 — Go Terraform Registry ## Контекст После первого ревью исправлено: SSRF в proxyHandler, go.sum, readyz, сортировка версий, graceful shutdown, gofmt. Добавлен /debug и дизайн Nubes. Продакшен: `https://tf-registry.containerk8s.services.ngcloud.ru` S3: Ceph `s3.msk-1.ngcloud.ru`, бакет `nubes-terraform-registry` ## Файлы для ревью - `server/main.go` — всё в одном файле (~430 строк) - `server/gpg_key.go` — GPG-ключи - `server/docs.go` — статика - `Dockerfile` — сборка ## Вопросы 1. **proxyHandler** — новый стриминг с ручным `Read/Write/Flush` циклом и 64KB буфером. Нормально ли это? Не упущены ли edge-cases (обрыв соединения, таймаут)? 2. **/debug endpoint** — показывает ENV, DNS, TCP, S3 статус. Безопасно ли это на проде? DNS-резолв и TCP-dial из пода могут быть использованы для SSRF? 3. **Один файл** — main.go разросся до ~430 строк (роуты + S3 + debug + HTML-шаблон). Стоит ли дробить или пока ок? 4. **embed для logo.svg** — нормальный подход? Не раздует ли бинарник? 5. **S3_PREFIX hardcode в Dockerfile** — `tf-registry.containerk8s.services.ngcloud.ru` зашит в Dockerfile ENV. Это конфиг или хардкод? 6. **downloadVersion** — `defer` внутри `if err == nil` (с прошлого ревью сказали что ок). Перепроверь — defer внутри if-блока точно не проблема? 7. **Dockerfile** — есть `go.mod`/`go.sum`, билд воспроизводимый. Всё ок? 8. **Общее** — перед деплоем в прод, что ещё проверить?