microsoft / microsoft/vscode-documentdb

Unable to use SOCKS proxy with Entra ID / OIDC authentication: missing 'socks' dependency for MongoDB connection

Open Beginner friendly
#535 1 comment 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

user feedback
Dominant language
TypeScript
Stars
31
Forks
22
Avg merge
2d 20h
Merged PRs (30d)
21

Description

Bug Description

The extension cannot connect to MongoDB databases over a SOCKS proxy because the required socks package is not included in the extension bundle. This breaks support for the proxyHost connection option, which is documented as supported in the upstream MongoDB Node.js driver (mongodb@~7.0.0).

Steps to Reproduce

  1. Attempt to connect to a MongoDB/CosmosDB database using Entra ID authentication (with authMechanism=MONGODB-OIDC) and supplying a proxyHost=... and proxyPort=... option in the connection string (for example, behind a SOCKS5 jumpbox/proxy server).
  2. The connection attempt times out after ~30 seconds and fails internally with kModuleError from getSocks()
  3. No user-facing error indicates that the socks package is missing

Expected Behavior

  • Extension should include the socks package in its dependencies and bundle it correctly
  • When proxyHost/proxyPort are specified, the extension should route the connection through a SOCKS5 proxy as supported by the upstream driver

Actual Behavior

  • The extension fails to establish a connection over a SOCKS proxy
  • Ultimately leads to timeout and internal error, sometimes with an unhelpful error message
  • Debug logs reveal kModuleError when trying to require socks

Environment

  • Extension version: 0.7.2
  • Node.js MongoDB driver bundled: ~7.0.0
  • Host OS: [Please fill in]

Additional Context

Request:

  • Please add socks as a dependency and bundle it to restore support for connecting via a SOCKS proxy with Entra ID (OIDC) authentication.

Thank you!

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Inspect the extension's package.json and bundle, then compare the upstream driver's src/cmap/connect.ts around the getSocks() path. Done means the socks dependency is declared and included in the shipped extension, and connections using proxyHost/proxyPort no longer fail with kModuleError.

Written by the indexing model from the issue text.

Assessment

Tech stack
mongodb, node.js, typescript
Domain
authentication, database, networking
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.