DocumentDB for VS Code Extension v0.7
We are excited to announce the release of DocumentDB for VS Code Extension v0.7. This is a major update for our DocumentDB and MongoDB GUI, delivering long-awaited features that improve data management workflows.
It includes Lightweight Data Migration for collection copying, adds Folder Management for Connections to organize your workspace, and delivers Accessibility Improvements that make the extension more inclusive.
What’s New in v0.7
1️⃣ Lightweight Data Migration
We’re introducing Lightweight Data Migration (also known as “Collection Copy-and-Paste”). This feature enables you to copy collections and paste them into new or existing collections, across different databases or even different servers - all directly within VS Code.

Designed for smaller-to-medium datasets that can be streamed through your local machine, this feature simplifies moving data between environments. It’s useful for:
- Creating test or development copies of production collections
- Moving data between different database systems
- Merging data from multiple sources
- Backing up specific collections
Conflict Resolution
When pasting into an existing collection, the migration wizard offers four conflict resolution strategies:
- Abort on Conflict - Stop immediately if a duplicate
_idis detected - Skip Conflicting Documents - Keep existing documents unchanged, only insert new ones
- Overwrite Existing Documents - Replace existing documents with source data
- Generate New IDs for All Documents - Create unique copies while preserving original IDs in
_original_id
Lightweight Data Migration streams data through your local machine, reading from the source and writing to the target in efficient batches. For production-scale migrations with terabytes of data, we recommend using dedicated migration services. However, for development workflows and smaller datasets, this feature provides a convenient option.
📖 For complete details on using this feature, including all conflict resolution strategies and best practices, see our comprehensive documentation: ➡️ Collection Copy-and-Paste User Guide
2️⃣ Folder Management for Connections
Managing multiple database connections is now easier with hierarchical folder organization. We’ve redesigned the Connections View to support hierarchical folder organization, converting what was previously a flat list into an organized system.

