Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
42775b3
chore: version bump to `0.6.2-alpha`
tnaum-ms Nov 21, 2025
67c8cbd
chore: version bump to `0.6.2-alpha` (#396)
tnaum-ms Nov 21, 2025
3defdd1
chore(deps-dev): bump js-yaml from 3.14.1 to 3.14.2
dependabot[bot] Nov 25, 2025
0727865
chore(deps-dev): bump js-yaml from 3.14.1 to 3.14.2 (#395)
tnaum-ms Nov 25, 2025
aebf00b
chore(deps-dev): bump glob from 11.0.2 to 11.1.0 in /api
dependabot[bot] Nov 25, 2025
fce56ed
chore(deps-dev): bump glob from 11.0.2 to 11.1.0 in /api (#386)
tnaum-ms Nov 25, 2025
62a5c6e
fix: an activation event wasn't labeled as such.
tnaum-ms Nov 25, 2025
4b15676
Initial plan
Copilot Nov 26, 2025
61f9e4f
fix: an activation event wasn't labeled as such. (#405)
tnaum-ms Nov 26, 2025
3f8de39
Update dependencies to React 19 and related packages
Copilot Nov 26, 2025
6bcfb1d
Clean up webpack config and add React import to ToolbarDividerTranspa…
Copilot Nov 26, 2025
fc0d4fb
Add comprehensive migration summary documentation
Copilot Nov 26, 2025
0d00d84
Complete dependency updates following vscode-cosmosdb PR #2760
Copilot Nov 26, 2025
ec3d64e
feat: codespaces configuration
tnaum-ms Nov 26, 2025
78496fe
feat: codespaces configuration (force prebuild)
tnaum-ms Nov 26, 2025
d2d5e94
Update package-lock.json with npm install
Copilot Nov 26, 2025
53b3db7
feat: codespaces configuration (cpu + port annotations)
tnaum-ms Nov 26, 2025
50c06bd
chore: removed 'allotment' dependency (unused)
tnaum-ms Nov 27, 2025
2297627
update: npm@10.8.2
tnaum-ms Nov 27, 2025
3594741
Merge branch 'next' into copilot/update-dependencies-react-19
tnaum-ms Nov 27, 2025
1140ce4
Migrate away from deprecated forwardRef to ref as prop (React 19)
Copilot Dec 4, 2025
326541e
Refactor icon path handling to use VSCode's Uri instead of custom int…
Copilot Dec 4, 2025
a5d0cdc
fix: Discovery View always started with the RU provider added (it was…
tnaum-ms Dec 4, 2025
dbb287b
Import and use IconPath type from vscode module
Copilot Dec 4, 2025
98c3837
fix: better prop extraction, build fix
tnaum-ms Dec 4, 2025
864cb99
prettier-fix
tnaum-ms Dec 4, 2025
e281846
Update package.json
tnaum-ms Dec 4, 2025
e418624
Update MIGRATION-SUMMARY.md
tnaum-ms Dec 4, 2025
9ca7425
fix: implementing copilot review suggestions
tnaum-ms Dec 4, 2025
fa26c62
fix: runtime issues with language server resolved
tnaum-ms Dec 4, 2025
0d9ef81
fix: jws <3.2.3
tnaum-ms Dec 4, 2025
bb861fd
chore: completed migration to SlickGrid 9.X
tnaum-ms Dec 5, 2025
bb7e242
Update MIGRATION-SUMMARY.md
tnaum-ms Dec 5, 2025
17b0034
chore: removed obsolete file
tnaum-ms Dec 5, 2025
85ec929
chore: Update dependencies, Move to React 19, Move to SlickGrid 9 (#407)
tnaum-ms Dec 5, 2025
3b28d16
Merge branch 'next' into dev/tnaum/390-bug-service-discovery-should-s…
tnaum-ms Dec 5, 2025
55888d9
fix: Discovery View always started with the RU provider added (#412)
tnaum-ms Dec 5, 2025
a7cf07c
simplified filter initialization
tnaum-ms Dec 5, 2025
fac4168
fix: warning users about subscriptions that are filtered out. asking …
tnaum-ms Dec 5, 2025
94218ea
feat: Improving Account + Tenant management
tnaum-ms Dec 5, 2025
90c502d
feat: updated copilot instructions with goback info for wizards
tnaum-ms Dec 5, 2025
1dbd1c0
feat: better tenant/subscription handling when using discovery or add…
tnaum-ms Dec 8, 2025
4b9dd25
feat: deselecting all tenants in tenants filter disables tenant filte…
tnaum-ms Dec 8, 2025
df74f89
feat: discovery tree expand no subscriptions: asks to check creds + t…
tnaum-ms Dec 8, 2025
26e58b0
fix: allow tenant+sub filtering in case if everything is initially fi…
tnaum-ms Dec 8, 2025
32c9602
chore: better formatting, better language, better user flow in the di…
tnaum-ms Dec 9, 2025
73b8eeb
fix: not throwing an error when user cancels filtering -> better user…
tnaum-ms Dec 9, 2025
1d064e0
chore: refactored discovery plugin config, simplified telemetry
tnaum-ms Dec 10, 2025
a248368
feat: support for user journey evaluations to detect where to focus f…
tnaum-ms Dec 10, 2025
8368ff0
fix: unified formatting of optimization cards, annotations shown in t…
tnaum-ms Dec 10, 2025
d3344ad
chore: correlationId added to all commands for future use
tnaum-ms Dec 10, 2025
27e97d2
Fix: all annotations shown the Query Insights feature are now respons…
tnaum-ms Dec 10, 2025
198764c
feat: updated account/tenant/subscription configuration documentation
tnaum-ms Dec 10, 2025
eb88860
Merge branch 'next' into dev/tnaum/391-bug-unable-to-deselect-tenants…
tnaum-ms Dec 10, 2025
7693bf3
Fix: Unable to deselect tenants when filtering for all available tena…
tnaum-ms Dec 10, 2025
a47bc4c
feat: new documentation preview github pages action
tnaum-ms Dec 11, 2025
0279cc5
Update .github/workflows/pr-preview.yml
tnaum-ms Dec 11, 2025
7638828
Update .github/workflows/pr-preview.yml
tnaum-ms Dec 11, 2025
85474f7
Update .github/workflows/pr-preview.yml
tnaum-ms Dec 11, 2025
05903d0
added token for permissions
tnaum-ms Dec 11, 2025
eab9cae
feat: new documentation preview github pages action (#417)
tnaum-ms Dec 11, 2025
fee4d81
simplifying preview workflow
tnaum-ms Dec 11, 2025
2d27c93
workflow rename actions/workflow
tnaum-ms Dec 11, 2025
0db1e9f
workflow rename file
tnaum-ms Dec 11, 2025
6c38ba4
Workflow Updates for GitHub Pages Previews (#419)
tnaum-ms Dec 11, 2025
2d1ba9d
fix: improving github pages preview workflow
tnaum-ms Dec 11, 2025
4eda823
feat: updated github pages configuration and worklfows
tnaum-ms Dec 11, 2025
d5b59e7
doc: added a readme that explains the motivation behind github pages …
tnaum-ms Dec 11, 2025
185f2e3
chore: updated user facing messages
tnaum-ms Dec 11, 2025
e807e8f
Merge branch 'main' into next
tnaum-ms Dec 11, 2025
e005f80
doc: changelog, release notes
tnaum-ms Dec 11, 2025
f2ddfe6
version bump
tnaum-ms Dec 11, 2025
ffa3229
fix: improved release notes formatting in 0.6.md
tnaum-ms Dec 11, 2025
8950e6c
Release Notes + Version Bump (#421)
tnaum-ms Dec 11, 2025
c8ad190
simpilfy github pages release (no previews)
tnaum-ms Dec 11, 2025
c968230
simpilfy github pages release (no previews)
tnaum-ms Dec 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"name": "Node.js 20 Workspace",
"image": "mcr.microsoft.com/devcontainers/javascript-node:20",

"hostRequirements": {
"cpus": 4
},

// Lifecycle commands
"onCreateCommand": "npm install",
"updateContentCommand": "if git diff --name-only HEAD~1 HEAD | grep -E 'package(-lock)?\\.json'; then npm install; fi && npm run build",

"forwardPorts": [3000],
"portsAttributes": {
"3000": {
"label": "Development Server",
"onAutoForward": "notify"
}
},

"customizations": {
"vscode": {
"extensions": [
"dbaeumer.vscode-eslint",
"mike-lischke.vscode-antlr4",
"amodio.tsl-problem-matcher",
"Orta.vscode-jest",
"esbenp.prettier-vscode"
],
"settings": {
"editor.formatOnSave": true,
"eslint.enable": true
}
}
},

// Cache node_modules between prebuilds
"mounts": ["source=node_modules-cache,target=/workspace/node_modules,type=volume"]
}
146 changes: 146 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,152 @@ export async function yourCommand(context: IActionContext, targetItem: SomeItem)
}
```

### Wizard Back Navigation and Context Persistence

When users navigate back in a wizard (via `GoBackError`), the `AzureWizard` framework resets context properties. Understanding this behavior is critical for proper wizard implementation.

#### How AzureWizard Handles Back Navigation

When a step throws `GoBackError`, the wizard:

1. Pops steps from the finished stack until finding the previous prompted step
2. **Resets context properties** to what existed before that step's `prompt()` ran
3. Re-runs the step's `prompt()` method

**Critical Implementation Detail**: Before each step's `prompt()` runs, the wizard captures `propertiesBeforePrompt`:

```javascript
// From AzureWizard.js - this runs for EACH step before prompt()
step.propertiesBeforePrompt = Object.keys(this._context).filter((k) => !isNullOrUndefined(this._context[k])); // Only non-null/undefined values!
```

When going back, properties NOT in `propertiesBeforePrompt` are set to `undefined`:

```javascript
// From AzureWizard.js goBack() method
for (const key of Object.keys(this._context)) {
if (!step.propertiesBeforePrompt.find((p) => p === key)) {
this._context[key] = undefined; // Property gets cleared!
}
}
```

#### Making Context Properties Survive Back Navigation

To ensure a context property survives when users navigate back, you must initialize it with a **non-null, non-undefined value** in the wizard context creation:

```typescript
// ❌ Bad - Property will be cleared on back navigation
const wizardContext: MyWizardContext = {
...context,
cachedData: undefined, // undefined is filtered out of propertiesBeforePrompt!
};

// ❌ Bad - Property not initialized, same problem
const wizardContext: MyWizardContext = {
...context,
// cachedData not set - will be undefined
};

// ✅ Good - Property will survive back navigation (using empty array)
const wizardContext: MyWizardContext = {
...context,
cachedData: [], // Empty array is not null/undefined, captured in propertiesBeforePrompt
};

// ✅ Good - Property will survive back navigation (using empty object)
const wizardContext: MyWizardContext = {
...context,
cachedConfig: {}, // Empty object is not null/undefined
};

// ✅ Good - Property will survive back navigation (using empty string)
const wizardContext: MyWizardContext = {
...context,
cachedId: '', // Empty string is not null/undefined
};

// ✅ Good - Property will survive back navigation (using zero)
const wizardContext: MyWizardContext = {
...context,
retryCount: 0, // Zero is not null/undefined
};

// ✅ Good - Property will survive back navigation (using false)
const wizardContext: MyWizardContext = {
...context,
hasBeenValidated: false, // false is not null/undefined
};
```

#### Pattern for Cached Data with Back Navigation Support

When you need to cache expensive data (like API calls) that should survive back navigation:

1. **Context Interface**: Make the property required with a non-nullable type

```typescript
export interface MyWizardContext extends IActionContext {
// Required - initialized with non-null/undefined value to survive back navigation
cachedItems: CachedItem[];

// Optional - user selections that may be cleared
selectedItem?: SomeItem;
}
```

2. **Wizard Initialization**: Initialize with a non-null/undefined value

```typescript
const wizardContext: MyWizardContext = {
...context,
cachedItems: [], // Any non-null/undefined value survives back navigation
};
```

3. **Step Implementation**: Check appropriately for the initial value

```typescript
public async prompt(context: MyWizardContext): Promise<void> {
const getQuickPickItems = async () => {
// Check for initial empty value (array uses .length, string uses === '', etc.)
if (context.cachedItems.length === 0) {
context.cachedItems = await this.fetchExpensiveData();
}
return context.cachedItems.map(item => ({ label: item.name }));
};

await context.ui.showQuickPick(getQuickPickItems(), { /* options */ });
}
```

4. **Clearing Cache**: Reset to the initial non-null/undefined value

```typescript
// When you need to invalidate the cache (e.g., after a mutation)
context.cachedItems = []; // Reset to initial value, not undefined!
```

#### Using GoBackError in Steps

To navigate back programmatically from a step:

```typescript
import { GoBackError } from '@microsoft/vscode-azext-utils';

public async prompt(context: MyWizardContext): Promise<void> {
const result = await context.ui.showQuickPick(items, options);

if (result.isBackOption) {
// Clear step-specific selections before going back
context.selectedItem = undefined;
throw new GoBackError();
}

// Process selection...
}
```

### Tree View Architecture

- Use proper data providers that implement `vscode.TreeDataProvider`.
Expand Down
30 changes: 30 additions & 0 deletions .github/workflows/deploy-documentation-production.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Deploy Documentation

on:
push:
branches:
- main
paths:
- 'docs/**'
workflow_dispatch:

permissions:
contents: write

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: 📥 Checkout Repository
uses: actions/checkout@v4
with:
ref: main
token: ${{ secrets.GITHUB_TOKEN }}

- name: 🚀 Deploy to GitHub Pages
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: docs/
branch: gh-pages
clean: true
token: ${{ secrets.GITHUB_TOKEN }}
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Change Log

## 0.6.2

### Fixes

- **Azure Tenant Filtering in Service Discovery**: Resolved an issue where users could not deselect tenants when filtering from a large number of available tenants. This update improves the Azure account, tenant, and subscription management workflow. For more details on the enhanced workflow, see the [updated documentation](https://microsoft.github.io/vscode-documentdb/user-manual/managing-azure-discovery). [#391](https://github.com/microsoft/vscode-documentdb/issues/391), [#415](https://github.com/microsoft/vscode-documentdb/pull/415)
- **Service Discovery Defaults**: The service discovery feature now starts with no pre-selected engines. Previously, the Azure Cosmos DB for MongoDB (RU) plugin was enabled by default, which has been corrected. [#390](https://github.com/microsoft/vscode-documentdb/issues/390), [#412](https://github.com/microsoft/vscode-documentdb/pull/412)
- **Accessibility in Query Insights**: Fixed a responsive layout issue in the "Query Insights" tab where the 'AI response may be inaccurate' text would overlap with other UI elements on resize. [#376](https://github.com/microsoft/vscode-documentdb/issues/376), [#416](https://github.com/microsoft/vscode-documentdb/pull/416)

### Improvements

- **Dependency Upgrades**:
- Upgraded to React 19 and SlickGrid 9, enhancing UI performance and modernizing the webview components. This also includes updates to TypeScript, Webpack, and other build tools. [#406](https://github.com/microsoft/vscode-documentdb/issues/406), [#407](https://github.com/microsoft/vscode-documentdb/pull/407)
- Updated various other dependencies to improve security and performance. [#386](https://github.com/microsoft/vscode-documentdb/pull/386)

## 0.6.1

### New Features & Improvements
Expand Down
57 changes: 35 additions & 22 deletions api/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ The User Manual provides guidance on using DocumentDB for VS Code. It contains d

Explore the history of updates and improvements to the DocumentDB for VS Code extension. Each release brings new features, enhancements, and fixes to improve your experience.

- [0.6](./release-notes/0.6), [0.6.1](./release-notes/0.6#patch-release-v061)
- [0.6](./release-notes/0.6), [0.6.1](./release-notes/0.6#patch-release-v061), [0.6.2](./release-notes/0.6#patch-release-v062)
- [0.5](./release-notes/0.5), [0.5.1](./release-notes/0.5#patch-release-v051), [0.5.2](./release-notes/0.5#patch-release-v052)
- [0.4](./release-notes/0.4), [0.4.1](./release-notes/0.4#patch-release-v041)
- [0.3](./release-notes/0.3), [0.3.1](./release-notes/0.3#patch-release-v031)
Expand Down
45 changes: 43 additions & 2 deletions docs/release-notes/0.6.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,15 +78,56 @@ This patch release introduces feedback optimization and fixes a broken link.

### What's Changed in v0.6.1

#### **Feedback Optimization** ([#392](https://github.com/microsoft/vscode-documentdb/pull/392))
#### 💠 **Feedback Optimization** ([#392](https://github.com/microsoft/vscode-documentdb/pull/392))

Introduces privacy consent and feedback signal controls for the Query Insights feature, primarily to ensure compliance with organizational data protection requirements and user telemetry settings. It also disables survey functionality and refines the feedback dialog UI.

#### **Privacy Policy Link Update** ([#388](https://github.com/microsoft/vscode-documentdb/pull/388))
#### 💠 **Privacy Policy Link Update** ([#388](https://github.com/microsoft/vscode-documentdb/pull/388))

Updated the outdated privacy policy link in the README to the current Microsoft privacy statement URL.

### Changelog

See the full changelog entry for this release:
➡️ [CHANGELOG.md#061](https://github.com/microsoft/vscode-documentdb/blob/main/CHANGELOG.md#061)

---

## Patch Release v0.6.2

This patch release delivers important fixes for Azure tenant management, service discovery, and accessibility. It also includes a significant set of dependency upgrades to modernize the extension's underlying architecture.

### What's Changed in v0.6.2

#### 💠 **Improved Azure Tenant and Subscription Filtering in Service Discovery** ([#391](https://github.com/microsoft/vscode-documentdb/issues/391), [#415](https://github.com/microsoft/vscode-documentdb/pull/415))

We've resolved a key issue that affected users managing numerous Azure tenants. Previously, when a user had access to a large number of tenants, and had selected all of them, the filtering wizard would fail to work correctly when attempting to deselect tenants, making it impossible to refine the resource view.

This update introduces an improved filtering mechanism that ensures a reliable experience, even for users in enterprise environments. The wizard for managing accounts, tenants, and subscriptions is now more resilient, allowing you to precisely control which resources are displayed in the Service Discovery panel.

For a complete guide on the enhanced workflow, please see our updated documentation on [Managing Azure Discovery](https://microsoft.github.io/vscode-documentdb/user-manual/managing-azure-discovery).

#### 💠 **Corrected Service Discovery Default Settings** ([#390](https://github.com/microsoft/vscode-documentdb/issues/390), [#412](https://github.com/microsoft/vscode-documentdb/pull/412))

To provide a cleaner initial experience, the Service Discovery feature no longer starts with any discovery engines enabled by default. In a previous version, the "Azure Cosmos DB for MongoDB (RU)" plugin was pre-selected by mistake, which could cause confusion.

With this fix, you now have full control over which service discovery plugins are active from the start, for a more intentional and direct setup.

#### 💠 **Accessibility Fix for Query Insights** ([#376](https://github.com/microsoft/vscode-documentdb/issues/376), [#416](https://github.com/microsoft/vscode-documentdb/pull/416))

We've addressed an accessibility issue in the "Query Insights" tab where the "AI response may be inaccurate" warning text would overlap with other UI elements when the panel was resized. The layout has been updated to be fully responsive, ensuring all content remains readable and accessible regardless of panel size.

#### 💠 **Modernized Architecture with Major Dependency Upgrades** ([#406](https://github.com/microsoft/vscode-documentdb/issues/406), [#407](https://github.com/microsoft/vscode-documentdb/pull/407), [#386](https://github.com/microsoft/vscode-documentdb/pull/386))

This release includes a significant overhaul of our dev dependencies, bringing major performance and modernization improvements:

- **Upgraded to React 19**: We've migrated our webview components to React 19, leveraging the latest features and performance enhancements from the React team.
- **Upgraded to SlickGrid 9**: The data grids used to display collection data have been updated to SlickGrid 9. This major update improves rendering performance and aligns with modern JavaScript standards.
- **Other Key Updates**: We've also updated TypeScript, Webpack, the MongoDB driver, and numerous other packages to enhance security, stability, and build performance.

These upgrades ensure the extension remains fast, secure, and aligned with the latest web development best practices.

### Changelog

See the full changelog entry for this release:
➡️ [CHANGELOG.md#062](https://github.com/microsoft/vscode-documentdb/blob/main/CHANGELOG.md#062)
Loading