-
Notifications
You must be signed in to change notification settings - Fork 8
Release 0.7.0
#485
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Release 0.7.0
#485
Conversation
…n handling in move operation
…lder selection and conflict verification messages
…et folder selection
…ation in move items workflow
…onality - Implement comprehensive tests for ConnectionStorageService, covering CRUD operations, folder hierarchy management, and connection type separation. - Introduce tests for orphan cleanup logic, ensuring proper deletion of orphaned items and handling of nested structures. - Mock storage and telemetry context to facilitate isolated testing. - Validate migration paths from v1 and v2 to v3 storage formats.
…tions.md Co-authored-by: tnaum-ms <[email protected]>
…ing tests for PromptTargetFolderStep
Co-authored-by: tnaum-ms <[email protected]>
Added editor.focus() call in handleMonacoEditorMount to ensure keyboard focus is immediately visible when the document view opens. This addresses WCAG 2.4.3 Focus Order accessibility requirement. Co-authored-by: tnaum-ms <[email protected]>
- Add role="status" and aria-live="polite" to status text for screen reader announcement - Add aria-hidden="true" to decorative Spinner to prevent redundant announcements - Fixes WCAG 4.1.3 violation where NVDA was announcing "document" instead of the status message Co-authored-by: tnaum-ms <[email protected]>
Co-authored-by: tnaum-ms <[email protected]>
… better readability Co-authored-by: tnaum-ms <[email protected]>
Co-authored-by: tnaum-ms <[email protected]>
Co-authored-by: Copilot <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This is a major release (0.7.0) that introduces significant new features and improvements to the VS Code DocumentDB extension. The release focuses on three main areas: a copy-and-paste collections feature, folder hierarchy support in the Connections View, and cluster ID architecture improvements to fix bugs related to moving connections between folders.
Changes:
- Added collection copy-and-paste functionality with conflict resolution strategies (abort, skip, overwrite, generate new IDs)
- Implemented folder hierarchy in Connections View with drag-and-drop, clipboard operations, and CRUD commands
- Fixed cluster ID architecture to use stable
clusterIdinstead oftreeIdfor cache operations, preventing silent bugs when connections move between folders
Reviewed changes
Copilot reviewed 124 out of 206 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
src/services/taskService/data-api/types.ts |
New public API types for document streaming, conflict resolution strategies, and write results |
src/services/taskService/data-api/readers/DocumentDbDocumentReader.ts |
DocumentDB implementation of document reader with streaming and counting capabilities |
src/services/taskService/UI/taskProgressReportingService.ts |
Service for displaying progress notifications for running tasks with cancellation support |
src/services/taskService/UI/README.md |
Documentation for task UI services and tree view annotation patterns |
src/services/discoveryServices.ts |
Added return type to registerProvider method |
src/plugins/service-azure-vm/discovery-tree/vm/AzureVMResourceItem.ts |
Updated to use stable clusterId for credential cache operations instead of treeId |
src/plugins/service-azure-vm/discovery-tree/AzureSubscriptionItem.ts |
Created TreeCluster models with proper ID separation for VM resources |
src/plugins/service-azure-mongo-vcore/discovery-tree/documentdb/DocumentDBResourceItem.ts |
Updated credential cache calls to use clusterId instead of this.id |
src/plugins/service-azure-mongo-vcore/discovery-tree/AzureSubscriptionItem.ts |
Created TreeCluster models with Azure Resource ID tracking for vCore resources |
src/plugins/service-azure-mongo-ru/discovery-tree/documentdb/MongoRUResourceItem.ts |
Updated credential cache operations to use stable clusterId |
src/plugins/service-azure-mongo-ru/discovery-tree/AzureMongoRUSubscriptionItem.ts |
Created TreeCluster models for MongoDB RU resources |
src/extensionVariables.ts |
Added copiedCollectionNode for clipboard state and copy-paste settings |
src/documentdb/utils/toFilterQuery.ts |
Changed to throw QueryError instead of returning empty object on invalid filter syntax |
src/documentdb/utils/toFilterQuery.test.ts |
Updated tests to expect QueryError for invalid input |
src/documentdb/utils/getClusterMetadata.ts |
Removed unnecessary eslint-disable comments |
src/documentdb/utils/connectionStringHelpers.ts |
Added helper functions for normalizing connection strings and checking for duplicates |
src/documentdb/utils/connection-string-parameters.md |
Documentation on MongoDB connection string duplicate parameter behavior |
src/documentdb/utils/DocumentDBConnectionString.ts |
Added methods for deduplicating query parameters according to MongoDB specifications |
src/documentdb/scrapbook/ScrapbookService.ts |
Updated to use clusterId for credential lookups and handle emulator config conditionally |
src/documentdb/errors/index.ts |
New barrel export for QueryError |
src/documentdb/errors/QueryError.ts |
New unified error class for query-related failures |
src/documentdb/Views.ts |
Added inferViewIdFromTreeId helper function |
src/documentdb/CredentialCache.ts |
Extensively documented to clarify clusterId usage vs treeId |
src/documentdb/CredentialCache.test.ts |
Comprehensive tests for credential cache stability across folder moves |
src/documentdb/ClustersExtension.ts |
Registered new copy-paste commands, folder management commands, and task progress reporting service |
src/documentdb/ClusterSession.ts |
Updated documentation to clarify credentialId is the stable clusterId |
src/commands/updateCredentials/updateCredentials.ts |
Updated to use clusterId for credential operations |
src/commands/renameConnection/ExecuteStep.ts |
Deleted file (moved to connections-view/renameConnection/) |
src/commands/removeConnection/removeConnection.ts |
Added task conflict checking and updated to use clusterId |
src/commands/pasteCollection/pasteCollection.ts |
New wizard-based collection paste command with extensive telemetry |
src/commands/pasteCollection/PromptNewCollectionNameStep.ts |
Wizard step for prompting new collection name with validation |
src/commands/pasteCollection/PromptIndexConfigurationStep.ts |
Wizard step for index copying (not yet implemented) |
src/commands/pasteCollection/PromptConflictResolutionStep.ts |
Wizard step for choosing conflict resolution strategy |
src/commands/pasteCollection/PasteCollectionWizardContext.ts |
Context interface for paste wizard |
src/commands/pasteCollection/LargeCollectionWarningStep.ts |
Warning step for large collections with configurable threshold |
src/commands/pasteCollection/ExecuteStep.ts |
Executes the copy-paste task with tree annotations |
src/commands/pasteCollection/ConfirmOperationStep.ts |
Final confirmation with operation summary |
src/commands/openDocument/openDocument.ts |
Added viewId parameter for proper tree node resolution |
src/commands/openCollectionView/openCollectionView.ts |
Added viewId extraction and passing |
src/commands/newLocalConnection/newLocalConnection.ts |
Refactored to support folder creation with shared wizard logic |
src/commands/newLocalConnection/NewLocalConnectionWizardContext.ts |
Added parentStorageId for folder support |
src/commands/newLocalConnection/ExecuteStep.ts |
Updated to handle folder parent IDs and better error handling |
src/commands/newConnection/newConnection.ts |
Refactored to support folder creation with shared wizard |
src/commands/newConnection/PromptConnectionStringStep.ts |
Added empty string validation |
src/commands/newConnection/NewConnectionWizardContext.ts |
Added parentTreeId for folder reveal |
src/commands/newConnection/ExecuteStep.ts |
Updated to use withConnectionsViewProgress and handle folders |
src/commands/llmEnhancedCommands/queryGenerationCommands.ts |
Split prompt into separate messages for better LLM processing |
src/commands/llmEnhancedCommands/indexAdvisorCommands.ts |
Split prompt into separate messages and updated return type |
src/commands/launchShell/launchShell.ts |
Updated to use clusterId and handle emulator config conditionally |
src/commands/index.unhideIndex/unhideIndex.ts |
Updated to use clusterId for client lookup |
src/commands/index.hideIndex/hideIndex.ts |
Updated to use clusterId for client lookup |
src/commands/index.dropIndex/dropIndex.ts |
Updated to use clusterId for client lookup |
src/commands/importDocuments/importDocuments.ts |
Updated to use clusterId and improved error handling for bulk writes |
src/commands/exportDocuments/exportDocuments.ts |
Updated to use clusterId for client lookup |
src/commands/deleteDatabase/deleteDatabase.ts |
Added task conflict checking and updated to use clusterId |
src/commands/deleteCollection/deleteCollection.ts |
Added task conflict checking and updated to use clusterId |
src/commands/createDocument/createDocument.ts |
Added viewId extraction and passing |
src/commands/createDatabase/createDatabase.ts |
Updated to use clusterId for credential checks |
src/commands/createDatabase/CreateDatabaseWizardContext.ts |
Documented that credentialsId should be clusterId |
src/commands/createCollection/createCollection.ts |
Updated to use clusterId |
src/commands/createCollection/CreateCollectionWizardContext.ts |
Documented that credentialsId should be clusterId |
src/commands/createCollection/CollectionNameStep.ts |
Improved error logging |
src/commands/copyConnectionString/copyConnectionString.ts |
Added password inclusion prompt for native auth in Connections View |
src/commands/copyCollection/copyCollection.ts |
New command to mark a collection for copying |
src/commands/connections-view/verificationUtils.ts |
Utilities for checking task conflicts before folder operations |
src/commands/connections-view/renameFolder/* |
New folder rename wizard with validation |
src/commands/connections-view/renameConnection/* |
Refactored connection rename to new structure with refresh helpers |
src/commands/connections-view/newConnectionInFolder/newConnectionInFolder.ts |
Router for creating connections in folders |
src/commands/connections-view/moveItems/* |
New wizard for moving items with task/naming conflict verification |
src/commands/connections-view/deleteFolder/* |
New wizard for deleting folders with recursive deletion |
src/commands/connections-view/createFolder/* |
New wizard for creating folders with duplicate validation |
src/commands/chooseDataMigrationExtension/chooseDataMigrationExtension.ts |
Updated to use clusterId for credential operations |
src/commands/addConnectionFromRegistry/addConnectionFromRegistry.ts |
Updated to use connection helpers and withConnectionsViewProgress |
src/__mocks__/vscode.js |
Enhanced mock with template string replacement and CancellationTokenSource |
progress.md |
New detailed progress tracking for folder hierarchy implementation |
eslint.config.mjs |
Added SCSS module imports to allowed internal modules |
docs/user-manual/copy-and-paste.md |
Comprehensive user documentation for copy-paste feature |
.vscode/launch.json |
Changed debug telemetry to verbose mode |
.github/instructions/wizard.instructions.md |
New coding guidelines for wizard implementation patterns |
.github/instructions/typescript.instructions.md |
New TypeScript coding guidelines |
.devcontainer/devcontainer.json |
Improved build commands for container lifecycle |
.azure-pipelines/compliance/CredScanSuppressions.json |
Added suppressions for new test files |
Files not reviewed (1)
- api/package-lock.json: Language not supported
Co-authored-by: Copilot <[email protected]>
…tions and addressing community bug reports
|
@copilot open a new pull request to apply changes based on the comments in this thread |
Co-authored-by: tnaum-ms <[email protected]>
…improved user options
…upgrades from pre-0.7.0 versions
0.7.0
New Features
Improvements
Fixes
Security
qsandexpressto address security vulnerabilities. #434This pull request introduces several new documentation and process improvements to the repository, focusing on coding standards, accessibility, wizard implementation patterns, and changelog formatting. It also updates development environment configuration and compliance suppressions for test files.
Documentation and Standards:
.github/instructions/typescript.instructions.mdwith strict TypeScript patterns, anti-patterns, error handling practices, and VS Code extension development conventions..github/instructions/wizard.instructions.mddescribing best practices and file structure for implementing multi-step wizards with AzureWizard, including context management and back navigation rules..github/skills/accessibility-aria-expert/SKILL.md, providing detailed rules and patterns for ensuring accessibility in React/Fluent UI webviews, including ARIA usage, focus management, and screen reader announcements..github/skills/writing-release-notes/CHANGELOG-FORMAT.mddefining the required format, categories, and style forCHANGELOG.mdentries, with examples and anti-patterns.Development Environment and Compliance:
.devcontainer/devcontainer.jsonto runnpm run buildafter container creation and ensures both install and build steps are run whenpackage.jsonchanges, improving reliability of the development environment. [1] [2].azure-pipelines/compliance/CredScanSuppressions.jsonto suppress false positives for fake credentials in additional test files.