Key Capabilities
- Create Folders and Subfolders: Organize connections by environment (dev/staging/prod), project, team, or any structure that makes sense for your workflow
- Move Items Wizard: Use the “Move Items” wizard to relocate connections and folders with validation and conflict detection
- Rename and Delete: Full management capabilities for both connections and folders
- Visual Hierarchy: Folders display with expandable/collapsible state and clear visual indicators
Additional Features
- Automatic Sorting: Folders and connections are alphabetically sorted for easy navigation
- Empty Folder Indicators: Visual feedback when folders contain no items
- Multi-Item Moving: Select and move multiple connections or folders simultaneously
- Boundary Protection: Enforced separation between emulator and non-emulator connections to prevent configuration issues
This feature is particularly valuable for developers managing:
- Multiple client environments
- Various project databases
- Team-shared connection configurations
- Complex enterprise database topologies
3️⃣ Accessibility Improvements
Accessibility is a core value for us, and this release includes improvements to ensure the extension is usable by everyone, regardless of ability. We’ve addressed nine accessibility issues reported by the Microsoft Accessibility Testing team, focusing on screen reader support, keyboard navigation, and ARIA labeling.
Screen Reader Enhancements
- AI Analysis Status (#380): Screen readers now announce the “AI is analyzing…” status message instead of generic “Document” text in Query Insights
- Rating Button Context (#381): Added proper grouping labels so screen readers announce “How would you rate AI insights?” when focusing on like/dislike buttons
- Search Results Announcements (#384): Screen readers now properly announce search result counts and “No Results Found” messages in the Collection View
Keyboard Navigation Improvements
- Focus Visibility (#385): Keyboard focus is now immediately visible when opening the “Edit Selected Document” dialog, eliminating the need to press Tab multiple times
- Tooltip Accessibility (#375): All tooltips in the Query Insights tab are now accessible via keyboard navigation
ARIA Labeling Fixes
- Button Naming (#378): Next, Previous, and Close buttons in the Tips section now have proper accessible names
- Label-in-Name Compliance (#374): Refresh and Validate buttons now have accessible names that include their visual labels, ensuring compatibility with voice control
- Query Field Labels (#379): Added proper visual labels for query fields with programmatic names that correctly reflect field purpose
- Spin Button Labels (#377): Skip and Limit spin buttons now have appropriate accessible names for assistive technologies
User Impact
These improvements help developers using screen readers (NVDA, JAWS, Narrator, VoiceOver), keyboard-only navigation, or voice control software interact with extension features. This work aligns with WCAG 2.1 AA standards and reflects our ongoing commitment to inclusive design.
🤲 Community Contributions
We’re grateful for the contributions from our open-source community! This release includes both code contributions and valuable bug reports that helped improve the extension:
1️⃣ Alphabetical Collection Sorting (#465)
Collections within DocumentDB databases are now displayed in alphabetical order, making it much easier to find the collection you’re looking for. This improvement enhances usability when working with databases that contain many collections.
Contributed by @VanitasBlade, fixing issue #456 originally reported by @majelbstoat and @MattParkerDev.
2️⃣ Bug Reports from the Community
- Collection paste validation & input trimming consistency: Reported by @DhruvC-Affine; fixed in #493. The user spotted that pasting a collection didn’t validate the input correctly, but this uncovered a wider issue with lack of consistency when user input was trimmed. This report helped to improve the quality overall.
- Dark theme visibility: Reported by @majelbstoat (#457); fixed in Dark Theme Support.
- Invalid query JSON handling: Reported by @majelbstoat (#458); fixed in Query Parsing Error Handling.
- Improved Import/Export Feedback: Reported by @MattParkerDev; fixed in #495. The user reported that no output was displayed for import success or failure. This has been fixed to provide clear feedback.
- Keyboard paste shortcuts: Reported by @cveld and @markjbrown (#435); fixed in Monaco Editor Keyboard Paste.
Additional Improvements
Cancellable Import Operations
Long-running import operations can now be cancelled. A cancel button is available in the progress notification, allowing you to stop the import process if needed. #496
Connection String Handling (#467)
Connection string inputs are now automatically trimmed and validated. This prevents issues when pasting connection strings that may contain leading or trailing whitespace, ensuring successful connections every time.
Copy Connection String with Password (#436)
When copying connection details to the clipboard, you can now choose whether to include the password. Previously, it wasn’t possible to copy connection strings with passwords included—this option provides the flexibility needed for different security contexts.
Estimated Document Count Display
Collections in the tree view now display an estimated document count, helping you assess collection sizes without running explicit count queries. This makes it easier to understand your data at a glance.
Improved AI Response Formatting (#428)
Fixed markdown formatting issues in AI-generated responses from the Query Insights feature. The extension now restricts formatting options to prevent malformed output, ensuring recommendations are always readable and properly rendered.
Improved Data Migration Feedback
Two enhancements improve the collection paste experience:
- Accurate Count Updates (#482): Document count estimates now refresh correctly after paste operations, even when some documents fail to insert
- Complete Error Logging (#484): All write errors, including unique index violations, are now properly logged. A “Show Output” button is included in error notifications, allowing you to quickly access detailed logs when an operation fails.
Query Insights Performance Enhancement (#468)
The Query Insights feature has been improved with an updated AI model (GPT-4o) and refined prompt architecture. Key improvements include:
- Faster Response Times: The GPT-4o model delivers query analysis results more quickly than previous models
- Enhanced Security: Restructured prompt components with explicit delimiters and security instructions to protect against prompt injection attacks
- Better Reliability: Improved prompt structure ensures more consistent and accurate recommendations
These changes make the Query Insights feature faster and more reliable for analyzing query performance.
Release Notes Notification on Upgrade (#487)
When you upgrade the extension to a new major or minor version, DocumentDB for VS Code can now prompt you to view the latest release notes so you do not miss new features and important changes.
The notification appears when the Connections View becomes visible, and lets you:
- Open Release Notes right away
- Choose Remind Me Later to see it again next session
- Ignore the notification for that version
Key Fixes
Azure Resources View Connectivity (#480)
Resolved connection failures when expanding Azure DocumentDB clusters in the Azure Resources view. Previously, undefined resource group metadata caused cryptic API errors. The extension now correctly extracts resource group information from resource IDs, ensuring reliable connectivity to vCore and Azure Cosmos DB for MongoDB (RU) clusters.
Connection String Deduplication (#478)
Fixed an issue where connection string parameters could be duplicated (e.g., ssl=true&ssl=true), causing connection failures or unexpected behavior. The extension now automatically deduplicates parameters while respecting specifications (e.g., preserving multiple readPreferenceTags), ensuring reliable connections and compliance with standard drivers.
Dark Theme Support (#457)
Resolved UI rendering issues that affected users of dark themes like Nord. Text in certain controls was dark-on-dark and invisible, making parts of the interface unusable. All UI elements now properly respect theme colors for better visibility in both light and dark modes. Reported by @majelbstoat in #457.
Document Import from Discovery View (#479)
Fixed document import failures when using the Azure Service Discovery View with Azure Cosmos DB for MongoDB (RU) resources. The extension now properly retrieves connection strings even when metadata cache hasn’t fully populated, ensuring reliable imports from discovered resources. Resolves #368.
Monaco Editor Keyboard Paste (#470)
Restored keyboard paste functionality (Ctrl+V / Cmd+V) in the Query Editor and Document View. A regression in Monaco Editor 0.53.x/0.54.x broke keyboard shortcuts for paste operations. Downgrading to Monaco 0.52.2 resolves this issue. Context menu paste always worked, but keyboard shortcuts are now functional again. Reported by @cveld in #435.
Query Parsing Error Handling (#471)
Fixed an issue where invalid JSON in query fields (filter, projection, sort) was silently replaced with empty objects, making it difficult to understand why queries weren’t working as expected. Parse failures now display clear error dialogs with helpful JSON syntax examples. Reported by @majelbstoat in #458.
Security Dependency Updates (#434, #494)
Updated qs, express and webpack dependencies to address security vulnerabilities, ensuring the extension maintains high security standards.
Changelog
See the full changelog entry for this release: ➡️ CHANGELOG.md#070
Patch Release v0.7.2
This patch release improves data migration discoverability, adds reconnect prompts for error recovery, introduces an experimental AI query generation setting, and includes security dependency updates.
Note: Version 0.7.1 was reserved for internal validation and was not published as a public release.
What’s Changed in v0.7.2
💠 Data Migration Discoverability (#515)
The “Data Migration…” context menu item is now always visible on cluster nodes, removing the previous requirement that a migration provider extension had to be installed first. This solves a discoverability problem where users had no in-product signal that migration tooling existed.
A new announced providers infrastructure lets the extension advertise known migration extensions (declared in package.json) that users can discover and install directly from the VS Code Marketplace. When a provider is already installed, it appears in the “Installed Providers” group; uninstalled announced providers appear under “Visit Marketplace” for one-click installation.
💠 Reconnect Prompt After Credential Update (#504)
When updating credentials from an error recovery node (after a connection failure), the extension now offers a reconnect prompt. Previously, credentials were saved but the user had to manually retry the connection. Selecting “Yes” clears the error state and triggers a fresh connection attempt automatically.
💠 Experimental AI Query Generation Setting (#503)
Introduces a new experimental setting documentDB.experimental.enableAIQueryGeneration that controls the AI-powered query generation feature in the Collection View. The setting is disabled by default and can be enabled by users who want to try AI-assisted query authoring. Activation telemetry now also reports which experimental features are enabled.
💠 tRPC Upgrade and Abort Signal Support (#502, #320)
Upgraded tRPC dependencies (@trpc/client and @trpc/server) from v11.8.0 to v11.10.0 and added AbortSignal-based cancellation support for webview operations. This enables long-running tRPC procedures to be properly cancelled when the user navigates away or closes a webview, improving resource management and responsiveness.
💠 Connection String Validation Improvements (#511)
Strengthened connection string handling with defensive trimming and validation simplification. User input is now trimmed at every entry point (including BOM, NBSP, and other invisible whitespace characters), and credential validation has been simplified to avoid unnecessary parse/serialize round-trips. The update connection string flow now uses the same validation logic as the new connection flow.
💠 Feedback Collection Documentation (#509)
Added a new section to the README documenting how DocumentDB for VS Code collects user feedback through the UI, and clarifying that this behavior is governed by VS Code’s global telemetry setting.
💠 Security Dependency Updates (#514, #505)
Updated minimatch (3.1.2 → 3.1.4), qs and body-parser to address security vulnerabilities, ensuring the extension maintains high security standards.
Changelog
See the full changelog entry for this release: ➡️ CHANGELOG.md#072
Patch Release v0.7.3
This patch introduces connection cancellation, a Node.js 22 upgrade with dependency refreshes, and internal telemetry refinements.
What’s Changed in v0.7.3
💠 Cancel In-Progress Connection (#529)
You can now cancel a connection attempt that is taking too long. When the extension is connecting to a cluster, a Cancel button appears in the progress notification — clicking it aborts the operation gracefully, so you no longer need to wait or restart VS Code.
💠 Dependency Updates & Node.js 22 (#523, #534, #537, #539, #541, #542)
The extension’s runtime has been upgraded from Node.js 20 to Node.js 22. Several packages — undici, handlebars, brace-expansion, picomatch, and flatted — have been bumped to their latest versions, bringing security patches and compatibility improvements.
💠 Telemetry Refinements (#544)
Internal telemetry for connection and discovery actions has been improved to capture more specific, actionable properties — helping the team diagnose issues and improve workflows faster.
Changelog
See the full changelog entry for this release: ➡️ CHANGELOG.md#073
Patch Release v0.7.4
This patch adds URL-encoded password detection, rich markdown tooltips across all tree item levels, a new “Copy Reference” context menu, and several dependency updates.
What’s Changed in v0.7.4
💠 URL-Encoded Password Detection (#444, #594)
Connecting with a URL-encoded password no longer results in a cryptic authentication failure. When a connection attempt fails and the password contains URL-encoded characters (%XX sequences), the extension now offers a “Retry with Decoded Password” option in the error dialog. If the retry succeeds, the decoded password can be saved — no manual editing required.
Thanks to @vaibh123540 for the original contribution in #454!
💠 Rich Markdown Tooltips (#579, #588)
Hovering over tree items in the Connections view now reveals rich markdown tooltips at cluster, database, and collection levels — giving you useful details at a glance without expanding or connecting.
- Cluster tooltips show the display name, hostname, authentication method, and TLS status.
- Database tooltips display the database name and estimated storage size.
- Collection tooltips show estimated document count and storage size.
All data comes from information already fetched during tree expansion, so no extra API calls are needed.
💠 Copy Reference Context Menu (#545, #587)
A new “Copy Reference…” right-click option is available on database, collection, and index nodes. Instead of copying a single fixed format, a QuickPick lets you choose the most useful representation:
- Database: Name, Shell Command (
use dbName), Qualified Name (host/dbName) - Collection: Name, Namespace (
db.coll), Shell Reference (db.coll), Shell Command (db.getCollection("coll")) - Index: Name, Key Definition (
{ field: 1 }), Shell Command (db.coll.getIndexes().find(...))
Names containing special characters (spaces, parentheses, etc.) automatically use the safe db.getCollection("...") form, and dot-notation options are hidden when they would produce broken syntax.
Thanks to @bgaeddert for the original contribution in #545!
💠 Improved CONTRIBUTING.md (#565)
The contributing guide now includes a PR submission checklist (localization, formatting, linting), corrected Node/npm version requirements, and multi-platform setup stubs — making it easier for new contributors to get started.
💠 Dependency Updates (#552, #556, #558, #586)
Updated handlebars (4.7.8 → 4.7.9), lodash (4.17.23 → 4.18.1), lodash and @microsoft/api-extractor in /api, and follow-redirects (1.15.11 → 1.16.0) to their latest versions.
Changelog
See the full changelog entry for this release: ➡️ CHANGELOG.md#074