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

41 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Code Review v3 — Go Terraform Registry (финальный)
## Контекст
Реестр на проде: `https://tf-registry.containerk8s.services.ngcloud.ru`
После ревью v2: структура переписана, HTML в embed, proxyHandler фикс, таймауты, валидация key.
## Файлы
```
server/
├── main.go # vars, main()
├── handlers.go # типы, root, discovery, healthz, readyz, debug
├── proxy.go # proxyHandler
├── router_versions.go # router, listVersions, downloadVersion
├── gpg_key.go # GPG-ключи
├── docs.go # docs-хендлер
├── embed.go # embed templates/index.html
├── logo.svg
└── templates/index.html
Dockerfile
```
## Вопросы
1. **Структура пакета** — всё в `package main`, разнесено по файлам. Ок для команды или стоит выносить в `internal/`?
2. **embed подход**`embed.go` с `//go:embed templates/index.html`, `rootHandler` читает через `templateFS.ReadFile`, заменяет `{{.Version}}`. Ок или лучше `html/template`?
3. **proxyHandler**`io.Copy(w, obj)` с MinIO Object, таймаут 60s, валидация key по s3Prefix. Всё ок?
4. **listVersions**`context.Background()` без таймаута для `ListObjects`. Стоит добавить?
5. **downloadVersion**`defer` внутри `if err == nil` (defer shasumsObj.Close). Перепроверь — это ок?
6. **/debug** — показывает ENV (включая секреты S3_ACCESS_KEY/S3_SECRET_KEY). Оставить или убрать?
7. **Dockerfile** — ENV с дефолтами, секреты в jsonEnv. Нормальный паттерн?
8. **Общее** — перед тем как объявить готовым к проду, что ещё?