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— сборка
Вопросы
-
proxyHandler — новый стриминг с ручным
Read/Write/Flushциклом и 64KB буфером. Нормально ли это? Не упущены ли edge-cases (обрыв соединения, таймаут)? -
/debug endpoint — показывает ENV, DNS, TCP, S3 статус. Безопасно ли это на проде? DNS-резолв и TCP-dial из пода могут быть использованы для SSRF?
-
Один файл — main.go разросся до ~430 строк (роуты + S3 + debug + HTML-шаблон). Стоит ли дробить или пока ок?
-
embed для logo.svg — нормальный подход? Не раздует ли бинарник?
-
S3_PREFIX hardcode в Dockerfile —
tf-registry.containerk8s.services.ngcloud.ruзашит в Dockerfile ENV. Это конфиг или хардкод? -
downloadVersion —
deferвнутриif err == nil(с прошлого ревью сказали что ок). Перепроверь — defer внутри if-блока точно не проблема? -
Dockerfile — есть
go.mod/go.sum, билд воспроизводимый. Всё ок? -
Общее — перед деплоем в прод, что ещё проверить?