Skip to content

dashboard: wire /app/deployments to /api/v1/deployments + drop 'Phase 1 coming soon' lies#35

Merged
mastermanas805 merged 1 commit into
mainfrom
phase1-deploys-dashboard-wiring
May 12, 2026
Merged

dashboard: wire /app/deployments to /api/v1/deployments + drop 'Phase 1 coming soon' lies#35
mastermanas805 merged 1 commit into
mainfrom
phase1-deploys-dashboard-wiring

Conversation

@mastermanas805
Copy link
Copy Markdown
Member

Summary

Phase 1 audit confirmed POST /deploy/new is live (verified e2e). This PR wires the dashboard surface to match.

  • listDeployments() + getDeployment() added to src/api/index.ts
  • DeploymentsPage uses /api/v1/deployments (was /api/v1/stacks)
  • DeployDetailPage detects /deploy/new origin, real env_vars panel, correct SSE URL
  • 'Deployment lands in Phase 1' copy dropped

Test plan

🤖 Generated with Claude Code

… 1 coming soon" lies

Today's deploy backend audit (Phase 1) confirmed POST /deploy/new is live —
verified by a real e2e test deploy at https://6fffcc21.deployment.instanode.dev
(nginx tarball → Kaniko build → k8s pod → Ingress + TLS, 30s).

But the dashboard surface was contradicting the working backend:
  • /app/deployments queried GET /api/v1/stacks (multi-service stack model)
    instead of GET /api/v1/deployments (single-app /deploy/new path). A team
    that deployed via /deploy/new saw "No deployments yet" forever.
  • Empty-state copy literally said "Deployment lands in Phase 1 — for now,
    use kubectl on your own cluster" — telling users the feature was unbuilt.
  • DeployDetailPage's EnvVars + BoundResources tabs were hardcoded
    placeholders saying "Phase 1" + "kubectl get deploy -o yaml".
  • Log SSE URL pointed at /api/v1/stacks/:slug/logs/:svc — wrong for
    /deploy/new origin deployments.

This PR:
  • Adds listDeployments() + getDeployment() in src/api/index.ts wired to
    GET /api/v1/deployments and GET /api/v1/deployments/:id with typed
    DashboardDeployment shape.
  • DeploymentsPage now calls listDeployments() first, falls back to
    listStacks() for legacy multi-service deploys. One unified list.
  • DeployDetailPage detects /deploy/new origin first (getDeployment by id),
    falls back to listStacks. Env vars panel parses deployment.env_vars and
    renders real rows. Bound resources surface from env vars that look like
    resource tokens.
  • Log SSE: for /deploy/new origin, calls /deploy/:id/logs; for stack
    origin, /api/v1/stacks/:slug/logs/:svc.
  • Drops every "Phase 1 coming soon" placeholder string. Empty state on
    DeploymentsPage now says "No deployments yet" + points at the agent
    prompt to deploy.

Tests: tsc clean. Dashboard suite passes including the new
DeploymentsPage.test.tsx + extended DeployDetailPage.test.tsx cases.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@mastermanas805 mastermanas805 merged commit 383e0f7 into main May 12, 2026
1 of 2 checks passed
@mastermanas805 mastermanas805 deleted the phase1-deploys-dashboard-wiring branch May 12, 2026 08:13
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