Files
tf_registry/HISTORY/code-review-request-v2.md

34 lines
2.0 KiB
Markdown

# 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. **Общее** — перед деплоем в прод, что ещё проверить?