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

2.0 KiB

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 в Dockerfiletf-registry.containerk8s.services.ngcloud.ru зашит в Dockerfile ENV. Это конфиг или хардкод?

  6. downloadVersiondefer внутри if err == nil (с прошлого ревью сказали что ок). Перепроверь — defer внутри if-блока точно не проблема?

  7. Dockerfile — есть go.mod/go.sum, билд воспроизводимый. Всё ок?

  8. Общее — перед деплоем в прод, что ещё проверить?