Skip to content

feat(frontend): calm OAuth Sign-in CTA for login-required servers#630

Open
Dumbris wants to merge 1 commit into
mainfrom
mcp-1821-oauth-signin-cta
Open

feat(frontend): calm OAuth Sign-in CTA for login-required servers#630
Dumbris wants to merge 1 commit into
mainfrom
mcp-1821-oauth-signin-cta

Conversation

@Dumbris

@Dumbris Dumbris commented Jun 9, 2026

Copy link
Copy Markdown
Member

What

Render OAuth login-required upstreams as an actionable amber Sign-in CTA instead of a red "Server Error / file a bug" panel. Keys off the existing health.action==="login" contract and MCPX_OAUTH_* diagnostic codes.

Part of epic MCP-1819 (OAuth login-required = actionable Sign-in state). This is T2 (frontend) — MCP-1821. Backend hardening (T1/MCP-1820) lands the new MCPX_OAUTH_LOGIN_REQUIRED code in parallel; this PR keys off both action==="login" (already shipped) and OAuth codes, so it works before and after T1.

Changes (frontend/src)

  • utils/health.tsoauthSignInState() classifies a server as login (first-time, calm amber) vs reauth (expired/revoked session, error tone) vs null; isOAuthDiagnosticCode() detects MCPX_OAUTH_*.
  • components/diagnostics/SignInPanel.vue (new) — calm amber "🔑 Sign in to {server}" with a primary Log in button (reuses triggerOAuth), a docs link, and a quarantine-coexistence note. Re-auth variant → error tone + Re-login.
  • views/ServerDetail.vueSignInPanel replaces ErrorPanel for sign-in states; header status badge reads amber "Sign-in required".
  • components/ServerCard.vue — matching amber "Sign-in required" status chip on the list.
  • components/diagnostics/ErrorPanel.vue — suppresses the "Report a bug" / issues/new fix step for MCPX_OAUTH_* codes (kept for genuinely unclassified faults).
  • docs/features/oauth-authentication.md — documents the Web UI sign-in behavior (ENG-9).

Verification

  • vitest run138/138 pass (16 new/extended: helper classification, panel tone/label, bug-report suppression, quarantine note).
  • vue-tsc --noEmit clean; make build embeds the bundle.
  • Playwright sweep (route-mocked OAuth states against a live mcpproxy) — 4/4 scenarios pass. Report + screenshots: specs/oauth-signin-cta/verification/report.html.
State Result
First-time login calm amber panel, Log in, no bug-report, amber badge
Expired session error-toned panel, Re-login
Login + quarantined sign-in panel + quarantine note + separate Approve gate
List view amber "Sign-in required" chips

Related #MCP-1819

Render OAuth login-required servers as an actionable amber "Sign-in"
state instead of a red "Server Error / file a bug" panel.

- utils/health.ts: oauthSignInState() + isOAuthDiagnosticCode() helpers
  classify login vs. expired-session (reauth) states.
- SignInPanel.vue: new calm amber panel ("Log in") with a re-auth error
  variant ("Re-login"), a docs link, and a quarantine-coexistence note.
- ServerDetail.vue: SignInPanel replaces ErrorPanel for sign-in states;
  header status badge reads amber "Sign-in required".
- ServerCard.vue: matching amber "Sign-in required" status chip.
- ErrorPanel.vue: suppress the "Report a bug" / issues/new fix step for
  MCPX_OAUTH_* codes (kept for genuinely unclassified faults).
- docs(oauth): document the Web UI sign-in behavior.
- Verification: vitest (16 new/extended) + Playwright sweep + report.

Related epic MCP-1819 (T2 frontend, MCP-1821).
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying mcpproxy-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: 2d8db54
Status: ✅  Deploy successful!
Preview URL: https://d4255242.mcpproxy-docs.pages.dev
Branch Preview URL: https://mcp-1821-oauth-signin-cta.mcpproxy-docs.pages.dev

View logs

@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown

📦 Build Artifacts

Workflow Run: View Run
Branch: mcp-1821-oauth-signin-cta

Available Artifacts

  • archive-darwin-amd64 (28 MB)
  • archive-darwin-arm64 (25 MB)
  • archive-linux-amd64 (16 MB)
  • archive-linux-arm64 (14 MB)
  • archive-windows-amd64 (28 MB)
  • archive-windows-arm64 (24 MB)
  • frontend-dist-pr (0 MB)
  • installer-dmg-darwin-amd64 (21 MB)
  • installer-dmg-darwin-arm64 (19 MB)

How to Download

Option 1: GitHub Web UI (easiest)

  1. Go to the workflow run page linked above
  2. Scroll to the bottom "Artifacts" section
  3. Click on the artifact you want to download

Option 2: GitHub CLI

gh run download 27222084582 --repo smart-mcp-proxy/mcpproxy-go

Note: Artifacts expire in 14 days.

@Dumbris Dumbris enabled auto-merge (squash) June 9, 2026 20:14
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.

2 participants