revert(api): remove /health/ready — superseded by /api/readyz (GRO-2689) #236

Merged
Flea Flicker merged 1 commits from revert/gro-2689-health-ready into dev 2026-08-09 09:50:43 +00:00
Member

Summary

Reverts the /health/ready endpoint added in PR #233, per CTO architectural ruling on PR #235.

Reason

The CTO blocked PR #235 (uat→main for GRO-2687) because the uat branch
carries both /api/readyz (GRO-2687) and /health/ready (GRO-2689) as a
stowaway. The ruling:

  • K8s readiness/liveness probes must remain DB-less — a transient DB blip (see GRO-2652) must not cycle pods
  • /api/readyz (GRO-2687) is the canonical DB-health monitoring endpoint, satisfying the GRO-2678 detection-gap requirement
  • /health/ready is also likely mis-routed: the Gateway HTTPRoute sends non-/api/* paths to the web pod, making the acceptance criterion unsatisfiable as designed

GRO-2689 is treated as superseded by GRO-2687.

Changes

  • Remove GET /health/ready route from src/index.ts
  • Delete src/__tests__/health-ready.test.ts
  • /api/readyz (GRO-2687) and all other routes are unchanged

Pipeline impact

Once this revert merges to dev and is promoted to uat, PR #235 can be refreshed
to carry only the GRO-2687 /api/readyz changes for CTO review.

Related

cc @cpfarhood

## Summary Reverts the `/health/ready` endpoint added in PR #233, per CTO architectural ruling on PR #235. ### Reason The CTO blocked PR #235 (uat→main for GRO-2687) because the uat branch carries both `/api/readyz` (GRO-2687) and `/health/ready` (GRO-2689) as a stowaway. The ruling: - K8s readiness/liveness probes must remain **DB-less** — a transient DB blip (see GRO-2652) must not cycle pods - `/api/readyz` (GRO-2687) is the **canonical** DB-health monitoring endpoint, satisfying the GRO-2678 detection-gap requirement - `/health/ready` is also likely mis-routed: the Gateway HTTPRoute sends non-`/api/*` paths to the **web** pod, making the acceptance criterion unsatisfiable as designed GRO-2689 is treated as **superseded by GRO-2687**. ### Changes - Remove `GET /health/ready` route from `src/index.ts` - Delete `src/__tests__/health-ready.test.ts` - `/api/readyz` (GRO-2687) and all other routes are **unchanged** ### Pipeline impact Once this revert merges to `dev` and is promoted to `uat`, PR #235 can be refreshed to carry only the GRO-2687 `/api/readyz` changes for CTO review. ### Related - CTO review blocking PR #235: [groombook/api #235](https://git.farh.net/groombook/api/pulls/235) - [GRO-2689](/GRO/issues/GRO-2689) — feature being superseded - [GRO-2687](/GRO/issues/GRO-2687) — canonical DB-health endpoint - [GRO-2678](/GRO/issues/GRO-2678) — parent incident cc @cpfarhood
Flea Flicker added 1 commit 2026-08-09 09:48:29 +00:00
revert(api): remove /health/ready — superseded by /api/readyz (GRO-2689)
CI / Lint & Typecheck (pull_request) Successful in 18s
CI / Test (pull_request) Successful in 25s
CI / Build & Push Docker Images (pull_request) Successful in 53s
d8f6981be1
CTO architectural ruling (PR #235 review): K8s readiness/liveness probes
must remain DB-less to prevent transient DB blips from cycling pods. The
/api/readyz endpoint (GRO-2687) is the canonical DB-health signal for the
monitoring layer and satisfies the GRO-2678 detection-gap requirement.

Removes:
- GET /health/ready route from src/index.ts
- src/__tests__/health-ready.test.ts

Refs GRO-2689, GRO-2687, GRO-2678
Flea Flicker merged commit 07717afd01 into dev 2026-08-09 09:50:43 +00:00
Sign in to join this conversation.