[SQL Assessment API](https://docs.microsoft.com/en-us/sql/sql-assessment-api/sql-assessment-api-overview) provides a mechanism to evaluate the configuration
of SQL Server for best practices. SQL Assessment API gives a list
of recommended actions to improve SQL Server performance or security.
The SQL Assessment service is used by the expected SQL Assessment
feature of Azure Data Studio.
SqlAssessmentService forwards JSONRPC calls to SQL Assessment engine
and wraps results as a response.
`assessment/getAssessmentItems` returns a set of checks
applicable to a given target.
`assessment/invoke` returns a set of recommendations
for improving SQL Server instance or database configurations.
`assessment/generateScript` returns a T-SQL script for storing
an assessment result set to a SQL data table.
FileUtils.TestServerNamesDefaultFileName_get uses '… + @"\\" + …'
construct to build the default path for the test server names file.
While escaping a backslash in a verbatim string is a typo, the
approach was error-prone. Replace string manipulation and environment
variables magic with calls to well-tested library functions.
GetSettingFileContent() displays a message on switching to VS Code
settings when SQL connection instances were configured.
Move the message to the branch for the absent test configuration file.
* Enable the enclave connection parameters.
* Update the switch statement to use the enum constants for EnclaveAttestationProtocol
* Update verbiage for Always Encrypted connection options
* Update the argument exception to chose one specific to this connection option
* Add resource logic to resource files.
* Add error checking for when enclave parameters are added and Always Encrypted is set to disabled.
* Add/Update unit tests
* Initial Investigation
* Working code with include, connect, on error and tests
* Adding some loc strings
* Some cleanup and more tests
* Some dummy change to trigger build
* Adding PR comments
* Addressing PR comments
* Revert "Update SMO (#875)"
This reverts commit 96593d66e3.
* Revert "Switch Tools Service to new SMO and Microsoft.Data.SqlClient driver (#865)"
This reverts commit 9d140b53f3.
* Bump SMO to 160.1910315.0-preview
* Hotfix for ads dashboard for sqlondemand
* Generalizing engine edition functions and adapting tests
* Minor comment and cosmetic fixes
* Adding SqlOnDemand server edition string
* Send back dependencies causing the exclude to fail instead of blocking the call
* Separate AffectedDependences and BlockingDependencies into separate properties
* add named parameters
* separate out include/exclude success cases for clarity
* send back success of include/exclude request
* update dacfx nuget package and use new api to get affected dependencies of include/exclude request
* addressing comments
* rename test
* Addressing comments
* Adding Support for SqlOnDemand
* Updating unit test per comment
* Resolving comments. Enabling external table for sqlondemand
* Resolving comments. Enabling External tables for sqlondemand
* Enabling external tables for sqlondemand
* Fix tools service to store the corrected file path
* Use ClientFilePath for key
* Further fixes
* Undo spacing changes
* Fix tests
* Trigger CI rebuild
* switch to ambient props and targets files
* build against Microsoft.Data.SqlClient
* build tests
* fix test bug
* temporarily add SMO nuget to the repo
* update to released Microsoft.Data package
* pass AzureAcountToken if there is one
* Addressing comments
* formatting
* more formatting and moving getting connectionstring from constructor to CreateSchemaCompareEndpoint()
* Added endpoint for fetching all notebook jobs
* Refractored NotebookJobInfo to AgentNotebookInfo to make it more consistent with the rest of the codebase
* Added Notebook History endpoint in contracts.
* Added Create, Update, Delete notebook endpoints. Also added separate fetch template, materialized notebook endpoints. This will make the Notebook Request and Notebook History responses lighter.
* AgentNotebookInfo is now derived from AgentJobInfo
* added fetch noteook history endpoint
* Added fetching materialized notebook endpoint
* Added code for cleaning up the directory
* Added create notebook api
* Added Update and delete notebook job
* Fixed notebook history API
* Added last run info to the script and template folder
* Added execute database feature for notebook Jobs
* SQL commands are now using sqlparameters to prevent
any injection attacks
* Changed rundate and runtime to string to preserve
leading zeros
* integration test for agentnotebooks api
* Made some changes mentioned in PR
* Refactored the code, removed enpoint logic from the notebook handler and
wrote test cases
* changes select statements, fixed a bug in the test job cleanup
and fixed other stuff mentioned in the PR.
* added notebook_error column in notebook history select statement
* Added get template notebook endpoint
* Part1 : Changes to make cmdcmd script to work with parameters in script
* Stop SQL intellisense for SQLCMD
* Adding test for Intellisense handling of SQLCMD page
* Removing unintentional spacing changes caused by formatting
* Updating with smaller CR comments. Will discuss regarding script vs other options in batch info
* Removing unintentional change
* Adding latest PR comments
* Fix serialization tests & don't block thread
- Fixed potential null ref when closing streams
- Always clean up serialization queue if an error occurs
- Stop blocking dispatcher thread by not awaiting task that processes the message
- Improved error logging in EventFlowValidator to help debug issues
- Close stream on exception
* updating dacfx with private nuget for testing
* Updating to real dacfx-preview version
* Removing additional refs added by nuget package manager (these were not there previously)
Added a method that handles serialization requests
Support splitting save over multiple requests to reduce overall message size
Added unit tests
String changes used a new version of the string tool for generation.
Will publish PR separately for the changes to build & localization
so this can run on Mac without .Net Core 1.0
* Adding ICompletionExtension interface
* Adding extension loading and execution logic
* Fixing compilation error in VS 2017
* Using MEF for completion extension discovery
* using await on GetCompletionItems
* Adding an integration test for completion extension and update the completion extension interface
* Update the completion extension test
* Fix issues based on review comments
* Remove try/cache based on review comments, fix a integration test.
* More changes based on review comments
* Fixing SendResult logic for completion extension loading
* Only load completion extension from the assembly passed in, add more comments in the test
* Adding right assert messages in the test.
* More fixes based on review comments
* Dropping ICompletionExtensionProvider, load assembly only if it's loaded at the first time or updated since last load.
* Fix based on the latest review comments
* Adding missing TSQL functions in default completion list
* Update jsonrpc documentation for completion/extLoad
* Fix Schema compare Publish and Script generation task to return back error messages correctly.
* Elaborating test a bit more to cover tasks
* Validate one task at a time for better clarity
* send back only errors not whole messages since task view doesnt have a good way (other than hover text) to show long messages
* Fixing the negative test cases
* First cut of scmp Save related changes and some test refactoring
* Adding Exclude/Include objects in saving
* Add diff entry validation as part of test
* Adding PR comments - major change is change to nameparts in place of name hence preserving any "."/"[" in name and avoiding any string operations
* One more UT scenario addition for create excluded object
* initial open scmp changes
* more open scmp changes and adding tests
* moving some common test code
* simplify endpoint info parsing
* addressing comments and moving more common test code
* addressing comments
* Adding some default values to match DacFx deploy Extension and other tools. This help the default behavior but doesn't fix the issue.
* Fixing a test for default values and adding comment
* fixing the order of setting backup properties so that they are correctly propogated to actual action
* Adding a backup type specific test and enabling 'few' old ones which seem to work consistentenly
* Adding finally block, close connection and name change as per PR comments