Skip to content

fix(health): shallow unauthenticated /health liveness probe#13

Merged
asachs01 merged 2 commits into
mainfrom
fix/health-probe-gateway-mode
May 18, 2026
Merged

fix(health): shallow unauthenticated /health liveness probe#13
asachs01 merged 2 commits into
mainfrom
fix/health-probe-gateway-mode

Conversation

@asachs01
Copy link
Copy Markdown
Member

Problem

gwp-proofpoint ACA revision was crash-looping. The container boots fine, then logs [WARN] Missing credentials every ~15-30s followed by [INFO] Shutting down....

Root cause: GET /health ran getCredentials() and returned 503 when no process-wide credentials were set. In gateway mode (AUTH_MODE=gateway) credentials only arrive per-request via headers, so /health always 503'd. The Azure liveness probe (GET /health, every 30s) failed and Azure SIGTERM-killed the container in a loop.

This is the identical bug already fixed in mimecast-mcp, ironscales-mcp, spamtitan-mcp and threatlocker-mcp.

Fix

  • /health (and new /healthz alias) is now a shallow, unauthenticated handler returning 200 {"status":"ok"} — no getCredentials(), no upstream calls.
  • Bumped version to 1.0.1, added CHANGELOG Fixed entry.

Verification

  • amd64 image built and smoke-tested: curl /health -> 200, curl /healthz -> 200 with AUTH_MODE=gateway.
  • Pushed ghcr.io/wyre-technology/proofpoint-mcp:1.0.1 + :latest.
  • Redeployed gwp-proofpoint in mcp-gateway-prod; new revision gwp-proofpoint--0000001 is Healthy / RunningAtMaxScale.

asachs01 and others added 2 commits May 18, 2026 11:02
/health called getCredentials() and returned 503 when no process-wide
credentials were set. In gateway mode (AUTH_MODE=gateway) credentials
only arrive per-request via headers, so /health always 503'd, failing
the Azure liveness probe and crash-looping the container.

Make /health (and new /healthz alias) return 200 {"status":"ok"}
with no credential check. Same fix already applied to mimecast-mcp,
ironscales-mcp, spamtitan-mcp and threatlocker-mcp.

Bumps version to 1.0.1.
The CI Test job runs 'npm run lint' (eslint src --ext .ts) but the repo
never had an ESLint config file, so lint exited with code 2 and failed
all three Node matrix jobs.

Add the canonical fleet .eslintrc.json (matching autotask-mcp et al.).
The @typescript-eslint parser/plugin were already in devDependencies.
Lint now passes clean with no warnings.
@asachs01 asachs01 merged commit 72397ef into main May 18, 2026
8 checks passed
@asachs01 asachs01 deleted the fix/health-probe-gateway-mode branch May 18, 2026 22:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant