Skip to content

fix: let any Manifest dashboard embed the Wingman drawer#1

Merged
brunobuddy merged 1 commit into
mainfrom
fix/embed-from-any-origin
May 12, 2026
Merged

fix: let any Manifest dashboard embed the Wingman drawer#1
brunobuddy merged 1 commit into
mainfrom
fix/embed-from-any-origin

Conversation

@brunobuddy

Copy link
Copy Markdown
Member

💭 Why

The dashboard drawer embeds wingman.manifest.build via iframe. CSP frame-ancestors was scoped to 'self' https://*.manifest.build, so localhost dev dashboards and self-hosted Manifest installs hit a "refused to connect" page when opening the drawer. The only flow that worked was the cloud dashboard at app.manifest.build.

✨ What changed

  • vercel.json: frame-ancestors 'self' https://*.manifest.buildframe-ancestors *.

👤 For users

Drawer now loads from any host. Dev (http://localhost:*) and self-hosted backends (any domain) can embed Wingman without browser-level refusal.

📝 Notes

Wingman is a static SPA with no first-party backend. API keys go directly from the iframe to whatever baseUrl the user configures, and that backend's CORS is the actual gate (https://wingman.manifest.build has to be in the backend's allow-list). A "hostile" embedder can't read inside the iframe (same-origin policy still applies), so opening up frame-ancestors does not add a useful attack surface.

frame-ancestors was 'self' https://*.manifest.build, which only covered
the cloud dashboard at app.manifest.build. Localhost dev dashboards and
any self-hosted Manifest instance got blocked with a "refused to
connect" page when opening the drawer.

The drawer is a public dev tool with no first-party backend. API keys
flow directly from the iframe to whatever baseUrl the user types, and
the backend's CORS is the actual gate. A "hostile" embedder can't read
anything useful from inside, so frame-ancestors * is the right level.
@vercel

vercel Bot commented May 12, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
wingman Ready Ready Preview May 12, 2026 10:56am

Request Review

@brunobuddy brunobuddy merged commit d4e7d74 into main May 12, 2026
2 checks passed
@brunobuddy brunobuddy deleted the fix/embed-from-any-origin branch May 12, 2026 11: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.

1 participant