From bf246c926803fbd2009d5da90afcc78e5453e9ee Mon Sep 17 00:00:00 2001 From: "Benjin Dubishar (from Dev Box)" Date: Thu, 2 Oct 2025 17:17:06 -0700 Subject: [PATCH 1/2] Formatting markdown files --- .github/REVIEW_GUIDELINES.md | 26 +- .github/pull_request_template.md | 13 +- AGENTS.md | 129 ++- CHANGELOG.md | 1032 ++++++++++------- CODE_FORMATTING.md | 13 +- DEVELOPMENT.md | 12 +- KERBEROS_HELP.md | 157 +-- README.md | 216 ++-- SECURITY.md | 22 +- images/ux/README.md | 2 +- localization/README.md | 53 +- .../connection-sharing-sample/CHANGELOG.md | 2 +- samples/connection-sharing-sample/README.md | 8 +- syntaxes/README.md | 2 +- test/e2e/README.md | 8 +- test/unit/AGENTS.md | 36 +- test/unit/README.md | 13 +- 17 files changed, 968 insertions(+), 776 deletions(-) diff --git a/.github/REVIEW_GUIDELINES.md b/.github/REVIEW_GUIDELINES.md index fded9531ee..8376f94306 100644 --- a/.github/REVIEW_GUIDELINES.md +++ b/.github/REVIEW_GUIDELINES.md @@ -3,20 +3,22 @@ Please keep these principles in mind while reviewing or submitting a PR: ### Author Responsibilities -- **Be descriptive.** Include relevant context, especially for UX-affecting or feature-level changes. -- **Keep it focused.** Don’t combine unrelated features, refactors, or style changes in a single PR. -- **Add tests.** Include or update unit/integration tests where possible. -- **Tag reviewers.** Assign reviewers familiar with the code area or issue. -- **Surface important diffs.** Use comments to draw attention to anything non-obvious or potentially controversial. -- **Ensure stability.** Double-check that this change doesn’t break core features like connection flow, query execution, or the editor UI. + +- **Be descriptive.** Include relevant context, especially for UX-affecting or feature-level changes. +- **Keep it focused.** Don’t combine unrelated features, refactors, or style changes in a single PR. +- **Add tests.** Include or update unit/integration tests where possible. +- **Tag reviewers.** Assign reviewers familiar with the code area or issue. +- **Surface important diffs.** Use comments to draw attention to anything non-obvious or potentially controversial. +- **Ensure stability.** Double-check that this change doesn’t break core features like connection flow, query execution, or the editor UI. ### Reviewer Responsibilities -- **Understand the context.** Read the PR description before reviewing code. -- **Don't rubber-stamp.** Approve only after reviewing the actual code changes. -- **Request missing tests.** If there’s logic but no tests, ask why. -- **Call out breaking behavior.** Note anything that might affect extensions, users, or existing workflows. -- **Follow up.** Don’t complete PRs with unresolved threads unless explicitly delegated. + +- **Understand the context.** Read the PR description before reviewing code. +- **Don't rubber-stamp.** Approve only after reviewing the actual code changes. +- **Request missing tests.** If there’s logic but no tests, ask why. +- **Call out breaking behavior.** Note anything that might affect extensions, users, or existing workflows. +- **Follow up.** Don’t complete PRs with unresolved threads unless explicitly delegated. ## Additional Notes -*Add anything extra reviewers should be aware of – links to specs, design docs, screenshots, test logs, telemetry updates, or any TODOs still in scope.* \ No newline at end of file +_Add anything extra reviewers should be aware of – links to specs, design docs, screenshots, test logs, telemetry updates, or any TODOs still in scope._ diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 3dad13d32a..c87ba60301 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -2,15 +2,14 @@ ## Description -*Provide a clear, concise summary of the changes in this PR. What problem does it solve? Why is it needed? Link any related issues using [issue closing keywords](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue).* +_Provide a clear, concise summary of the changes in this PR. What problem does it solve? Why is it needed? Link any related issues using [issue closing keywords](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)._ ## Code Changes Checklist -- [ ] New or updated **unit tests** added -- [ ] All existing tests pass (`npm run test`) -- [ ] Code follows [contributing guidelines](https://github.com/microsoft/vscode-mssql/blob/main/CONTRIBUTING.md) -- [ ] Telemetry/logging updated if relevant -- [ ] No regressions or UX breakage +- [ ] New or updated **unit tests** added +- [ ] All existing tests pass (`npm run test`) +- [ ] Code follows [contributing guidelines](https://github.com/microsoft/vscode-mssql/blob/main/CONTRIBUTING.md) +- [ ] Telemetry/logging updated if relevant +- [ ] No regressions or UX breakage ## Reviewers: [Please read our reviewer guidelines](https://github.com/microsoft/vscode-mssql/blob/main/.github/REVIEW_GUIDELINES.md) - diff --git a/AGENTS.md b/AGENTS.md index 9db5167fbc..40f3994152 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -11,16 +11,18 @@ The MSSQL Extension for Visual Studio Code is a TypeScript-based VS Code extensi **NEVER CANCEL** any build or test commands. These operations can take significant time and should be allowed to complete. #### Initial Setup (Required once) + ```bash # Ensure correct Node.js version (v20+) node --version # Should be v20.19.4 or higher -yarn --version # Should be v1.22+ +yarn --version # Should be v1.22+ # Install dependencies - takes ~60 seconds initial, ~11 seconds subsequent. NEVER CANCEL. Set timeout to 120+ seconds. yarn install ``` #### Build Commands + ```bash # Full build - takes ~19 seconds. NEVER CANCEL. Set timeout to 60+ seconds. yarn build @@ -32,11 +34,12 @@ yarn watch ``` #### Individual Build Steps (if needed) + ```bash # Prepare assets and localization (~2 seconds) yarn build:prepare -# Compile extension TypeScript (~5 seconds) +# Compile extension TypeScript (~5 seconds) yarn build:extension # Bundle extension (~1 second) @@ -50,6 +53,7 @@ yarn build:webviews-bundle ``` ### Linting and Code Quality + ```bash # Lint source files only - takes ~1.5 seconds yarn lint src/ test/ @@ -60,6 +64,7 @@ yarn lint src/ test/ ### Testing #### Unit Tests + ```bash # Unit tests require VS Code download and cannot run in sandboxed environments # This is expected behavior - tests work in CI with proper VS Code setup @@ -73,13 +78,15 @@ yarn test --testPattern "QueryRunner" # Alternative syntax for test filt ``` #### E2E Tests (Smoke Tests) + ```bash # E2E tests also require VS Code and SQL Server setup -yarn smoketest +yarn smoketest # Requires: SQL Server running, connection credentials, VS Code installation ``` ### Packaging + ```bash # Install vsce globally (if not already installed) npm install -g vsce @@ -94,19 +101,22 @@ yarn package --offline # Creates platform-specific packages with embedded servi **Always test the following scenarios after making changes:** ### Complete Build Validation + 1. Clean install: `rm -rf node_modules && yarn install` -2. Full build: `yarn build` +2. Full build: `yarn build` 3. Lint check: `yarn lint src/ test/` 4. Package creation: `yarn package --online` 5. Verify VSIX file is created (~12-15MB is normal) ### Development Workflow Validation + 1. Start watch mode: `yarn watch` 2. Make a small change to a TypeScript file in `src/` 3. Verify automatic recompilation occurs 4. Stop watch mode with Ctrl+C ### Pre-Commit Validation Workflow + ```bash # Always run these commands before committing changes: yarn build # Ensure code compiles @@ -115,87 +125,98 @@ yarn package --online # Ensure extension can be packaged ``` ### Code Quality Validation -- Always run `yarn lint src/ test/` before committing -- Check for TypeScript compilation errors: `yarn build:extension` and `yarn build:webviews` -- Verify no new warnings are introduced during build + +- Always run `yarn lint src/ test/` before committing +- Check for TypeScript compilation errors: `yarn build:extension` and `yarn build:webviews` +- Verify no new warnings are introduced during build ## Project Structure ### Key Directories -- `src/` - Main extension source code (TypeScript) - - `copilot/` - GitHub Copilot integration features - - `controllers/` - Extension controllers and logic - - `reactviews/` - React components for webviews - - `services/` - Core business logic services -- `test/` - Unit and E2E tests -- `scripts/` - Build and utility scripts -- `dist/` - Build output (not in repository) -- `localization/` - Multi-language support files + +- `src/` - Main extension source code (TypeScript) + - `copilot/` - GitHub Copilot integration features + - `controllers/` - Extension controllers and logic + - `reactviews/` - React components for webviews + - `services/` - Core business logic services +- `test/` - Unit and E2E tests +- `scripts/` - Build and utility scripts +- `dist/` - Build output (not in repository) +- `localization/` - Multi-language support files ### Important Files -- `package.json` - Extension manifest and build scripts -- `tsconfig.extension.json` - TypeScript config for extension code -- `tsconfig.react.json` - TypeScript config for React webviews -- `eslint.config.mjs` - Linting configuration -- `prettier.config.mjs` - Code formatting rules + +- `package.json` - Extension manifest and build scripts +- `tsconfig.extension.json` - TypeScript config for extension code +- `tsconfig.react.json` - TypeScript config for React webviews +- `eslint.config.mjs` - Linting configuration +- `prettier.config.mjs` - Code formatting rules ## Common Commands and Expected Times -| Command | Expected Time | Timeout Setting | Description | -|---------|---------------|-----------------|-------------| -| `yarn install` | ~60s initial, ~11s subsequent | 120+ seconds | NEVER CANCEL: Installs all dependencies | -| `yarn build` | ~19 seconds | 60+ seconds | NEVER CANCEL: Complete build process | -| `yarn build:extension` | ~5 seconds | 30+ seconds | Compile extension TypeScript | -| `yarn build:webviews` | ~8 seconds | 30+ seconds | Compile React webviews | -| `yarn lint src/ test/` | ~1.5 seconds | 30+ seconds | Lint source files only | -| `yarn package --online` | ~4.5 seconds | 60+ seconds | NEVER CANCEL: Create VSIX package | -| `yarn watch` | Continuous | N/A | Development watch mode | +| Command | Expected Time | Timeout Setting | Description | +| ----------------------- | ----------------------------- | --------------- | --------------------------------------- | +| `yarn install` | ~60s initial, ~11s subsequent | 120+ seconds | NEVER CANCEL: Installs all dependencies | +| `yarn build` | ~19 seconds | 60+ seconds | NEVER CANCEL: Complete build process | +| `yarn build:extension` | ~5 seconds | 30+ seconds | Compile extension TypeScript | +| `yarn build:webviews` | ~8 seconds | 30+ seconds | Compile React webviews | +| `yarn lint src/ test/` | ~1.5 seconds | 30+ seconds | Lint source files only | +| `yarn package --online` | ~4.5 seconds | 60+ seconds | NEVER CANCEL: Create VSIX package | +| `yarn watch` | Continuous | N/A | Development watch mode | ## Build Troubleshooting ### Common Issues and Solutions #### Lint Failures -- **Issue**: `yarn lint` fails with "Definition for rule not found" -- **Solution**: Use `yarn lint src/ test/` to lint source files only, not build output + +- **Issue**: `yarn lint` fails with "Definition for rule not found" +- **Solution**: Use `yarn lint src/ test/` to lint source files only, not build output #### VS Code Tests Failing -- **Issue**: Tests fail with "ENOTFOUND update.code.visualstudio.com" -- **Solution**: Expected in sandboxed environments. Tests require internet access to download VS Code. + +- **Issue**: Tests fail with "ENOTFOUND update.code.visualstudio.com" +- **Solution**: Expected in sandboxed environments. Tests require internet access to download VS Code. #### Build Warnings -- **Issue**: Engine warnings: "The engine 'vscode' appears to be invalid" -- **Solution**: These are harmless warnings and can be ignored. -#### Watch Mode Issues -- **Issue**: Watch mode not detecting changes -- **Solution**: Stop watch mode (Ctrl+C) and restart: `yarn watch` +- **Issue**: Engine warnings: "The engine 'vscode' appears to be invalid" +- **Solution**: These are harmless warnings and can be ignored. + +#### Watch Mode Issues + +- **Issue**: Watch mode not detecting changes +- **Solution**: Stop watch mode (Ctrl+C) and restart: `yarn watch` ### CI/CD Expectations -- The GitHub Actions workflow expects all these commands to work -- Build must complete in under 60 seconds -- Linting must pass with zero errors -- VSIX package size should be under 25MB -- No localization updates should be required unless strings changed + +- The GitHub Actions workflow expects all these commands to work +- Build must complete in under 60 seconds +- Linting must pass with zero errors +- VSIX package size should be under 25MB +- No localization updates should be required unless strings changed ## Architecture Notes ### Extension Components -- **Main Extension**: Entry point in `src/extension.ts` -- **Webview Controllers**: React-based UI components for database management -- **Services**: SQL Tools Service integration, connection management, query execution -- **AI Integration**: GitHub Copilot features for SQL assistance and agent mode -### Build Pipeline +- **Main Extension**: Entry point in `src/extension.ts` +- **Webview Controllers**: React-based UI components for database management +- **Services**: SQL Tools Service integration, connection management, query execution +- **AI Integration**: GitHub Copilot features for SQL assistance and agent mode + +### Build Pipeline + 1. **Asset Preparation**: Copies test resources and generates localized strings -2. **TypeScript Compilation**: Compiles both extension and webview code separately +2. **TypeScript Compilation**: Compiles both extension and webview code separately 3. **Bundling**: Uses esbuild to create optimized bundles for production 4. **Packaging**: Creates VSIX file with all assets and dependencies ### Development Patterns -- Use `yarn watch` during development for live compilation -- Always run linting before committing changes -- Build and package extension to test full integration -- Extension can be debugged by installing VSIX in VS Code + +- Use `yarn watch` during development for live compilation +- Always run linting before committing changes +- Build and package extension to test full integration +- Extension can be debugged by installing VSIX in VS Code **Remember**: NEVER CANCEL long-running build or test commands. Always set appropriate timeouts and wait for completion. diff --git a/CHANGELOG.md b/CHANGELOG.md index e5d9b37ed7..151b3acdbb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,658 +1,802 @@ # Change Log ## Version 1.36.0 -* Release date: September 11, 2025 -* Release status: GA + +- Release date: September 11, 2025 +- Release status: GA + ### What’s new in 1.36.0 -* Introduced Fabric Connectivity (Public Preview) to browse Fabric workspaces and connect to SQL databases or SQL analytics endpoints directly from the Connection dialog -* Introduced SQL database in Fabric provisioning (Public Preview) to create Fabric SQL databases from the Deployments page with capacity awareness and automatic connection on completion -* Added GitHub Copilot Slash Commands (Public Preview) providing quick chat shortcuts for connection management, schema exploration, and query tasks -* Enabled Schema Compare to be launched from external extensions and SQL Projects through a new run command, also used to support the Update Project From Database feature -* Improved query results performance and stability including incremental streaming, smoother tab switching without freezes, honoring `mssql.persistQueryResultTabs` setting, and preventing file‑close race conditions during execution -* Improved connection reliability when opening via VS Code URIs and resolved authentication issues, including preserving saved passwords after failed connections -* Fixed an issue where invalid Microsoft Entra ID account entries could result in no accounts or tenants appearing in the Connection dialog -* Fixed an issue where the Most Recently Used list saved the active database instead of `` + +- Introduced Fabric Connectivity (Public Preview) to browse Fabric workspaces and connect to SQL databases or SQL analytics endpoints directly from the Connection dialog +- Introduced SQL database in Fabric provisioning (Public Preview) to create Fabric SQL databases from the Deployments page with capacity awareness and automatic connection on completion +- Added GitHub Copilot Slash Commands (Public Preview) providing quick chat shortcuts for connection management, schema exploration, and query tasks +- Enabled Schema Compare to be launched from external extensions and SQL Projects through a new run command, also used to support the Update Project From Database feature +- Improved query results performance and stability including incremental streaming, smoother tab switching without freezes, honoring `mssql.persistQueryResultTabs` setting, and preventing file‑close race conditions during execution +- Improved connection reliability when opening via VS Code URIs and resolved authentication issues, including preserving saved passwords after failed connections +- Fixed an issue where invalid Microsoft Entra ID account entries could result in no accounts or tenants appearing in the Connection dialog +- Fixed an issue where the Most Recently Used list saved the active database instead of `` ## Version 1.35.0 -* Release date: August 20, 2025 -* Release status: GA + +- Release date: August 20, 2025 +- Release status: GA + ### What’s new in 1.35.0 -* Released general availability of Schema Designer, Schema Compare, and Local SQL Server Container -* Fixed an issue where Microsoft Entra ID sign-in in the Connection Dialog could result in empty account or tenant dropdowns -* Improved performance and usability of query results grid, including fixes for export and display bugs -* Added Text View mode for result sets to display results as plain text. -* Added support to temporarily remember SQL Auth passwords for the session until VS Code is restarted -* Improved localization in Object Explorer and other UI components -* Fixed multiple accessibility issues affecting error messages and visual feedback across the UI -* Fixed edge case issues where GitHub Copilot Agent responses could misbehave when switching database connections + +- Released general availability of Schema Designer, Schema Compare, and Local SQL Server Container +- Fixed an issue where Microsoft Entra ID sign-in in the Connection Dialog could result in empty account or tenant dropdowns +- Improved performance and usability of query results grid, including fixes for export and display bugs +- Added Text View mode for result sets to display results as plain text. +- Added support to temporarily remember SQL Auth passwords for the session until VS Code is restarted +- Improved localization in Object Explorer and other UI components +- Fixed multiple accessibility issues affecting error messages and visual feedback across the UI +- Fixed edge case issues where GitHub Copilot Agent responses could misbehave when switching database connections ## Version 1.34.1 -* Release date: August 13, 2025 -* Release status: GA + +- Release date: August 13, 2025 +- Release status: GA + ### What’s new in 1.34.1 -* Fixed bug in GitHub Copilot Ask Mode related to explicit GPT-4o model selection -* Fixed bug in Local Container Deployment where Apple Silicon Mac users may be unable to pull SQL Server images + +- Fixed bug in GitHub Copilot Ask Mode related to explicit GPT-4o model selection +- Fixed bug in Local Container Deployment where Apple Silicon Mac users may be unable to pull SQL Server images ## Version 1.34.0 -* Release date: July 23, 2025 -* Release status: GA + +- Release date: July 23, 2025 +- Release status: GA + ### What’s new in 1.34.0 -* Expanded GitHub Copilot Agent Mode to support running T-SQL queries, listing database objects, switching databases, and retrieving connection details -* Fixed GitHub Copilot chat participant repeating previous prompts when switching database connections -* Added connection group support to Local SQL Server container wizard -* Fixed missing key icons for foreign keys and improved filter behavior to reflect table relationships in Schema Designer -* Enhanced connection status bar with optional group-based coloring and configurable length — Thanks to @bathetrade for the configurable length contribution! -* Added connection-sharing permissions API for other VS Code extensions that wish to use MSSQL connections -* Added support for multiple Azure account sign-in to browsing Azure and firewall rule management dialogs -* Fixed an issue where Always Encrypted columns protected by AKV-based master keys could not be queried -* Fixed several accessibility issues in the connection dialog, schema designer, and schema compare features + +- Expanded GitHub Copilot Agent Mode to support running T-SQL queries, listing database objects, switching databases, and retrieving connection details +- Fixed GitHub Copilot chat participant repeating previous prompts when switching database connections +- Added connection group support to Local SQL Server container wizard +- Fixed missing key icons for foreign keys and improved filter behavior to reflect table relationships in Schema Designer +- Enhanced connection status bar with optional group-based coloring and configurable length — Thanks to @bathetrade for the configurable length contribution! +- Added connection-sharing permissions API for other VS Code extensions that wish to use MSSQL connections +- Added support for multiple Azure account sign-in to browsing Azure and firewall rule management dialogs +- Fixed an issue where Always Encrypted columns protected by AKV-based master keys could not be queried +- Fixed several accessibility issues in the connection dialog, schema designer, and schema compare features ## Version 1.33.0 -* Release date: June 18, 2025 -* Release status: GA + +- Release date: June 18, 2025 +- Release status: GA + ### What’s new in 1.33.0 -* Introduced Local SQL Server Containers (Public Preview) for local development — spin up SQL Server containers in seconds inside VS Code with SQL Server 2025 by default, no Docker commands needed -* Introduced GitHub Copilot Agent Mode (Public Preview) to connect, disconnect, or switch databases, and explore and visualize schemas with smart, context-aware suggestions -* Added Connection Groups for organized connection management — group local, staging, and production connections for clearer structure and faster switching -* Fixed query execution issues with GitHub Copilot -* Improved connection pooling behavior for serverless databases -* Fixed JSON export handling for decimal values in Query Results -* Fixed Schema Compare dropdown selection -* Enhanced Schema Designer usability — faster loading, better filters, improved auto-arrange, clearer export options, and UI refinements + +- Introduced Local SQL Server Containers (Public Preview) for local development — spin up SQL Server containers in seconds inside VS Code with SQL Server 2025 by default, no Docker commands needed +- Introduced GitHub Copilot Agent Mode (Public Preview) to connect, disconnect, or switch databases, and explore and visualize schemas with smart, context-aware suggestions +- Added Connection Groups for organized connection management — group local, staging, and production connections for clearer structure and faster switching +- Fixed query execution issues with GitHub Copilot +- Improved connection pooling behavior for serverless databases +- Fixed JSON export handling for decimal values in Query Results +- Fixed Schema Compare dropdown selection +- Enhanced Schema Designer usability — faster loading, better filters, improved auto-arrange, clearer export options, and UI refinements ## Version 1.32.1 -* Release date: June 2, 2025 -* Release status: GA + +- Release date: June 2, 2025 +- Release status: GA + ### What's new in 1.32.1 -* Fixed an issue where Group By Schema was not working in some cases -* Added server connection status labels to MSSQL integration with GitHub Copilot + +- Fixed an issue where Group By Schema was not working in some cases +- Added server connection status labels to MSSQL integration with GitHub Copilot ## Version 1.32.0 -* Release date: May 19, 2025 -* Release status: GA + +- Release date: May 19, 2025 +- Release status: GA + ### What’s new in 1.32.0 -* Released general availability of the modern UI—new Connection dialog, Object Explorer filtering, Table Designer, Query Results pane, and Query Plan Visualizer -* Introduced GitHub Copilot integration (Preview) for AI‑powered SQL assistance—generate T‑SQL and ORM code, explore schemas, optimize queries, and streamline database development workflows -* Introduced Schema Designer (Preview) for visual database schema modeling and editing—code‑free -* Added vector datatype support in Object Explorer, scripting operations, and Table Designer -* Fixed Schema Compare (Preview) issues related to comparison and scripting -* Improved connection reliability by resolving login failure errors and VPN-related hangs -* Enhanced Query Results stability by fixing white screen when moving panels and results disappearing on save -* Fixed Object Explorer scripting errors in various scenarios + +- Released general availability of the modern UI—new Connection dialog, Object Explorer filtering, Table Designer, Query Results pane, and Query Plan Visualizer +- Introduced GitHub Copilot integration (Preview) for AI‑powered SQL assistance—generate T‑SQL and ORM code, explore schemas, optimize queries, and streamline database development workflows +- Introduced Schema Designer (Preview) for visual database schema modeling and editing—code‑free +- Added vector datatype support in Object Explorer, scripting operations, and Table Designer +- Fixed Schema Compare (Preview) issues related to comparison and scripting +- Improved connection reliability by resolving login failure errors and VPN-related hangs +- Enhanced Query Results stability by fixing white screen when moving panels and results disappearing on save +- Fixed Object Explorer scripting errors in various scenarios ## Version 1.31.1 -* Release date: May 2, 2025 -* Release status: GA + +- Release date: May 2, 2025 +- Release status: GA + ### What’s new in 1.31.1 -* Resolved an issue related to tokens with local logging in some instances + +- Resolved an issue related to tokens with local logging in some instances ## Version 1.31.0 -* Release date: April 30, 2025 -* Release status: GA + +- Release date: April 30, 2025 +- Release status: GA + ### What’s new in 1.31.0 -* Introduced Schema Compare (Preview) to visually compare and script out schema differences -* Enhanced Query Results experience with live execution timing summary metrics and stability improvements on large result sets -* Improved connection workflow with smarter retries streamlined error handling and seamless AAD sign-in support -* Resolved Fabric SQL Database connectivity issues for more reliable cloud access -* UI/UX enhancements including removal of duplicate saved connections and elimination of console errors in the results pane + +- Introduced Schema Compare (Preview) to visually compare and script out schema differences +- Enhanced Query Results experience with live execution timing summary metrics and stability improvements on large result sets +- Improved connection workflow with smarter retries streamlined error handling and seamless AAD sign-in support +- Resolved Fabric SQL Database connectivity issues for more reliable cloud access +- UI/UX enhancements including removal of duplicate saved connections and elimination of console errors in the results pane ## Version 1.30.0 -* Release date: March 31, 2025 -* Release status: GA + +- Release date: March 31, 2025 +- Release status: GA + ### What’s new in 1.30.0 -* Enabled new UI enhancements by default for improved development experience -* Improved reliability in Connection Dialog and Connections view -* Enhanced usability in Query Results pane -* Fixed Azure subscription loading issues -* Accessibility improvements across the extension + +- Enabled new UI enhancements by default for improved development experience +- Improved reliability in Connection Dialog and Connections view +- Enhanced usability in Query Results pane +- Fixed Azure subscription loading issues +- Accessibility improvements across the extension ## Version 1.29.1 -* Release date: March 12, 2025 -* Release status: GA + +- Release date: March 12, 2025 +- Release status: GA + ### What's new in 1.29.1 -* Resolved an issue in the Azure Browse feature where subscriptions failed to load due to an outdated dependency + +- Resolved an issue in the Azure Browse feature where subscriptions failed to load due to an outdated dependency ## Version 1.29.0 -* Release date: February 26, 2025 -* Release status: GA + +- Release date: February 26, 2025 +- Release status: GA + ### What's new in 1.29.0 -* Fixed support for Always Encrypted - Secure Enclaves in the Connection Dialog -* Removed SQL editor actions from Git diff editor to improve usability -* Fixed Query Result pane issues related to copying data while sorting and filtering -* Fixed an issue with Query Result pane column filters in multiple result set scenarios where filter settings might get shared between result sets -* Fixed accessibility issues in Query Plan Visualizer -* Fixed indefinite hangs when connecting to paused Azure SQL Database Serverless databases -* Fixed issue where HTTPS-over-HTTP proxies were not getting handled correctly + +- Fixed support for Always Encrypted - Secure Enclaves in the Connection Dialog +- Removed SQL editor actions from Git diff editor to improve usability +- Fixed Query Result pane issues related to copying data while sorting and filtering +- Fixed an issue with Query Result pane column filters in multiple result set scenarios where filter settings might get shared between result sets +- Fixed accessibility issues in Query Plan Visualizer +- Fixed indefinite hangs when connecting to paused Azure SQL Database Serverless databases +- Fixed issue where HTTPS-over-HTTP proxies were not getting handled correctly ## Version 1.28.0 -* Release date: January 29, 2025 -* Release status: GA + +- Release date: January 29, 2025 +- Release status: GA + ### What's new in 1.28.0 -* Added support for `mssql.resultsFontSize` and `mssql.resultsFontFamily` in the new query results grid, to enable customization of font size and style. -* Added automatic detection of non T-SQL dialects, and disabling of error detection when found. -* Added auto-resize functionality to the new query results grid, enabling columns to automatically adjust their width based on the data they contain. -* Added support for Edge tables in the new Table Designer -* Fixed usability and accessibility issues in the Connection Dialog, Table Designer, and Query Results Pane. + +- Added support for `mssql.resultsFontSize` and `mssql.resultsFontFamily` in the new query results grid, to enable customization of font size and style. +- Added automatic detection of non T-SQL dialects, and disabling of error detection when found. +- Added auto-resize functionality to the new query results grid, enabling columns to automatically adjust their width based on the data they contain. +- Added support for Edge tables in the new Table Designer +- Fixed usability and accessibility issues in the Connection Dialog, Table Designer, and Query Results Pane. ## Version 1.27.0 -* Release date: December 18, 2024 -* Release status: GA + +- Release date: December 18, 2024 +- Release status: GA + ### What's new in 1.27.0 -* Added the ability to filter query result rows by value -* Added the ability to maximize a specific result set from a query result with multiple sets -* Added a prompt for adding a firewall rule when using the new Connection Dialog to connect to an Azure SQL Database logical server -* Fixed usability bugs encountered when viewing query plans -* Improved performance when resizing the new query results pane with many result sets -* Fixed several bugs related to the query result message display + +- Added the ability to filter query result rows by value +- Added the ability to maximize a specific result set from a query result with multiple sets +- Added a prompt for adding a firewall rule when using the new Connection Dialog to connect to an Azure SQL Database logical server +- Fixed usability bugs encountered when viewing query plans +- Improved performance when resizing the new query results pane with many result sets +- Fixed several bugs related to the query result message display ## Version 1.26.0 -* Release date: November 20, 2024 -* Release status: GA + +- Release date: November 20, 2024 +- Release status: GA + ### What's new in 1.26.0 -* Added the ability to open query results in a tab for the new UI, replicating the functionality of the previous query results experience. -* Added the `mssql.openQueryResultsInTabByDefault` setting, allowing users to set this behavior as the default (applicable only when `mssql.enableRichExperiences` is enabled). -* Added ability to view the actual query plan for executed queries in the new UI. -* Added support for Visual Studio Code theming in the new UI. + +- Added the ability to open query results in a tab for the new UI, replicating the functionality of the previous query results experience. +- Added the `mssql.openQueryResultsInTabByDefault` setting, allowing users to set this behavior as the default (applicable only when `mssql.enableRichExperiences` is enabled). +- Added ability to view the actual query plan for executed queries in the new UI. +- Added support for Visual Studio Code theming in the new UI. ## Version 1.25.0 -* Release date: October 23, 2024 -* Release status: GA + +- Release date: October 23, 2024 +- Release status: GA + ### What's new in 1.25.0 -* Added `mssql.enableRichExperiences` setting to enable modern experiences (public preview), including a connection dialog, table designer, new query results pane, query plan viewing, and object explorer filtering. [Learn more](https://github.com/microsoft/vscode-mssql/blob/main/FEATURES.md#modern-features-in-mssql-for-visual-studio-code) -* Added multiple result set support in new query results pane -* Added browsing your Azure subscriptions to connect to a SQL database + +- Added `mssql.enableRichExperiences` setting to enable modern experiences (public preview), including a connection dialog, table designer, new query results pane, query plan viewing, and object explorer filtering. [Learn more](https://github.com/microsoft/vscode-mssql/blob/main/FEATURES.md#modern-features-in-mssql-for-visual-studio-code) +- Added multiple result set support in new query results pane +- Added browsing your Azure subscriptions to connect to a SQL database ## Version 1.24.0 -* Release date: September, 4, 2024 -* Release status: GA + +- Release date: September, 4, 2024 +- Release status: GA + ### What's new in 1.24.0 -* Fix [Query messages lost switching tabs](https://github.com/microsoft/azuredatastudio/issues/25525) bug -* Add `mssql.enableExperimentalFeatures` setting to enable early preview connection, query plan, and table design experiences -* Fix several accessibility bugs + +- Fix [Query messages lost switching tabs](https://github.com/microsoft/azuredatastudio/issues/25525) bug +- Add `mssql.enableExperimentalFeatures` setting to enable early preview connection, query plan, and table design experiences +- Fix several accessibility bugs ## Version 1.23.0 -* Release date: July, 31, 2024 -* Release status: GA + +- Release date: July, 31, 2024 +- Release status: GA + ### What's new in 1.23.0 -* update STS dependency to address [Transaction Isolation Level](https://github.com/microsoft/azuredatastudio/issues/25525) bug + +- update STS dependency to address [Transaction Isolation Level](https://github.com/microsoft/azuredatastudio/issues/25525) bug ## Version 1.22.1 -* Release date: January, 10, 2024 -* Release status: GA + +- Release date: January, 10, 2024 +- Release status: GA + ### What's new in 1.22.1 -* update STS dependency to address [CVE-2024-0056](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2024-0056) + +- update STS dependency to address [CVE-2024-0056](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2024-0056) ## Version 1.22.0 -* Release date: November 8, 2023 -* Release status: GA + +- Release date: November 8, 2023 +- Release status: GA + ### What's new in 1.22.0 -* Azure Active Directory (Azure AD) is renamed to Entra Id - [#17824](https://github.com/microsoft/vscode-mssql/issues/17824) -* Added command for clearing Azure token cache - [#17807](https://github.com/microsoft/vscode-mssql/issues/17807) -* Added support for setting Firewall rule name in firewall rule - [#17803](https://github.com/microsoft/vscode-mssql/issues/17803) -* Removed Azure tenant config filter setting - [#17798](https://github.com/microsoft/vscode-mssql/issues/17798) -* Bug Fixes: - - Fixed Firewall Rule creation issues when prompted - [#17607](https://github.com/microsoft/vscode-mssql/issues/17607) - - Fixed proxy error 502 when downloading Sql Tools Service - [#17772](https://github.com/microsoft/vscode-mssql/issues/17772) - - Fixed an issue where connection profile could not be saved after enabling trust server certificate [#17805](https://github.com/microsoft/vscode-mssql/issues/17805) +- Azure Active Directory (Azure AD) is renamed to Entra Id - [#17824](https://github.com/microsoft/vscode-mssql/issues/17824) +- Added command for clearing Azure token cache - [#17807](https://github.com/microsoft/vscode-mssql/issues/17807) +- Added support for setting Firewall rule name in firewall rule - [#17803](https://github.com/microsoft/vscode-mssql/issues/17803) +- Removed Azure tenant config filter setting - [#17798](https://github.com/microsoft/vscode-mssql/issues/17798) + +- Bug Fixes: + - Fixed Firewall Rule creation issues when prompted - [#17607](https://github.com/microsoft/vscode-mssql/issues/17607) + - Fixed proxy error 502 when downloading Sql Tools Service - [#17772](https://github.com/microsoft/vscode-mssql/issues/17772) + - Fixed an issue where connection profile could not be saved after enabling trust server certificate [#17805](https://github.com/microsoft/vscode-mssql/issues/17805) ## Version 1.21.0 -* Release date: September 20, 2023 -* Release status: GA + +- Release date: September 20, 2023 +- Release status: GA + ### What's new in 1.21.0 -* Enabled connection pooling by default and added command support to clear pooled connections - https://github.com/microsoft/vscode-mssql/pull/17786 -* Added setting to configure `maxCharsToStore` to allow reading large data strings - https://github.com/microsoft/vscode-mssql/issues/1052 -* Bug Fixes - - Fixed status bar to show correct 'Encryption' option for connection - https://github.com/microsoft/vscode-mssql/issues/17671 + +- Enabled connection pooling by default and added command support to clear pooled connections - https://github.com/microsoft/vscode-mssql/pull/17786 +- Added setting to configure `maxCharsToStore` to allow reading large data strings - https://github.com/microsoft/vscode-mssql/issues/1052 +- Bug Fixes + - Fixed status bar to show correct 'Encryption' option for connection - https://github.com/microsoft/vscode-mssql/issues/17671 ## Version 1.20.1 -* Release date: August 7, 2023 -* Release status: GA + +- Release date: August 7, 2023 +- Release status: GA + ### What's new in 1.20.1 -* Fixed an issue with not being able to download the SQL Tools Service Component in a proxy-enabled environment (https://github.com/microsoft/vscode-mssql/issues/17755) + +- Fixed an issue with not being able to download the SQL Tools Service Component in a proxy-enabled environment (https://github.com/microsoft/vscode-mssql/issues/17755) ## Version 1.20.0 -* Release date: July 26, 2023 -* Release status: GA + +- Release date: July 26, 2023 +- Release status: GA + ### What's new in 1.20.0 -* Added new setting to support enabling connection pooling for performance improvement - https://github.com/microsoft/vscode-mssql/pull/17733 -* Bug Fixes: - - Fixed issue where creating connection with connection string would fail - https://github.com/microsoft/vscode-mssql/pull/17737 - - Fixed issue where Copy actions wouldn't work on Data Grid cells - https://github.com/microsoft/vscode-mssql/pull/17722 - - Added missing DB Create syntax keyword colorization - https://github.com/microsoft/vscode-mssql/pull/17732 - - Improved connection description when selecting connection from quick pick - https://github.com/microsoft/vscode-mssql/pull/17737 - - Fixed authentication issue where user account could not be found in MSAL Cache in Linux - https://github.com/microsoft/vscode-mssql/pull/17747 + +- Added new setting to support enabling connection pooling for performance improvement - https://github.com/microsoft/vscode-mssql/pull/17733 +- Bug Fixes: + - Fixed issue where creating connection with connection string would fail - https://github.com/microsoft/vscode-mssql/pull/17737 + - Fixed issue where Copy actions wouldn't work on Data Grid cells - https://github.com/microsoft/vscode-mssql/pull/17722 + - Added missing DB Create syntax keyword colorization - https://github.com/microsoft/vscode-mssql/pull/17732 + - Improved connection description when selecting connection from quick pick - https://github.com/microsoft/vscode-mssql/pull/17737 + - Fixed authentication issue where user account could not be found in MSAL Cache in Linux - https://github.com/microsoft/vscode-mssql/pull/17747 ## Version 1.19.1 -* Release date: June 5, 2023 -* Release status: GA + +- Release date: June 5, 2023 +- Release status: GA + ### What's new in 1.19.1 -* Performance improvement in Query Editor language service by enabling connection pooling (https://github.com/microsoft/azuredatastudio/issues/22970) -* Fixed an issue where hyphenated user accounts failed to login to Azure SQL Server (https://github.com/microsoft/azuredatastudio/issues/23210) + +- Performance improvement in Query Editor language service by enabling connection pooling (https://github.com/microsoft/azuredatastudio/issues/22970) +- Fixed an issue where hyphenated user accounts failed to login to Azure SQL Server (https://github.com/microsoft/azuredatastudio/issues/23210) ## Version 1.19.0 -* Release date: May 24, 2023 -* Release status: GA + +- Release date: May 24, 2023 +- Release status: GA + ### What's new in 1.19.0 -* Added support for Linux ARM64 runtime - https://github.com/microsoft/vscode-mssql/pull/17639 -* Use preferred username instead of email for Azure accounts - https://github.com/microsoft/vscode-mssql/pull/17606 -* Removed prompt to select tenant when SQL Auth Provider is enabled - https://github.com/microsoft/vscode-mssql/pull/17611 -* Updated msal-node npm package to v1.16.0 - https://github.com/microsoft/vscode-mssql/pull/17605 -* Bug Fixes - - Added validation for servername before attempting connection https://github.com/microsoft/vscode-mssql/pull/17680 - - Fixed an issue when selecting "Add Azure Account" during profile creation prompts for profile name first https://github.com/microsoft/vscode-mssql/pull/17664 - - Fixed a bug where SQLCMD variables weren't getting JSONified https://github.com/microsoft/vscode-mssql/pull/17683 + +- Added support for Linux ARM64 runtime - https://github.com/microsoft/vscode-mssql/pull/17639 +- Use preferred username instead of email for Azure accounts - https://github.com/microsoft/vscode-mssql/pull/17606 +- Removed prompt to select tenant when SQL Auth Provider is enabled - https://github.com/microsoft/vscode-mssql/pull/17611 +- Updated msal-node npm package to v1.16.0 - https://github.com/microsoft/vscode-mssql/pull/17605 +- Bug Fixes + - Added validation for servername before attempting connection https://github.com/microsoft/vscode-mssql/pull/17680 + - Fixed an issue when selecting "Add Azure Account" during profile creation prompts for profile name first https://github.com/microsoft/vscode-mssql/pull/17664 + - Fixed a bug where SQLCMD variables weren't getting JSONified https://github.com/microsoft/vscode-mssql/pull/17683 ## Version 1.18.0 -* Release date: March 22, 2023 -* Release status: GA + +- Release date: March 22, 2023 +- Release status: GA ### What's new in 1.18.0 -* Upgraded AAD Azure account management to support MSAL authentication. -* Added native MacOS and Windows arm64 support - https://github.com/microsoft/vscode-mssql/issues/17614 -* Added "Group by Schema" to Object Explorer - https://github.com/microsoft/vscode-mssql/pull/17543 -* Add Object Explorer connection timeout setting - https://github.com/microsoft/vscode-mssql/pull/17548 -* Accessibility Fixes - - Screen Reader is not reading the full information related to the database name - https://github.com/microsoft/vscode-mssql/issues/17204 - - After pressing tab key from "More actions" keyboard focus is going to bottom status bar instead of going to the "messages" dropdown - https://github.com/microsoft/vscode-mssql/issues/17192 - - Message window does not expand and collapse with the help of keyboard and shortcut key - https://github.com/microsoft/vscode-mssql/issues/1687 + +- Upgraded AAD Azure account management to support MSAL authentication. +- Added native MacOS and Windows arm64 support - https://github.com/microsoft/vscode-mssql/issues/17614 +- Added "Group by Schema" to Object Explorer - https://github.com/microsoft/vscode-mssql/pull/17543 +- Add Object Explorer connection timeout setting - https://github.com/microsoft/vscode-mssql/pull/17548 +- Accessibility Fixes + - Screen Reader is not reading the full information related to the database name - https://github.com/microsoft/vscode-mssql/issues/17204 + - After pressing tab key from "More actions" keyboard focus is going to bottom status bar instead of going to the "messages" dropdown - https://github.com/microsoft/vscode-mssql/issues/17192 + - Message window does not expand and collapse with the help of keyboard and shortcut key - https://github.com/microsoft/vscode-mssql/issues/1687 ## Version 1.17.0 -* Release date: January 25, 2023 -* Release status: GA + +- Release date: January 25, 2023 +- Release status: GA ### What's new in 1.17.0 -* BREAKING CHANGE - Connection Encryption is now Enabled by Default - https://github.com/microsoft/vscode-mssql/pull/17484 - - Moving to Microsoft.Data.SqlClient 5.0.1 dependency with STS Update - - By default, saved connection profiles will connect with encryption and only accept trusted server certificates. This is a breaking change for some connections and some saved connection profiles may require updates to connect. - - See https://aka.ms/vscodemssql-connection for more information. -* Introduced [HostNameInCertificate](https://learn.microsoft.com/dotnet/api/microsoft.data.sqlclient.sqlconnectionstringbuilder.hostnameincertificate#microsoft-data-sqlclient-sqlconnectionstringbuilder-hostnameincertificate) Connection Property. -* Exposed getServerInfo API to allow Target Platform to be set automatically when creating SQL Projects from database - - https://github.com/microsoft/azuredatastudio/issues/20363 - - https://github.com/microsoft/azuredatastudio/issues/20576 -* Accessibility Fixes - - Fixed Screen Reader not reading status of "loading query" - https://github.com/microsoft/vscode-mssql/issues/17451 - - Fixed Screen Reader to announce messages table in a clearer manner - https://github.com/microsoft/vscode-mssql/issues/17450 - - Fixed issue where Results Table was not minimizable with keyboard - https://github.com/microsoft/vscode-mssql/issues/17452 + +- BREAKING CHANGE - Connection Encryption is now Enabled by Default - https://github.com/microsoft/vscode-mssql/pull/17484 + - Moving to Microsoft.Data.SqlClient 5.0.1 dependency with STS Update + - By default, saved connection profiles will connect with encryption and only accept trusted server certificates. This is a breaking change for some connections and some saved connection profiles may require updates to connect. + - See https://aka.ms/vscodemssql-connection for more information. +- Introduced [HostNameInCertificate](https://learn.microsoft.com/dotnet/api/microsoft.data.sqlclient.sqlconnectionstringbuilder.hostnameincertificate#microsoft-data-sqlclient-sqlconnectionstringbuilder-hostnameincertificate) Connection Property. +- Exposed getServerInfo API to allow Target Platform to be set automatically when creating SQL Projects from database + - https://github.com/microsoft/azuredatastudio/issues/20363 + - https://github.com/microsoft/azuredatastudio/issues/20576 +- Accessibility Fixes + - Fixed Screen Reader not reading status of "loading query" - https://github.com/microsoft/vscode-mssql/issues/17451 + - Fixed Screen Reader to announce messages table in a clearer manner - https://github.com/microsoft/vscode-mssql/issues/17450 + - Fixed issue where Results Table was not minimizable with keyboard - https://github.com/microsoft/vscode-mssql/issues/17452 ### SQL Grammar Fixes & Updates -* Fix function syntax highlighting including non-function keywords https://github.com/microsoft/vscode-mssql/pull/17462 -* Match "other" keywords last - https://github.com/microsoft/vscode-mssql/pull/17464 -* Syntax Update (Mostly from SQL 2022) - https://github.com/microsoft/vscode-mssql/pull/17465 -* Add SELECT ALL and FULL/NATURAL JOIN syntax to grammar - https://github.com/microsoft/vscode-mssql/pull/17508 - - Special thank you to https://github.com/hanohrs for their help with this! + +- Fix function syntax highlighting including non-function keywords https://github.com/microsoft/vscode-mssql/pull/17462 +- Match "other" keywords last - https://github.com/microsoft/vscode-mssql/pull/17464 +- Syntax Update (Mostly from SQL 2022) - https://github.com/microsoft/vscode-mssql/pull/17465 +- Add SELECT ALL and FULL/NATURAL JOIN syntax to grammar - https://github.com/microsoft/vscode-mssql/pull/17508 + - Special thank you to https://github.com/hanohrs for their help with this! ## Version 1.16.0 -* Release date: August 24, 2022 -* Release status: GA + +- Release date: August 24, 2022 +- Release status: GA ### What's new in 1.16.0 -* Added support for creating Azure Functions with SQL Bindings from Views in the Object Explorer -* Fixed issues with Integrated authentication in Unix environments https://github.com/microsoft/vscode-mssql/issues/17333 + +- Added support for creating Azure Functions with SQL Bindings from Views in the Object Explorer +- Fixed issues with Integrated authentication in Unix environments https://github.com/microsoft/vscode-mssql/issues/17333 ## Version 1.15.0 -* Release date: June 15, 2022 -* Release status: GA + +- Release date: June 15, 2022 +- Release status: GA ### What's new in 1.15.0 -* Add support for dependent extensions -* [Fixed issues](https://github.com/microsoft/vscode-mssql/milestone/22?closed=1) + +- Add support for dependent extensions +- [Fixed issues](https://github.com/microsoft/vscode-mssql/milestone/22?closed=1) ## Version 1.14.2 -* Release date: May 20, 2022 -* Release status: GA + +- Release date: May 20, 2022 +- Release status: GA ### What's new in 1.14.2 -* Adds extension APIs for managing Azure resources + +- Adds extension APIs for managing Azure resources ## Version 1.14.1 -* Release date: April 22, 2022 -* Release status: GA + +- Release date: April 22, 2022 +- Release status: GA ### What's new in 1.14.1 -* Fix regression in Object Explorer that causes timeouts expanding the Tables folder. https://github.com/microsoft/azuredatastudio/issues/19166 + +- Fix regression in Object Explorer that causes timeouts expanding the Tables folder. https://github.com/microsoft/azuredatastudio/issues/19166 ## Version 1.14.0 -* Release date: April 20, 2022 -* Release status: GA + +- Release date: April 20, 2022 +- Release status: GA ### What's new in 1.14.0 -* All SQL bindings functionality released in 1.13 moved to SQL bindings extension in extension pack -* Fixed connection string generated for SQL bindings on connection to `` database. https://github.com/microsoft/vscode-mssql/issues/17267 -* Fixed error with heirarchyID data type in results pane. https://github.com/microsoft/sqltoolsservice/pull/1450 + +- All SQL bindings functionality released in 1.13 moved to SQL bindings extension in extension pack +- Fixed connection string generated for SQL bindings on connection to `` database. https://github.com/microsoft/vscode-mssql/issues/17267 +- Fixed error with heirarchyID data type in results pane. https://github.com/microsoft/sqltoolsservice/pull/1450 ## Version 1.13.0 -* Release date: February 24, 2022 -* Release status: GA + +- Release date: February 24, 2022 +- Release status: GA ### What's new in 1.13.0 -* Adds context menu item for object explorer table nodes to create an Azure Function with SQL binding for that table -* Updated SqlParser to fix some intellisense issues -* Fixed decimal datatype handling https://github.com/microsoft/azuredatastudio/issues/275 -* Fixed BatchParser execution error caused by missing resource files https://github.com/microsoft/vscode-mssql/issues/17221 + +- Adds context menu item for object explorer table nodes to create an Azure Function with SQL binding for that table +- Updated SqlParser to fix some intellisense issues +- Fixed decimal datatype handling https://github.com/microsoft/azuredatastudio/issues/275 +- Fixed BatchParser execution error caused by missing resource files https://github.com/microsoft/vscode-mssql/issues/17221 ## Version 1.12.0 -* Release date: December 15, 2021 -* Release status: GA + +- Release date: December 15, 2021 +- Release status: GA ### What's new in 1.12.0 -* Fix AAD token refresh bugs -* Fix Azure SQL DB connectivity bug -* Add support for SELECT * column expansion -* Add Untrusted Workspace support + +- Fix AAD token refresh bugs +- Fix Azure SQL DB connectivity bug +- Add support for SELECT \* column expansion +- Add Untrusted Workspace support ## Version 1.11.1 -* Release date: November 17, 2021 -* Release status: GA + +- Release date: November 17, 2021 +- Release status: GA ### What's new in 1.11.1 -* Hotfix for credential keychain prompt on VS Code startup https://github.com/microsoft/vscode-mssql/issues/17064 + +- Hotfix for credential keychain prompt on VS Code startup https://github.com/microsoft/vscode-mssql/issues/17064 ## Version 1.11.0 -* Release date: October 27, 2021 -* Release status: GA + +- Release date: October 27, 2021 +- Release status: GA ### What's new in 1.11.0 -* SQL Project and Workspace preview extension pack -* Support Apple M1 with Rosetta2 enabled -* Fixed bugs in Azure Active Directory authentication -* Add support to script triggers -* Additional SQL query execution settings -* Colorization improvements + +- SQL Project and Workspace preview extension pack +- Support Apple M1 with Rosetta2 enabled +- Fixed bugs in Azure Active Directory authentication +- Add support to script triggers +- Additional SQL query execution settings +- Colorization improvements ## Version 1.10.1 -* Release date: January 20, 2021 -* Release status: GA + +- Release date: January 20, 2021 +- Release status: GA ### What's new in 1.10.1 -* Fixed bug in AAD support causing Integrated Auth connections to fail + +- Fixed bug in AAD support causing Integrated Auth connections to fail ## Version 1.10.0 -* Release date: December 10, 2020 -* Release status: GA + +- Release date: December 10, 2020 +- Release status: GA ### What's new in 1.10.0 -* Azure Active Directory authentication support -* Accessibility improvements -* Fixes in SQL syntax colorization with comments -* Added new functions/keywords to SQL syntax highlighting -* Fixed keyboard shortcuts for results + +- Azure Active Directory authentication support +- Accessibility improvements +- Fixes in SQL syntax colorization with comments +- Added new functions/keywords to SQL syntax highlighting +- Fixed keyboard shortcuts for results ### Contributions and "thank you" -* [@asottile](https://github.com/asottile) for `make SQL plist parseable xml (#1660)` -* [@KamasamaK](https://github.com/KamasamaK) for `Allow multiple whitespace between keywords (#1683)` -* [@sharechiwai ](https://github.com/sharechiwai) for `fixed README.md version 1.9.0 release date typo (#1757)` -* [@SJMakin](https://github.com/SJMakin ) for `Ammend sql.configuration.json to address syntax highlighting issue fo…` + +- [@asottile](https://github.com/asottile) for `make SQL plist parseable xml (#1660)` +- [@KamasamaK](https://github.com/KamasamaK) for `Allow multiple whitespace between keywords (#1683)` +- [@sharechiwai ](https://github.com/sharechiwai) for `fixed README.md version 1.9.0 release date typo (#1757)` +- [@SJMakin](https://github.com/SJMakin) for `Ammend sql.configuration.json to address syntax highlighting issue fo…` ## Version 1.9.0 -* Release date: March 5, 2020 -* Release status: GA + +- Release date: March 5, 2020 +- Release status: GA ### What's new in 1.9.0 -* Added new Query History feature -* Added Run Query and Cancel Query buttons on the editor -* Added rows affected count to status bar -* Added Object Explorer support for connection string based connections -* Removed redundant MSSQL output channel for logs -* Fixed leading tabs when copying multiple selections -* Fixed styling of NULL cells in query results -* Fixed leading tabs when copying multiple selections -* Fixed resizing messages pane causing double scrollbars to appear -* Fixed errors are not getting cleared when a file is closed + +- Added new Query History feature +- Added Run Query and Cancel Query buttons on the editor +- Added rows affected count to status bar +- Added Object Explorer support for connection string based connections +- Removed redundant MSSQL output channel for logs +- Fixed leading tabs when copying multiple selections +- Fixed styling of NULL cells in query results +- Fixed leading tabs when copying multiple selections +- Fixed resizing messages pane causing double scrollbars to appear +- Fixed errors are not getting cleared when a file is closed ### Contributions and "thank you" -* [@sukano](https://github.com/sukano) for `fix string highlighting containing escaped characters (#1630)` -* [@testingcan](https://github.com/testingcan) for `added create and drop snippets for views (#1215)` + +- [@sukano](https://github.com/sukano) for `fix string highlighting containing escaped characters (#1630)` +- [@testingcan](https://github.com/testingcan) for `added create and drop snippets for views (#1215)` ## Version 1.8.0 -* Release date: December 16, 2019 -* Release status: GA + +- Release date: December 16, 2019 +- Release status: GA ### What's new in 1.8.0 -* Added support for scripting context menu actions on the Object Explorer -* Added support for adding a new firewall rule to a server -* Added differentiation between database connections and server connections -* Reduced extension size from 10 MB to 6MB -* Open pinned doc when starting a new query -* Fixed scrolling and heights for multiple result sets -* Fixed bug to use the correct database for new query from Object Explorer + +- Added support for scripting context menu actions on the Object Explorer +- Added support for adding a new firewall rule to a server +- Added differentiation between database connections and server connections +- Reduced extension size from 10 MB to 6MB +- Open pinned doc when starting a new query +- Fixed scrolling and heights for multiple result sets +- Fixed bug to use the correct database for new query from Object Explorer ### Contributions and "thank you" + We would like to thank all our users who raised issues. ## Version 1.7.1 -* Release date: November 11, 2019 -* Release status: GA + +- Release date: November 11, 2019 +- Release status: GA ### What's new in 1.7.1 -* Fix missing row count and dropped Object Explorer connections bugs + +- Fix missing row count and dropped Object Explorer connections bugs ## Version 1.7.0 -* Release date: October 17, 2019 -* Release status: GA + +- Release date: October 17, 2019 +- Release status: GA ### What's new in 1.7.0 -* Announcing IntelliCode support -* SQL Server Connections viewlet -* Added support for SQLCMD Mode -* Updated SqlClient driver -* Users can adjust size of SQL results window -* Users can navigate with keyboard away from SQL results screen -* Fixed copy paste with keyboard shortcut -* Added Copy Header option to results grid -* Fix "Save as CSV" exception + +- Announcing IntelliCode support +- SQL Server Connections viewlet +- Added support for SQLCMD Mode +- Updated SqlClient driver +- Users can adjust size of SQL results window +- Users can navigate with keyboard away from SQL results screen +- Fixed copy paste with keyboard shortcut +- Added Copy Header option to results grid +- Fix "Save as CSV" exception ### Contributions and "thank you" + We would like to thank all our users who raised issues. ## Version 1.6.0 -* Release date: April 22, 2019 -* Release status: GA + +- Release date: April 22, 2019 +- Release status: GA ### What's new in 1.6.0 -* Extension install no longer requires reloading VS Code -* Update Query Results Webview API calls for compatibility with VS Code May release -* Fix "Save as CSV" exception + +- Extension install no longer requires reloading VS Code +- Update Query Results Webview API calls for compatibility with VS Code May release +- Fix "Save as CSV" exception ### Contributions and "thank you" + We would like to thank all our users who raised issues. ## Version 1.5.0 -* Release date: March 22, 2019 -* Release status: GA + +- Release date: March 22, 2019 +- Release status: GA ### What's new in 1.5.0 -* Update vscode-languageclient to fix issue [#1194 Refresh Intellisence cache option don't work](https://github.com/Microsoft/vscode-mssql/issues/1194) -* Import CSV export options such as setting delimiter, line separator, encoding and include headers -* Add missing SQL keywords to colorization list -* Fix Peek Definition\Go to Definition bug on SQL Server 2017 +- Update vscode-languageclient to fix issue [#1194 Refresh Intellisence cache option don't work](https://github.com/Microsoft/vscode-mssql/issues/1194) +- Import CSV export options such as setting delimiter, line separator, encoding and include headers +- Add missing SQL keywords to colorization list +- Fix Peek Definition\Go to Definition bug on SQL Server 2017 ### Contributions and "thank you" + We would like to thank all our users who raised issues, and in particular the following users who helped contribute features or localization of the tool: -* [@praveenpi ](https://github.com/praveenpi) for `updated sql2016-crud-demo (#1156)` -* [@benrr101](https://github.com/benrr101) for `Fix for #1178 by replacing all whitespace with non-breaking spaces. (#1181)` -* [@eashi](https://github.com/eashi) for `Use correct tag for gulp package (#1154)` -* [@shaun-hume](https://github.com/shaun-hume) for `Fix spelling errors in README.md (#1148)` -* [@bruce-dunwiddie ](https://github.com/bruce-dunwiddie) for `Fixed typo on serverproperty. (#1147)` -* [@franciscocpg ](https://github.com/franciscocpg) for `Adding support for antergos platform (#1144)` -* [@SebastianPfliegel](https://github.com/SebastianPfliegel) for `Added more saveAsCsv options (#1128)` -* [@mattmc3](https://github.com/mattmc3) for `Add missing keywords (#1133)` -* [@ChiragRupani](https://github.com/ChiragRupani) for `Added support for specifying delimiter while exporting query results as CSV (#1120)` -* [@zackschuster](https://github.com/zackschuster) for `fix typo in CHANGELOG.md (#1119)` +- [@praveenpi ](https://github.com/praveenpi) for `updated sql2016-crud-demo (#1156)` +- [@benrr101](https://github.com/benrr101) for `Fix for #1178 by replacing all whitespace with non-breaking spaces. (#1181)` +- [@eashi](https://github.com/eashi) for `Use correct tag for gulp package (#1154)` +- [@shaun-hume](https://github.com/shaun-hume) for `Fix spelling errors in README.md (#1148)` +- [@bruce-dunwiddie ](https://github.com/bruce-dunwiddie) for `Fixed typo on serverproperty. (#1147)` +- [@franciscocpg ](https://github.com/franciscocpg) for `Adding support for antergos platform (#1144)` +- [@SebastianPfliegel](https://github.com/SebastianPfliegel) for `Added more saveAsCsv options (#1128)` +- [@mattmc3](https://github.com/mattmc3) for `Add missing keywords (#1133)` +- [@ChiragRupani](https://github.com/ChiragRupani) for `Added support for specifying delimiter while exporting query results as CSV (#1120)` +- [@zackschuster](https://github.com/zackschuster) for `fix typo in CHANGELOG.md (#1119)` ## Version 1.4.0 -* Release date: June 28, 2018 -* Release status: GA + +- Release date: June 28, 2018 +- Release status: GA ### What's new in 1.4.0 -* Updated to .NET Core 2.1 to address [issues where some Mac users encountered connection errors](https://github.com/Microsoft/vscode-mssql/issues/1090) -* Added support for Deepin Linux -* Updated query results display to use VS Code's new webview API -* Added a new experimental setting "mssql.persistQueryResultTabs" which when set to true will save your scroll position and active selection when switching between query result tabs - * Note that this option is false by default because it [may cause high memory usage](https://code.visualstudio.com/docs/extensions/webview#_retaincontextwhenhidden). - * If you use this option and have feedback on it please share it on our [GitHub page](https://github.com/Microsoft/vscode-mssql/issues/916). + +- Updated to .NET Core 2.1 to address [issues where some Mac users encountered connection errors](https://github.com/Microsoft/vscode-mssql/issues/1090) +- Added support for Deepin Linux +- Updated query results display to use VS Code's new webview API +- Added a new experimental setting "mssql.persistQueryResultTabs" which when set to true will save your scroll position and active selection when switching between query result tabs + - Note that this option is false by default because it [may cause high memory usage](https://code.visualstudio.com/docs/extensions/webview#_retaincontextwhenhidden). + - If you use this option and have feedback on it please share it on our [GitHub page](https://github.com/Microsoft/vscode-mssql/issues/916). ### Contributions and "thank you" + We would like to thank all our users who raised issues, and in particular the following users who helped contribute features or localization of the tool: -* [@ChristianGrimberg](https://github.com/ChristianGrimberg) for adding support for Deepin Linux -* [@nschonni](https://github.com/nschonni) for closing issue [#704](https://github.com/Microsoft/vscode-mssql/issues/704) by adding a new TSQL formatter issue template -* We would like to thank everyone who contributed to localization for this update and encourage more people to join our [open source community localization effort](https://github.com/Microsoft/Localization/wiki). + +- [@ChristianGrimberg](https://github.com/ChristianGrimberg) for adding support for Deepin Linux +- [@nschonni](https://github.com/nschonni) for closing issue [#704](https://github.com/Microsoft/vscode-mssql/issues/704) by adding a new TSQL formatter issue template +- We would like to thank everyone who contributed to localization for this update and encourage more people to join our [open source community localization effort](https://github.com/Microsoft/Localization/wiki). ## Version 1.3.1 -* Release date: April 10, 2018 -* Release status: GA + +- Release date: April 10, 2018 +- Release status: GA ### What's new in this version -* Fixed issue [#1036](https://github.com/Microsoft/vscode-mssql/issues/1036) where copy/pasting Unicode text can fail on Mac depending on the active locale environment variable -* Fixed issue [#1066](https://github.com/Microsoft/vscode-mssql/issues/1066) RAND() function using GO N produces the same result -* Syntax highlighting more closely matches SSMS for local variables, global system varaibles, unicode string literals, bracketed identifiers, and built in functions -* Show all error messages instead of just the first one when query execution results in multiple errors + +- Fixed issue [#1036](https://github.com/Microsoft/vscode-mssql/issues/1036) where copy/pasting Unicode text can fail on Mac depending on the active locale environment variable +- Fixed issue [#1066](https://github.com/Microsoft/vscode-mssql/issues/1066) RAND() function using GO N produces the same result +- Syntax highlighting more closely matches SSMS for local variables, global system varaibles, unicode string literals, bracketed identifiers, and built in functions +- Show all error messages instead of just the first one when query execution results in multiple errors ### Contributions and "thank you" + We would like to thank all our users who raised issues, and in particular the following users who helped contribute features or localization of the tool: -* [@rhires](https://github.com/rhires) for updating and editing the Kerberos help documentation -* [@zackschuster](https://github.com/zackschuster) for cleaning up the VS Code API wrapper to remove a deprecated function call -* We would like to thank everyone who contributed to localization for this update and encourage more people to join our [open source community localization effort](https://github.com/Microsoft/Localization/wiki). + +- [@rhires](https://github.com/rhires) for updating and editing the Kerberos help documentation +- [@zackschuster](https://github.com/zackschuster) for cleaning up the VS Code API wrapper to remove a deprecated function call +- We would like to thank everyone who contributed to localization for this update and encourage more people to join our [open source community localization effort](https://github.com/Microsoft/Localization/wiki). ## Version 1.3.0 -* Release date: December 11, 2017 -* Release status: GA + +- Release date: December 11, 2017 +- Release status: GA ### What's new in this version -* Fixed an issue where peek definition and go to definition failed for stored procedures. -* Improved performance for peek definition and go to definition. -* Added support for `GO N` syntax. -* Fixed issue [#1025](https://github.com/Microsoft/vscode-mssql/issues/1025) where query execution would fail when executing from file paths containing special characters -* Fixed issue [#785](https://github.com/Microsoft/vscode-mssql/issues/785) Inactive connection can't reconnect with out VS Code restart -* A community-contributed fix for snippets that failed on databases with case-sensitive collations. + +- Fixed an issue where peek definition and go to definition failed for stored procedures. +- Improved performance for peek definition and go to definition. +- Added support for `GO N` syntax. +- Fixed issue [#1025](https://github.com/Microsoft/vscode-mssql/issues/1025) where query execution would fail when executing from file paths containing special characters +- Fixed issue [#785](https://github.com/Microsoft/vscode-mssql/issues/785) Inactive connection can't reconnect with out VS Code restart +- A community-contributed fix for snippets that failed on databases with case-sensitive collations. ### Contributions and "thank you" -* Thank you to Stefán Jökull Sigurðarson for contributing the fix for snippets that failed with case-sensitive collations, which was ported here from the SQL Operations Studio repository. -* We would like to thank everyone who contributed to localization for this update and encourage more people to join our [open source community localization effort](https://github.com/Microsoft/Localization/wiki). + +- Thank you to Stefán Jökull Sigurðarson for contributing the fix for snippets that failed with case-sensitive collations, which was ported here from the SQL Operations Studio repository. +- We would like to thank everyone who contributed to localization for this update and encourage more people to join our [open source community localization effort](https://github.com/Microsoft/Localization/wiki). ## Version 1.2.1 -* Release date: November 8, 2017 -* Release status: GA + +- Release date: November 8, 2017 +- Release status: GA ### What's new in this version -* Support for multi-root workspaces in preparation for the feature's release in Visual Studio Code. When running with multi-root workspaces, users will be able to set many configuration options at the folder level, including connection configurations. -* Exporting results as CSV, JSON, or Excel files now shows the operating system's save-as dialog instead of using text-based dialogs to name the saved file. -* Fixed issue [#998](https://github.com/Microsoft/vscode-mssql/issues/998) Intellisense against Azure SQL DBs very inconsistent. +- Support for multi-root workspaces in preparation for the feature's release in Visual Studio Code. When running with multi-root workspaces, users will be able to set many configuration options at the folder level, including connection configurations. +- Exporting results as CSV, JSON, or Excel files now shows the operating system's save-as dialog instead of using text-based dialogs to name the saved file. +- Fixed issue [#998](https://github.com/Microsoft/vscode-mssql/issues/998) Intellisense against Azure SQL DBs very inconsistent. ## Version 1.2 -* Release date: September 22, 2017 -* Release status: GA +- Release date: September 22, 2017 +- Release status: GA ### What's new in this version -* Support for macOS High Sierra. -* VSCode-Insiders users will see their connections are now read from and saved to the Insiders settings file instead of the regular Visual Studio Code location. Fixes [#242](https://github.com/Microsoft/vscode-mssql/issues/242). -* Saving connections no longer affects comments in the settings file [#959](https://github.com/Microsoft/vscode-mssql/issues/959). -* Intellisense errors and suggestions can be disabled on a per-file basis [#978](https://github.com/Microsoft/vscode-mssql/issues/978). Use the `MS SQL: Choose SQL Handler for this file` action or click on the `MSSQL` status bar item when a .sql file is open to disable intellisense on that document. -* Fixed issue [#987](https://github.com/Microsoft/vscode-mssql/issues/987) Cannot change password of a saved profile. -* Fixed issue [#924](https://github.com/Microsoft/vscode-mssql/issues/924) Database name with $ is not showing up correctly in database list. -* Fixed issue [#949](https://github.com/Microsoft/vscode-mssql/issues/949) Drop database fails most of the time because the db is in used. -* Fixed issue `MS SQL: Execute Current Statement` where it did not handle 2 statements on a single line correctly. -* Improved support for SQL Server 2017 syntax by refreshing IntelliSense and SMO dependencies. + +- Support for macOS High Sierra. +- VSCode-Insiders users will see their connections are now read from and saved to the Insiders settings file instead of the regular Visual Studio Code location. Fixes [#242](https://github.com/Microsoft/vscode-mssql/issues/242). +- Saving connections no longer affects comments in the settings file [#959](https://github.com/Microsoft/vscode-mssql/issues/959). +- Intellisense errors and suggestions can be disabled on a per-file basis [#978](https://github.com/Microsoft/vscode-mssql/issues/978). Use the `MS SQL: Choose SQL Handler for this file` action or click on the `MSSQL` status bar item when a .sql file is open to disable intellisense on that document. +- Fixed issue [#987](https://github.com/Microsoft/vscode-mssql/issues/987) Cannot change password of a saved profile. +- Fixed issue [#924](https://github.com/Microsoft/vscode-mssql/issues/924) Database name with $ is not showing up correctly in database list. +- Fixed issue [#949](https://github.com/Microsoft/vscode-mssql/issues/949) Drop database fails most of the time because the db is in used. +- Fixed issue `MS SQL: Execute Current Statement` where it did not handle 2 statements on a single line correctly. +- Improved support for SQL Server 2017 syntax by refreshing IntelliSense and SMO dependencies. ### Contributions and "thank you" + We would like to thank everyone who contributed to localization for this update and encourage more people to join our [open source community localization effort](https://github.com/Microsoft/Localization/wiki). mssql for Visual Studio Code was opened for community localization since February 2017 for the following languages French, Italian, German, Spanish, Simplified or Traditional Chinese, Japanese, Korean, Russian, Brazilian Portuguese. If you see a string untranslated in your language, you can make an impact and help with translation. You can find out how by checking https://aka.ms/crossplattoolsforsqlservercommunitylocalization. - ## Version 1.1 -* Release date: July 18, 2017 -* Release status: GA + +- Release date: July 18, 2017 +- Release status: GA ### What's new in this version -* Preview support for Integrated Authentication (aka Windows Authentication) on Mac and Linux. To use this you need to create a Kerberos ticket on your Mac or Linux machine - [see this guide](https://aka.ms/vscode-mssql-integratedauth) for the simple process. Once this is set up, you can say goodbye to SQL passwords when connecting to your servers! - * This feature is in preview in .Net Core 2.0. The [corefx repository](https://github.com/dotnet/corefx) tracks issues related to SqlClient and we recommend issues setting up Kerberos tickets be raised there. - * macOS "El Capitan" and older versions will not support this feature or any other features requiring a new SqlToolsService version. To benefit from Integrated Authentication, "Execute Current Statement" and other new features we recommend updating to the latest OS version. -* New code snippets: - * `sqlGetSpaceUsed` shows space used by tables. Thanks to Rodolfo Gaspar for this contribution! - * `sqlListColumns` shows columns for tables matching a `LIKE` query. Thanks to Emad Alashi for this contribution! -* Support for connecting using a connection string. When adding a connection profile you can now paste in an ADO.Net connection string instead of specifying server name, database name etc. individually. This makes it easy to get strings from the Azure Portal and use them in the tool. -* Support for empty passwords when connecting. Password is no longer required, though still recommended! This is useful in local development scenarios. -* Improved support for SQL Server 2017 syntax by refreshing IntelliSense and SMO dependencies. -* Fixed all code snippets so that tab ordering is improved and snippets no longer have syntax errors -* Fixed issue where snippets were not shown when `mssql.intelliSense.enableIntelliSense` was set to `false`. -* Fixed issue [#911](https://github.com/Microsoft/vscode-mssql/issues/911) where tools service crashed when Perforce source code provider is enabled in the workspace. -* Stability fixes to reduce the likelihood of SqlToolsService crashes. -* Fixed issue [#870](https://github.com/Microsoft/vscode-mssql/issues/870). Added an "Execute Current Statement" command that executes only the SQL statement where the cursor is currently located. -* Fix issue [#939](https://github.com/Microsoft/vscode-mssql/issues/939) "Show execution time for individual batches". To enable open your settings and set `mssql.showBatchTime` to `true`. -* Fix issue [#904](https://github.com/Microsoft/vscode-mssql/issues/904). Added a "Disconnect" option to the status bar server connection shortcut. Clicking on this now lists databases on the current server and a "Disconnect" option. -* Fix issue [#913](https://github.com/Microsoft/vscode-mssql/issues/913). OpenSuse Linux distributions are now supported. + +- Preview support for Integrated Authentication (aka Windows Authentication) on Mac and Linux. To use this you need to create a Kerberos ticket on your Mac or Linux machine - [see this guide](https://aka.ms/vscode-mssql-integratedauth) for the simple process. Once this is set up, you can say goodbye to SQL passwords when connecting to your servers! + - This feature is in preview in .Net Core 2.0. The [corefx repository](https://github.com/dotnet/corefx) tracks issues related to SqlClient and we recommend issues setting up Kerberos tickets be raised there. + - macOS "El Capitan" and older versions will not support this feature or any other features requiring a new SqlToolsService version. To benefit from Integrated Authentication, "Execute Current Statement" and other new features we recommend updating to the latest OS version. +- New code snippets: + - `sqlGetSpaceUsed` shows space used by tables. Thanks to Rodolfo Gaspar for this contribution! + - `sqlListColumns` shows columns for tables matching a `LIKE` query. Thanks to Emad Alashi for this contribution! +- Support for connecting using a connection string. When adding a connection profile you can now paste in an ADO.Net connection string instead of specifying server name, database name etc. individually. This makes it easy to get strings from the Azure Portal and use them in the tool. +- Support for empty passwords when connecting. Password is no longer required, though still recommended! This is useful in local development scenarios. +- Improved support for SQL Server 2017 syntax by refreshing IntelliSense and SMO dependencies. +- Fixed all code snippets so that tab ordering is improved and snippets no longer have syntax errors +- Fixed issue where snippets were not shown when `mssql.intelliSense.enableIntelliSense` was set to `false`. +- Fixed issue [#911](https://github.com/Microsoft/vscode-mssql/issues/911) where tools service crashed when Perforce source code provider is enabled in the workspace. +- Stability fixes to reduce the likelihood of SqlToolsService crashes. +- Fixed issue [#870](https://github.com/Microsoft/vscode-mssql/issues/870). Added an "Execute Current Statement" command that executes only the SQL statement where the cursor is currently located. +- Fix issue [#939](https://github.com/Microsoft/vscode-mssql/issues/939) "Show execution time for individual batches". To enable open your settings and set `mssql.showBatchTime` to `true`. +- Fix issue [#904](https://github.com/Microsoft/vscode-mssql/issues/904). Added a "Disconnect" option to the status bar server connection shortcut. Clicking on this now lists databases on the current server and a "Disconnect" option. +- Fix issue [#913](https://github.com/Microsoft/vscode-mssql/issues/913). OpenSuse Linux distributions are now supported. ## Version 1.0 -* Release date: May 2, 2017 -* Release status: GA + +- Release date: May 2, 2017 +- Release status: GA ### What's new in this version -* We are please to announce the official GA of the MSSQL extension! This release focuses on stability, localization support, and top customer feedback issues -* The MSSQL extension is now localized. Use the `Configure Language` command in VSCode to change to your language of choice. Restart the application and the MSSQL extension will now support your language for all commands and messages. -* Community-added support for `Save as Excel`, which supports saving to .xlsx format and opening this in the default application for .xlsx files on your machine. -* Numerous bug fixes: - * IntelliSense improvements to support configuration of Intellisense options from user settings, plus keyword fixes. - * Query Execution fixes and improvements: [#832](https://github.com/Microsoft/vscode-mssql/issues/832), [#815](https://github.com/Microsoft/vscode-mssql/issues/815), [#803](https://github.com/Microsoft/vscode-mssql/issues/803), [#794](https://github.com/Microsoft/vscode-mssql/issues/794), [#772](https://github.com/Microsoft/vscode-mssql/issues/772) - * Improved support for downloading and installing the tools service behind proxies - * Improvements to `Go To Definition` / `Peek Definition` support [#769](https://github.com/Microsoft/vscode-mssql/issues/769) +- We are please to announce the official GA of the MSSQL extension! This release focuses on stability, localization support, and top customer feedback issues +- The MSSQL extension is now localized. Use the `Configure Language` command in VSCode to change to your language of choice. Restart the application and the MSSQL extension will now support your language for all commands and messages. +- Community-added support for `Save as Excel`, which supports saving to .xlsx format and opening this in the default application for .xlsx files on your machine. +- Numerous bug fixes: + - IntelliSense improvements to support configuration of Intellisense options from user settings, plus keyword fixes. + - Query Execution fixes and improvements: [#832](https://github.com/Microsoft/vscode-mssql/issues/832), [#815](https://github.com/Microsoft/vscode-mssql/issues/815), [#803](https://github.com/Microsoft/vscode-mssql/issues/803), [#794](https://github.com/Microsoft/vscode-mssql/issues/794), [#772](https://github.com/Microsoft/vscode-mssql/issues/772) + - Improved support for downloading and installing the tools service behind proxies + - Improvements to `Go To Definition` / `Peek Definition` support [#769](https://github.com/Microsoft/vscode-mssql/issues/769) ## Contributions and "thank you" + We would like to thank all our users who raised issues, and in particular the following users who helped contribute features or localization of the tool: -* Wujun Zhou, for adding the `Save as Excel` feature -* The many contributors to our community localization. A full list is available on [this TechNet post](https://blogs.technet.microsoft.com/dataplatforminsider/2017/04/13/crossplatform-tools-for-sql-server-opened-for-community-localization/). Particular thanks to Mona Nasr for coordinating our community localization efforts. + +- Wujun Zhou, for adding the `Save as Excel` feature +- The many contributors to our community localization. A full list is available on [this TechNet post](https://blogs.technet.microsoft.com/dataplatforminsider/2017/04/13/crossplatform-tools-for-sql-server-opened-for-community-localization/). Particular thanks to Mona Nasr for coordinating our community localization efforts. ## Version 0.3.0 -* Release date: March 1, 2017 -* Release status: Public Preview + +- Release date: March 1, 2017 +- Release status: Public Preview ### What's new in this version -* T-SQL formatting support is now included. This is a highly requested feature, and this release includes a basic parser -with configuration options for some of the most common T-SQL formatting styles. - * To format a .sql file, right-click and choose `Format Document`. - * To format part of a document, highlight a selection, right-click and choose `Format Selection` - * To change the formatting settings, hit F1 and choose `Preferences: Open User Settings`. Type in `mssql.format` and - change any of the options -* `Refresh Intellisense Cache` command added. This will rebuild the intellisense for a connected database to include any recent -schema changes -* `New Query` command added. This opens a new .sql file and connects to a server, making it quicker to get started with your queries -* Fixed support for SQL Data Warehouse connections. -* Prototype localization support added. We will be adding full localization support in a future update. -* Improved Peek Definition support. Multiple bug fixes, and additional supported types. - * Supported types: Tables, Views, Procedures, User Defined Tables, User Defined Types, Synonyms, Scalar Functions, Table Valued Functions -* Support for Windows x86 machines -* Fix for issue #604 where results that included HTML were not rendered correctly -* Multiple fixes for syntax highlighting -* Fixed issues where query execution failed due to parser failures. + +- T-SQL formatting support is now included. This is a highly requested feature, and this release includes a basic parser + with configuration options for some of the most common T-SQL formatting styles. + - To format a .sql file, right-click and choose `Format Document`. + - To format part of a document, highlight a selection, right-click and choose `Format Selection` + - To change the formatting settings, hit F1 and choose `Preferences: Open User Settings`. Type in `mssql.format` and + change any of the options +- `Refresh Intellisense Cache` command added. This will rebuild the intellisense for a connected database to include any recent + schema changes +- `New Query` command added. This opens a new .sql file and connects to a server, making it quicker to get started with your queries +- Fixed support for SQL Data Warehouse connections. +- Prototype localization support added. We will be adding full localization support in a future update. +- Improved Peek Definition support. Multiple bug fixes, and additional supported types. + - Supported types: Tables, Views, Procedures, User Defined Tables, User Defined Types, Synonyms, Scalar Functions, Table Valued Functions +- Support for Windows x86 machines +- Fix for issue #604 where results that included HTML were not rendered correctly +- Multiple fixes for syntax highlighting +- Fixed issues where query execution failed due to parser failures. ## Version 0.2.1 -* Release date: February 2, 2017 -* Release status: Public Preview + +- Release date: February 2, 2017 +- Release status: Public Preview ### What's new in this version -* HotFix for issue [#669] "Results Panel not Refreshing Automatically". This issue impacts users on VSCode 1.9.0 or greater. + +- HotFix for issue [#669] "Results Panel not Refreshing Automatically". This issue impacts users on VSCode 1.9.0 or greater. ## Version 0.2.0 -* Release date: December, 2016 -* Release status: Public Preview + +- Release date: December, 2016 +- Release status: Public Preview ### What's new in this version -* Peek Definition and Go To Definition support for Tables, Views and Stored Procedures. For a query such as `select * from dbo.Person` you can right-click on `dbo.Person` and see it as a `CREATE TABLE` script. -* Support for additional operating systems including Linux Mint and Elementary OS. See [Operating Systems] for the list of supported OSes. -* Output window now shows status of SQL tools service installation to make it easier to track install-time issues. -* Progressive Result Sets: when running multiple queries at once, you'll now see result sets appear as soon as they are done processing instead of waiting for all queries to complete. -The extension supports result set-level updates with per-row updates coming in a future update. -* Multiple results view improvements: improved keyboard navigation, configuration settings to alter default font style and size, support for copying with column headers. -* Multiple IntelliSense improvements: Support using `[bracket].[syntax]`, handling of `"` at the end of a word, improved performance when connecting to same DB from a new file. + +- Peek Definition and Go To Definition support for Tables, Views and Stored Procedures. For a query such as `select * from dbo.Person` you can right-click on `dbo.Person` and see it as a `CREATE TABLE` script. +- Support for additional operating systems including Linux Mint and Elementary OS. See [Operating Systems] for the list of supported OSes. +- Output window now shows status of SQL tools service installation to make it easier to track install-time issues. +- Progressive Result Sets: when running multiple queries at once, you'll now see result sets appear as soon as they are done processing instead of waiting for all queries to complete. + The extension supports result set-level updates with per-row updates coming in a future update. +- Multiple results view improvements: improved keyboard navigation, configuration settings to alter default font style and size, support for copying with column headers. +- Multiple IntelliSense improvements: Support using `[bracket].[syntax]`, handling of `"` at the end of a word, improved performance when connecting to same DB from a new file. ## Version 0.1.5 -* Release date: Nov 16, 2016 -* Release status: Public Preview + +- Release date: Nov 16, 2016 +- Release status: Public Preview ### What's new in this version @@ -664,27 +808,27 @@ If you are new to VS Code and the mssql extension, see the [getting started tuto This extension makes it easy to connect to, query and modify your SQL Server, Azure SQL Database, and Azure SQL Data Warehouse instances. -* Create and manage your frequent connections to SQL Server, Azure SQL Database and Azure SQL Data Warehouse as a profile. The mssql extension keeps the recent history of your connection activities and saves passwords in a secure store, making connecting to your database easy. Create, Edit, Remove and Clear your recent connections. See [manage connection profiles] for more details. +- Create and manage your frequent connections to SQL Server, Azure SQL Database and Azure SQL Data Warehouse as a profile. The mssql extension keeps the recent history of your connection activities and saves passwords in a secure store, making connecting to your database easy. Create, Edit, Remove and Clear your recent connections. See [manage connection profiles] for more details. -* Productive T-SQL editor features including IntelliSense with suggestions and auto-completion, syntax highlighting and real-time T-SQL error checks and reporting. +- Productive T-SQL editor features including IntelliSense with suggestions and auto-completion, syntax highlighting and real-time T-SQL error checks and reporting. -* Execute T-SQL scripts and view results, all with a native Visual Studio Code look and feel. View query results and related messages without needing to tab between them. +- Execute T-SQL scripts and view results, all with a native Visual Studio Code look and feel. View query results and related messages without needing to tab between them. -* Save query results as CSV or JSON. +- Save query results as CSV or JSON. -* Customize shortcuts, color themes and options to meet your preference. +- Customize shortcuts, color themes and options to meet your preference. -* This is an open source project under the MIT license. Go check out how to [contribute]. +- This is an open source project under the MIT license. Go check out how to [contribute]. ## Upcoming changes and features -* Top customer reported issues in [GitHub Issue Tracker]. +- Top customer reported issues in [GitHub Issue Tracker]. -* Faster performance: Progressive query results. As soon as SQL Server returns results to the extension these should be shown to the user, even for large queries. +- Faster performance: Progressive query results. As soon as SQL Server returns results to the extension these should be shown to the user, even for large queries. -* Delivery of additional T-SQL editor features, for example support for Go To Definition and Find All References. +- Delivery of additional T-SQL editor features, for example support for Go To Definition and Find All References. -* More bugs fixes and fine tuning of features. +- More bugs fixes and fine tuning of features. ## Fixed Issues @@ -692,20 +836,20 @@ Report issues to [Github Issue Tracker] and provide your feedback. ## Known Issues -* The mssql extension process may crash due to a bug in the product. It requires to restart VS Code to recover. Before restarting VS Code, please save your files. +- The mssql extension process may crash due to a bug in the product. It requires to restart VS Code to recover. Before restarting VS Code, please save your files. -* Installation Prerequisites: this extension requires the user to install some components needed by .Net Core applications, since this is used for connectivity to SQL Server. +- Installation Prerequisites: this extension requires the user to install some components needed by .Net Core applications, since this is used for connectivity to SQL Server. - * For Mac OS, see [OpenSSL requirement on macOS] + - For Mac OS, see [OpenSSL requirement on macOS] - * For Windows 8.1, Windows Server 2012 or lower, see [Windows 10 Universal C Runtime requirement] + - For Windows 8.1, Windows Server 2012 or lower, see [Windows 10 Universal C Runtime requirement] -[getting started tutorial]:https://aka.ms/mssql-getting-started -[the mssql extension wiki]:https://github.com/Microsoft/vscode-mssql/wiki -[contribute]:https://github.com/Microsoft/vscode-mssql/wiki/contributing -[GitHub Issue Tracker]:https://github.com/Microsoft/vscode-mssql/issues -[manage connection profiles]:https://github.com/Microsoft/vscode-mssql/wiki/manage-connection-profiles -[OpenSSL requirement on macOS]:https://github.com/Microsoft/vscode-mssql/wiki/OpenSSL-Configuration -[Windows 10 Universal C Runtime requirement]:https://github.com/Microsoft/vscode-mssql/wiki/windows10-universal-c-runtime-requirement -[Operating Systems]:https://github.com/Microsoft/vscode-mssql/wiki/operating-systems -[#669]:https://github.com/Microsoft/vscode-mssql/issues/669 +[getting started tutorial]: https://aka.ms/mssql-getting-started +[the mssql extension wiki]: https://github.com/Microsoft/vscode-mssql/wiki +[contribute]: https://github.com/Microsoft/vscode-mssql/wiki/contributing +[GitHub Issue Tracker]: https://github.com/Microsoft/vscode-mssql/issues +[manage connection profiles]: https://github.com/Microsoft/vscode-mssql/wiki/manage-connection-profiles +[OpenSSL requirement on macOS]: https://github.com/Microsoft/vscode-mssql/wiki/OpenSSL-Configuration +[Windows 10 Universal C Runtime requirement]: https://github.com/Microsoft/vscode-mssql/wiki/windows10-universal-c-runtime-requirement +[Operating Systems]: https://github.com/Microsoft/vscode-mssql/wiki/operating-systems +[#669]: https://github.com/Microsoft/vscode-mssql/issues/669 diff --git a/CODE_FORMATTING.md b/CODE_FORMATTING.md index 5cde404ca6..b50d24d5ae 100644 --- a/CODE_FORMATTING.md +++ b/CODE_FORMATTING.md @@ -13,9 +13,10 @@ Code formatting is done via Prettier, but that can be triggered in several diffe > 👉 Update _all_ locations when changing formatting rules. -|File|Function|How to Use| -|-|-|-| -| `prettier.config.mjs` | used by the command-line `prettier` command for bulk formatting|`npm install -g prettier`
`prettier "**/*.ts" [--write \| --check]` | -| `.vscode/settings.json` | used by VS Code's Prettier extension | Install Prettier extension (`esbenp.prettier-vscode`), then run the "Format Document" command | -| `eslint.config.mjs` | used by Git's precommit ESLint checks | Automatically run when creating a commit | -ß \ No newline at end of file +| File | Function | How to Use | +| ----------------------- | --------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `prettier.config.mjs` | used by the command-line `prettier` command for bulk formatting | `npm install -g prettier`
`prettier "**/*.ts" [--write \| --check]` | +| `.vscode/settings.json` | used by VS Code's Prettier extension | Install Prettier extension (`esbenp.prettier-vscode`), then run the "Format Document" command | +| `eslint.config.mjs` | used by Git's precommit ESLint checks | Automatically run when creating a commit | + +ß diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 8c6de8db9d..36f8718184 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -6,8 +6,8 @@ For debugging or testing local changes it is easiest to use a locally built version of STS. There are two primary ways to accomplish this -- Use the `MSSQL_SQLTOOLSSERVICE` environment variable to direct the extension to use a custom version of STS -- Copy over the binaries manually into the installed STS location +- Use the `MSSQL_SQLTOOLSSERVICE` environment variable to direct the extension to use a custom version of STS +- Copy over the binaries manually into the installed STS location Both of these require a few common initial steps. Note that these steps are all for the [Microsoft.SqlTools.ServiceLayer](https://github.com/microsoft/sqltoolsservice/tree/main/src/Microsoft.SqlTools.ServiceLayer) project, which is where much of the STS logic is put. There are additional projects though such as [Microsoft.SqlTools.Credentials](https://github.com/microsoft/sqltoolsservice/tree/main/src/Microsoft.SqlTools.Credentials) and [Microsoft.SqlTools.ResourceProvider](https://github.com/microsoft/sqltoolsservice/tree/main/src/Microsoft.SqlTools.ResourceProvider). To replace those just follow the same steps but do them from those folders instead. @@ -28,7 +28,7 @@ This should build the project to a folder similar to `$(Root)/src/Microsoft.SqlT 3. VSCode-MSSQL should pop up a notification indicating that it's using a custom path for STS. If this doesn't appear check you have the environment variable spelled correctly and then check the console logs to see if there were issues finding the expected EXEs -* Note that in order to build again (for example if you have a further change you want to test out) you will need to close any running instances of ADS before building - otherwise the files will be locked and unable to be updated. +- Note that in order to build again (for example if you have a further change you want to test out) you will need to close any running instances of ADS before building - otherwise the files will be locked and unable to be updated. #### Manually replacing binaries @@ -37,7 +37,7 @@ This should build the project to a folder similar to `$(Root)/src/Microsoft.SqlT 2. Copy over the files from `src/Microsoft.SqlTools.ServiceLayer/bin/Debug/$(NetCoreVersion)/build` to `$(VSCodeExtPath)/extensions/ms-mssql.mssql-#.##.#\sqltoolsservice\#.#.#-release.###\$(Platform)` and overwrite any existing files. The VSCodeExtPath will either be the source enlistment path or the path to the extensions directory of the installed version of VS Code, e.g. `%USERPROFILE/.vscode` 3. Launch VS Code 4. Open the STS project in VS Code or Visual Studio and : - * VS Code - Click the debug button and press `.NET Core Attach`. Search for `MicrosoftSqlToolsServiceLayer` using the filter menu and attach to the process - * Visual Studio - Under the debug menu choose `Attach to Process`. Search for `MicrosoftSqlToolsServiceLayer` using the filter menu and attach to the process -and + - VS Code - Click the debug button and press `.NET Core Attach`. Search for `MicrosoftSqlToolsServiceLayer` using the filter menu and attach to the process + - Visual Studio - Under the debug menu choose `Attach to Process`. Search for `MicrosoftSqlToolsServiceLayer` using the filter menu and attach to the process + and 5. You should now be able to debug STS and set breakpoints as needed diff --git a/KERBEROS_HELP.md b/KERBEROS_HELP.md index 1d8cb815f6..02f9a2c9d3 100644 --- a/KERBEROS_HELP.md +++ b/KERBEROS_HELP.md @@ -3,98 +3,113 @@ In order to use Integrated Authentication (aka Windows Authentication) on macOS # Setup Kerberos on Mac ## Requirements -- Access to a Windows domain-joined machine in order to query your Kerberos Domain Controller -- SQL Server should be configured to allow Kerberos authentication. For the client driver running on Unix, integrated authentication is only supported using Kerberos. More information on setting up Sql Server to authenticate using Kerberos can be found [here](https://support.microsoft.com/en-us/help/319723/how-to-use-kerberos-authentication-in-sql-server). There should be SPNs registered for each instance of Sql Server you are trying to connect to. Details about the format of SQL Server SPNs are listed [here](https://technet.microsoft.com/en-us/library/ms191153%28v=sql.105%29.aspx#SPN%20Formats) -- + +- Access to a Windows domain-joined machine in order to query your Kerberos Domain Controller +- SQL Server should be configured to allow Kerberos authentication. For the client driver running on Unix, integrated authentication is only supported using Kerberos. More information on setting up Sql Server to authenticate using Kerberos can be found [here](https://support.microsoft.com/en-us/help/319723/how-to-use-kerberos-authentication-in-sql-server). There should be SPNs registered for each instance of Sql Server you are trying to connect to. Details about the format of SQL Server SPNs are listed [here](https://technet.microsoft.com/en-us/library/ms191153%28v=sql.105%29.aspx#SPN%20Formats) +- + ### Checking if Sql Server has Kerberos Setup -- Login to the host machine of Sql Server. From Windows Command Prompt use the `setspn -L %COMPUTERNAME%` to list all the Service Principal Names for the host. You should see entries which begin with MSSQLSvc/HostName.Domain.com which means that Sql Server has registered an SPN and is ready to accept Kerberos authentication. -- If you don't have access to the Host of the Sql Server, then from any other Windows OS joined to the same Active Directory, you could use the command `setspn -L ` where is the computer name of the Sql server host. + +- Login to the host machine of Sql Server. From Windows Command Prompt use the `setspn -L %COMPUTERNAME%` to list all the Service Principal Names for the host. You should see entries which begin with MSSQLSvc/HostName.Domain.com which means that Sql Server has registered an SPN and is ready to accept Kerberos authentication. +- If you don't have access to the Host of the Sql Server, then from any other Windows OS joined to the same Active Directory, you could use the command `setspn -L ` where is the computer name of the Sql server host. ## Steps to set up Integrated Authentication ### Step 1: Find Kerberos KDC (Key Distribution Center) -- **Run on**: Windows, Windows command line -- **Action**: `nltest /dsgetdc:DOMAIN.COMPANY.COM` (where “DOMAIN.COMPANY.COM” maps to your domain’s name) -- **Sample Output** - ``` - DC: \\dc-33.domain.company.com - Address: \\2111:4444:2111:33:1111:ecff:ffff:3333 - ... - The command completed successfully - ``` -- **Information to extract** - The DC name, in this case `dc-33.domain.company.com` + +- **Run on**: Windows, Windows command line +- **Action**: `nltest /dsgetdc:DOMAIN.COMPANY.COM` (where “DOMAIN.COMPANY.COM” maps to your domain’s name) +- **Sample Output** + ``` + DC: \\dc-33.domain.company.com + Address: \\2111:4444:2111:33:1111:ecff:ffff:3333 + ... + The command completed successfully + ``` +- **Information to extract** + The DC name, in this case `dc-33.domain.company.com` ### Step 2: Configuring KDC in krb5.conf -- **Run on**: MAC -- **Action**: Edit the /etc/krb5.conf in an editor of your choice. Configure the following keys - ``` - [libdefaults] - default_realm = DOMAIN.COMPANY.COM -   - [realms] - DOMAIN.COMPANY.COM = { - kdc = dc-33.domain.company.com - } - ``` - Then save the krb5.conf file and exit - - **Note** Domain must be in ALL CAPS + +- **Run on**: MAC +- **Action**: Edit the /etc/krb5.conf in an editor of your choice. Configure the following keys + + ``` + [libdefaults] + default_realm = DOMAIN.COMPANY.COM +   + [realms] + DOMAIN.COMPANY.COM = { + kdc = dc-33.domain.company.com + } + ``` + + Then save the krb5.conf file and exit + + **Note** Domain must be in ALL CAPS ### Step 3: Testing the Ticket Granting Ticket retrieval -- **Run on**: Mac -- **Action**: - - Use the command `kinit username@DOMAIN.COMPANY.COM` to get a TGT from KDC. You will be prompted for your domain password. - - Use `klist` to see the available tickets. If the kinit was successful, you should see a ticket from krbtgt/DOMAIN.COMPANY.COM@ DOMAIN.COMPANY.COM. + +- **Run on**: Mac +- **Action**: + - Use the command `kinit username@DOMAIN.COMPANY.COM` to get a TGT from KDC. You will be prompted for your domain password. + - Use `klist` to see the available tickets. If the kinit was successful, you should see a ticket from krbtgt/DOMAIN.COMPANY.COM@ DOMAIN.COMPANY.COM. ### Step 4: Connect in VSCode -- Create a new connection profile -- Choose `Integrated` as the authentication type -- If all goes well and the steps above worked, you should be able to connect successfully! +- Create a new connection profile +- Choose `Integrated` as the authentication type +- If all goes well and the steps above worked, you should be able to connect successfully! # Setup Kerberos on Linux ### Step 0: Install krb5-user package -- **Run on**: Linux -- **Action**: `apt-get install krb5-user` + +- **Run on**: Linux +- **Action**: `apt-get install krb5-user` ### Step 1: Find Kerberos KDC (Key Distribution Center) -- **Run on**: Windows command line -- **Action**: `nltest /dsgetdc:DOMAIN.COMPANY.COM` (where “DOMAIN.COMPANY.COM” maps to your domain’s name) -- **Sample Output** - ``` - DC: \\dc-33.domain.company.com - Address: \\2111:4444:2111:33:1111:ecff:ffff:3333 - ... - The command completed successfully - ``` -- **Information to extract** - The DC name, in this case `dc-33.domain.company.com` + +- **Run on**: Windows command line +- **Action**: `nltest /dsgetdc:DOMAIN.COMPANY.COM` (where “DOMAIN.COMPANY.COM” maps to your domain’s name) +- **Sample Output** + ``` + DC: \\dc-33.domain.company.com + Address: \\2111:4444:2111:33:1111:ecff:ffff:3333 + ... + The command completed successfully + ``` +- **Information to extract** + The DC name, in this case `dc-33.domain.company.com` ### Step 2: Configuring KDC in krb5.conf -- **Run on**: Linux -- **Action**: Edit the /etc/krb5.conf in an editor of your choice. Configure the following keys - ``` - [libdefaults] - default_realm = DOMAIN.COMPANY.COM -   - [realms] - DOMAIN.COMPANY.COM = { - kdc = dc-33.domain.company.com - } - ``` - Then save the krb5.conf file and exit - - **Note** Domain must be in ALL CAPS + +- **Run on**: Linux +- **Action**: Edit the /etc/krb5.conf in an editor of your choice. Configure the following keys + + ``` + [libdefaults] + default_realm = DOMAIN.COMPANY.COM +   + [realms] + DOMAIN.COMPANY.COM = { + kdc = dc-33.domain.company.com + } + ``` + + Then save the krb5.conf file and exit + + **Note** Domain must be in ALL CAPS ### Step 3: Testing the Ticket Granting Ticket retrieval -- **Run on**: Linux -- **Action**: - - Use the command `kinit username@DOMAIN.COMPANY.COM` to get a TGT from KDC. You will be prompted for your domain password. - - Use `klist` to see the available tickets. If the kinit was successful, you should see a ticket from krbtgt/DOMAIN.COMPANY.COM@ DOMAIN.COMPANY.COM. + +- **Run on**: Linux +- **Action**: + - Use the command `kinit username@DOMAIN.COMPANY.COM` to get a TGT from KDC. You will be prompted for your domain password. + - Use `klist` to see the available tickets. If the kinit was successful, you should see a ticket from krbtgt/DOMAIN.COMPANY.COM@ DOMAIN.COMPANY.COM. ### Step 4: Connect in VSCode -- Create a new connection profile -- Choose `Integrated` as the authentication type -- If all goes well and the steps above worked, you should be able to connect successfully! + +- Create a new connection profile +- Choose `Integrated` as the authentication type +- If all goes well and the steps above worked, you should be able to connect successfully! diff --git a/README.md b/README.md index 8d341d1573..296a17ca9d 100644 --- a/README.md +++ b/README.md @@ -9,99 +9,99 @@ The [**MSSQL Extension for Visual Studio Code**](https://www.aka.ms/vscode-mssql [![MSSQL Extension Demo Playlist](images/yt-thumbnail.png)](https://aka.ms/vscode-mssql-demos) -- [Watch the demos](https://aka.ms/vscode-mssql-demos): Explore key features through our YouTube playlist -- [Read our blog posts](https://aka.ms/vscode-mssql-blogs): Learn from use cases, walkthroughs, and product updates -- [View the documentation](https://aka.ms/vscode-mssql-docs): Get started or go deep with our official docs -- [Explore GitHub Copilot integration](https://aka.ms/vscode-mssql-copilot-docs): Learn how to use GitHub Copilot to write, explain, and refactor your database schema -- [Check out roadmap](https://aka.ms/vscode-mssql-roadmap): See what's coming next, including upcoming features and improvements +- [Watch the demos](https://aka.ms/vscode-mssql-demos): Explore key features through our YouTube playlist +- [Read our blog posts](https://aka.ms/vscode-mssql-blogs): Learn from use cases, walkthroughs, and product updates +- [View the documentation](https://aka.ms/vscode-mssql-docs): Get started or go deep with our official docs +- [Explore GitHub Copilot integration](https://aka.ms/vscode-mssql-copilot-docs): Learn how to use GitHub Copilot to write, explain, and refactor your database schema +- [Check out roadmap](https://aka.ms/vscode-mssql-roadmap): See what's coming next, including upcoming features and improvements ## General Availability Features -- **Connect to your databases**: Seamlessly manage your database connections - - Connect to **SQL database in Fabric, Azure SQL, and SQL Server** using a user-friendly interface - - Use an intuitive Connection Dialog to enter parameters, paste a connection string, or browse Azure resources - - Access recent connections quickly from a dedicated panel - - Use Microsoft Entra ID authentication for secure access - - Manage multiple connection profiles for different environments - - Reconnect to frequently used databases in just a few clicks - - Organize your connections into color-coded groups to manage local, staging, and production environments side by side. -- **Execute queries and View Results**: Run your scripts and view results in a simple, yet powerful, grid with improved data visualization features: - - View results in a unified interface alongside the integrated terminal and output panels or in their own tab. - - Sort results by clicking on column headers. - - Easily copy results with or without headers for use in other applications. - - Export results to multiple formats, including JSON, Excel, and CSV. - - Enhanced experience with live execution timing summary metrics and stability improvements on large result sets - - View estimated plan and actual plan for T-SQL queries. -- **Enhanced T-SQL Editing Experience**: Write T-SQL scripts with a range of powerful features, including: - - IntelliSense for faster and more accurate coding. - - Go to Definition for exploring database objects. - - T-SQL snippets to speed up repetitive tasks. - - Syntax colorizations and T-SQL error validations. - - Support for the `GO` batch separator. -- **Object Explorer**: Navigate and manage your database structure with ease - - Browse databases, tables, views, and programmability objects - - Expand or collapse objects to explore hierarchy visually - - Use enhanced filters to quickly locate items by name, owner, or creation date - - Streamline development in large databases with fast object access -- **Table Designer**: A visual tool for creating and managing tables in your databases. Design every aspect of the table's structure, including: - - Adding columns, setting data types, and specifying default values. - - Defining primary keys and managing indexes to improve query performance. - - Setting up foreign keys to maintain data integrity across tables. - - Configuring advanced options like check constraints. - - Automatically generate T-SQL scripts for your table design and apply changes directly to the database. -- **Query Plan Visualizer**: Analyze SQL query performance with detailed execution plans. Key features include: - - Interact with each step in the execution plan, including collapsing or expanding nodes for a simplified view. - - Zoom in or out to adjust the level of detail, or use "zoom to fit" for a complete view of the plan. - - Highlight key performance indicators, such as elapsed time or subtree cost, to identify bottlenecks in query execution. -- **Local SQL Server Containers** - - Create and manage SQL Server containers locally without Docker commands - - Use SQL Server 2025 by default with vector and AI-ready features - - Auto-connect with a ready-to-use connection profile - - Start, stop, restart, or delete containers from the connection panel - - Automatic port conflict detection and resolution - - Customize container name, hostname, port, and version -- **Schema Designer**: Visual schema modeling and editing—code-free - - Design, view, and manage database schemas using an intuitive drag-and-drop GUI - - Add or modify tables, columns, primary keys, and foreign key relationships without writing T-SQL - - Preview schema changes instantly as read-only T-SQL in the built-in code pane - - Navigate large schemas easily with search, mini-map, zoom, and auto-layout - - Filter by table name or relationship to focus on specific areas of your schema - - Export diagrams to share with your team or include in documentation - - Push updates to your database using the built-in deployment -- **Schema Compare**: Effortless schema synchronization and management - - Compare schemas between two databases, DACPAC files, or SQL projects and see additions, removals, and modifications at a glance - - Filter and exclude specific differences before syncing - - Apply changes directly or generate a deployment script for later use - - Save comparisons to rerun or audit schema changes -- **Customizable Extension Options**: Configure command shortcuts, appearance, and other settings to personalize your development experience. +- **Connect to your databases**: Seamlessly manage your database connections + - Connect to **SQL database in Fabric, Azure SQL, and SQL Server** using a user-friendly interface + - Use an intuitive Connection Dialog to enter parameters, paste a connection string, or browse Azure resources + - Access recent connections quickly from a dedicated panel + - Use Microsoft Entra ID authentication for secure access + - Manage multiple connection profiles for different environments + - Reconnect to frequently used databases in just a few clicks + - Organize your connections into color-coded groups to manage local, staging, and production environments side by side. +- **Execute queries and View Results**: Run your scripts and view results in a simple, yet powerful, grid with improved data visualization features: + - View results in a unified interface alongside the integrated terminal and output panels or in their own tab. + - Sort results by clicking on column headers. + - Easily copy results with or without headers for use in other applications. + - Export results to multiple formats, including JSON, Excel, and CSV. + - Enhanced experience with live execution timing summary metrics and stability improvements on large result sets + - View estimated plan and actual plan for T-SQL queries. +- **Enhanced T-SQL Editing Experience**: Write T-SQL scripts with a range of powerful features, including: + - IntelliSense for faster and more accurate coding. + - Go to Definition for exploring database objects. + - T-SQL snippets to speed up repetitive tasks. + - Syntax colorizations and T-SQL error validations. + - Support for the `GO` batch separator. +- **Object Explorer**: Navigate and manage your database structure with ease + - Browse databases, tables, views, and programmability objects + - Expand or collapse objects to explore hierarchy visually + - Use enhanced filters to quickly locate items by name, owner, or creation date + - Streamline development in large databases with fast object access +- **Table Designer**: A visual tool for creating and managing tables in your databases. Design every aspect of the table's structure, including: + - Adding columns, setting data types, and specifying default values. + - Defining primary keys and managing indexes to improve query performance. + - Setting up foreign keys to maintain data integrity across tables. + - Configuring advanced options like check constraints. + - Automatically generate T-SQL scripts for your table design and apply changes directly to the database. +- **Query Plan Visualizer**: Analyze SQL query performance with detailed execution plans. Key features include: + - Interact with each step in the execution plan, including collapsing or expanding nodes for a simplified view. + - Zoom in or out to adjust the level of detail, or use "zoom to fit" for a complete view of the plan. + - Highlight key performance indicators, such as elapsed time or subtree cost, to identify bottlenecks in query execution. +- **Local SQL Server Containers** + - Create and manage SQL Server containers locally without Docker commands + - Use SQL Server 2025 by default with vector and AI-ready features + - Auto-connect with a ready-to-use connection profile + - Start, stop, restart, or delete containers from the connection panel + - Automatic port conflict detection and resolution + - Customize container name, hostname, port, and version +- **Schema Designer**: Visual schema modeling and editing—code-free + - Design, view, and manage database schemas using an intuitive drag-and-drop GUI + - Add or modify tables, columns, primary keys, and foreign key relationships without writing T-SQL + - Preview schema changes instantly as read-only T-SQL in the built-in code pane + - Navigate large schemas easily with search, mini-map, zoom, and auto-layout + - Filter by table name or relationship to focus on specific areas of your schema + - Export diagrams to share with your team or include in documentation + - Push updates to your database using the built-in deployment +- **Schema Compare**: Effortless schema synchronization and management + - Compare schemas between two databases, DACPAC files, or SQL projects and see additions, removals, and modifications at a glance + - Filter and exclude specific differences before syncing + - Apply changes directly or generate a deployment script for later use + - Save comparisons to rerun or audit schema changes +- **Customizable Extension Options**: Configure command shortcuts, appearance, and other settings to personalize your development experience. ## Public Preview Features -- **GitHub Copilot Integration (`Preview`)**: Boost your productivity with AI‑assisted SQL development - - Intelligent T‑SQL completions and natural‑language prompts - - Explain objects and generate schema or test data - - Identify risky patterns and improve SQL security practices -- **GitHub Copilot Agent Mode (`Preview`)** Let Copilot perform database tasks on your behalf - - Securely executes actions like connecting, switching databases, or running queries directly from chat - - Surfaces schema details and connection info without manual navigation - - Provides a confirmable, AI-driven assistant for common database workflows - - Access all approved Agent tools from the Tools panel -- **GitHub Copilot Slash Commands (`Preview`)**: Quick, discoverable shortcuts in chat - - Type `/` to see commands like `/connect`, `/changeDatabase`, `/runQuery`, `/explain`, `/fix`, `/optimize` - - Connection commands open the MSSQL connection panel; query commands accept input and return results in chat -- **Fabric Integration (`Preview`)**: Browse workspaces and provision SQL databases in Fabric directly from VS Code - - Sign in with Microsoft Entra ID, browse workspaces, search, and connect to SQL databases or SQL analytics endpoints from the Connection dialog (includes **Open in MSSQL** from the Fabric extension) - - Create a SQL database from the Deployments page; capacity‑aware and **auto‑connects** when complete +- **GitHub Copilot Integration (`Preview`)**: Boost your productivity with AI‑assisted SQL development + - Intelligent T‑SQL completions and natural‑language prompts + - Explain objects and generate schema or test data + - Identify risky patterns and improve SQL security practices +- **GitHub Copilot Agent Mode (`Preview`)** Let Copilot perform database tasks on your behalf + - Securely executes actions like connecting, switching databases, or running queries directly from chat + - Surfaces schema details and connection info without manual navigation + - Provides a confirmable, AI-driven assistant for common database workflows + - Access all approved Agent tools from the Tools panel +- **GitHub Copilot Slash Commands (`Preview`)**: Quick, discoverable shortcuts in chat + - Type `/` to see commands like `/connect`, `/changeDatabase`, `/runQuery`, `/explain`, `/fix`, `/optimize` + - Connection commands open the MSSQL connection panel; query commands accept input and return results in chat +- **Fabric Integration (`Preview`)**: Browse workspaces and provision SQL databases in Fabric directly from VS Code + - Sign in with Microsoft Entra ID, browse workspaces, search, and connect to SQL databases or SQL analytics endpoints from the Connection dialog (includes **Open in MSSQL** from the Fabric extension) + - Create a SQL database from the Deployments page; capacity‑aware and **auto‑connects** when complete ![Demo](https://github.com/Microsoft/vscode-mssql/raw/main/images/mssql-demo.gif) ## Resources -- [Get started with the MSSQL extension](https://aka.ms/mssql-getting-started): Step-by-step tutorial to connect and query your first database -- [SQL Developer tutorial](https://aka.ms/sqldev): Build full-stack apps using SQL Server with C#, Java, Node.js, Python, and more -- [Local development with Azure SQL](https://learn.microsoft.com/azure/azure-sql/database/local-dev-experience-overview): Learn how to develop locally with Azure SQL Database -- [Dev Containers for Azure SQL](https://aka.ms/azuresql-devcontainers-docs): Set up repeatable dev environments using Dev Containers -- [Join the Discussion](https://aka.ms/vscode-mssql-discussions): Ask questions, suggest features, and engage with the community +- [Get started with the MSSQL extension](https://aka.ms/mssql-getting-started): Step-by-step tutorial to connect and query your first database +- [SQL Developer tutorial](https://aka.ms/sqldev): Build full-stack apps using SQL Server with C#, Java, Node.js, Python, and more +- [Local development with Azure SQL](https://learn.microsoft.com/azure/azure-sql/database/local-dev-experience-overview): Learn how to develop locally with Azure SQL Database +- [Dev Containers for Azure SQL](https://aka.ms/azuresql-devcontainers-docs): Set up repeatable dev environments using Dev Containers +- [Join the Discussion](https://aka.ms/vscode-mssql-discussions): Ask questions, suggest features, and engage with the community ## Using the MSSQL Extension @@ -114,29 +114,31 @@ Follow these steps to get started with the MSSQL extension: 5. Connect to a database using `F1` > `MS SQL: Connect` or the shortcut `Ctrl+Shift+C`. 6. Write your T-SQL script using IntelliSense and snippets. Type `sql` to explore available snippets. 7. Run queries by selecting **MS SQL: Execute Query** from the Command Palette (`F1`), or use the shortcut: - - **Windows/Linux**: `Ctrl+Shift+E` - - **macOS**: `Cmd+Shift+E` + +- **Windows/Linux**: `Ctrl+Shift+E` +- **macOS**: `Cmd+Shift+E` + 8. Customize shortcuts via the command palette or in your `settings.json`. See [customize shortcuts](https://github.com/Microsoft/vscode-mssql/wiki/customize-shortcuts) for help. ## Command Palette Commands -The extension provides several commands in the Command Palette for working with ```.sql``` files. Here are some of the most commonly used commands: +The extension provides several commands in the Command Palette for working with `.sql` files. Here are some of the most commonly used commands: -- **MS SQL: Connect** to SQL Server, Azure SQL Database or SQL Data Warehouse using connection profiles or recent connections. - - **Create Connection Profile** to create a new connection profile and connect. -- **MS SQL: Disconnect** from SQL Server, Azure SQL Database or SQL Data Warehouse in the editor session. -- **MS SQL: Use Database** to switch the database connection to another database within the same connected server in the editor session. -- **MS SQL: Execute Query** script, T-SQL statements or batches in the editor. -- **MS SQL: Cancel Query** execution in progress in the editor session. -- **MS SQL: Manage Connection Profiles** - - **Create** a new connection profile using command palette's step-by-step UI guide. - - **Edit** user settings file (settings.json) in the editor to manually create, edit or remove connection profiles. - - **Remove** an existing connection profile using command palette's step-by-step UI guide. - - **Clear Recent Connection List** to clear the history of recent connections. +- **MS SQL: Connect** to SQL Server, Azure SQL Database or SQL Data Warehouse using connection profiles or recent connections. + - **Create Connection Profile** to create a new connection profile and connect. +- **MS SQL: Disconnect** from SQL Server, Azure SQL Database or SQL Data Warehouse in the editor session. +- **MS SQL: Use Database** to switch the database connection to another database within the same connected server in the editor session. +- **MS SQL: Execute Query** script, T-SQL statements or batches in the editor. +- **MS SQL: Cancel Query** execution in progress in the editor session. +- **MS SQL: Manage Connection Profiles** + - **Create** a new connection profile using command palette's step-by-step UI guide. + - **Edit** user settings file (settings.json) in the editor to manually create, edit or remove connection profiles. + - **Remove** an existing connection profile using command palette's step-by-step UI guide. + - **Clear Recent Connection List** to clear the history of recent connections. ## Extension Settings -The following Visual Studio Code settings are available for the mssql extension. These can be set in user preferences (cmd+,) or workspace settings ```(.vscode/settings.json)```. +The following Visual Studio Code settings are available for the mssql extension. These can be set in user preferences (cmd+,) or workspace settings `(.vscode/settings.json)`. ```javascript // General Settings @@ -220,16 +222,16 @@ See the [change log](https://github.com/Microsoft/vscode-mssql/blob/main/CHANGEL Currently this extension supports the following operating systems: -- Windows (x64 | x86 | arm64) -- macOS (x64 | arm64) -- Ubuntu 14.04 / Linux Mint 17 / Linux Mint 18 / Elementary OS 0.3 -- Ubuntu 16.04 / Elementary OS 0.4 -- Debian 8.2 -- CentOS 7.1 / Oracle Linux 7 -- Red Hat Enterprise Linux (RHEL) -- Fedora 23 -- OpenSUSE 13.2 -- Linux arm64 +- Windows (x64 | x86 | arm64) +- macOS (x64 | arm64) +- Ubuntu 14.04 / Linux Mint 17 / Linux Mint 18 / Elementary OS 0.3 +- Ubuntu 16.04 / Elementary OS 0.4 +- Debian 8.2 +- CentOS 7.1 / Oracle Linux 7 +- Red Hat Enterprise Linux (RHEL) +- Fedora 23 +- OpenSUSE 13.2 +- Linux arm64 ## Offline Installation diff --git a/SECURITY.md b/SECURITY.md index f7b89984f0..6143e6b182 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -4,7 +4,7 @@ Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). -If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10)), please report it to us as described below. +If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](), please report it to us as described below. ## Reporting Security Issues @@ -12,19 +12,19 @@ If you believe you have found a security vulnerability in any Microsoft-owned re Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report). -If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://www.microsoft.com/en-us/msrc/pgp-key-msrc). +If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://www.microsoft.com/en-us/msrc/pgp-key-msrc). -You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc). +You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc). Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: - * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) - * Full paths of source file(s) related to the manifestation of the issue - * The location of the affected source code (tag/branch/commit or direct URL) - * Any special configuration required to reproduce the issue - * Step-by-step instructions to reproduce the issue - * Proof-of-concept or exploit code (if possible) - * Impact of the issue, including how an attacker might exploit the issue +- Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) +- Full paths of source file(s) related to the manifestation of the issue +- The location of the affected source code (tag/branch/commit or direct URL) +- Any special configuration required to reproduce the issue +- Step-by-step instructions to reproduce the issue +- Proof-of-concept or exploit code (if possible) +- Impact of the issue, including how an attacker might exploit the issue This information will help us triage your report more quickly. @@ -38,4 +38,4 @@ We prefer all communications to be in English. Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://www.microsoft.com/en-us/msrc/cvd). - \ No newline at end of file + diff --git a/images/ux/README.md b/images/ux/README.md index 9d31329b97..20ab5b9a1f 100644 --- a/images/ux/README.md +++ b/images/ux/README.md @@ -1 +1 @@ -Images in this folder are not packaged into the extension; they have been excluded via `.vscodeignore`. \ No newline at end of file +Images in this folder are not packaged into the extension; they have been excluded via `.vscodeignore`. diff --git a/localization/README.md b/localization/README.md index 92464c000d..ca657b68a7 100644 --- a/localization/README.md +++ b/localization/README.md @@ -10,8 +10,8 @@ Example of `package.nls.json` ```json { - "mssql.key1": "Localized string 1", - "mssql.key2": "Localized string 2" + "mssql.key1": "Localized string 1", + "mssql.key2": "Localized string 2" } ``` @@ -19,13 +19,13 @@ Using in `package.json` to contribute to vscode extensibility points. For exampl ```json { - "commands": [ - { - "command": "mssql.testCommand", - "title": "%mssql.key1%", - "icon": "$(debug-start)" - } - ] + "commands": [ + { + "command": "mssql.testCommand", + "title": "%mssql.key1%", + "icon": "$(debug-start)" + } + ] } ``` @@ -36,20 +36,19 @@ Using in `package.json` to contribute to vscode extensibility points. For exampl If you need to localize strings in the extension code, you can use the directly use the l10n api provided by vscode. To read more the l10n api, please refer to the [official documentation](https://code.visualstudio.com/api/references/vscode-api#l10n) ```ts -import { l10n } from 'vscode'; +import { l10n } from "vscode"; -const test = l10n.t('Test loc'); +const test = l10n.t("Test loc"); ``` After adding a new string to localize, you need to run `yarn localization` to update the xlf and l10n files. - ### React webviews: Since webviews do not have access to the vscode API, we need to use `@vscode/l10n` library to localize strings in the React components. ```ts -import * as l10n from '@vscode/l10n'; +import * as l10n from "@vscode/l10n"; const test = l10n.t(`Test loc`); ``` @@ -57,38 +56,42 @@ const test = l10n.t(`Test loc`); After adding a new string to localize, you need to run `yarn localization` to update the xlf and l10n files. NOTE: Please follow the exact syntax `l10n.t()` otherwise the localization extraction will not work. So things like this won't work. + ```ts -import * as l10n from '@vscode/l10n'; +import * as l10n from "@vscode/l10n"; const { t } = l10n; const test = t(`Test loc`); ``` - ## Localization Process Overview ### Step 1: Extracting Localization Strings + 1. Run the command `yarn localization`. 2. This triggers a task that scans all the source files for both the extension and webview. 3. It extracts all `l10n.t` function calls and compiles them into a `bundle.l10n.json` file located in the `localization\l10n` folder. 4. The task then reads this `bundle.l10n.json` file, along with the `package.nls.json` file, and updates the `enu.xliff` file found in the `localization\xliff` folder. ### Step 2: Translating the XLIFF File -- The `enu.xliff` file is sent to translators for translation. -- After translation, the translated XLIFF files are placed back in the `localization\xliff` folder. + +- The `enu.xliff` file is sent to translators for translation. +- After translation, the translated XLIFF files are placed back in the `localization\xliff` folder. ### Step 3: Generating Localization Files + 1. As a part of build process we run `yarn build:runtime-localization`. 2. This task reads the translated XLIFF files and generates localized JSON files: - - `bundle.l10n.{locale}.json` files are saved in the `localization\l10n` folder. - - `package.nls.{locale}.json` files are saved in the root folder. + - `bundle.l10n.{locale}.json` files are saved in the `localization\l10n` folder. + - `package.nls.{locale}.json` files are saved in the root folder. ### Step 4: Using the Localization Files -- The extension uses these generated JSON files to localize the strings in the user interface (UI). The root of the l10n is provided in the `package.json` file with `l10n` key. For now it is set to `localization/l10n`. + +- The extension uses these generated JSON files to localize the strings in the user interface (UI). The root of the l10n is provided in the `package.json` file with `l10n` key. For now it is set to `localization/l10n`. ## To test localization. - 1. Run `yarn localization:generate-pseudoloc` to generate pseudo localization files. - 2. This generates `bundle.l10n.qps-ploc.json` and `package.nls.qps-ploc.json` files in the `localization\l10n` and root folders respectively. - 3. Install the `Pseudo Language Language Pack` extension in VS Code. - 4. Set the display language to `Pseudo Language` using `Configure Display Language` command in the command palette. - 5. Reload vscode and test the extension to see the pseudo localized strings in the UI. \ No newline at end of file +1. Run `yarn localization:generate-pseudoloc` to generate pseudo localization files. +2. This generates `bundle.l10n.qps-ploc.json` and `package.nls.qps-ploc.json` files in the `localization\l10n` and root folders respectively. +3. Install the `Pseudo Language Language Pack` extension in VS Code. +4. Set the display language to `Pseudo Language` using `Configure Display Language` command in the command palette. +5. Reload vscode and test the extension to see the pseudo localized strings in the UI. diff --git a/samples/connection-sharing-sample/CHANGELOG.md b/samples/connection-sharing-sample/CHANGELOG.md index c214f8e25b..85cb83463d 100644 --- a/samples/connection-sharing-sample/CHANGELOG.md +++ b/samples/connection-sharing-sample/CHANGELOG.md @@ -6,4 +6,4 @@ Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how ## [Unreleased] -- Initial release \ No newline at end of file +- Initial release diff --git a/samples/connection-sharing-sample/README.md b/samples/connection-sharing-sample/README.md index ce0e59dfb0..7d78b8d09b 100644 --- a/samples/connection-sharing-sample/README.md +++ b/samples/connection-sharing-sample/README.md @@ -10,11 +10,13 @@ This sample extension showcases two different approaches to leverage database co 2. **Direct API approach** - Using the MSSQL extension's exported API directly ## To run: + 1. Compile the mssql extension by running from the repository root: -````bash + +```bash yarn yarn watch -```` +``` 2. Open this sample extension in VS Code 3. In the Run and Debug view, select the "Run Extension" configuration @@ -22,4 +24,4 @@ yarn watch ## 🆘 Support -If you encounter any issues or have questions, please open issues on Github. \ No newline at end of file +If you encounter any issues or have questions, please open issues on Github. diff --git a/syntaxes/README.md b/syntaxes/README.md index f96f70e17f..746607931c 100644 --- a/syntaxes/README.md +++ b/syntaxes/README.md @@ -38,4 +38,4 @@ npm run update-grammar 3. Send out a PR with the changes made to any files that were modified, making sure to link to the original PR in this repo where the changes were made -*Note*: You can test Azure Data Studio locally by building and running it and verifying the colors are correct in a new editor window +_Note_: You can test Azure Data Studio locally by building and running it and verifying the colors are correct in a new editor window diff --git a/test/e2e/README.md b/test/e2e/README.md index dde3370ff5..3e52f542a8 100644 --- a/test/e2e/README.md +++ b/test/e2e/README.md @@ -10,8 +10,8 @@ For more information regarding this limitation, refer to [using insiders version ### Prerequisites -- [Node.js](https://nodejs.org/en/) v18 or higher -- [yarn](https://yarnpkg.com/) v1.22.0 or higher, `npm install -g yarn` +- [Node.js](https://nodejs.org/en/) v18 or higher +- [yarn](https://yarnpkg.com/) v1.22.0 or higher, `npm install -g yarn` --- @@ -44,6 +44,7 @@ yarn watch To run tests, the following options can be used: 1. Using Playwright Test for VSCode: + - Install the `Playwright Test for VSCode` extension in VS code. - [Run tests with a single click](https://github.com/microsoft/playwright-vscode/blob/main/README.md#run-tests-with-a-single-click) @@ -52,6 +53,7 @@ To run tests, the following options can be used: ![Playwright Test for VSCode Test Explorer](../../images/test-explorer-view.png). 2. Setup environment variables in the `test\e2e` folder + - Create a `.env` file - Add the variables that you want based on the .env.example - Example: @@ -70,4 +72,4 @@ To run tests, the following options can be used: The tests will automatically appear in the **Test Explorer** view after running them once, and green run icons will appear to the left of line numbers in the editor, like this: -![Run buttons to the left of line numbers in editor](../../images/editor-view-with-tests.png) \ No newline at end of file +![Run buttons to the left of line numbers in editor](../../images/editor-view-with-tests.png) diff --git a/test/unit/AGENTS.md b/test/unit/AGENTS.md index e4c151e0bb..5fa0da47ce 100644 --- a/test/unit/AGENTS.md +++ b/test/unit/AGENTS.md @@ -2,27 +2,27 @@ ### Rules & Expectations - * Do not edit application/source files unless the refactor demands it. Confirm before editing files outside of /test/unit, and justify why you need to make those changes. - * Use Sinon, not TypeMoq. If easily possible, replace TypeMoq mocks/stubs/helpers with Sinon equivalents. - * Use a Sinon sandbox (setup/teardown with sinon.createSandbox()); keep helper closures (e.g., createServer) inside setup where the - sandbox is created. - * Default to chai.expect; when checking Sinon interactions, use sinon-chai. - * Avoid Object.defineProperty hacks and (if possible) fake/partial plain objects; use sandbox.createStubInstance(type) and sandbox.stub(obj, 'prop').value(...). - * Add shared Sinon helpers to test/unit/utils.ts when they’ll be reused. - * If updating preexisting tests, preserve relevant inline comments from the original tests. - * When introducing a Sinon helper to replace a TypeMoq helper (e.g., capabilities mock), follow the utils.ts pattern: accept an optional - sandbox, create stub instances, and return them. - * Avoid unnecessary casts, like `myVar as unknown as MyType` when myVar is already a sinon-stubbed instance of MyType. - * Maintain existing formatting conventions, line endings, and text encoding. - * Nest test suits as necessary to group tests in a logical manner. +- Do not edit application/source files unless the refactor demands it. Confirm before editing files outside of /test/unit, and justify why you need to make those changes. +- Use Sinon, not TypeMoq. If easily possible, replace TypeMoq mocks/stubs/helpers with Sinon equivalents. +- Use a Sinon sandbox (setup/teardown with sinon.createSandbox()); keep helper closures (e.g., createServer) inside setup where the + sandbox is created. +- Default to chai.expect; when checking Sinon interactions, use sinon-chai. +- Avoid Object.defineProperty hacks and (if possible) fake/partial plain objects; use sandbox.createStubInstance(type) and sandbox.stub(obj, 'prop').value(...). +- Add shared Sinon helpers to test/unit/utils.ts when they’ll be reused. +- If updating preexisting tests, preserve relevant inline comments from the original tests. +- When introducing a Sinon helper to replace a TypeMoq helper (e.g., capabilities mock), follow the utils.ts pattern: accept an optional + sandbox, create stub instances, and return them. +- Avoid unnecessary casts, like `myVar as unknown as MyType` when myVar is already a sinon-stubbed instance of MyType. +- Maintain existing formatting conventions, line endings, and text encoding. +- Nest test suits as necessary to group tests in a logical manner. ### Process - * Write tests following the rules and expectations defined above. - * Validate the tests written by running the test suite you've edited. - * Don't commit your changes unless directly instructed. If you do create git commits, follow these rules: - * Choose a concise commit message - * Orgnize the contents of each commit with test files that make sense together. It's okay for each .test.ts file to have its own commit if they're not related. +- Write tests following the rules and expectations defined above. +- Validate the tests written by running the test suite you've edited. +- Don't commit your changes unless directly instructed. If you do create git commits, follow these rules: + - Choose a concise commit message + - Orgnize the contents of each commit with test files that make sense together. It's okay for each .test.ts file to have its own commit if they're not related. ### Testing diff --git a/test/unit/README.md b/test/unit/README.md index a369de98a4..c252fa3e91 100644 --- a/test/unit/README.md +++ b/test/unit/README.md @@ -3,9 +3,10 @@ You can run all the unit tests for the extension using `yarn testWithCoverage`. This will run the tests and generate a coverage report in the `coverage` folder. For better debugging, you can install following extensions in VS Code: -- `"ms-vscode.extension-test-runner"`: For running tests and debugging from the Test Explorer -![Unit test explorer](../../images/unit-test-explorer-view.png) -- `"tenninebt.vscode-koverage"`: For seeing code coverage in test explorer. -![Unit test coverage explorer](../../images/unit-test-koverage-explorer-view.png) -- `"ryanluker.vscode-coverage-gutters"`: For seeing code coverage in the editor. You nee -![Coverage gutters](../../images/unit-test-coverage-gutters.png) \ No newline at end of file + +- `"ms-vscode.extension-test-runner"`: For running tests and debugging from the Test Explorer + ![Unit test explorer](../../images/unit-test-explorer-view.png) +- `"tenninebt.vscode-koverage"`: For seeing code coverage in test explorer. + ![Unit test coverage explorer](../../images/unit-test-koverage-explorer-view.png) +- `"ryanluker.vscode-coverage-gutters"`: For seeing code coverage in the editor. You nee + ![Coverage gutters](../../images/unit-test-coverage-gutters.png) From a2b103cfc05e1e7a9fd9d828b714169a6b3879ce Mon Sep 17 00:00:00 2001 From: "Benjin Dubishar (from Dev Box)" Date: Thu, 2 Oct 2025 17:19:09 -0700 Subject: [PATCH 2/2] formatting html files --- media/landing.html | 77 +++++++++---------- .../pages/QueryResult/queryResult.html | 16 ++-- .../pages/TableDesigner/tableDesigner.html | 16 ++-- 3 files changed, 54 insertions(+), 55 deletions(-) diff --git a/media/landing.html b/media/landing.html index 1c0baea86f..bdb5b22819 100644 --- a/media/landing.html +++ b/media/landing.html @@ -1,41 +1,40 @@ - + - - - - Azure Account - Sign In - - - - - - - mssql for Visual Studio Code - -
-
- -
-
- Your account was added successfully! -
-
- You may now close this page. -
-
- An error occurred while signing in: -
-
-
- - + + + + Azure Account - Sign In + + + + + + + mssql for Visual Studio Code + +
+
+ +
+
Your account was added successfully!
+
You may now close this page.
+
+ An error occurred while signing in: +
+
+
+ + diff --git a/src/reactviews/pages/QueryResult/queryResult.html b/src/reactviews/pages/QueryResult/queryResult.html index a9335b568c..bee59fe689 100644 --- a/src/reactviews/pages/QueryResult/queryResult.html +++ b/src/reactviews/pages/QueryResult/queryResult.html @@ -1,11 +1,11 @@ - - - - - -
- - + + + + + +
+ + diff --git a/src/reactviews/pages/TableDesigner/tableDesigner.html b/src/reactviews/pages/TableDesigner/tableDesigner.html index a9335b568c..bee59fe689 100644 --- a/src/reactviews/pages/TableDesigner/tableDesigner.html +++ b/src/reactviews/pages/TableDesigner/tableDesigner.html @@ -1,11 +1,11 @@ - - - - - -
- - + + + + + +
+ +