Validation: Generic api_get tool (#23)

validation-23-2026-03-31 Doc

validation pass

Verdict: PASS

What Was Validated

westside-ai-assistant PR #24 — replace 7 read tools with generic api_get tool (issue #23)

Deployment

  • Image built manually: harbor.tail5b443a.ts.net/westside-ai-assistant/api:5211f23
  • Pushed to Harbor, pod restarted via kubectl rollout restart
  • CI pipeline (Woodpecker) broken — manual deploy required (tracked: pal-e-platform #259)

Checks

Check Result
Pod healthy PASS — clean startup, 1/1 ready
api_get tool deployed PASS — Claude correctly chose api_get("/admin/dashboard")
Keycloak token acquisition PASS — 200 OK, 300s TTL (after env var fix)
basketball-api data returned PASS — 200 OK, returned 57 registered / 49 active / 7 teams
GroupMe response posted PASS — 202 Accepted
Write tools unchanged PASS — QA confirmed all 7 write tools + confirmation flow untouched

Issues Discovered During Validation

  • Keycloak issuer mismatch (#26) — FIXED. Nemo's KEYCLOAK_REALM_URL pointed to internal URL, producing tokens basketball-api rejected. Changed to external URL. Closed.
  • Woodpecker CI broken (pal-e-platform #259) — systemic, not PR-specific. Backlogged.
  • SSRF defensive check (#25) — QA nit, backlogged.

Note

The env var fix (KEYCLOAK_REALM_URL) was applied directly to the deployment via kubectl. This needs to be persisted in the kustomize overlay or ArgoCD will revert it on next sync.