chore(infra): frontend healthcheck + service_healthy depends_on + pin rosreestr2coord>=5 #117

Merged
lekss361 merged 1 commit from chore/frontend-healthcheck-rosreestr-pin into main 2026-05-14 19:42:09 +00:00
lekss361 commented 2026-05-14 19:28:34 +00:00 (Migrated from github.com)

Summary

Day-1 quick wins from full project code review (May 14):

  • Frontend healthcheck via wget --spider http://localhost:3000/ (alpine-compatible). Caddy + backend больше не получают трафик до того как Next.js пройдёт health check (start_period: 30s, 5 retries × 5s).
  • Service dependencies tightened: backend.depends_on.redis, worker.depends_on.redis, beat.depends_on.redis — все service_startedservice_healthy. Redis уже имеет redis-cli ping healthcheck.
  • Caddy depends_on теперь требует condition: service_healthy для backend и frontend (был bare list).
  • Pin rosreestr2coord>=5.0.0 (был >=4.0.0). v5 убрала delay параметр — наш код уже адаптирован (rate limit на стороне worker), но uv lock --upgrade мог regressively resolve до v4. uv resolved 5.3.3 (released 2026-02-04).

Why

Per code review audit (May 14):

  • Critical #5: frontend service не имеет healthcheck — Caddy роутил трафик до того как Next.js был готов.
  • Critical #4 (DevOps): rosreestr2coord минимальная версия не соответствовала фактической prod зависимости.

Test plan

  • docker compose -f docker-compose.prod.yml config валиден (YAML parse + reference validation)
  • После deploy в prod — посмотреть docker compose ps что frontend имеет (healthy) status через ~30 сек после старта
  • wget --spider http://localhost:3000/ локально внутри frontend container возвращает exit 0
  • cd backend && uv lock стабильно resolved 5.3.3 (no drift between dev and CI)
  • Часть Day-1 рефакторинга после code-review audit от 2026-05-14
  • Quick win #3 + #4 в финальном отчёте
  • См. vault Audit_FullProject_May14_2026.md (TBD entry — будет создан после Day-1 merges)
## Summary Day-1 quick wins from full project code review (May 14): - **Frontend healthcheck** via `wget --spider http://localhost:3000/` (alpine-compatible). Caddy + backend больше не получают трафик до того как Next.js пройдёт health check (`start_period: 30s`, 5 retries × 5s). - **Service dependencies tightened**: `backend.depends_on.redis`, `worker.depends_on.redis`, `beat.depends_on.redis` — все `service_started` → `service_healthy`. Redis уже имеет `redis-cli ping` healthcheck. - **Caddy depends_on** теперь требует `condition: service_healthy` для backend и frontend (был bare list). - **Pin `rosreestr2coord>=5.0.0`** (был `>=4.0.0`). v5 убрала `delay` параметр — наш код уже адаптирован (rate limit на стороне worker), но `uv lock --upgrade` мог regressively resolve до v4. uv resolved **5.3.3** (released 2026-02-04). ## Why Per code review audit (May 14): - Critical #5: `frontend` service не имеет healthcheck — Caddy роутил трафик до того как Next.js был готов. - Critical #4 (DevOps): `rosreestr2coord` минимальная версия не соответствовала фактической prod зависимости. ## Test plan - [ ] `docker compose -f docker-compose.prod.yml config` валиден (YAML parse + reference validation) - [ ] После deploy в prod — посмотреть `docker compose ps` что frontend имеет `(healthy)` status через ~30 сек после старта - [ ] `wget --spider http://localhost:3000/` локально внутри frontend container возвращает exit 0 - [ ] `cd backend && uv lock` стабильно resolved 5.3.3 (no drift between dev and CI) ## Related - Часть Day-1 рефакторинга после code-review audit от 2026-05-14 - Quick win #3 + #4 в финальном отчёте - См. vault `Audit_FullProject_May14_2026.md` (TBD entry — будет создан после Day-1 merges)
lekss361 commented 2026-05-14 19:41:47 +00:00 (Migrated from github.com)

Bot review (self)

CI зелёный (backend + frontend). Diff небольшой, изменения целевые:

  • Frontend healthcheckwget --quiet --tries=1 --spider корректен для alpine/busybox (node:alpine содержит wget через busybox). start_period: 30s + 5×5s = окно ~55s до первого fail, для Next.js cold start этого хватит.
  • service_healthy для redis в backend/worker/beat — redis уже имеет redis-cli ping healthcheck, upgrade с service_started валиден и убирает race при cold start.
  • caddy depends_on в object-форме с service_healthy для backend + frontend — proxy не примет трафик до готовности upstream.
  • pin rosreestr2coord>=5.0.0 + uv.lock резолвится в 5.3.3 — pin совпадает с фактической prod-зависимостью.

Блокеров нет, TODO/FIXME отсутствуют, чеклист поменян только в декларативных манифестах.

approve merge

## Bot review (self) CI зелёный (backend + frontend). Diff небольшой, изменения целевые: - **Frontend healthcheck** — `wget --quiet --tries=1 --spider` корректен для alpine/busybox (node:alpine содержит wget через busybox). `start_period: 30s` + 5×5s = окно ~55s до первого fail, для Next.js cold start этого хватит. - **`service_healthy` для redis** в backend/worker/beat — redis уже имеет `redis-cli ping` healthcheck, upgrade с `service_started` валиден и убирает race при cold start. - **caddy depends_on в object-форме с `service_healthy`** для backend + frontend — proxy не примет трафик до готовности upstream. - **pin `rosreestr2coord>=5.0.0`** + uv.lock резолвится в 5.3.3 — pin совпадает с фактической prod-зависимостью. Блокеров нет, TODO/FIXME отсутствуют, чеклист поменян только в декларативных манифестах. approve merge
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#117
No description provided.