* disabling revert SQLCMD var value button when no changes to values; changing string
* Updating docstring
* Updating behavior to account for SQLCMD vars defined in publish profiles
* Move call to STS move api into project.ts (#22071)
* move call to STS move api into project.ts
* remove undefined
* Remove convert to sdk style code (#22081)
* remove convert to sdk style code
* remove from package.json
* Merging latest from main (#22097)
* [SQL-Migration] Login migrations telemetry (#22038)
This PR enhances telemetry for login migrations (and in the following ways:
Add details for starting migration (number of logins migrating, type of logins)
Log Migration result (number of errors per step, duration of each step, type of logins, if system error occurred)
Add sql-migration extension to our telemetry
Adds details when trying to connect to target
Tracks clicking "done" from the wizard
Fixes bucketizing for navigating telemetry in the login migration wizard
Sample usage of kusto query for new telemetry:
RawEventsADS
| where EventName contains 'sql-migration'
| extend view = tostring(Properties['view'])
| extend action = tostring(Properties['action'])
| extend buttonPressed = tostring(Properties['buttonpressed'])
| extend pageTitle = tostring(Properties['pagetitle'])
| extend adsVersion = tostring(Properties['common.adsversion'])
| extend targetType = tostring(Properties['targettype'])
| extend tenantId = tostring(Properties['tenantid'])
| extend subscriptionId = tostring(Properties['subscriptionid'])
| where view contains "login"
//| where adsVersion contains "1.42.0-insider"
| where ClientTimestamp >= ago(18h)
| project EventName, ClientTimestamp, SessionId, view, pageTitle, action, buttonPressed, targetType
, tenantId, subscriptionId
, adsVersion, OSVersion, Properties
* Add Secure Enclaves dropdown with customizable Advanced options (#22019)
* Update extension READMEs (#22079)
* Fix query-history README images (#22084)
* [Loc] update to mssql and sql-migration xlf files (#22087)
* [Loc] small fix to Portuguese lcl file (#22088)
* [Loc] small fix to Portuguese lcl file
* remove newline
* Adding None bindings to the sqlProjects service (#22085)
* Adding None bindings
* updating names of None bindings
---------
Co-authored-by: AkshayMata <akam520@gmail.com>
Co-authored-by: Cheena Malhotra <13396919+cheenamalhotra@users.noreply.github.com>
Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>
Co-authored-by: Alex Ma <alma1@microsoft.com>
* Swap add and update sqlcmd variables in sql projects to use STS apis (#22086)
* delete sqlcmd variable working
* undo add
* remove variable from add and update sqlcmd variable apis
* hookup add and edit sqlcmd variable
* update vscode-mssql.d.ts
* move add and edit to project.ts
* update STS and tests
* move delete sqlcmd variable to project.ts (#22104)
* add test for add and edit sqlcmd variable (#22107)
* Swapping property access to STS (#22115)
* checkpoint
* Adding sqlproj property bindings
* Swapping out property loading and setting
* consolidating to this.sqlProjService
* Update dacpac reference to use STS api (#22116)
* Update add dacpac reference to use STS api
* remove changes for project ref
* validate unset settings from add database reference dialog
* update one more place getting sqlprojservice
* addressing comments
* fix path for dacpac reference (#22143)
* Swap add project reference to call STS (#22148)
* initial changes for swapping add project reference
* fix include path
* move common logic to helper function
* read sqlcmd variables from STS (#22147)
* Swapping .sqlproj- and crossplat compatibility-related functions to use STS (#22146)
* Supporting roundtrip
* Updating sqlproj style checks and cross-platform compatibility to use STS
* removing unnecessary awaits
* Fixing assertions
* Adding roundtrip update confirmations
* test cleanup
* cleaning up comment; localizing error
* Swap add system db reference (#22171)
* swap adding system database references
* fix tests
* remove only in test
* Read database references from STS (#22179)
* Read database references from STS
* fix system dacpac names
* fix project reference name
* Swap changeTargetPlatform to call STS (#22172)
* swap changeTargetPlatform to call STS
* Address comments
* De-duplicating enum for SystemDatabase (#22196)
* Deudping SystemDatabase enum
* simplifying enum refs
* Removing the now-unused imports code from SqlProjects (#22199)
* Removing unused importTargets entries
* whitespace; also to retrigger github checks on correct branch
* Hooking in Move() for Nones and PublishProfiles (#22200)
* Swap delete database reference to call STS (#22215)
* initial changes
* update contracts
* remove unnecessary info from SystemDatabaseReferenceProjectEntry
* uppercase master and msdb
* cleanup
* update test
* update comment
* undo change in projectController.ts
* remove unused system dacpac helper functions (#22204)
* more cleanup of project.ts (#22242)
* fix a couple database reference tests (#22248)
* Organizing sqlcmd variable and db reference code (#22284)
* organize database references and sqlcmd variable functions
* separate database reference tests
* Script and folder get + add support (#22166)
* Initial sqlobjectscripts
* adding mock filter
* test fixing
* another test passing
* swapping pre/post/none checkpoint
* awaiters
* convert addExistingItem
* swapping folders
* removing print
* stripping out project folder and file readers
* adding some regions
* Updating sqlproj style checks and cross-platform compatibility to use STS
* Updating sqlproj style checks and cross-platform compatibility to use STS
* added type property to tree items
* projectController swapovers
* removing imported targets
* Deleting the last of the TS XML parsing!
* Removing old functions
* renamed readNoneScripts to readNoneItems
* fixing path passed to STS calls
* remove system dacpac tests that were moved to DacFx (#22299)
* fix error when opening file after adding a file to sql project (#22309)
* fix error when opening file after adding a file to sql project
* remove unused import
* fix exclude for table and externalStreamingJob (#22310)
* add reload project (#22313)
* set DSP from STS (#22320)
* fix adding post-deployment script and existing item (#22317)
* Test cleanup for .sqlproj content operations (#22330)
* Fixing up tests
* sqlproj content operations tests
* remove only
* Cleanup
* Correcting collation
* cleanup constants.ts (#22336)
* fix folders not showing in project tree (#22319)
* Fix project controller tests (#22327)
* fixing ProjectController tests after swap
* remove only from database reference tests
* change system dbs back to lowercase in sql projects (#22353)
* Bump tools service
* Updated yarn.lock file
* pass SystemDacpacsLocation when building legacy style sql projects (#22329)
* Benjin/fix types (#22365)
* Updated yarn.lock file
* Fixing types
* fix projectController tests (#22375)
* Fixing the deletion flow for files and folders (#22366)
* checkpoint
* PR feedback
* Fixing up SDK-style operations project test group (#22377)
* Fixing up SDK-style project test group
* Removing .only
* Fixing up database reference tests (#22380)
* Fixing DB reference test group
* Extra cleanup
* removing only
* Consolidating None and PublishProfile; lighting up test (#22382)
* Lighting up project property tests (#22395)
* Checkpoint
* Lighting up project property tests
* removing timeout
* Fixing buildHelper test (#22400)
* Unskipping up roundtrip test (#22397)
* Refactoring database references to split literalVariable from databaseName (#22412)
* refactoring database references to split databaseVariableLiteralValue out from databaseName
* renaming more properties
* Removing branch in entry population
* removing only
* Fixing baselines for delete test
* PR feedback
* Fixing up ProjectTree tests (#22419)
* Fixing up projectTree tests
* remove only
* Updating projectController exclude test (#22413)
* Updating test
* moving filtering for external folders to readFolders() method
* Removing EntryType import
* fix ups (#22435)
* adding extra info for test failure
* hide exclude folder from context menu until it's supported (#22454)
* Adding current test name to generated folder to avoid conflicts (#22478)
* Adding current test name to generated folder to avoid conflicts
* passing correct test parameter in
* Adding trimming and entropy
* Deleting unused baselines (#22497)
* Replacing addToProject() with addSqlObjectScripts() (#22489)
* checkpoint
* Fixing test
* Updating file scraper function to filter only to .sql files (no folders, no txt)
* changing var names to reflect that the lists only contain .sql scripts
---------
Co-authored-by: Kim Santiago <31145923+kisantia@users.noreply.github.com>
Co-authored-by: AkshayMata <akam520@gmail.com>
Co-authored-by: Cheena Malhotra <13396919+cheenamalhotra@users.noreply.github.com>
Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>
Co-authored-by: Alex Ma <alma1@microsoft.com>
* starts of sqlprojectsservice
* copy to mssql
* adding all the boilerplate
* updating service call structures
* Fixing up test mocks
* Adding comments to all the bindings
* blank space
* swapping for Promise; adding vscode-mssql type bindings
* patching
* Set default radio button selection, evaluate default component population off of selection instead of unprocessed input
* rename var
* if -> switches
* Remove project radio buttons because they require commands that aren't yet checked in (and fail as a result)
* Adding prompt for project name
* Updating test
* PR feedback
* Fixing rename logic so that folder is also named according to project
* Updating autorest test to confirm rename
* Giving user option to install autorest globally or run via npx
* Adds message for when no files are generated (no models in spec)
* Adding test
* Reinstating the rest of the test suite
* PR feedback
* Fixing tests to stub new prompt when test runner doesn't have autorest installed
* PR feedback
* fix typo
* fix typo
* Initial changes
* checkpoint
* Constructing project with post deployment script
* Correcting to intentionally read from cached list of projects
* Adding activation event, fixing fresh workspace bug
* Convert netcoreTool and autorestHelper to share a helper class for streamed command
* Include npm package version to force update
* test checkpoint
* Unit tests
* Added contextual quickpicks for autorest dialogs
* Adding projectController test
* Added projectController test, some refactoring for testability
* Merge branch 'main' into benjin/autorest
* Fixing 'which' import
* PR feedback
* Fixing tests
* Adding additional information for when project provider tests fail
* Hopefully fixing failing tests (unable to repro locally)
* Adding Generate Project item to workspace menu
* PR feedback
* Added publish and schema compare telemetry
* Adding telemetry points for add/exclude/delete
* telemetry for validation
* Adding telemetry from project roundtrip updates, editing sqlproj, and db refs
* Changed method for obtaining extension ID during registration
* Fixing test failures, updating ads telemetry package dependency
* replacing action strings with enums
* change database project string actions to enums
* Changed action name to better match dialog
* PR feedback
* adding telemetry dependencies for data-workspaces and sql-database-projects
* Adding telemetry dependencies for dacpac extension
* Adding telemetry base to data workspaces and projects
* Adding telemetry base code to the dacpac extension
Co-authored-by: Benjin Dubishar <benjin@Largo.local>
Co-authored-by: Sai Avishkar Sreerama <ssreerama@microsoft.com>
* Added Tools Service call for ValidateStreamingJob
* Partial addition of ESJ
* adding test mocks
* Validation working
* Modifying command visibility logic to submatch ESJs in addition to files
* Changed string literal to constant, corrected attribute order
* Added tests
* correcting casing that's causing test failures on linux
* Swapping Thenable for Promise
* excluded validate from command palette
* Add images
* Splitting to light and dark mode icons
* Hooks up icons to treeItems
* updating package.json with new icon and vbump
* move icon loader before tree view created
* Adding importConfig onPageEnter() test
* Removing redundancy from dacpac wizard pages
* promisifying file selection so it can be awaited in the test
* removing debug prints
* PR feedback
* Slight import refactor
* Test updates
* Adds test, sets script name for File extractType to projectName
* generating correct folder list
* Correctly setting serverId for Imports started from Object Explorer
* Adding regression test
* uncommented test check
* Adding reading SqlCmdVars from project file
* organized apiWrapper, added calls
* Adding test to confirm deployment/script gen profiles with sqlcmd vars
Fixes bug where files located in a subfolder defined before the folders themselves in .sqlproj would result in those files not appearing in the ADS treeview
Converted `test-extensions-unit.bat` to javascript to add a small QoL improvement that I think people will find useful: specifying which extension(s) you want to run tests for instead of commenting out lines of a script.
In addition to existing behavior being mostly preserved (node test-extensions-unit.js defaults to running all unit tests), you can specify one or more:
```
node test-extensions-unit.js sql-database-projects
node test-extensions-unit.js sql-database-projects schema-compare
```
* Fixing potential bad order of template loading and map construction
* Fixing bug where templates get mapped before loaded from file
* Parallelizing loading templates from file
* Checkpoint
* Adding mock contents for tree
* added open sqlproj dialog
* reading files from directory
* Added directory traversal
* Adding tree sorting by folder vs file and label
* Improved auto-unfolding of tree based on node type
* replacing fs with fs.promise alias
* PR feedback
* added activation event for when workspace contains sqlproj files
* Returning after displaying error
* Fixing linter errors
* Reworked tree
* Fixing missing grandchildren
* Correcting tree URI construction
* Refactoring to isolate tree item responsibilities from data model responsibilities
* project file parsing
* constructing tree from project files rather than filesystem
* Fixing double-initialization
* Changing projectEntry to take enum for file type
* Correct node type for project item
* Parsing datasources.json
* Child nodes for sql data source
* Localizing strings
* Checkpoint
* Adding mock contents for tree
* added open sqlproj dialog
* reading files from directory
* Added directory traversal
* Adding tree sorting by folder vs file and label
* Improved auto-unfolding of tree based on node type
* replacing fs with fs.promise alias
* PR feedback
* added activation event for when workspace contains sqlproj files
* Returning after displaying error
* Fixing linter errors
* Reworked tree
* Fixing missing grandchildren
* Correcting tree URI construction
* Refactoring to isolate tree item responsibilities from data model responsibilities
* project file parsing
* constructing tree from project files rather than filesystem
* Fixing double-initialization
* Changing projectEntry to take enum for file type
* Correct node type for project item
* Parsing datasources.json
* Child nodes for sql data source
* Localizing strings
* missed file in merge
* changed extension method to helper
* cleanup
* Adding docstrings
* Adding mock contents for tree
* added open sqlproj dialog
* reading files from directory
* Added directory traversal
* Adding tree sorting by folder vs file and label
* Improved auto-unfolding of tree based on node type
* replacing fs with fs.promise alias
* added activation event for when workspace contains sqlproj files
* Returning after displaying error
* Focus piping for extension buttons
* Focus the done button when entering the summary page for DacFx wizard
* Adding internal value resets for extension-side button model.
* Correcting remark string
* Loading components now announce themselves. Likely need way to disable.
* Adding focus elements to table for screen-reading after component is loaded in
* Adding piping for aria roles on tables
* Alerting on completion of deploy plan summary
* Removing extra ariaLive property
* Adds button extension for explicitly setting aria-label, in case the label is not screen-reader friendly
* Explicitly set aria-label for ellipsis buttons in SchemaCompare
* Changing localize call to double-quotes
* Removes unused getter for ariaLabel
* Adding aria-rowcounts for long scrollable tables