Skip to content

Commit cf51636

Browse files
authored
Release 0.6.1 to main (#394)
2 parents dcfa723 + 3056569 commit cf51636

File tree

16 files changed

+143
-43
lines changed

16 files changed

+143
-43
lines changed

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# Change Log
22

3+
## 0.6.1
4+
5+
### New Features & Improvements
6+
7+
- **Feedback Optimization**: 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. [#392](https://github.com/microsoft/vscode-documentdb/pull/392)
8+
9+
### Fixes
10+
11+
- **Privacy Policy Link**: Updated the outdated privacy policy link in the README to the current Microsoft privacy statement URL. [#388](https://github.com/microsoft/vscode-documentdb/pull/388)
12+
313
## 0.6.0
414

515
### New Features & Improvements

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ This project may contain trademarks or logos for projects, products, or services
8282

8383
# Telemetry
8484

85-
VS Code collects usage data and sends it to Microsoft to help improve our products and services. Read our [privacy statement](https://go.microsoft.com/fwlink/?LinkID=528096&clcid=0x409) to learn more. If you don’t wish to send usage data to Microsoft, you can set the `telemetry.enableTelemetry` setting to `false`. Learn more in our [FAQ](https://code.visualstudio.com/docs/supporting/faq#_how-to-disable-telemetry-reporting).
85+
VS Code collects usage data and sends it to Microsoft to help improve our products and services. Read our [privacy statement](https://go.microsoft.com/fwlink/?LinkId=521839) to learn more. If you don’t wish to send usage data to Microsoft, you can set the `telemetry.enableTelemetry` setting to `false`. Learn more in our [FAQ](https://code.visualstudio.com/docs/supporting/faq#_how-to-disable-telemetry-reporting).
8686

8787
# License
8888

docs/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ The User Manual provides guidance on using DocumentDB for VS Code. It contains d
6464

6565
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.
6666

67-
- [0.6](./release-notes/0.6)
67+
- [0.6](./release-notes/0.6), [0.6.1](./release-notes/0.6#patch-release-v061)
6868
- [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)
6969
- [0.4](./release-notes/0.4), [0.4.1](./release-notes/0.4#patch-release-v041)
7070
- [0.3](./release-notes/0.3), [0.3.1](./release-notes/0.3#patch-release-v031)

docs/release-notes/0.6.md

Lines changed: 41 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,34 +12,34 @@ We are excited to announce the release of **DocumentDB for VS Code Extension v0.
1212

1313
We are introducing a major new feature: **Query Insights with Performance Advisor**. This powerful tool helps you understand and optimize your queries directly within VS Code. When you run a `find` query against your DocumentDB or MongoDB API database, a new **"Query Insights"** tab appears, providing a three-stage analysis of your query's performance.
1414

15-
<p align="center"><img src="./images/0.6.0_query_insights.png" alt="Authentication Method Selection" width="720" style="max-width:100%;height:auto;"></p>
15+
<p align="center"><img src="./images/0.6.0_query_insights.png" alt="Authentication Method Selection" width="800" style="max-width:100%;height:auto;"></p>
1616

17-
- **Stage 1: Initial Performance View**
18-
The first stage provides an immediate, low-cost static analysis of your query. It visualizes the query plan, showing how the database intends to execute your query. This helps you understand performance bottlenecks and the query's processing stages without re-running it.
17+
- **Stage 1: Initial Performance View**
18+
The first stage provides an immediate, low-cost static analysis of your query. It visualizes the query plan, showing how the database intends to execute your query. This helps you understand performance bottlenecks and the query's processing stages without re-running it.
1919

20-
- **Stage 2: Detailed Execution Analysis**
21-
For a deeper dive, the second stage runs a detailed execution analysis using `executionStats` to gather authoritative metrics. You'll see precise counts for documents and keys examined, server-side execution time, and a detailed breakdown of each stage in the execution plan. This provides clear insights into how your query actually performed.
20+
- **Stage 2: Detailed Execution Analysis**
21+
For a deeper dive, the second stage runs a detailed execution analysis using `executionStats` to gather authoritative metrics. You'll see precise counts for documents and keys examined, server-side execution time, and a detailed breakdown of each stage in the execution plan. This provides clear insights into how your query actually performed.
2222

23-
The complex JSON response from the database is translated into an easy-to-comprehend chart, making it simple to visualize the query's execution flow.
23+
The complex JSON response from the database is translated into an easy-to-comprehend chart, making it simple to visualize the query's execution flow.
2424

25-
Additionally, a **Query Efficiency Analysis** card provides a quick performance assessment. It highlights key aspects of the query's execution, such as the execution strategy, index usage, and whether an in-memory sort occurred. A performance rating (Good, Fair, or Poor) helps you quickly identify an inefficient or slow query.
25+
Additionally, a **Query Efficiency Analysis** card provides a quick performance assessment. It highlights key aspects of the query's execution, such as the execution strategy, index usage, and whether an in-memory sort occurred. A performance rating (Good, Fair, or Poor) helps you quickly identify an inefficient or slow query.
2626

27-
- **Stage 3: AI-Powered Recommendations with GitHub Copilot**
28-
The final stage brings the power of AI to your query optimization workflow. By clicking `Get AI Performance Insights`, the extension sends the query shape and execution statistics to a service powered by **GitHub Copilot**. For more details, please see our [documentation](https://learn.microsoft.com/en-us/azure/documentdb/index-advisor).
27+
- **Stage 3: AI-Powered Recommendations with GitHub Copilot**
28+
The final stage brings the power of AI to your query optimization workflow. By clicking `Get AI Performance Insights`, the extension sends the query shape and execution statistics to a service powered by **GitHub Copilot**. For more details, please see our [documentation](https://learn.microsoft.com/en-us/azure/documentdb/index-advisor).
2929

30-
The AI assistant provides:
30+
The AI assistant provides:
3131

32-
> 🕵️‍♂️ **Analysis**
33-
>
34-
> A summary of the query's performance.
32+
> 🕵️‍♂️ **Analysis**
33+
>
34+
> A summary of the query's performance.
3535
36-
> 📈 **Actionable Recommendations**
37-
>
38-
> Suggestions for creating, hiding, or unhiding indexes to improve performance, with an option to apply them directly.
36+
> 📈 **Actionable Recommendations**
37+
>
38+
> Suggestions for creating, hiding, or unhiding indexes to improve performance, with an option to apply them directly.
3939
40-
> 🎓 **Detailed Explanations**
41-
>
42-
> A breakdown of the execution plan to help you understand how the query was processed.
40+
> 🎓 **Detailed Explanations**
41+
>
42+
> A breakdown of the execution plan to help you understand how the query was processed.
4343
4444
The **"Query Insights"** feature helps solve performance issues and educates users on query best practices for DocumentDB and MongoDB API databases.
4545

@@ -49,7 +49,7 @@ We've enhanced the query authoring experience to support more sophisticated quer
4949

5050
The `projection` and `sort` fields also support the same rich autocompletion that was previously available for the `filter` field.
5151

52-
<p align="center"><img src="./images/0.6.0_project_sort_skip_limit.png" alt="Authentication Method Selection" width="720" style="max-width:100%;height:auto;"></p>
52+
<p align="center"><img src="./images/0.6.0_project_sort_skip_limit.png" alt="Authentication Method Selection" width="800" style="max-width:100%;height:auto;"></p>
5353

5454
### ⭐ Index Management from the Tree View
5555

@@ -69,3 +69,24 @@ Hovering over an index will show you its details, and the context menu provides
6969

7070
See the full changelog entry for this release:
7171
➡️ [CHANGELOG.md#060](https://github.com/microsoft/vscode-documentdb/blob/main/CHANGELOG.md#060)
72+
73+
---
74+
75+
## Patch Release v0.6.1
76+
77+
This patch release introduces feedback optimization and fixes a broken link.
78+
79+
### What's Changed in v0.6.1
80+
81+
#### **Feedback Optimization** ([#392](https://github.com/microsoft/vscode-documentdb/pull/392))
82+
83+
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.
84+
85+
#### **Privacy Policy Link Update** ([#388](https://github.com/microsoft/vscode-documentdb/pull/388))
86+
87+
Updated the outdated privacy policy link in the README to the current Microsoft privacy statement URL.
88+
89+
### Changelog
90+
91+
See the full changelog entry for this release:
92+
➡️ [CHANGELOG.md#061](https://github.com/microsoft/vscode-documentdb/blob/main/CHANGELOG.md#061)

l10n/bundle.l10n.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,7 @@
384384
"HIGH PRIORITY": "HIGH PRIORITY",
385385
"How do you want to connect?": "How do you want to connect?",
386386
"How would you rate Query Insights?": "How would you rate Query Insights?",
387+
"I have read and agree to the ": "I have read and agree to the ",
387388
"I like it": "I like it",
388389
"I want to choose the server from an online registry.": "I want to choose the server from an online registry.",
389390
"I want to connect to a local DocumentDB instance.": "I want to connect to a local DocumentDB instance.",
@@ -484,6 +485,7 @@
484485
"Manage Azure Accounts": "Manage Azure Accounts",
485486
"Manually enter a custom tenant ID": "Manually enter a custom tenant ID",
486487
"MEDIUM PRIORITY": "MEDIUM PRIORITY",
488+
"Microsoft will process the feedback data you submit on behalf of your organization in accordance with the Data Protection Addendum between your organization and Microsoft.": "Microsoft will process the feedback data you submit on behalf of your organization in accordance with the Data Protection Addendum between your organization and Microsoft.",
487489
"Migration of connections from the Azure Databases VS Code Extension to the DocumentDB for VS Code Extension completed: {migratedCount} connections migrated.": "Migration of connections from the Azure Databases VS Code Extension to the DocumentDB for VS Code Extension completed: {migratedCount} connections migrated.",
488490
"Missing important information": "Missing important information",
489491
"Modify index?": "Modify index?",
@@ -558,10 +560,10 @@
558560
"Port number is required": "Port number is required",
559561
"Port number must be a number": "Port number must be a number",
560562
"Port number must be between 1 and 65535": "Port number must be between 1 and 65535",
563+
"Privacy Statement": "Privacy Statement",
561564
"Procedure not found: {name}": "Procedure not found: {name}",
562565
"Process exited: \"{command}\"": "Process exited: \"{command}\"",
563566
"Project": "Project",
564-
"Provide Feedback": "Provide Feedback",
565567
"Provider \"{0}\" does not have resource type \"{1}\".": "Provider \"{0}\" does not have resource type \"{1}\".",
566568
"Query Efficiency Analysis": "Query Efficiency Analysis",
567569
"Query Execution Failed": "Query Execution Failed",

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vscode-documentdb",
3-
"version": "0.6.0",
3+
"version": "0.6.1",
44
"aiKey": "0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255",
55
"publisher": "ms-azuretools",
66
"displayName": "DocumentDB for VS Code",

src/commands/openCollectionView/openCollectionView.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
import { type IActionContext } from '@microsoft/vscode-azext-utils';
77
import * as l10n from '@vscode/l10n';
8+
import * as vscode from 'vscode';
9+
810
import { ClusterSession } from '../../documentdb/ClusterSession';
911
import { type CollectionItem } from '../../tree/documentdb/CollectionItem';
1012
import { CollectionViewController } from '../../webviews/documentdb/collectionView/collectionViewController';
@@ -37,11 +39,23 @@ export async function openCollectionViewInternal(
3739
*/
3840
const sessionId = await ClusterSession.initNewSession(props.clusterId);
3941

42+
// Enable feedback signals only when telemetry level is set to "all"
43+
// See: https://code.visualstudio.com/docs/setup/enterprise#_configure-telemetry-level
44+
let feedbackSignalsEnabled = false;
45+
try {
46+
const telemetryLevel = vscode.workspace.getConfiguration('telemetry').get<string>('telemetryLevel');
47+
feedbackSignalsEnabled = telemetryLevel === 'all';
48+
} catch {
49+
// If we fail to read telemetry settings, default to false
50+
feedbackSignalsEnabled = false;
51+
}
52+
4053
const view = new CollectionViewController({
4154
sessionId: sessionId,
4255
clusterId: props.clusterId,
4356
databaseName: props.databaseName,
4457
collectionName: props.collectionName,
58+
feedbackSignalsEnabled: feedbackSignalsEnabled,
4559
});
4660

4761
view.revealToForeground();

src/utils/survey.initSurvey.test.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,9 @@ describe('Survey Initialization', () => {
8181
// This directly modifies the surveyState object in the survey.ts module
8282
surveyStateRef.isCandidate = undefined;
8383

84+
// Enable survey for tests (it's disabled in production)
85+
SurveyConfig.settings.DISABLE_SURVEY = false;
86+
8487
// Set up default A/B test mocks for passing
8588
mockABTestPassing();
8689

src/utils/survey.prompt.test.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,9 @@ describe('Survey Prompt', () => {
7878
surveyState.wasPromptedInSession = false;
7979
surveyState.isCandidate = true;
8080

81+
// Enable survey for tests (it's disabled in production)
82+
surveyConfig.settings.DISABLE_SURVEY = false;
83+
8184
// Reset mocks
8285
jest.clearAllMocks();
8386

0 commit comments

Comments
 (0)