doc: запрос на третье код-ревью Соннета
This commit is contained in:
@@ -0,0 +1,40 @@
|
|||||||
|
# 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. **Общее** — перед тем как объявить готовым к проду, что ещё?
|
||||||
Reference in New Issue
Block a user