Skip to content

[Feature Request] Web extension support for vscode.dev / github.dev / Codespaces browser editor #1940

Description

@chirag127

Description

packages/databricks-vscode/package.json declares only a main entry (out/extension.js) and no browser entry, so the extension is a Node.js-only extension and cannot be loaded in the web extension host used by:

Today, opening a Databricks bundle project in vscode.dev results in the extension being installed but never activating, with no obvious hint that only the desktop client is supported.

Rationale

Databricks users increasingly work in browser-based editors (especially GitHub Codespaces web fallback and quick-view via github.dev on a mobile/loaner machine). The subset of extension functionality that's viable in a web extension host is meaningful even without local CLI:

  • Read-only Bundle Resources Explorer (calls Databricks REST API, no CLI needed)
  • YAML schema hints for databricks.yml
  • Workspace file browser via WSFS (already REST-backed)
  • "Open in Databricks" URL routing (no local CLI)
  • Auth via OAuth U2M using the browser's redirect flow

Features that legitimately need the desktop host (Databricks Connect debug, local databricks bundle deploy via the bundled CLI binary, local sync) can be gated with when: !isWeb on their commands/views, matching how e.g. the Python extension and GitHub Pull Requests extension partition their surface.

Suggested approach

  1. Add a browser entry to package.json pointing at a web-specific bundle (e.g. out/extension.web.js).
  2. Split platform-dependent code (child_process, fs, native CLI invocation) behind an interface that has a node and a web implementation; the web implementation stubs out CLI-only paths.
  3. Configure the bundler (esbuild/webpack) to emit both a Node bundle and a browser bundle, matching the pattern in the VS Code sample: https://github.com/microsoft/vscode-extension-samples/tree/main/web-extension-sample
  4. Gate CLI-dependent commands and views with "when": "!isWeb" in contributes.

This is a substantial change; filing so the ask is tracked, not to imply it's trivial.

Verification

Checked packages/databricks-vscode/package.json on main (commit 133c453, 2026-06-26) via the GitHub Contents API — no browser key. main: out/extension.js only. Searched existing issues for "web extension", "vscode.dev", "browser" — no prior filing.

Filed via automated audit.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions