Compare commits

...

314 Commits

Author SHA1 Message Date
Alan Ren
e56e1d931b increase nps survey probability (#19175) (#19177) 2022-04-21 13:57:15 -07:00
Karl Burtram
4bd07a00c0 Update SQL Tools Service in release/1.36 for OE icon revert (#19173)
* Update SQL Tools Service in release/1.36 for OE icon revert

* Remove 'v'
2022-04-21 13:31:51 -07:00
Karl Burtram
4ef3706cf2 Bump version to 1.36.1 for April hotfix. (#19172) 2022-04-21 12:42:47 -07:00
erpett
0704471e6b Updating readme and change log to reflect major changes in 1.36 (#19138) 2022-04-18 15:57:09 -07:00
Vasu Bhog
f5aebda7de Fix SQL Binding when creating new project (#19118) (#19124)
* Fix SQL Binding when creating new project

* Use sql binding templates

* fix openDialog to use select

Co-authored-by: Vasu Bhog <vabhog@microsoft.com>

Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>
2022-04-15 14:27:37 -07:00
Lewis Sanchez
9400c56c0b Telemetry for Query Execution Plans (#19039) (#19104)
* Adds telemetry around how the properties window is opened

* Adds telemetry around accessing execution plan top operations

* Adds key for viewing top operations

* Adds telemetry around using the open query button and context menu item

* Adds telemetry around execution plan zoom in, out, to fit, and custom

* Adds telemetry around searching for nodes in execution plans

* Reduces telemetry additional properties to 1.

* Code review changes

* Removes unnecessary export
2022-04-14 16:56:09 -07:00
Vasu Bhog
aeaf0ef473 remove extra error message (#19110) (#19113) 2022-04-14 16:55:52 -07:00
Aasim Khan
fd0a8c0ef4 Updating the cache element and not an unlinked reference to it. (#19057) (#19095) 2022-04-14 13:45:59 -07:00
Aasim Khan
a7361002cb Fixing broken action label logic. (#19086) (#19093)
* Fixing broken action label logic.

* Cleaning up some code
2022-04-14 13:44:51 -07:00
Aasim Khan
af42325121 Fixing parallism icon not showing up (#19085) (#19092) 2022-04-14 13:43:27 -07:00
Cory Rivera
85983140cc Port cell hover fix and new Interactive extension metadata additions to release branch. (#19096)
* Only update hover execution state if cell is not active. (#19073)

* Add .NET Interactive extension info to product.json. (#19069)
2022-04-14 13:09:06 -07:00
Barbara Valdez
58d6b22263 fix cell nav (#19082) (#19091) 2022-04-14 11:27:10 -07:00
Udeesha Gautam
09a74aadd5 fix for sensitive text in output message (#19071) (#19088) 2022-04-14 10:46:16 -07:00
Aasim Khan
26eeb78018 Adding caching to execution plan and refactoring code and some other fixes (#18913) (#19061)
* Making ep code modular for easy swithcing in and out

* Changing to innerText

* Fixing renames

* Fixing var name in one file
2022-04-14 10:20:54 -07:00
Vasu Bhog
9d610d17ba Fix connectionSettingName for create azure function with sql binding (#19008) (#19072)
* fix connectionSettingName for create azure function with sql binding

* add sql binding user enters connection string manually

* address comments + fix test

* final comments
2022-04-13 16:31:28 -07:00
Alan Ren
8bed834226 vbump sts (#19053) (#19059) 2022-04-13 13:58:56 -07:00
Benjin Dubishar
835a644e7d updated svg (#19034) (#19048) 2022-04-13 12:51:37 -07:00
Cory Rivera
f0f83d005b Enable cell cancellation for Interactive notebooks (#19005) (#19045)
* Also added a check to prevent multiple Interactive cells from executing simultaneously.
2022-04-13 11:47:07 -07:00
Kim Santiago
89ee54ab8f update schema compare version to 1.13.1 (#19026) (#19029) 2022-04-12 19:00:09 -07:00
Lewis Sanchez
07ed6abfd5 Updates azdataGraph package version to 0.0.20 (#19009) (#19021) 2022-04-12 18:57:39 -07:00
Aasim Khan
b1b0b9e7af Adding link support to infobox. (#18876) (#19016) 2022-04-12 18:57:20 -07:00
Aasim Khan
691d46a0d8 Adding badge icons to execution plan (#19004) (#19015)
* Adding badge icons to executionplan

* Fixing doc comment

* Fixing doc comments

* Making enum value more readable

* Changing default to undefined.

* Fixing some icon names
2022-04-12 18:57:01 -07:00
Alan Ren
b8d47cc97e bring in fixes for a few table designer issues (#19020) (#19024) 2022-04-12 18:56:39 -07:00
Vasu Bhog
5050111a42 suppress create function prompt (#18962) (#19017) 2022-04-12 12:45:24 -07:00
Kim Santiago
0bd8450cf6 hide convert to sdk-style from project context menu (#19002) (#19014)
* hide convert to sdk-style from project context menu

* bump version since 0.16.0 was released in insiders
2022-04-12 10:35:01 -07:00
csigs
7a41bfc167 Juno: check in to lego/hb_04604851-bac4-4681-9f74-73de611d6e48_20220410153816807. (#18992) 2022-04-11 10:04:23 -07:00
csigs
90176658fd Juno: check in to lego/hb_04604851-bac4-4681-9f74-73de611d6e48_20220409154211117. (#18990) 2022-04-11 10:04:09 -07:00
Alan Ren
fe1aefdd5f fix table designer issues (#18988)
* fix table designer issues

* commit change on blur

* new sts
2022-04-10 12:09:33 -07:00
Aasim Khan
9fcfe5b23c Adding flag to hide refresh button in dashboards. (#18964) 2022-04-09 17:52:09 -07:00
Cory Rivera
c2cc32a4a0 Add option to use notebook json contents instead of file string when creating a notebook. (#18972) 2022-04-08 16:39:14 -07:00
Alex Ma
828c6760e2 [Loc] update to sql-database-projects (#18983) 2022-04-08 15:38:54 -07:00
Hai Cao
0738c148ca A few table designer improvements && bump STS to .227 (#18982)
* Add unified col for data type deit

* remove seperate type setting cols and rename unified col to 'type'

* remove advanced type from properties window

* add description to col, idx, constraints

* nit

* bump STS to .227
2022-04-08 15:00:56 -07:00
Maddy
4191ef8aa5 Fix active cell update on tabbing (#18614)
* listen on focus_in of toolbar

* update styles on focus_in

* listen for active cell change on notebook componen

* add tabbing order to textcells

* remove duplicate listener

* clean up

* undo

* remove visible check from cellToolbar

* remove duplicate detectChanges on updateActiveCell

* only update active cell if it's already not

* add aria-label for accessibility

* localize the aria label

* refactor

* add cellLabel property to CellModel

* remove updateActiveCell from code component

* regression from merge fix

* set edit mode as true when focusing on cell

* moce check to model

* merge changes correctly

* update edit mode if code cell

* fixes

Co-authored-by: barbaravaldez <bavaldez@microsoft.com>
Co-authored-by: chgagnon <chgagnon@microsoft.com>
2022-04-08 12:31:30 -07:00
Alex Ma
41b639c7d6 [Loc] update to sql-bindings (#18978) 2022-04-08 11:21:26 -07:00
Alan Ren
c04f78981c retrieve the data from display data source (#18973) 2022-04-08 11:13:29 -07:00
Aditya Bist
197d56a29b Fix new table issue (#18974)
* fix new table issue

* fix new table scenario

* simplify logic
2022-04-08 11:10:30 -07:00
Alex Ma
cd7c94976c [Loc] Last update to langpack source files for April release. (#18977)
* [Loc] update xlfs

* [Loc] Last source file updates
2022-04-08 10:52:01 -07:00
Vasu Bhog
ed8d2f9927 Fix for user using command palette (#18948)
* fix for user using command palette command

* rework if a user uses the create azure function via the command

* for now only show in vs code

* move logic to azureFunctionService + address comments

* fix command location

* address comments

* fix validateFunction
2022-04-08 10:28:45 -07:00
csigs
dc14201088 LEGO: check in for main to temporary branch. (#18976) 2022-04-08 10:10:37 -07:00
Alex Ma
562e0fdde7 [Loc] add converttosdkstyleconfirmation message (#18971) 2022-04-07 16:51:49 -07:00
Charles Gagnon
a595fb8fd1 Inline source maps in dev build (#18970)
* Inline source maps in dev build

* Update readme

* correct command

* Use env var

* Update location
2022-04-07 16:39:08 -07:00
Barbara Valdez
683d906138 Create directory when adding a book section from book tree view (#18966)
* create folder when creating a book section

* fix test
2022-04-07 16:19:33 -07:00
Kim Santiago
379b24d78c Add confirmation before converting to SDK-style project (#18893)
* Add confirmation before updating to SDK-style project

* update string

* update string

* update other learn more url
2022-04-07 15:48:05 -07:00
Aasim Khan
d8b3db2ee3 Updating moment package (#18956)
* Updating moment package

* Fixing moment

* Fixing notebook moment package
2022-04-07 14:04:13 -07:00
Vasu Bhog
4e299dc4b2 fix timeout warning when exiting create function (#18947)
* fix timeout warning when exiting create function

* combine timeout errors

* make more explicit
2022-04-07 13:58:57 -07:00
Charles Gagnon
a5cc1ea223 Fix download links (#18969) 2022-04-07 13:37:35 -07:00
Alex Ma
b4195d8984 [Loc] update to langpack source files 4/7/2022 (#18967)
* Added updated xlfs

* update to source files
2022-04-07 12:28:02 -07:00
csigs
f804e5dd48 LEGO: check in for main to temporary branch. (#18965) 2022-04-07 09:39:48 -07:00
Candice Ye
e6773dd842 Change version numbers of arc and azcli (#18957)
Co-authored-by: Candice Ye <canye@microsoft.com>
2022-04-06 15:07:09 -07:00
Vasu Bhog
f829218c2c less prompts about langauge and runtime version (#18949) 2022-04-06 12:58:37 -07:00
Vasu Bhog
49b0640fde Update sql-bindings icon (#18946)
* add default icon
2022-04-06 12:57:54 -07:00
Alex Ma
63a700ef3f [Loc] update to langpack source files (#18958)
* update to xlfs

* [Loc] added updates to langpack source files
2022-04-06 12:46:39 -07:00
Cory Rivera
03d2e83250 Treat Jupyter's Python 3 Ipykernel alias as Python 3. (#18943) 2022-04-06 11:27:15 -07:00
Cory Rivera
316798a9b5 Add cell toolbar tests for undoing text styling by clicking button twice. (#18807) 2022-04-06 10:02:51 -07:00
csigs
bc79d62b35 LEGO: check in for main to temporary branch. (#18953) 2022-04-06 09:07:12 -07:00
Alex Ma
c4db69f391 [Loc] small update to arc xlf (#18945) 2022-04-05 17:20:08 -07:00
dependabot[bot]
f4e37d3dce Bump plist from 3.0.4 to 3.0.5 (#18916)
Bumps [plist](https://github.com/TooTallNate/node-plist) from 3.0.4 to 3.0.5.
- [Release notes](https://github.com/TooTallNate/node-plist/releases)
- [Changelog](https://github.com/TooTallNate/plist.js/blob/master/History.md)
- [Commits](https://github.com/TooTallNate/node-plist/commits)

---
updated-dependencies:
- dependency-name: plist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-05 17:00:13 -07:00
Karl Burtram
805dda533a Bump distro for electron bump (#18944) 2022-04-05 16:59:44 -07:00
Karl Burtram
463271f0d9 Bump Electron to 13.6.6 (#18940)
* Bump Electron to 13.6.6

* Bump azuredatastudio-sqlite version in smoke tests
2022-04-05 16:44:17 -07:00
Cory Rivera
7c399e84eb Add markdown smoke tests for changing text size and inserting links (#18888)
* Temporarily disabled text size tests due to issues running on Unix.
2022-04-05 15:53:06 -07:00
Candice Ye
92a2233022 Added text to the Arc DC deploy tile that user must have done az login before continuing with the wizard. (#18938)
Co-authored-by: Candice Ye <canye@microsoft.com>
2022-04-05 14:22:45 -07:00
Lewis Sanchez
a6000aef67 Resolves undefined tenant error while adding an account. (#18937)
* Selects the first tenant that appears in the drop down list of tenants

* Fixes tenant undefined while adding account error
2022-04-05 13:14:06 -07:00
Alex Ma
c707911800 [Loc] added updated langpack files and xlfs (#18920) 2022-04-05 10:50:49 -07:00
Alex Ma
630cdbc84f [Loc] added table show actions xlf (#18936) 2022-04-05 10:03:41 -07:00
Aasim Khan
4db0814b94 Adding context menu to table component (#18914)
* Adding context menu to table component

* Removing extra whitespace

* Some logic fixes

* Fixing focus logic
2022-04-04 23:47:39 -07:00
Alex Ma
b96fb5aa90 [Loc] added small string for sql-bindings (#18933) 2022-04-04 17:27:16 -07:00
Raymond Truong
a0cf244245 [SQL Migration] List resource groups based on available resources (#18846)
* WIP - implemented logic to show resource groups as derived from list of resources, instead of directly listing all resource groups

* Remove comments

* Remove getResourceGroupByName and craft resource group object manually instead

* Update subscription and location list when tenant is changed

* Define Azure resource types locally instead of modifying azurecore

* Add SQL VM scenario

* Split getAzureResourceGroupDropdownValues into four separate functions

* Refresh only subscription list when tenant is changed

* Create new DMS dialog should show all resource groups

* Remove unnecessary async code
2022-04-04 15:59:40 -07:00
Lewis Sanchez
81e785506c Bumps azdataGraph version to 0.019 (#18922) 2022-04-04 15:16:09 -07:00
Vasu Bhog
69c254aeac Add progress bar for adding sql binding (#18923)
* add progress bar for adding sql binding
2022-04-04 15:13:00 -07:00
Vasu Bhog
2d9004e481 Remove known settings from ConnectionStringSettingName prompt (#18910)
* remove known settings
2022-04-04 13:37:44 -07:00
Charles Gagnon
c53c6d86e2 Update STS to .226 (#18918) 2022-04-04 12:44:05 -07:00
Vasu Bhog
c65c41d704 add guid for session ID (#18912) 2022-04-04 10:43:20 -07:00
Alex Ma
838c27bfa3 [Loc] added updatedtosdkstyleerror (#18917) 2022-04-04 10:15:04 -07:00
csigs
fec1b7821f LEGO: check in for main to temporary branch. (#18908) 2022-04-04 09:51:12 -07:00
dependabot[bot]
adbbf7ae7f Bump ansi-regex from 3.0.0 to 3.0.1 in /extensions/admin-tool-ext-win (#18904)
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-04 09:41:30 -07:00
dependabot[bot]
be62f1864d Bump plist from 3.0.4 to 3.0.5 in /build (#18903)
Bumps [plist](https://github.com/TooTallNate/node-plist) from 3.0.4 to 3.0.5.
- [Release notes](https://github.com/TooTallNate/node-plist/releases)
- [Changelog](https://github.com/TooTallNate/plist.js/blob/master/History.md)
- [Commits](https://github.com/TooTallNate/node-plist/commits)

---
updated-dependencies:
- dependency-name: plist
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-04 09:41:18 -07:00
dependabot[bot]
ca6ad43e8f Bump ansi-regex from 3.0.0 to 3.0.1 in /extensions/azurecore (#18902)
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-04 09:41:04 -07:00
dependabot[bot]
bd6d438c8c Bump ansi-regex from 3.0.0 to 3.0.1 in /extensions/arc (#18901)
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-04 09:40:55 -07:00
dependabot[bot]
7392ce7e31 Bump ansi-regex from 3.0.0 to 3.0.1 in /extensions/azcli (#18900)
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-04 09:40:45 -07:00
dependabot[bot]
e82e267159 Bump ansi-regex from 3.0.0 to 3.0.1 in /extensions/agent (#18899)
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-04 09:40:35 -07:00
dependabot[bot]
eb25cc810f Bump ansi-regex from 3.0.0 to 3.0.1 in /extensions/cms (#18898)
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-04 09:40:25 -07:00
Kim Santiago
d6dab3dd18 Remove build and folder includes when converting to SDK-style project (#18889)
* remove Build and Folder Includes

* add tests

* cleanup

* rollback if there was an error during the conversion
2022-04-01 21:04:18 -04:00
Alan Ren
a795e64bed fix language change issue (#18906) 2022-04-01 17:52:11 -07:00
dependabot[bot]
055f10ff8d Bump ansi-regex from 3.0.0 to 3.0.1 in /extensions/dacpac (#18869)
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-01 10:08:56 -07:00
dependabot[bot]
b9ebdf9eb7 Bump ansi-regex from 3.0.0 to 3.0.1 in /extensions/data-workspace (#18868)
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-01 10:08:48 -07:00
dependabot[bot]
3bd033b25d Bump ansi-regex from 3.0.0 to 3.0.1 in /extensions/mssql (#18861)
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-01 10:08:40 -07:00
dependabot[bot]
b7d1e950f3 Bump ansi-regex from 3.0.0 to 3.0.1 in /extensions/notebook (#18860)
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-01 10:08:31 -07:00
dependabot[bot]
3f31290e8e Bump ansi-regex from 3.0.0 to 3.0.1 in /extensions/import (#18859)
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-01 10:07:41 -07:00
dependabot[bot]
3b7a5b64af Bump ansi-regex from 3.0.0 to 3.0.1 in /extensions/integration-tests (#18857)
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-01 10:07:32 -07:00
dependabot[bot]
6a0dd0415b Bump ansi-regex from 3.0.0 to 3.0.1 in /extensions/machine-learning (#18856)
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-01 10:07:20 -07:00
dependabot[bot]
45b5f8d136 Bump ansi-regex from 3.0.0 to 3.0.1 in /extensions/sql-bindings (#18854)
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-01 10:07:12 -07:00
dependabot[bot]
a29bb210b2 Bump ansi-regex from 3.0.0 to 3.0.1 in /extensions/resource-deployment (#18853)
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-01 10:07:03 -07:00
csigs
3c8943aab2 LEGO: check in for main to temporary branch. (#18897) 2022-04-01 09:42:52 -07:00
Aditya Bist
bab5118996 Add graph icons to OE and TD (#18808)
* add graph icons to OE and TD

* PR comments

* change enum type

* change sub type to icon and make basic as default

* changed icontype to icon

* change default logic location

* change icon name to be more generic

* use right icons
2022-04-01 00:27:59 -07:00
Alex Ma
27f014c70d [Loc] add table filter xlf (#18896) 2022-03-31 22:16:37 -07:00
Aditya Bist
e7773425ee added graph node types from edit and publish results (#18891)
* added graph node types from edit and publish results

* make generic property bag

* review comments

* add comment for function

* edit comment

* change name to telemetry info
2022-03-31 21:50:26 -07:00
Vasu Bhog
0a43ed84e3 Add bindings telemetry (#18851)
* add bindings telemetry

* add exitReasons
2022-03-31 16:29:15 -07:00
Kim Santiago
80db3a492f don't show error notification if no error message in dacpac extension (#18871) 2022-03-31 15:31:48 -07:00
Kim Santiago
b65a6bd741 update DW target platform name in sql projects (#18843)
* update DW target platform name

* remove Microsoft from target platform names

* fix merge conflict
2022-03-31 15:30:30 -07:00
Alan Ren
b6083b6447 handle special values in the table filter (#18872)
* handle special values in the table filter

* pr comments
2022-03-31 11:17:55 -07:00
Kim Santiago
fe0cff07d6 Expose refresh projects tree (#18890)
* refresh project tree after apply schema compare to project

* clarify comment
2022-03-31 11:08:08 -07:00
Charles Gagnon
4166c622f3 Fix DiffEditorComponent types (#18883)
* Fix DiffEditorComponent types

* spacing
2022-03-30 15:24:10 -07:00
Aasim Khan
989ee0b2c7 Updating azdataGraph package to get tooltip improvements (#18877) 2022-03-30 14:28:16 -07:00
dependabot[bot]
cffa7c6b49 Bump ansi-regex from 3.0.0 to 3.0.1 in /extensions/sql-database-projects (#18855)
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-29 17:28:51 -07:00
dependabot[bot]
4621d2e1af Bump ansi-regex from 3.0.0 to 3.0.1 in /extensions/schema-compare (#18858)
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-29 17:28:28 -07:00
Alex Ma
c62619c17b [Loc] update to xlfs (#18866) 2022-03-29 15:02:59 -07:00
Chris LaFreniere
af3d307d40 Restart kernel initial implementation (#18835)
* Restart kernel initial implementation

* Update notebook extension TestKernel

* PR comments
2022-03-29 12:56:52 -07:00
Kim Santiago
8537a30996 fix project not getting updated after schema cmopare (#18850) 2022-03-29 11:55:12 -07:00
csigs
b51387bb46 LEGO: check in for main to temporary branch. (#18862) 2022-03-29 11:21:43 -07:00
Kim Santiago
f002a26fe4 Add convert to SDK style project to context menu (#18847)
* differentiate between sdk and legacy style projects in tree

* switch to legacy

* add to context menu

* add function call
2022-03-29 10:15:36 -07:00
Leila Lali
459fab256e Sql Proj: Adding a new sqlproj template for SQL dbs (#18636) 2022-03-29 09:06:56 -07:00
Alex Ma
25b8137a45 [Loc] change to sql-database-project xlf (#18848) 2022-03-28 17:33:45 -07:00
Kim Santiago
2f825f8a97 add initial SDK-style project migration (#18827)
* add initial SDK-style project migration

* addressing comments
2022-03-28 16:29:14 -07:00
Leila Lali
aad20bc338 Chaning the name of server in deploy option if target is Azure (#18828) 2022-03-28 15:07:09 -07:00
Kim Santiago
893015010d remove unused SchemaComparePublishChanges (#18830) 2022-03-28 10:54:53 -07:00
csigs
027bac766e LEGO: check in for main to temporary branch. (#18842) 2022-03-28 09:06:55 -07:00
csigs
9d2e5ff93e LEGO: check in for main to temporary branch. (#18836) 2022-03-28 09:06:45 -07:00
Lewis Sanchez
85b4bf13f9 Initial sets up of new execution plan comparison result endpoint (#18813)
* Initial sets up of new execution plan comparison result endpoint

* Makes query execution plan endpoint URI's more consistent.
2022-03-25 11:47:46 -07:00
Alex Ma
0d3cec074d [Loc] added loading notebook message (#18826) 2022-03-25 10:29:48 -07:00
Cory Rivera
d9501ffc03 Enable loading spinner for notebook editor. (#18810) 2022-03-24 16:31:33 -07:00
Charles Gagnon
f325a2df08 Throw more detailed error when compilation fails (#18783)
* Throw more detailed error when compilation fails

* Add SQL edits
2022-03-24 13:20:18 -07:00
Nemanja Milovančević
5e68ff1dfe Make mssql extension a module (#18804)
* Rebase from main branch

* import from module

* Add mssql module ref

Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>
2022-03-24 11:09:55 -07:00
dependabot[bot]
ae8784e462 Bump minimist from 1.2.0 to 1.2.6 in /extensions/liveshare (#18814)
Bumps [minimist](https://github.com/substack/minimist) from 1.2.0 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.0...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-24 09:28:09 -07:00
dependabot[bot]
668f59ca2e Bump minimist from 1.2.5 to 1.2.6 in /test/smoke (#18812)
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-24 09:25:21 -07:00
Alan Ren
b50c4fdb49 new service downloader version (#18811) 2022-03-23 21:46:42 -07:00
Raymond Truong
236db4d1b1 [SQL Migration] Show correct recommendation when viewing issues in assessment results (#18801) 2022-03-23 17:18:20 -07:00
Kim Santiago
c39b13a93e cleanup sql database projects package.json (#18794) 2022-03-23 10:45:48 -07:00
Kim Santiago
5a87e552bc move system dbs to bottom of the list in update project from db dialog (#18791) 2022-03-22 18:12:19 -07:00
Cory Rivera
1fa453f8f2 Add smoke tests for text cell toolbar actions. (#18792) 2022-03-22 12:51:56 -07:00
Vasu Bhog
783215c160 code owners for sql-bindings (#18795) 2022-03-22 12:23:38 -07:00
Charles Gagnon
bdf3261612 Disable broken tests (#18793) 2022-03-21 18:16:04 -07:00
Charles Gagnon
08b2d9668e Fix and enable core unit test coverage (#18781)
* Fix and enable core unit test coverage

* switch

* Fix coverage mapping

* don't output marked

* Fix filter check
2022-03-21 15:15:07 -07:00
Kim Santiago
8a670a8baa Add a few more properties for dacpac telemetry (#18782)
* add wizard page and selected operation for dacfx wizard cancel telemetry

* update name

* send version for extract

* pass version directly into function call
2022-03-21 14:27:09 -07:00
csigs
aaef400194 LEGO: check in for main to temporary branch. (#18785)
Co-authored-by: Alex Ma <alma1@microsoft.com>
2022-03-21 10:15:02 -07:00
csigs
e4a3ec1aac LEGO: check in for main to temporary branch. (#18784) 2022-03-21 09:49:50 -07:00
Vasu Bhog
1a1556ca75 Use SQL input / output template instead (#18768)
* use sql input / output template instead

* workaround for storage wizard that is opened
2022-03-18 17:31:19 -07:00
Cory Rivera
7914fcf101 Fix issues with unknown notebook file types not opening as a default notebook. (#18779) 2022-03-18 16:59:22 -07:00
Maddy
23a69f9b69 Add test for last edit mode (#18734)
* add test for persisting last edit mode

* remove empty line

* address comments

* update comment
2022-03-18 16:13:58 -07:00
Kim Santiago
6263cc2f87 cleanup dacpac extension telemetry (#18778)
* cleanup dacpac extension telemetry

* Add helper function and missing action
2022-03-18 15:53:05 -07:00
Alan Ren
f2d4801634 change the trigger of inputbox commit event (#18776) 2022-03-18 13:16:43 -07:00
Charles Gagnon
301c6f24fe Remove tslint from extensions (#18775) 2022-03-18 11:19:30 -07:00
Charles Gagnon
fc0721450d Cleanup sql bindings test utils (#18773) 2022-03-18 11:18:59 -07:00
Charles Gagnon
a6d442bb3b Consolidate extension typings files (#18765)
* Consolidate extension typings files

* fix
2022-03-18 09:24:22 -07:00
Alex Ma
b07266e8c2 [Loc] update to arc and sql XLFS (#18769) 2022-03-18 00:28:30 -07:00
Candice Ye
a786e63445 Arc bug fix: ADS Create DC wizard should prompt for Log Analytics workspace ID and access token similar to portal (#18742)
* Added monitor log-analytics workspace list to az api

* Made resource group and subscription optional for logs analytics workspace list

* Added dynamic fields for workspace names, id, primary key, based on value of auto-logs checkbox

* Hooked up the newly created source provider for log analytics workspaces. Dropdown now populates all workspace names.

* Added workspaceUtils.ts for a valueprovider. Now workspace name maps to id automatically.

* Replaced promise.all with promise.resolve

* Added workspace id and primary key as env variables in the notebook

* Removed extra space in package.json

* Made getOptions more concise and put azApi definition in function.

* Changed notebook to handle new Azure CLI command with param --clustername
2022-03-17 20:57:16 -07:00
Alan Ren
d6abcb892d handle validation error (#18766) 2022-03-17 19:43:02 -07:00
Kim Santiago
3071a7b710 Add more telemetry for sql database projects (#18751)
* add more telemetry for sql database projects

* add publishToContainer events

* send target platform when publishing

* add duration for createProjectFromDb and updateProjectFromDb
2022-03-17 16:44:10 -07:00
Aasim Khan
6c51b934f9 Fixing clickable state of infobox not setting properly when initializing it. (#18763)
* Fixing clickable state of infobox not set when initializing it.

* Removing unnecessary calls to a method
2022-03-17 14:11:15 -07:00
Alan Ren
9f2940e8f8 add severity support for issues (#18761)
* add severity support for issues

* vbump STS

* pr comments
2022-03-17 14:09:02 -07:00
Rachel Kim
aeb4e87c1f sql migration extension version bump 0.1.14 (#18665) 2022-03-17 14:01:49 -07:00
Alex Ma
85e1e01177 [Loc] update to sql-database-projects (#18764) 2022-03-17 13:03:13 -07:00
Vasu Bhog
d063355b1a improve sql bindings extension (#18757) 2022-03-17 11:37:37 -07:00
Vasu Bhog
80007a72cc Remove sql-bindings logic from sql-database-projects (#18754)
* remove sql-bindings logic from sql-database-projects
2022-03-17 11:36:28 -07:00
erpett
bdb81bc9b1 Updating Changelog with Hotfix notes (#18760) 2022-03-17 11:15:28 -07:00
Kim Santiago
023e10b496 Add preview and bump versions (#18749) 2022-03-17 10:47:50 -07:00
csigs
27cb693bd5 LEGO: check in for main to temporary branch. (#18759) 2022-03-17 10:29:37 -07:00
Barbara Valdez
80a9d94648 Update SQL Bindings API (#18748)
* refactor addSqlBindingQuickpick so they can be called using sql-bindings api
2022-03-17 00:21:49 -07:00
Alex Ma
6fad30bf3c added changes to sql xlf (#18753) 2022-03-16 17:00:06 -07:00
Aasim Khan
a0c2dc199e Adding Execution Plan Editor to ADS (#18696)
* Pushing Execution Plan Editor

* Renaming class
Handling error

* Awaiting for handlers to be registered

* Addressing some PR comments

* Fixing return type for provider

* Fixing editor id and removing unnecessary overrides

* Adding a namespace

* adding execution plan namespace

* Adding protocol comment

* Fixing if logic

* Fixing error message

* Cleaning up code

* cleanup code

* Adding help comments

* Fixing method call

* Using path.ts to get the base file name

* converting to lambda functions

* Adding comment for run action

* Fixing pr comments

* Fixing editor label

* Fixing doc comments

* Adding some more comments

* Fixign branding in comments
2022-03-16 15:07:29 -07:00
Cory Rivera
95980130c8 Correctly handle creating and saving untitled notebook .dib files. (#18744) 2022-03-16 14:37:21 -07:00
Alex Ma
8cc0fdfdc5 [Loc] update to data-workspace xlf (#18747) 2022-03-16 12:23:01 -07:00
csigs
f83605cbf4 LEGO: check in for main to temporary branch. (#18746) 2022-03-16 09:29:36 -07:00
Kim Santiago
90d6defa05 Add select target platform to new project quickpick (#18731)
* add step to choose target platform in new project quickpick

* add comment

* only splice if the default target platform index isn't -1

* change 3 to 5 in comment
2022-03-15 18:07:41 -07:00
Alan Ren
ca904ed380 Add comment for serialization provider api (#18718)
* promote serialization provider api

* Revert "promote serialization provider api"

This reverts commit df9bec3e58ff78dc611886ccda34381f365ef73e.

* update

* make dataType a string
2022-03-15 17:55:35 -07:00
Alan Ren
784a9270c8 fix the issue that chart axis's min/max value can't be zero (#18743)
* fix chart option issue

* pr comment
2022-03-15 17:55:16 -07:00
Vasu Bhog
d585e75706 Add rest of sql-bindings/azure funcs logic to sql bindings ext (#18733)
* refactor the rest of azure function and sql binding

* remove vscode-mssql typings that are moved to our sql-bindings ext
2022-03-15 15:10:42 -07:00
Alex Ma
01509de495 [Loc] small update to sql-migration xlf (#18740) 2022-03-15 12:19:24 -07:00
Raymond Truong
fa227c88c9 [SQL Migration] Add state check to target MI resource on target selection page (#18673)
* Add MI ready state check and error message

* Fix a typo

* Update error message logic

* Update '(Unavailable)' prefix to be localized string

* Show error messsage when non-Ready MI is initially selected (not just on Next button)

* Update error message with appropriate casing and actionable step
2022-03-15 10:45:43 -07:00
Alex Ma
cb607e34d7 [Loc] update to data-workspace and sql-bindings xlfs (#18732) 2022-03-14 17:20:28 -07:00
Kim Santiago
de9a4e02b1 add SDK style option to new project quickpick (#18724)
* add SDK style option to new project quickpick

* addressing comments
2022-03-14 16:10:51 -07:00
Alan Ren
820838fae8 vbump sts (#18727) 2022-03-14 15:49:27 -07:00
Alan Ren
85f1f3e0dc vbump slickgrid to bring in an accessibility fix (#18722)
* vbump slickgrid

* include yarn.lock

* update remote folder

* yarn.lock for remote folder

* web
2022-03-14 14:20:48 -07:00
Vasu Bhog
2d1ffeb47c Refactor vscode-mssql sql bindings logic to sql bindings ext (#18725)
* wip for refactor of mssql to sql-bindings

* remove STS dependency

* work to bring function over and setup with vscodeMsql APIs

* copy typings from vscode-mssql
2022-03-14 13:07:27 -07:00
Alex Ma
a86301312c [Loc] update to data-workspace xlf and sql xlf (#18726) 2022-03-14 13:00:53 -07:00
Cory Rivera
206188f3ab Add missing onNotebook:* activation event for VS Code notebook compatibility. (#18710) 2022-03-14 10:32:26 -07:00
Aditya Bist
d8a8107dc6 default to native credential service in linux (#18716) 2022-03-14 10:13:18 -07:00
Alex Ma
26e6cd28c2 Add account loading screen until provider accounts have finished loading (#18692)
* Added wait for accounts to be loaded to prevent premature loading

* revert changes

* WIP loading screen

* added work in progress emitter.

* added test event fire

* added test for accountDialogController emitter

* fixed test

* added event emitters inside accountDialog

* WIP changes to loading

* added fixed filter removed unnecessary emitters

* added working loading page

* fix for spaces

* added improvements

* fixed space

* added loading provider label xlf

* moved spinner = false to show views

* Added loadingSpinner

* removed additional localization

* removed change to css

* removed newline

* small changes

* fixed spaces

* fixed line positions

* removed loadingComplete

* added spinner container (so that account loading spinner appears on top)

* added small fix

* changed wording

* changed wording slightly

* removed comment
2022-03-14 09:44:09 -07:00
csigs
02093f8497 LEGO: check in for main to temporary branch. (#18715) 2022-03-14 09:25:17 -07:00
csigs
62a0bcc69f LEGO: check in for main to temporary branch. (#18713) 2022-03-14 09:25:01 -07:00
Kim Santiago
7181d4c79e Make SDK-style project a checkbox option instead of separate template (#18698)
* switch to using a checkbox instead of separate template for new SDK style project

* let project provider provide sdk learn more url

* Reorder
2022-03-11 16:54:53 -08:00
Alan Ren
4551329db0 table designer bug fixes (#18701)
* table designer bug fixes

* pr comments

* fix debounce issue
2022-03-11 12:14:51 -08:00
Alex Ma
5c14fe4f4c [Loc] small update to sql-migration (#18708) 2022-03-11 10:09:22 -08:00
Raymond Truong
d1d6b229ce [SQL Migration] Add more help text to database backup page (#18671)
* Add help text for backups with checksums and Azure storage accounts with private endpoints

* Update help text wording
2022-03-11 09:53:50 -08:00
Raymond Truong
94b4437a6a [SQL Migration] Fix SKU recommendations not working for named (non-default) instances (#18697)
* WIP

* Change instance name from machine name to full instance name returned by assessment

* Get full instance name from source connection profile instead of relying on assessment result

* Combine correct machine name with correct instance name
2022-03-11 09:49:44 -08:00
csigs
ebdfea25ad LEGO: check in for main to temporary branch. (#18706) 2022-03-11 09:30:37 -08:00
Kim Santiago
5f2d8b2bd5 remove sql server 2005 and 2008 as options for sql database projects (#18664)
* remove sql server 2005 and 2008 from target platforms

* also remove 2005 and 2008 from SqlTargetPlatform enum

* fix a windows test
2022-03-10 18:11:49 -08:00
Raymond Truong
85d6b2ef46 [SQL Migration] Fix overflow behavior on migration cutover dialog to avoid truncating backup file names (#18679) 2022-03-10 15:50:28 -08:00
Vasu Bhog
f424bea0de Fixes issues with SQL Bindings vscode dev (#18695)
* fixes issues with vscode development
2022-03-10 15:37:23 -08:00
Charles Gagnon
364684c79e Move some more azdata APIs to stable (#18691)
* Move some more apis to stable

* update
2022-03-10 11:01:11 -08:00
Alan Ren
4d7467a5d5 promote some APIs to stable api set. (#18689) 2022-03-09 19:29:06 -08:00
Aasim Khan
b299f7ed3f Making infobox clickable (#18676)
* Making infobox clickable

* Making it accessible

* Moving API to proposed

* Matching styling from portal

* Fixing some styling

* Moving to proposed

* Removing extra spacing

* Registering and Unregistering listeners

* Fixing listeners

* Registering emitter only once.

* Changing emitter type from undefined to void

* Adding arialabel to clickable link

* Changing property name to suit its purpose
2022-03-09 18:43:39 -08:00
Vasu Bhog
0c54c12772 Add SQL Binding Tests (#18687)
* add tests
2022-03-09 16:35:51 -08:00
Alex Ma
65b4847874 [Loc] add table designer XLF (#18688) 2022-03-09 16:07:59 -08:00
Alex Ma
33d2735970 Added fix to sql-bindings nls file (#18686)
* Added fix to sql-bindings nls file

* small fix to text
2022-03-09 15:49:14 -08:00
Aditya Bist
822199c9be add ability for md + text reports (#18667)
* add ability for md + text reports

* change report type

* re add types for ads

* match fields and add enum for mimetype

* rename preview report

* update type

* rename generate report type

* fix comment
2022-03-09 15:48:21 -08:00
Alan Ren
e50bded5d1 table designer new features (#18682)
* support graph tables

* ignore script compare

* ability to refresh view after edit

* reserve focus after refresh view

* primary key and default constraint

* bug fixes

* vbump sts

* comments

* update type

* fix issue
2022-03-09 14:17:01 -08:00
Charles Gagnon
27763c860c Add option to not publish source maps (#18683)
* Test PR

* fix
2022-03-09 11:12:58 -08:00
Alex Ma
634b9f8d08 [Loc] update to sql-bindings xlf file (#18685) 2022-03-09 09:39:10 -08:00
Karl Burtram
3844638156 Turn off Windows Test step (#18684) 2022-03-09 09:33:49 -08:00
Vasu Bhog
eb77d86136 Refactor SQL Binding code over from sql-database-projects (#18674)
* add sql binding prompt / logic

* remove controller and move to extension

* remove unused dependencies
2022-03-09 01:02:37 -08:00
Charles Gagnon
025e0831e7 Add var to let smoke tests fail build (#18677)
* Add var to let smoke tests fail build

* force failure

* try another

* fix

* undo failure

* update titles
2022-03-08 13:44:57 -08:00
Kim Santiago
5bb35d4eed update Microsoft.Build.Sql version to 0.1.3-preview in templates (#18659) 2022-03-07 17:34:30 -08:00
Cory Rivera
f013a88163 Only update active cell if the cell isn't currently in edit mode. (#18672) 2022-03-07 17:11:05 -08:00
Alex Ma
4f9d45335e [Loc] added small fix to sql-bindings (#18669) 2022-03-07 15:25:16 -08:00
Vasu Bhog
fee8e78011 fix display name and description key (#18666) 2022-03-07 13:22:44 -08:00
Aditya Bist
1be5c926d3 added markdown renderer for publish dialog (#18645) 2022-03-07 10:57:37 -08:00
csigs
72632bc376 LEGO: check in for main to temporary branch. (#18658)
Co-authored-by: Alex Ma <alma1@microsoft.com>
2022-03-07 10:21:51 -08:00
csigs
9890cc79c0 LEGO: check in for main to temporary branch. (#18656) 2022-03-07 09:40:13 -08:00
csigs
b3107dc4b1 LEGO: check in for main to temporary branch. (#18653) 2022-03-07 09:40:01 -08:00
Cory Rivera
eccb77aca3 Preserve previous code cell's language when creating a new code cell from an existing context. (#18646) 2022-03-06 21:35:57 -08:00
Alex Ma
5d0f0afdc6 [Loc] Updates to sql files with changes (#18648) 2022-03-04 16:41:04 -08:00
Rachel Kim
33259764f7 [Sql Migration] Stabilize save and close logic and fix related ux bugs (#18579)
* add loadSavedInfo function in stateMachine; only open wizard if didLoadSavedInfo

* * add loadSavedInfo function in stateMachine; only open wizard if didLoadSavedInfo
* replaced savedInfo.miggrationServiceId string with sqlMigrationServer object
* selectDatbasesFromList helper function to check previously selected dbs in dbSelectorPage and sqlDatabaseTree

* * remove savedInfo references from targetSelectionPage, migrationModePage
* add selectDefaultDropdownValue helper to stateMachine to handle unify savedInfo selection logic
* add updateDropdownLoadingStatus to targetSelectionPage
* check if values exist before making api calls in statemachine

* removed savedInfo references from databaseBackupPage, integrationRuntimePage

* databaseBackupPage - targetDatabaseNames, networkShares, blobs need to rely on savedInfo as user may update the list of migrationdbs during the retry/saveAndClose

* re-add serverAssessments to savedInfo; only getAssessments if it does not exist or needs to be updated; fix networkShare type savedInfo

* rename _assessmentDbs to _databasesForAssessment; _migrationDbs to _databasesForMigration

* load blobs/networkshares savedinfo; move selectDefaultDropdownValue to utils

* fix selectDefaultDropdownValue; refreshDatabaseBackupPage when user changes target subscription or location
2022-03-04 16:00:44 -08:00
Vasu Bhog
c9aa3e9f4b Boilerplate for SQL Bindings Extension (#18624)
* boilerplate for sql bindings extension

* edit gulpfile task as it was trying to find specific menus within package.json
2022-03-04 15:16:45 -08:00
Leila Lali
8e9957adbe SQLProj: No docker image build needed for deploying a database to docker (#18629) 2022-03-04 14:32:43 -08:00
Charles Gagnon
442c16bc3c Fix tempdb icon not showing on dev builds (#18633) 2022-03-04 13:10:46 -08:00
Charles Gagnon
1c83aa61d7 Fix error displayed when insights files can't be found and fix server-report insights in dev build (#18635)
* Fix error

* fix queries
2022-03-04 13:10:35 -08:00
Kim Santiago
9e3d678536 add learn more link for sdk style in create project from db dialog (#18637) 2022-03-04 13:00:21 -08:00
Charles Gagnon
9a944b614d Fix some more images not loading (#18632) 2022-03-04 11:03:13 -08:00
Alex Ma
bc78f6a573 [Loc] fixed path for editableDropdown (#18634) 2022-03-04 10:29:24 -08:00
csigs
da076c152c LEGO: check in for main to temporary branch. (#18628) 2022-03-04 09:57:56 -08:00
Aditya Bist
a2c39369c9 Add and move editable dropdown (#18589)
* add and move editable dropdown

* merge dropdowns

* merge dropdown cell factories

* add new column and hide in properties

* remove editable property
2022-03-03 20:23:20 -08:00
Alex Ma
be6b23eff0 [Loc] added small change to kernelRequiresConnection (#18627) 2022-03-03 16:25:26 -08:00
Cory Rivera
0ab4752643 Add new errorCode property to notebook errors to see if starting a notebook session failed. (#18617) 2022-03-03 14:05:54 -08:00
Charles Gagnon
10ff8aa116 Fix pinned app name (#18623)
* Fix pinned name on Windows

* fix distro
2022-03-03 12:43:28 -08:00
Neetu Singh
4f61be2495 Fixing telemetry (#18616)
* Fix Telemetry

* Removing unused imports
2022-03-03 11:39:52 -08:00
csigs
d5fa5fca3a LEGO: check in for main to temporary branch. (#18620) 2022-03-03 09:43:28 -08:00
Barbara Valdez
8b543d1d12 check find widget is not focused (#18506)
* remove logic to check that the find widget is visible
2022-03-02 16:57:37 -08:00
Alex Ma
87f1e26e39 [Loc] added changes for sql xlf (#18613) 2022-03-02 14:49:43 -08:00
Karl Burtram
9990f7c8e2 Disable smoke tests (#18611) 2022-03-02 12:56:33 -08:00
dependabot[bot]
d6a08a60d9 Bump plist from 3.0.1 to 3.0.4 (#18604)
Bumps [plist](https://github.com/TooTallNate/node-plist) from 3.0.1 to 3.0.4.
- [Release notes](https://github.com/TooTallNate/node-plist/releases)
- [Changelog](https://github.com/TooTallNate/plist.js/blob/master/History.md)
- [Commits](https://github.com/TooTallNate/node-plist/commits)

---
updated-dependencies:
- dependency-name: plist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-02 12:12:00 -08:00
csigs
628c8da716 LEGO: check in for main to temporary branch. (#18609) 2022-03-02 11:49:17 -08:00
Cory Rivera
79cda5cbe5 Add language picker to notebook cells. (#18601) 2022-03-02 10:25:55 -08:00
dependabot[bot]
c34de52a03 Bump plist from 3.0.1 to 3.0.4 in /build (#18607)
Bumps [plist](https://github.com/TooTallNate/node-plist) from 3.0.1 to 3.0.4.
- [Release notes](https://github.com/TooTallNate/node-plist/releases)
- [Changelog](https://github.com/TooTallNate/plist.js/blob/master/History.md)
- [Commits](https://github.com/TooTallNate/node-plist/commits)

---
updated-dependencies:
- dependency-name: plist
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-02 09:59:15 -08:00
dependabot[bot]
eb928e0b8f Bump url-parse from 1.5.8 to 1.5.10 in /extensions/notebook (#18608)
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.8 to 1.5.10.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.5.8...1.5.10)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-02 09:56:51 -08:00
Christopher Suh
84001139cc Update CI to windows-2019 (#18606)
* Revert "Update CI for new windows-latest (#18585)"

This reverts commit ebd4c6844b.

* update to windows-2019
2022-03-01 18:26:58 -08:00
Charles Gagnon
00f98457e8 Add a couple Notebook smoke tests for rendering links/imgs (#18600) 2022-03-01 13:14:19 -08:00
Christopher Suh
ebd4c6844b Update CI for new windows-latest (#18585)
* change to windows-2019

* fix for windows-latest
2022-02-28 18:20:12 -08:00
Charles Gagnon
3b4800de51 Remove duplicate AzureResource enum (#18501)
* Remove duplicate AzureResource enum

* comment
2022-02-28 12:19:38 -08:00
Charles Gagnon
7b5117b185 Fix yarn.lock version resolution (#18575) 2022-02-28 11:50:39 -08:00
Alex Ma
d36b755d6d [Loc] update to sql.xlf (#18574) 2022-02-28 10:18:26 -08:00
csigs
96729a4817 LEGO: check in for main to temporary branch. (#18564) 2022-02-28 09:50:09 -08:00
csigs
d8fd5b36f7 LEGO: check in for main to temporary branch. (#18509)
Co-authored-by: Alex Ma <alma1@microsoft.com>
2022-02-28 09:49:45 -08:00
Christopher Suh
dfa6799fcc Add label instructions for Needs Logs - Azure (#18559)
* added instructions for Needs Logs - Azure label

* formatting fixes
2022-02-27 15:21:16 -08:00
Benjin Dubishar
c64655ae71 Benjin/project update bug (#18532)
* correct result.success

* shifting success message to actually check success

* keying on errorMessage rather than success
2022-02-25 16:59:28 -08:00
erpett
5e93f2ca9b bumping version to 1.36 following 1.35's release (#18560) 2022-02-25 16:31:19 -08:00
erpett
7db7c2927c fixing links that got swapped (#18557) 2022-02-25 12:46:02 -08:00
Cory Rivera
ffdefd3b52 Add notebook extension support for .NET Interactive. (#18334)
* Also updated kernel dropdown to only include SQL aliased kernels when using SQL notebook provider.
2022-02-25 11:58:59 -08:00
Aasim Khan
02341088eb Renaming query plan to execution plan (#18551) 2022-02-25 00:49:34 -08:00
Charles Gagnon
8032f59d41 Update ubuntu-latest for update typings pipeline (#18552) 2022-02-24 16:02:38 -08:00
erpett
0193f8a6dc Updating Readme and Changelog for 1.35.0 release (#18543) 2022-02-24 14:46:25 -08:00
Charles Gagnon
23cbb98162 Fix Mac signing (#18534)
* Install .NET SDK for Mac signing

* Install runtime

* Specify 2.1.0

* Install SDK
2022-02-23 08:31:14 -08:00
Charles Gagnon
9b3d65b1d4 Bump url-parse (#18535) 2022-02-23 07:22:26 -08:00
Alan Ren
e2b4dd5a79 define the color in theme files (#18529) 2022-02-22 16:03:58 -08:00
Aasim Khan
19c7971630 Bringing back leftover changes (#18527) 2022-02-22 15:44:01 -08:00
Aasim Khan
5731366a1c Fixing query editor smoke test (#18515)
* Fixing query editor smoke test

* Fixing notification toast for telemetry opt out

* Adding SQL Carbon edit
2022-02-22 14:15:12 -08:00
Candice Ye
ef100b8e82 Bumped versions of arc and azcli to 1.0.0 for GA (#18516)
* Changed versions in package.jsons

* Bumped azdata version requirements to 1.35
2022-02-22 13:56:50 -08:00
Kim Santiago
7b92c9eb65 only show confirmation message for apply all changes, not for view changes in schema compare (#18520) 2022-02-22 13:33:24 -08:00
Charles Gagnon
5547c2baba Add AzureAccount service (#18502) 2022-02-22 09:00:07 -08:00
Alan Ren
40ee82ee3e highlight problematic property in the designer when error is selected (#18512)
* navigate to property when selecting error message

* use list component

* highlight problematic property

* remove unnecessary call

* comment

* comment
2022-02-21 20:49:12 -08:00
csigs
3c84575755 LEGO: check in for main to temporary branch. (#18503) 2022-02-21 12:21:12 -08:00
Aditya Bist
696db01dc8 Fix opt out prompt behavior (#18498)
* fix header

* fix product name
2022-02-18 15:53:59 -08:00
Karl Burtram
e0cb88599d Port - Restrict which sites out webview iframe can frame (#18495)
* protocol handler - normalize paths

* use `extUri` for normalizing paths

* :lipstick;

* Add content security policy to top level webview

This change hardens our webviews by adding a fairly restrictive csp to them. This CSP should only apply to the outer webview iframe, not to the inner iframe which is controlled by extensions

Co-authored-by: Benjamin Pasero <benjamin.pasero@microsoft.com>
Co-authored-by: Matt Bierner <matb@microsoft.com>
2022-02-18 15:12:21 -08:00
Aasim Khan
eff847f35a Removing extra toUrl call (#18492) 2022-02-18 14:49:02 -08:00
Alex Ma
2da0428454 [Loc] small update to sql xlf with table designer (#18489) 2022-02-18 13:31:05 -08:00
Alex Ma
1b63fec4e5 removed max_memory as it should be dynamically managed by sqlserver (#18481) 2022-02-18 12:32:57 -08:00
Karl Burtram
f137174719 Add mxgraph to thirdyparty notices (#18486) 2022-02-18 12:09:07 -08:00
Barbara Valdez
75d9246f5e Fix search experience in notebooks (#18474)
* fix search on notebooks

* keep focus on findwidget
2022-02-18 10:53:45 -08:00
Barbara Valdez
cbaffd0b0d fix section markdown and html link (#18478)
* fix section markdown and html link
2022-02-18 10:08:33 -08:00
Kim Santiago
b33afe3efb add back SDK style project template (#18448) 2022-02-18 09:54:10 -08:00
csigs
19f63ea88f LEGO: check in for main to temporary branch. (#18479) 2022-02-18 09:30:14 -08:00
Charles Gagnon
a1a1793221 Add timeout delay to Notebook cell connect (#18475) 2022-02-18 09:05:13 -08:00
Charles Gagnon
8da49ff14e Remove connection error popup notification (#18476)
* Remove connection error popup notification

* Fix compile
2022-02-18 09:04:13 -08:00
dependabot[bot]
f0ebc6ed60 Bump url-parse from 1.5.2 to 1.5.6 in /samples/sqlservices (#18473)
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.2 to 1.5.6.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.5.2...1.5.6)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-17 22:29:25 -08:00
Neetu Singh
aaf174e85c Update package.json with latest azdata version 1.35 (#18462)
* updating package.json with latest  azdata version 1.35

* bump sql-migration version to 0.1.13
2022-02-17 20:33:01 -08:00
Alan Ren
13dd74efcc fix a typo in table designer (#18464) 2022-02-17 18:24:24 -08:00
Christopher Suh
bafbca492b Clear account tokens before refresh (#18452)
* clear account tokens on refresh

* update refresh button after refresh
2022-02-17 17:25:05 -08:00
Lewis Sanchez
3472e229f1 Adds a tooltip title prop to the diagram node. (#18458)
* Adds a tooltip title prop to the diagram node.

* Updates azdataGraph package version to 0.0.16
2022-02-17 16:18:49 -08:00
Charles Gagnon
3a04235001 Add option to disable running integration tests (#18454) (#18456)
* Add option to disable running integration tests

* succeeded

(cherry picked from commit 932865ceee)
2022-02-17 15:26:22 -08:00
Vasu Bhog
0f385b386f Add SQL Binding Disconnected Scenario (#18440)
* disconnected scenario

* match parameters in mssql
2022-02-17 14:20:13 -08:00
Alan Ren
28ab7372d2 table designer validation support (#18438)
* table designer validation

* vbump sts
2022-02-17 13:07:19 -08:00
Alex Ma
e66192cbfd [loc] changes to sql-migration and sql xlfs (#18447) 2022-02-17 11:11:41 -08:00
Lewis Sanchez
63cff7a5ab Adds Operational Cost to Query Plan Vertex Labels. (#18435)
* Adds operational cost to graph node labels.

* Code clean up.
2022-02-17 10:09:24 -08:00
csigs
f1b23c96a9 LEGO: check in for main to temporary branch. (#18443) 2022-02-17 09:51:28 -08:00
Barbara Valdez
ede0937c2b fix holding down key scrolling issue (#18322)
* Stop propagation + debounce scroll

Co-authored-by: chgagnon <chgagnon@microsoft.com>
2022-02-17 00:25:01 -08:00
Candice Ye
83698a14b0 Fixed color contrast for error message in connect a dc window. (#18411)
* Fixed color contrast for error message in connect a dc window.

* Remove color check for error message

* Remove more unneeded checks

Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>
2022-02-16 21:06:51 -08:00
Charles Gagnon
2be1394748 Fix contributed icons for ModelView trees not showing (#18430)
* Fix contributed icons for ModelView trees not showing

* Use asCssUrl
2022-02-16 18:10:45 -08:00
Neetu Singh
8135867e06 Updating readme with new gif that includes SKU Recommendation (#18432) 2022-02-16 17:58:34 -08:00
Barbara Valdez
87d5da00bf Fix on click edit mode states (#18321)
* fix click code cell

* modified editmode when updating active cell
2022-02-16 15:52:05 -08:00
Aasim Khan
678f2e3878 Fixing the height of the query plan (#18409)
* Fixing the height of the query plan

* Fixing layout issues
2022-02-16 15:44:33 -08:00
Aasim Khan
81e8eb9a82 Adding zoom button (#18407)
* Adding zoom button

* Fixing string
2022-02-16 15:26:14 -08:00
Aasim Khan
fe360afec7 Fixing context menu strings (#18404)
* Fixing context menu strings

* Fixing string
2022-02-16 15:21:35 -08:00
Neetu Singh
80c8b06ec8 [SKU Recommendation] Adding telemetry for errors happening during data collection/ get recommendation and telemetry (#18345)
* Adding telemetry for errors happening during data collection/ telemetry for sku recommendation

* log and error happended during get sku recommendation

* Resolving comments from PR https://github.com/microsoft/azuredatastudio/pull/18252. 1) Adding click and close events to dispoable collection to avoid leaks. 2) Adding readable constant for number representing minutes.

* Changes - 1) updating migration workflow strings, 2) adding more onclick events to disposable collection.

* Remove PaaS, IaaS terms from string

* Changes -
1) Renamed 'Saved assessment result' to 'saved session'.
2) Removed Title from 'saved session' page.
3) Added stop data collection on migration start.
2022-02-16 14:44:28 -08:00
Alan Ren
7ff42eeb08 make sure the content is not undefined (#18406) 2022-02-16 13:51:50 -08:00
Charles Gagnon
3dbd5ac2c1 Bump url-parse (#18422) 2022-02-16 13:09:19 -08:00
csigs
3c321ee8b7 LEGO: check in for main to temporary branch. (#18419) 2022-02-16 12:22:32 -08:00
csigs
f6128d262b LEGO: check in for main to temporary branch. (#18417) 2022-02-16 12:21:59 -08:00
Kim Santiago
d24a289af5 fix SDK style projects not being able to find system dacpacs (#18218)
* fix SDK style projects not being able to find system dacpacs

* fix tests
2022-02-16 09:36:01 -08:00
Alan Ren
89cc59a2fd avoid auto language detection for sql editor (#18402)
* avoid auto lang detection for sql editor

* update comment
2022-02-15 17:11:43 -08:00
Aasim Khan
25f563229f Adding tooltips and fixing spacing (#18400) 2022-02-15 16:24:40 -08:00
Lewis Sanchez
33ea2d8ee6 azdataGraph version bump to 0.0.15 (#18388)
* azdataGraph version bump to 0.0.15

* Updates azdataGraph version in remote package.json

* Updates azdataGraph version in remote web package.json
2022-02-15 11:57:55 -08:00
Alex Ma
9e8b01fd1e [Loc] small update to sql-database-projects xlf (#18396) 2022-02-15 11:54:03 -08:00
Alex Ma
bb468a5b98 Small update to the changelog (#18369) 2022-02-15 09:50:59 -08:00
Alex Ma
9a28d47c5b Added small fix for locFunc (#18364) 2022-02-14 17:21:46 -08:00
Alex Ma
45763e12b4 Update to langpacks and xlfs for February Release, (#18354)
* Update to langpacks and xlfs

* fixed id for git
2022-02-14 16:36:57 -08:00
Aasim Khan
316c6a536f Fixing graph editing (#18361) 2022-02-14 16:34:30 -08:00
Charles Gagnon
f5392e3c8f Bump ansi_up (#18190) 2022-02-14 16:06:23 -08:00
Aasim Khan
4dd59c6b8d Using proper zoom icon (#18338) 2022-02-14 15:38:55 -08:00
Z Chen
9e574ae602 Database Projects - Add existing file (#18066)
* Add existing file to sqlproj

* Address PR comments

* Fix failing test

* Add convertSlashesForSqlProj to test failure
2022-02-14 15:04:57 -08:00
dependabot[bot]
1dd7e93063 Bump ajv from 6.12.0 to 6.12.6 in /extensions/mssql (#18316)
Bumps [ajv](https://github.com/ajv-validator/ajv) from 6.12.0 to 6.12.6.
- [Release notes](https://github.com/ajv-validator/ajv/releases)
- [Commits](https://github.com/ajv-validator/ajv/compare/v6.12.0...v6.12.6)

---
updated-dependencies:
- dependency-name: ajv
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-14 14:19:33 -08:00
dependabot[bot]
13276cf52e Bump follow-redirects from 1.14.7 to 1.14.8 in /extensions/azurecore (#18350)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.7 to 1.14.8.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.7...v1.14.8)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-14 11:59:27 -08:00
dependabot[bot]
baa6e4b380 Bump follow-redirects in /extensions/github-authentication (#18348)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.7 to 1.14.8.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.7...v1.14.8)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-14 11:59:07 -08:00
Alex Ma
3bc5306258 [Loc] update to sql.xlf and sql-migration (#18352) 2022-02-14 11:39:08 -08:00
csigs
c45cfaf01b LEGO: check in for main to temporary branch. (#18347)
Co-authored-by: Alex Ma <alma1@microsoft.com>
2022-02-14 11:04:35 -08:00
dependabot[bot]
0612a8ac35 Bump follow-redirects in /extensions/resource-deployment (#18349)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.7 to 1.14.8.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.7...v1.14.8)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-14 10:38:28 -08:00
946 changed files with 128239 additions and 20958 deletions

View File

@@ -212,6 +212,7 @@
"restrictions": [
"vs/nls",
"azdata",
"azurecore",
"**/{vs,sql}/base/common/**",
"**/{vs,sql}/base/parts/*/common/**",
"**/{vs,sql}/platform/*/common/**"
@@ -472,6 +473,7 @@
"restrictions": [
"vscode",
"azdata",
"azurecore",
"vs/nls",
"**/{vs,sql}/base/common/**",
"**/{vs,sql}/platform/*/common/**",
@@ -577,6 +579,7 @@
"vs/nls",
"vs/css!./**/*",
"azdata",
"azurecore",
"vscode",
"**/{vs,sql}/base/**/{common,browser,worker}/**",
"**/{vs,sql}/platform/**/{common,browser}/**",

1
.github/CODEOWNERS vendored
View File

@@ -11,6 +11,7 @@
/extensions/query-history/ @Charles-Gagnon
/extensions/resource-deployment/ @Charles-Gagnon
/extensions/schema-compare/ @kisantia
/extensions/sql-bindings/ @vasubhog @Charles-Gagnon @lucyzhang929 @chlafreniere @MaddyDev
/extensions/sql-database-projects/ @Benjin @kisantia
/extensions/mssql/config.json @Charles-Gagnon @alanrenmsft @kburtram

View File

@@ -27,6 +27,22 @@ There are two types of logs to collect:
- This will open the log folder locally. Please zip up this folder and attach it to the issue."
# actions for Needs Logs - Azure label
Needs Logs - Azure:
comment: "We need more info to debug your Azure Active Directory issue. If you could attach your logs to the issue (ensure no private data is in them), it would help us fix the issue much faster.
- In the settings menu, find the setting titled `Azure: Logging Level` and select the `Verbose` option
- Run the process that produces your error
- Open command palette (Click **View** -> **Command Palette**)
- Run the command: **`Developer: Open Logs Folder`**
- Follow this path to find the Azure Accounts log file: `[default log folder]/exthost1/output_logging_[earliest timestamp]/#-Azure Acounts.log`
- Please attach the Azure-Accounts.log file to the issue."
# actions for Out of Scope label
Out of Scope:
comment: "Thank you for opening this suggestion! This enhancement is not planned in our

View File

@@ -13,7 +13,7 @@ on:
jobs:
windows:
name: Windows
runs-on: windows-latest
runs-on: windows-2019
timeout-minutes: 30
env:
CHILD_CONCURRENCY: "1"
@@ -131,12 +131,15 @@ jobs:
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
run: yarn --frozen-lockfile --network-timeout 180000
# Don't inline source maps so that we generate code coverage for ts files
- name: Compile and Download
run: yarn npm-run-all --max_old_space_size=4095 -lp compile "electron x64" playwright-install download-builtin-extensions
env:
SQL_NO_INLINE_SOURCEMAP: 1
- name: Run Unit Tests (Electron)
id: electron-unit-tests
run: DISPLAY=:10 ./scripts/test.sh --runGlob "**/sql/**/*.test.js" # {{SQL CARBON EDIT}} Run only our tests with coverage. Disable for now since it's currently broken --coverage
run: DISPLAY=:10 ./scripts/test.sh --runGlob "**/sql/**/*.test.js" --coverage
- name: Run Extension Unit Tests (Electron)
id: electron-extension-unit-tests

View File

@@ -1,3 +1,3 @@
disturl "https://electronjs.org/headers"
target "13.5.0"
target "13.6.6"
runtime "electron"

View File

@@ -1,5 +1,53 @@
# Change Log
## Version 1.36.0
* Release date: April 20, 2022
* Release status: General Availability
## What's new in this version
- General Availability of the Azure SQL Migration Extension for ADS
- Support for .NET Interactive Notebooks Extension
- New Table Designer Features including support for System Versioned, Graph and Memory Optomized Tables
- Query Plan Viewer Updates includign warning and parallelism icons, the option to disable tooltips and support for opening .sqlplan files
- Improvements in SQL Projects and Schema Compare
| Platform |
| --------------------------------------- |
| [Windows User Installer][win-user] |
| [Windows System Installer][win-system] |
| [Windows ZIP][win-zip] |
| [macOS ZIP][osx-zip] |
| [Linux TAR.GZ][linux-zip] |
| [Linux RPM][linux-rpm] |
| [Linux DEB][linux-deb] |
[win-user]: https://go.microsoft.com/fwlink/?linkid=2193235
[win-system]: https://go.microsoft.com/fwlink/?linkid=2193326
[win-zip]: https://go.microsoft.com/fwlink/?linkid=2193236
[osx-zip]: https://go.microsoft.com/fwlink/?linkid=2192971
[linux-zip]: https://go.microsoft.com/fwlink/?linkid=2193237
[linux-rpm]: https://go.microsoft.com/fwlink/?linkid=2193238
[linux-deb]: https://go.microsoft.com/fwlink/?linkid=2193327
## Version 1.35.1
* Release date: March 17, 2022
* Release status: General Availability
## Hotfix release
- Fix for [Excel number format #18615](https://github.com/microsoft/azuredatastudio/issues/18615)
- Fix for [Geometry Data Type Returned as Unknown Charset in Results Grid #18630](https://github.com/microsoft/azuredatastudio/issues/18630)
## Version 1.35.0
* Release date: February 24, 2022
* Release status: General Availability
## What's new in this version
* New Features:
* Table Designer - Added functionality for creation and management of tables for SQL Servers. Built using DacFx framework
* Query Plan Viewer - Added functionality for users to view a graphic view of estimated and actual query plans without need for an extension
* Azure Arc Extension - Updated the Data Controller deployment wizard and the SQL Managed Instance - Azure Arc deployment wizard to reflect the deployment experience in Azure Portal
* Bug Fixes:
* Azure Arc Extension - SQL Managed Instance-Azure Arc is now fixed for both indirect connectivity mode and direct connectivity mode
* Notebooks - Support for keyboard navigation between cells to minimize mouse clicking
## Version 1.34.0
* Release date: December 15, 2021
* Release status: General Availability
@@ -31,26 +79,6 @@
- Fix for [#16535 Unable to See Saved Connections in Restricted Mode](https://github.com/microsoft/azuredatastudio/issues/17535)
- Fix for [#17579 Can't type in Notebook code cell after editing text cell](https://github.com/microsoft/azuredatastudio/issues/17579)
| Platform |
| --------------------------------------- |
| [Windows User Installer][win-user] |
| [Windows System Installer][win-system] |
| [Windows ZIP][win-zip] |
| [macOS ZIP][osx-zip] |
| [Linux TAR.GZ][linux-zip] |
| [Linux RPM][linux-rpm] |
| [Linux DEB][linux-deb] |
[win-user]: https://go.microsoft.com/fwlink/?linkid=2176805
[win-system]: https://go.microsoft.com/fwlink/?linkid=2175910
[win-zip]: https://go.microsoft.com/fwlink/?linkid=2176806
[osx-zip]: https://go.microsoft.com/fwlink/?linkid=2176807
[linux-zip]: https://go.microsoft.com/fwlink/?linkid=2176505
[linux-rpm]: https://go.microsoft.com/fwlink/?linkid=2176005
[linux-deb]: https://go.microsoft.com/fwlink/?linkid=2176006
## Version 1.33.0
* Release date: October 27, 2021
* Release status: General Availability

View File

@@ -131,10 +131,10 @@ Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the [Source EULA](LICENSE.txt).
[win-user]: https://go.microsoft.com/fwlink/?linkid=2183280
[win-system]: https://go.microsoft.com/fwlink/?linkid=2183423
[win-zip]: https://go.microsoft.com/fwlink/?linkid=2183190
[osx-zip]: https://go.microsoft.com/fwlink/?linkid=2183189
[linux-zip]: https://go.microsoft.com/fwlink/?linkid=2183277
[linux-rpm]: https://go.microsoft.com/fwlink/?linkid=2183342
[linux-deb]: https://go.microsoft.com/fwlink/?linkid=2183341
[win-user]: https://go.microsoft.com/fwlink/?linkid=2193235
[win-system]: https://go.microsoft.com/fwlink/?linkid=2193326
[win-zip]: https://go.microsoft.com/fwlink/?linkid=2193236
[osx-zip]: https://go.microsoft.com/fwlink/?linkid=2192971
[linux-zip]: https://go.microsoft.com/fwlink/?linkid=2193237
[linux-rpm]: https://go.microsoft.com/fwlink/?linkid=2193238
[linux-deb]: https://go.microsoft.com/fwlink/?linkid=2193327

View File

@@ -45,6 +45,7 @@ make-error: https://github.com/JsCommunity/make-error
mark.js: https://github.com/julmot/mark.js
minimist: https://github.com/substack/minimist
moment: https://github.com/moment/moment
mxgraph: https://github.com/jgraph/mxgraph
native-keymap: https://github.com/Microsoft/node-native-keymap
native-watchdog: https://github.com/Microsoft/node-native-watchdog
ng2-charts: https://github.com/valor-software/ng2-charts
@@ -1538,6 +1539,193 @@ OTHER DEALINGS IN THE SOFTWARE.
=========================================
END OF moment NOTICES AND INFORMATION
%% mxgraph NOTICES AND INFORMATION BEGIN HERE
=========================================
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
(e) Neither the Work nor Derivative Works may be used or form any
part of a larger work that integrates or is supposed to be
integrated with a product or service owned or marketed by an
Atlassian entity, including its successors and assignees in title.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
//SEIBERT/MEDIA GmbH, Wiesbaden, Germany is the exclusive licensee of
JGraph for software products based on this codebase within the Atlassian
ecosystem of products.
=========================================
END OF mxgraph NOTICES AND INFORMATION
%% native-keymap NOTICES AND INFORMATION BEGIN HERE
=========================================
Copyright (c) Microsoft Corporation

View File

@@ -17,6 +17,13 @@ steps:
mv azuredatastudio-darwin-unsigned.zip azuredatastudio-darwin.zip
displayName: 'Rename the file'
- task: UseDotNet@2
displayName: 'Install .NET Core sdk for signing'
inputs:
packageType: sdk
version: 2.1.x
installationPath: $(Agent.ToolsDirectory)/dotnet
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
displayName: 'ESRP CodeSigning'
inputs:

View File

@@ -106,7 +106,7 @@ steps:
- script: |
set -e
./scripts/test.sh --build --tfs "Unit Tests" # Disable code coverage since it's currently broken --coverage
./scripts/test.sh --build --tfs "Unit Tests" --coverage
displayName: Run unit tests
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
@@ -128,14 +128,24 @@ steps:
yarn gulp compile-extensions
displayName: Compile Extensions
# Per https://developercommunity.visualstudio.com/t/variablesexpressions-dont-work-with-continueonerro/1187733 we can't use variables
# in continueOnError directly so instead make two copies of the task and only run one or the other based on the SMOKE_FAIL_ON_ERROR value
- script: |
set -e
APP_ROOT=$(agent.builddirectory)/azuredatastudio-darwin-x64
APP_NAME="`ls $APP_ROOT | head -n 1`"
yarn smoketest --build "$APP_ROOT/$APP_NAME" --screenshots "$(build.artifactstagingdirectory)/smokeshots" --log "$(build.artifactstagingdirectory)/logs/darwin/smoke.log" --extensionsDir "$(build.sourcesdirectory)/extensions"
displayName: Run smoke tests (Electron)
displayName: Run smoke tests (Electron) (Continue on Error)
continueOnError: true
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
condition: and(succeeded(), and(eq(variables['RUN_TESTS'], 'true'), ne(variables['SMOKE_FAIL_ON_ERROR'], 'true')))
- script: |
set -e
APP_ROOT=$(agent.builddirectory)/azuredatastudio-darwin-x64
APP_NAME="`ls $APP_ROOT | head -n 1`"
yarn smoketest --build "$APP_ROOT/$APP_NAME" --screenshots "$(build.artifactstagingdirectory)/smokeshots" --log "$(build.artifactstagingdirectory)/logs/darwin/smoke.log" --extensionsDir "$(build.sourcesdirectory)/extensions"
displayName: Run smoke tests (Electron) (Fail on Error)
condition: and(succeeded(), and(eq(variables['RUN_TESTS'], 'true'), eq(variables['SMOKE_FAIL_ON_ERROR'], 'true')))
# - script: |
# set -e

View File

@@ -119,7 +119,7 @@ steps:
- script: |
set -e
DISPLAY=:10 ./scripts/test.sh --build --tfs "Unit Tests" # Disable code coverage since it's currently broken --coverage
DISPLAY=:10 ./scripts/test.sh --build --tfs "Unit Tests" --coverage
displayName: Run unit tests (Electron)
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))

View File

@@ -6,6 +6,9 @@ trigger:
pr: none
pool:
vmImage: ubuntu-latest
steps:
- task: NodeTool@0
inputs:

View File

@@ -47,7 +47,7 @@ jobs:
steps:
- template: linux/sql-product-build-linux.yml
parameters:
extensionsToUnitTest: ["admin-tool-ext-win", "agent", "azcli", "azurecore", "cms", "dacpac", "data-workspace", "import", "machine-learning", "notebook", "resource-deployment", "schema-compare", "sql-database-projects"]
extensionsToUnitTest: ["admin-tool-ext-win", "agent", "azcli", "azurecore", "cms", "dacpac", "data-workspace", "import", "machine-learning", "notebook", "resource-deployment", "schema-compare", "sql-bindings", "sql-database-projects"]
timeoutInMinutes: 90
- job: Windows
@@ -60,16 +60,17 @@ jobs:
- template: win32/sql-product-build-win32.yml
timeoutInMinutes: 90
- job: Windows_Test
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32'], 'true'))
pool:
name: mssqltools
dependsOn:
- Linux
- Windows
steps:
- template: win32/sql-product-test-win32.yml
timeoutInMinutes: 90
# disable due to invalid machine pool (karlb 3/9/2022)
# - job: Windows_Test
# condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32'], 'true'))
# pool:
# name: mssqltools
# dependsOn:
# - Linux
# - Windows
# steps:
# - template: win32/sql-product-test-win32.yml
# timeoutInMinutes: 90
- job: Release
condition: and(succeeded(), or(eq(variables['VSCODE_RELEASE'], 'true'), and(eq(variables['VSCODE_QUALITY'], 'insider'), eq(variables['Build.Reason'], 'Schedule'))))
@@ -79,7 +80,8 @@ jobs:
- macOS
- Linux
- Windows
- Windows_Test
# disable due to invalid machine pool (karlb 3/9/2022)
# - Windows_Test
- macOS_Signing
steps:
- template: sql-release.yml

View File

@@ -93,6 +93,7 @@ steps:
AZURE_STORAGE_ACCESS_KEY="$(sourcemap-storage-key)" \
node build/azure-pipelines/upload-sourcemaps
displayName: Upload sourcemaps
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
- script: |
set -e

View File

@@ -104,14 +104,26 @@ steps:
yarn gulp compile-extensions
displayName: Compile Extensions
- script: |
set -e
node ./node_modules/playwright/install.js
APP_ROOT=$(Agent.BuildDirectory)/vscode-reh-web-linux-x64
xvfb-run yarn smoketest --build "$(Agent.BuildDirectory)/vscode-reh-web-linux-x64" --web --headless --screenshots "$(Build.ArtifactStagingDirectory)/smokeshots" --log "$(Build.ArtifactStagingDirectory)/logs/web/smoke.log"
displayName: Run smoke tests (Browser)
continueOnError: true
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
# disable smoke tests (karlb 3/2/2022)
# # Per https://developercommunity.visualstudio.com/t/variablesexpressions-dont-work-with-continueonerro/1187733 we can't use variables
# # in continueOnError directly so instead make two copies of the task and only run one or the other based on the SMOKE_FAIL_ON_ERROR value
# - script: |
# set -e
# node ./node_modules/playwright/install.js
# APP_ROOT=$(Agent.BuildDirectory)/vscode-reh-web-linux-x64
# xvfb-run yarn smoketest --build "$(Agent.BuildDirectory)/vscode-reh-web-linux-x64" --web --headless --screenshots "$(Build.ArtifactStagingDirectory)/smokeshots" --log "$(Build.ArtifactStagingDirectory)/logs/web/smoke.log"
# displayName: Run smoke tests (Browser) (Continue on Error)
# continueOnError: true
# condition: and(succeeded(), and(eq(variables['RUN_TESTS'], 'true'), ne(variables['SMOKE_FAIL_ON_ERROR'], 'true')))
# disable smoke tests (karlb 3/2/2022)
# - script: |
# set -e
# node ./node_modules/playwright/install.js
# APP_ROOT=$(Agent.BuildDirectory)/vscode-reh-web-linux-x64
# xvfb-run yarn smoketest --build "$(Agent.BuildDirectory)/vscode-reh-web-linux-x64" --web --headless --screenshots "$(Build.ArtifactStagingDirectory)/smokeshots" --log "$(Build.ArtifactStagingDirectory)/logs/web/smoke.log"
# displayName: Run smoke tests (Browser) (Fail on Error)
# condition: and(succeeded(), and(eq(variables['RUN_TESTS'], 'true'), eq(variables['SMOKE_FAIL_ON_ERROR'], 'true')))
# - script: |
# set -e

View File

@@ -51,7 +51,7 @@ steps:
$AppNameShort = $AppProductJson.nameShort
exec { $env:INTEGRATION_TEST_ELECTRON_PATH = "$AppRoot\$AppNameShort.exe"; $env:INTEGRATION_TEST_CLI_PATH = "$AppRoot\bin\$AppNameShort"; .\scripts\sql-test-integration.bat }
continueOnError: false
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
condition: and(succeeded(), and(eq(variables['RUN_TESTS'], 'true'), ne(variables['RUN_INTEGRATION_TESTS'], 'false')))
displayName: Run stable tests
env:
BDC_BACKEND_USERNAME: $(ads-integration-test-bdc-server-username)
@@ -75,7 +75,7 @@ steps:
$AppNameShort = $AppProductJson.nameShort
exec { $env:INTEGRATION_TEST_ELECTRON_PATH = "$AppRoot\$AppNameShort.exe"; .\scripts\sql-test-integration-unstable.bat }
continueOnError: true
condition: and(succeeded(), eq(variables['RUN_UNSTABLE_TESTS'], 'true'))
condition: and(succeeded(), and(eq(variables['RUN_UNSTABLE_TESTS'], 'true'), ne(variables['RUN_INTEGRATION_TESTS'], 'false')))
displayName: Run unstable integration tests
env:
BDC_BACKEND_USERNAME: $(ads-integration-test-bdc-server-username)
@@ -99,4 +99,4 @@ steps:
mergeTestResults: true
failTaskOnFailedTests: true
continueOnError: true
condition: and(succeededOrFailed(), eq(variables['RUN_TESTS'], 'true'))
condition: and(succeededOrFailed(), and(eq(variables['RUN_TESTS'], 'true'), ne(variables['RUN_INTEGRATION_TESTS'], 'false')))

View File

@@ -129,16 +129,19 @@ gulp.task('package-external-extensions', task.series(
const packageManifestPath = path.join(packageDir, 'package.json');
const json = require('gulp-json-editor');
const packageJsonStream = gulp.src(packageManifestPath) // Create stream for the original package.json
.pipe(json(data => { // And now use gulp-json-editor to modify the contents
.pipe(json(data => {
// And now use gulp-json-editor to modify the contents
const updateData = JSON.parse(fs.readFileSync(vscodeManifestFullPath)); // Read in the set of values to replace from package.vscode.json
Object.keys(updateData).forEach(key => {
data[key] = updateData[key];
});
// Remove ADS-only menus. This is a subset of the menus listed in https://github.com/microsoft/azuredatastudio/blob/main/src/vs/workbench/api/common/menusExtensionPoint.ts
// More can be added to the list as needed.
['objectExplorer/item/context', 'dataExplorer/context', 'dashboard/toolbar'].forEach(menu => {
delete data.contributes.menus[menu];
});
if(data.contributes?.menus){
// Remove ADS-only menus. This is a subset of the menus listed in https://github.com/microsoft/azuredatastudio/blob/main/src/vs/workbench/api/common/menusExtensionPoint.ts
// More can be added to the list as needed.
['objectExplorer/item/context', 'dataExplorer/context', 'dashboard/toolbar'].forEach(menu => {
delete data.contributes.menus[menu];
});
}
return data;
}, { beautify: false }))
.pipe(gulp.dest(packageDir));

View File

@@ -135,6 +135,7 @@ const extensionsFilter = filter([
'**/schema-compare.xlf',
'**/server-report.xlf',
'**/sql-assessment.xlf',
'**/sql-bindings.xlf',
'**/sql-database-projects.xlf',
'**/sql-migration.xlf',
'**/xml-language-features.xlf'

View File

@@ -37,7 +37,7 @@ function createCompile(src, build, emitError) {
const sourcemaps = require('gulp-sourcemaps');
const projectPath = path.join(__dirname, '../../', src, 'tsconfig.json');
const overrideOptions = Object.assign(Object.assign({}, getTypeScriptCompilerOptions(src)), { inlineSources: Boolean(build) });
if (!build) {
if (!build && !process.env['SQL_NO_INLINE_SOURCEMAP']) {
overrideOptions.inlineSourceMap = true;
}
const compilation = tsb.create(projectPath, overrideOptions, false, err => reporter(err));

View File

@@ -44,7 +44,7 @@ function createCompile(src: string, build: boolean, emitError?: boolean) {
const projectPath = path.join(__dirname, '../../', src, 'tsconfig.json');
const overrideOptions = { ...getTypeScriptCompilerOptions(src), inlineSources: Boolean(build) };
if (!build) {
if (!build && !process.env['SQL_NO_INLINE_SOURCEMAP']) {
overrideOptions.inlineSourceMap = true;
}
@@ -87,7 +87,6 @@ function createCompile(src: string, build: boolean, emitError?: boolean) {
export function compileTask(src: string, out: string, build: boolean): () => NodeJS.ReadWriteStream {
return function () {
if (os.totalmem() < 4_000_000_000) {
throw new Error('compilation requires 4GB of RAM');
}

View File

@@ -231,6 +231,7 @@ const externalExtensions = [
'schema-compare',
'server-report',
'sql-assessment',
'sql-bindings',
'sql-database-projects',
'sql-migration'
];

View File

@@ -267,6 +267,7 @@ const externalExtensions = [
'schema-compare',
'server-report',
'sql-assessment',
'sql-bindings',
'sql-database-projects',
'sql-migration'
];

View File

@@ -18,6 +18,13 @@ const File = require("vinyl");
const rimraf = require("rimraf");
const gulp = require("gulp");
const vfs = require("vinyl-fs");
/**
* If you need to compile this file for any changes, please run: yarn tsc -p ./build/tsconfig.json
*/
//List of extensions that we changed from vscode, so we can exclude them from having "Microsoft." appended in front.
const alteredVSCodeExtensions = [
'git'
];
const root = path.dirname(path.dirname(__dirname));
// Modified packageLocalExtensionsStream from extensions.ts, but for langpacks.
function packageLangpacksStream() {
@@ -134,10 +141,13 @@ function modifyI18nPackFiles(existingTranslationFolder, resultingTranslationPath
for (let extension in extensionsPacks) {
const translatedExtFile = i18n.createI18nFile(`extensions/${extension}`, extensionsPacks[extension]);
this.queue(translatedExtFile);
//handle edge case for 'Microsoft.sqlservernotebook' where extension name is the same as extension ID.
//(Other extensions need to have publisher appended in front as their ID.)
const adsExtensionId = (extension === 'Microsoft.sqlservernotebook') ? extension : 'Microsoft.' + extension;
resultingTranslationPaths.push({ id: adsExtensionId, resourceName: `extensions/${extension}.i18n.json` });
// exclude altered vscode extensions from having a new path even if we provide a new I18n file.
if (alteredVSCodeExtensions.indexOf(extension) === -1) {
//handle edge case for 'Microsoft.sqlservernotebook' where extension name is the same as extension ID.
//(Other extensions need to have publisher appended in front as their ID.)
let adsExtensionId = (extension === 'Microsoft.sqlservernotebook') ? extension : 'Microsoft.' + extension;
resultingTranslationPaths.push({ id: adsExtensionId, resourceName: `extensions/${extension}.i18n.json` });
}
}
this.queue(null);
})
@@ -162,7 +172,6 @@ const VSCODEExtensions = [
"bat",
"configuration-editing",
"docker",
"extension-editing",
"git-ui",
"git",
"github-authentication",

View File

@@ -17,6 +17,15 @@ import * as rimraf from 'rimraf';
import * as gulp from 'gulp';
import * as vfs from 'vinyl-fs';
/**
* If you need to compile this file for any changes, please run: yarn tsc -p ./build/tsconfig.json
*/
//List of extensions that we changed from vscode, so we can exclude them from having "Microsoft." appended in front.
const alteredVSCodeExtensions = [
'git'
]
const root = path.dirname(path.dirname(__dirname));
// Modified packageLocalExtensionsStream from extensions.ts, but for langpacks.
@@ -68,7 +77,7 @@ function updateMainI18nFile(existingTranslationFilePath: string, originalFilePat
// Delete any SQL strings that are no longer part of ADS in current langpack.
for (let contentKey of Object.keys(objectContents)) {
if(contentKey.startsWith('sql') && messages.contents[contentKey] === undefined){
if (contentKey.startsWith('sql') && messages.contents[contentKey] === undefined) {
delete objectContents[`${contentKey}`]
}
}
@@ -148,10 +157,14 @@ export function modifyI18nPackFiles(existingTranslationFolder: string, resulting
const translatedExtFile = i18n.createI18nFile(`extensions/${extension}`, extensionsPacks[extension]);
this.queue(translatedExtFile);
//handle edge case for 'Microsoft.sqlservernotebook' where extension name is the same as extension ID.
//(Other extensions need to have publisher appended in front as their ID.)
const adsExtensionId = (extension === 'Microsoft.sqlservernotebook') ? extension : 'Microsoft.' + extension;
resultingTranslationPaths.push({ id: adsExtensionId, resourceName: `extensions/${extension}.i18n.json` });
// exclude altered vscode extensions from having a new path even if we provide a new I18n file.
if (alteredVSCodeExtensions.indexOf(extension) === -1) {
//handle edge case for 'Microsoft.sqlservernotebook' where extension name is the same as extension ID.
//(Other extensions need to have publisher appended in front as their ID.)
let adsExtensionId = (extension === 'Microsoft.sqlservernotebook') ? extension : 'Microsoft.' + extension;
resultingTranslationPaths.push({ id: adsExtensionId, resourceName: `extensions/${extension}.i18n.json` });
}
}
this.queue(null);
})
@@ -399,7 +412,7 @@ export function renameVscodeLangpacks(): Promise<void> {
//Copy files to vscode langpack, then remove the ADS langpack, and finally rename the vscode langpack to match the ADS one.
globMDArray.forEach(element => {
fs.copyFileSync(element, path.join(locVSCODEFolder,path.parse(element).base));
fs.copyFileSync(element, path.join(locVSCODEFolder, path.parse(element).base));
});
rimraf.sync(locADSFolder);
fs.renameSync(locVSCODEFolder, locADSFolder);

View File

@@ -48,6 +48,7 @@ exports.dirs = [
'extensions/server-report',
'extensions/simple-browser',
'extensions/sql-assessment',
'extensions/sql-bindings',
'extensions/sql-database-projects',
'extensions/sql-migration',
'extensions/vscode-test-resolver',

View File

@@ -60,7 +60,7 @@
"mime": "^1.4.1",
"mkdirp": "^1.0.4",
"p-limit": "^3.1.0",
"plist": "^3.0.1",
"plist": "^3.0.5",
"rollup": "^1.20.3",
"rollup-plugin-commonjs": "^10.1.0",
"rollup-plugin-node-resolve": "^5.2.0",

View File

@@ -783,7 +783,7 @@ balanced-match@^1.0.0:
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
base64-js@^1.2.3:
base64-js@^1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
@@ -2038,14 +2038,13 @@ pify@^3.0.0:
resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
plist@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.1.tgz#a9b931d17c304e8912ef0ba3bdd6182baf2e1f8c"
integrity sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==
plist@^3.0.1, plist@^3.0.5:
version "3.0.5"
resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.5.tgz#2cbeb52d10e3cdccccf0c11a63a85d830970a987"
integrity sha512-83vX4eYdQp3vP9SxuYgEM/G/pJQqLUz/V/xzPrzruLs7fz7jxGQ1msZ/mg1nwZxUSuOp4sb+/bEIbRrbzZRxDA==
dependencies:
base64-js "^1.2.3"
base64-js "^1.5.1"
xmlbuilder "^9.0.7"
xmldom "0.1.x"
"postcss@5 - 7":
version "7.0.36"
@@ -2676,11 +2675,6 @@ xmlbuilder@~11.0.0:
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3"
integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==
xmldom@0.1.x:
version "0.1.31"
resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.31.tgz#b76c9a1bd9f0a9737e5a72dc37231cf38375e2ff"
integrity sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==
yallist@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"

View File

@@ -108,7 +108,7 @@
},
"dependencies": {
"@microsoft/ads-extension-telemetry": "^1.1.3",
"@microsoft/ads-service-downloader": "0.2.3",
"@microsoft/ads-service-downloader": "0.2.4",
"vscode-nls": "^4.1.2"
},
"devDependencies": {

View File

@@ -189,16 +189,16 @@
dependencies:
vscode-extension-telemetry "^0.1.6"
"@microsoft/ads-service-downloader@0.2.3":
version "0.2.3"
resolved "https://registry.yarnpkg.com/@microsoft/ads-service-downloader/-/ads-service-downloader-0.2.3.tgz#5987c1fc291d2019915e434263ccfe2223d27d5c"
integrity sha512-c8vvBeV0pdLUzATjoj0PlGTH3UwN3tsnT3gA6Uo+H3ZaOfkULhDrv1hG+2jJ8kA7oq+HfTHWEIR6tSnaFk2G/w==
"@microsoft/ads-service-downloader@0.2.4":
version "0.2.4"
resolved "https://registry.yarnpkg.com/@microsoft/ads-service-downloader/-/ads-service-downloader-0.2.4.tgz#905a11eb2da19673629852d9764fb9fb94ad81bd"
integrity sha512-3J0YjH29a5pP+5Yu0HF7itRBZpNOgUN34Gh/p0Py/TQr7qUzZSXwOM+fWD1nCea+q9t8mfHr0yuy0aeDX+33vQ==
dependencies:
async-retry "^1.2.3"
eventemitter2 "^5.0.1"
http-proxy-agent "^2.1.0"
https-proxy-agent "^2.2.3"
mkdirp "^0.5.1"
mkdirp "1.0.4"
tar "^6.1.11"
tmp "^0.0.33"
yauzl "^2.10.0"
@@ -236,9 +236,9 @@ agent-base@4, agent-base@^4.3.0:
es6-promisify "^5.0.0"
ansi-regex@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
version "3.0.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1"
integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==
ansi-styles@^3.2.1:
version "3.2.1"
@@ -739,18 +739,18 @@ mkdirp@0.5.1:
dependencies:
minimist "0.0.8"
mkdirp@^0.5.1, mkdirp@~0.5.1:
mkdirp@1.0.4, mkdirp@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
mkdirp@~0.5.1:
version "0.5.4"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512"
integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==
dependencies:
minimist "^1.2.5"
mkdirp@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
mocha-junit-reporter@^1.17.0:
version "1.23.1"
resolved "https://registry.yarnpkg.com/mocha-junit-reporter/-/mocha-junit-reporter-1.23.1.tgz#ba11519c0b967f404e4123dd69bc4ba022ab0f12"

View File

@@ -208,9 +208,9 @@
integrity sha512-E6Zn0rffhgd130zbCbAr/JdXfXkoOUFAKNs/rF8qnafSJ8KYaA/j3oz7dcwal+lYjLA7xvdd5J4wdYpCTlP8+w==
ansi-regex@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
version "3.0.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1"
integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==
ansi-styles@^3.2.1:
version "3.2.1"

View File

@@ -185,21 +185,24 @@
"print (f'Creating Azure Arc Data Controller: {arc_data_controller_name} using configuration {arc_cluster_context}')\n",
"os.environ[\"AZDATA_USERNAME\"] = arc_admin_username\n",
"os.environ[\"AZDATA_PASSWORD\"] = arc_admin_password\n",
"os.environ[\"LOG_WORKSPACE_ID\"] = log_analytics_workspace_id\n",
"os.environ[\"LOG_SHARED_KEY\"] = log_analytics_primary_key\n",
"\n",
"# If connection mode is indirect\n",
"namespace = f' --k8s-namespace {arc_data_controller_namespace}' if is_indirect else ''\n",
"use_k8s = ' --use-k8s' if is_indirect else ''\n",
"\n",
"# If connection mode is direct\n",
"custom_location = f' --custom-location {arc_data_controller_custom_location}' if not is_indirect else ''\n",
"\n",
"cluster_name = f' --cluster-name {arc_cluster_context}' if not is_indirect else ''\n",
"auto_upload_metrics_value = 'true' if arc_data_controller_auto_upload_metrics == 'true' else 'false'\n",
"auto_upload_logs_value = 'true' if arc_data_controller_auto_upload_logs == 'true' else 'false'\n",
"\n",
"auto_upload_metrics = f' --auto-upload-metrics {auto_upload_metrics_value}' if not is_indirect else ''\n",
"auto_upload_logs = f' --auto-upload-logs {auto_upload_logs_value}' if not is_indirect else ''\n",
"\n",
"if os.name == 'nt':\n",
" print(f'If you don\\'t see output produced by az, you can run the following command in a terminal window to check the deployment status:\\n\\t {os.environ[\"AZDATA_NB_VAR_KUBECTL\"]} get pods -n {arc_data_controller_namespace}')\n",
"run_command(f'az arcdata dc create --connectivity-mode {arc_data_controller_connectivity_mode} --name {arc_data_controller_name}{namespace} --subscription {arc_subscription} --resource-group {arc_resource_group} --location {arc_data_controller_location} --storage-class {arc_data_controller_storage_class} --profile-name {arc_profile} --infrastructure {arc_infrastructure}{custom_location}{auto_upload_metrics}{auto_upload_logs}{use_k8s}')\n",
"run_command(f'az arcdata dc create --connectivity-mode {arc_data_controller_connectivity_mode} --name {arc_data_controller_name}{namespace} --subscription {arc_subscription} --resource-group {arc_resource_group} --location {arc_data_controller_location} --storage-class {arc_data_controller_storage_class} --profile-name {arc_profile} --infrastructure {arc_infrastructure}{custom_location}{cluster_name}{auto_upload_metrics}{auto_upload_logs}{use_k8s}')\n",
"print(f'Azure Arc Data Controller: {arc_data_controller_name} created.') "
]
},

View File

@@ -2,13 +2,13 @@
"name": "arc",
"displayName": "%arc.displayName%",
"description": "%arc.description%",
"version": "0.12.0",
"version": "1.1.0",
"publisher": "Microsoft",
"license": "https://raw.githubusercontent.com/Microsoft/azuredatastudio/main/LICENSE.txt",
"icon": "images/extension.png",
"engines": {
"vscode": "*",
"azdata": ">=1.32.0"
"azdata": ">=1.35.0"
},
"activationEvents": [
"onCommand:arc.connectToController",
@@ -360,6 +360,49 @@
"target": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CONNECTIVITY_MODE",
"value": "Direct"
}
},
{
"type": "options",
"label": "%arc.data.controller.log.analytics.workspace.names%",
"variableName": "AZDATA_NB_VAR_LOG_ANALYTICS_WORKSPACE_NAMES",
"required": true,
"options": {
"source": {
"providerId": "arc.logAnalyticsWorkspaceNames"
},
"optionsType": "dropdown"
},
"enabled": {
"target": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_AUTO_UPLOAD_LOGS",
"value": "true"
}
},
{
"type": "text",
"label": "%arc.data.controller.log.analytics.workspace.id%",
"required": true,
"isEvaluated": true,
"variableName": "AZDATA_NB_VAR_LOG_ANALYTICS_WORKSPACE_ID",
"valueProvider": {
"providerId": "workspace-name-to-id",
"triggerFields": [
"AZDATA_NB_VAR_LOG_ANALYTICS_WORKSPACE_NAMES"
]
},
"enabled": {
"target": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_AUTO_UPLOAD_LOGS",
"value": "true"
}
},
{
"type": "text",
"label": "%arc.data.controller.log.analytics.primary.key%",
"required": true,
"variableName": "AZDATA_NB_VAR_LOG_ANALYTICS_PRIMARY_KEY",
"enabled": {
"target": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_AUTO_UPLOAD_LOGS",
"value": "true"
}
}
]
},
@@ -1390,6 +1433,9 @@
"resourceDeploymentOptionsSources": [
{
"id": "arc.controllers"
},
{
"id": "arc.logAnalyticsWorkspaceNames"
}
]
},

View File

@@ -14,7 +14,7 @@
"arc.openDashboard": "Manage",
"resource.type.azure.arc.display.name": "Azure Arc data controller",
"resource.type.azure.arc.description": "Creates an Azure Arc data controller",
"resource.type.azure.arc.description": "Creates an Azure Arc data controller. Ensure that you have run az login before starting this wizard.",
"arc.data.controller.new.wizard.title": "Create Azure Arc data controller",
"arc.data.controller.cluster.environment.title": "What is your target existing Kubernetes cluster environment?",
"arc.data.controller.select.cluster.title": "Select from existing Kubernetes clusters",
@@ -43,6 +43,9 @@
"arc.data.controller.auto.upload.metrics.description": "Enable the automatic upload of metrics. Direct mode only.",
"arc.data.controller.auto.upload.logs": "Auto-upload Logs",
"arc.data.controller.auto.upload.logs.description": "Enable the automatic upload of logs. Direct mode only.",
"arc.data.controller.log.analytics.workspace.names": "Log Analytics workspace",
"arc.data.controller.log.analytics.workspace.id": "Log Analytics workspace ID",
"arc.data.controller.log.analytics.primary.key": "Log Analytics primary key",
"arc.data.controller.metrics.and.logs.dashboard.credentials.title": "Metrics and Logs Dashboard Credentials",
"arc.data.controller.metrics.and.logs.dashboard.credentials.username": "Username",

View File

@@ -0,0 +1,28 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { InputValueType } from 'resource-deployment';
import * as azExt from 'az-ext';
import * as vscode from 'vscode';
import { errorListingLogAnalyticsWorkspaces } from '../localizedConstants';
export const licenseTypeVarName = 'AZDATA_NB_VAR_LOG_ANALYTICS_WORKSPACE_NAMES';
// Gets the Log Analytics workspace id from the workspace name.
export async function getWorkspaceIdFromName(triggerFields: { [key: string]: InputValueType }): Promise<string | undefined> {
try {
const _azApi = <azExt.IExtension>vscode.extensions.getExtension(azExt.extension.name)?.exports;
const workspaces = await _azApi.az.monitor.logAnalytics.workspace.list();
const targetWorkspace = workspaces.stdout.find(workspace => workspace.name === triggerFields[licenseTypeVarName]);
if (targetWorkspace) {
return targetWorkspace.customerId;
} else {
return undefined;
}
} catch (e) {
vscode.window.showErrorMessage(errorListingLogAnalyticsWorkspaces(e));
throw e;
}
}

View File

@@ -15,6 +15,8 @@ import { AzureArcTreeDataProvider } from './ui/tree/azureArcTreeDataProvider';
import { ControllerTreeNode } from './ui/tree/controllerTreeNode';
import { TreeNode } from './ui/tree/treeNode';
import * as pricing from './common/pricingUtils';
import * as workspace from './common/workspaceUtils';
import { LogAnalyticsWorkspaceOptionsSourceProvider } from './providers/logAnalyticsWorkspaceOptionsSourceProvider';
export async function activate(context: vscode.ExtensionContext): Promise<arc.IExtension> {
IconPathHelper.setExtensionContext(context);
@@ -61,6 +63,15 @@ export async function activate(context: vscode.ExtensionContext): Promise<arc.IE
// register option sources
const rdApi = <rd.IExtension>vscode.extensions.getExtension(rd.extension.name)?.exports;
context.subscriptions.push(rdApi.registerOptionsSourceProvider(new ArcControllersOptionsSourceProvider(treeDataProvider)));
context.subscriptions.push(rdApi.registerOptionsSourceProvider(new LogAnalyticsWorkspaceOptionsSourceProvider()));
// Register valueprovider for getting the Log Analytics workspace id from the workspace name.
context.subscriptions.push(rdApi.registerValueProvider({
id: 'workspace-name-to-id',
getValue: async (triggerFields: { [key: string]: rd.InputValueType }) => {
return workspace.getWorkspaceIdFromName(triggerFields);
}
}));
// Register valueprovider for getting the calculated cost per VCore.
context.subscriptions.push(rdApi.registerValueProvider({

View File

@@ -334,3 +334,4 @@ export const userCancelledError = localize('arc.userCancelledError', "User cance
export const clusterContextConfigNoLongerValid = (configFile: string, clusterContext: string, error: any) => localize('clusterContextConfigNoLongerValid', "The cluster context information specified by config file: {0} and cluster context: {1} is no longer valid. Error is:\n\t{2}\n Do you want to update this information?", configFile, clusterContext, getErrorMessage(error));
export const invalidConfigPath = localize('arc.invalidConfigPath', "Invalid config path");
export const loadingClusterContextsError = (error: any): string => localize('arc.loadingClusterContextsError', "Error loading cluster contexts. {0}", getErrorMessage(error));
export function errorListingLogAnalyticsWorkspaces(error: any): string { return localize('arc.errorListingLogAnalyticsWorkspaces', "Error listing Log Analytics workspaces {0}", getErrorMessage(error, true)); }

View File

@@ -0,0 +1,31 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as azExt from 'az-ext';
import * as rd from 'resource-deployment';
import * as vscode from 'vscode';
import { errorListingLogAnalyticsWorkspaces } from '../localizedConstants';
/**
* Class that provides options sources for Log Analytics workspace names
*/
export class LogAnalyticsWorkspaceOptionsSourceProvider implements rd.IOptionsSourceProvider {
readonly id = 'arc.logAnalyticsWorkspaceNames';
private readonly _azApi: azExt.IExtension;
constructor() {
this._azApi = <azExt.IExtension>vscode.extensions.getExtension(azExt.extension.name)?.exports;
}
public async getOptions(): Promise<string[]> {
try {
const workspacesListResult = await this._azApi.az.monitor.logAnalytics.workspace.list();
return workspacesListResult.stdout.map(workspace => workspace.name);
} catch (err) {
vscode.window.showErrorMessage(errorListingLogAnalyticsWorkspaces(err));
throw err;
}
}
}

View File

@@ -52,9 +52,6 @@ describe('radioOptionsGroup', function (): void {
const label = radioOptionsGroup.items[0] as azdata.TextComponent;
should(label.value).not.be.undefined();
label.value!.should.deepEqual(loc.loadingClusterContextsError(loadingError));
should(label.CSSStyles).not.be.undefined();
should(label.CSSStyles!.color).not.be.undefined();
label.CSSStyles!.color.should.equal('Red');
});
describe('getters and setters', async () => {

View File

@@ -67,7 +67,7 @@ export class RadioOptionsGroup {
this.component().loadingCompletedText = this._loadingCompleteMessage;
}
catch (e) {
const errorLabel = this._modelBuilder.text().withProps({ value: loc.loadingClusterContextsError(e), CSSStyles: { 'color': 'Red' } }).component();
const errorLabel = this._modelBuilder.text().withProps({ value: loc.loadingClusterContextsError(e), textType: azdata.TextType.Error }).component();
this._divContainer.addItem(errorLabel);
this.component().loadingCompletedText = this._loadingCompleteErrorMessage(e);
}

View File

@@ -283,9 +283,9 @@ agent-base@4, agent-base@^4.3.0:
es6-promisify "^5.0.0"
ansi-regex@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
version "3.0.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1"
integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==
ansi-styles@^3.2.1:
version "3.2.1"

View File

@@ -2,13 +2,13 @@
"name": "azcli",
"displayName": "%azcli.arc.displayName%",
"description": "%azcli.arc.description%",
"version": "0.4.0",
"version": "1.1.0",
"publisher": "Microsoft",
"license": "https://raw.githubusercontent.com/Microsoft/azuredatastudio/main/LICENSE.txt",
"icon": "images/extension.png",
"engines": {
"vscode": "*",
"azdata": ">=1.26.0"
"azdata": ">=1.35.0"
},
"activationEvents": [
"*"

View File

@@ -154,6 +154,17 @@ export function getAzApi(localAzDiscovered: Promise<IAzTool | undefined>, azTool
}
}
},
monitor: {
logAnalytics: {
workspace: {
list: async (resourceGroup?: string, subscription?: string, additionalEnvVars?: azExt.AdditionalEnvVars) => {
await localAzDiscovered;
validateAz(azToolService.localAz);
return azToolService.localAz!.monitor.logAnalytics.workspace.list(resourceGroup, subscription, additionalEnvVars);
}
}
}
},
getPath: async () => {
await localAzDiscovered;
throwIfNoAz(azToolService.localAz);

View File

@@ -209,6 +209,19 @@ export class AzTool implements azExt.IAzApi {
}
};
public monitor = {
logAnalytics: {
workspace: {
list: (resourceGroup?: string, subscription?: string, additionalEnvVars?: azExt.AdditionalEnvVars): Promise<azExt.AzOutput<azExt.LogAnalyticsWorkspaceListResult[]>> => {
const argsArray = ['monitor', 'log-analytics', 'workspace', 'list'];
if (resourceGroup) { argsArray.push('--resource-group', resourceGroup); }
if (subscription) { argsArray.push('--subscription', subscription); }
return this.executeCommand<azExt.LogAnalyticsWorkspaceListResult[]>(argsArray, additionalEnvVars);
}
}
}
};
/**
* Gets the output of running '--version' command on the az tool.

View File

@@ -187,6 +187,45 @@ declare module 'az-ext' {
state: string //Completed
}
export interface LogAnalyticsWorkspaceListResult {
createdDate: string, // "2020-02-25T16:59:38Z"
customerId: string, // "7e136a79-c0b6-4878-86bf-7bf7a6a7e6f6",
eTag: string, // null,
etag: string, // "\"00006df1-0000-0700-0000-61ee552f0000\"",
features: {
clusterResourceId: string, // null,
disableLocalAuth: boolean, // null,
enableDataExport: boolean, // null,
enableLogAccessUsingOnlyResourcePermissions: boolean, //true,
immediatePurgeDataOn30Days: boolean, // null,
legacy: number, // 0,
searchVersion: number // 1
},
forceCmkForQuery: boolean, // null,
id: string, // "/subscriptions/a5082b19-8a6e-4bc5-8fdd-8ef39dfebc39/resourcegroups/bugbash/providers/microsoft.operationalinsights/workspaces/bugbash-logs",
location: string, // "westus",
modifiedDate: string, // "2022-02-21T09:18:22.3906451Z",
name: string, // "bugbash-logs",
privateLinkScopedResources: string, // null,
provisioningState: string, // "Succeeded",
publicNetworkAccessForIngestion: string, // "Enabled",
publicNetworkAccessForQuery: string, // "Enabled",
resourceGroup: string, // "bugbash",
retentionInDays: number, // 30,
sku: {
capacityReservationLevel: number, // null,
lastSkuUpdate: string, // "2020-02-25T16:59:38Z",
name: string, // "pergb2018"
},
tags: string[], //null,
type: string, //"Microsoft.OperationalInsights/workspaces",
workspaceCapping: {
dailyQuotaGb: number, //-1.0,
dataIngestionStatus: string, // "RespectQuota",
quotaNextResetTime: string, // "2022-02-21T19:00:00Z"
}
}
export interface PostgresServerShowResult {
apiVersion: string, // "arcdata.microsoft.com/v1alpha1"
kind: string, // "postgresql"
@@ -362,6 +401,17 @@ declare module 'az-ext' {
): Promise<AzOutput<SqlMiDbRestoreResult>>
}
},
monitor: {
logAnalytics: {
workspace: {
list(
resourceGroup?: string, // test-rg
subscription?: string, // 122c121a-095a-4f5d-22e4-cc6b238490a3
additionalEnvVars?: AdditionalEnvVars
): Promise<AzOutput<LogAnalyticsWorkspaceListResult[]>>
}
}
},
getPath(): Promise<string>,
/**
* The semVersion corresponding to this installation of the Azure CLI. version() method should have been run

View File

@@ -307,9 +307,9 @@ ajv@^6.5.5:
uri-js "^4.2.2"
ansi-regex@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
version "3.0.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1"
integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==
ansi-styles@^3.2.1:
version "3.2.1"

View File

@@ -172,6 +172,11 @@ export class AzureAccountProvider implements azdata.AccountProvider, vscode.Disp
}
refresh(account: AzureAccount): Thenable<AzureAccount | azdata.PromptFailedResult> {
return this._refresh(account);
}
private async _refresh(account: AzureAccount): Promise<AzureAccount | azdata.PromptFailedResult> {
await this._clear(account.key);
return this.prompt();
}

View File

@@ -263,6 +263,12 @@ declare module 'azurecore' {
}
export interface IExtension {
/**
* Gets the list of subscriptions for the specified AzureAccount
* @param account The account to get the subscriptions for
* @param ignoreErrors If true any errors are not thrown and instead collected and returned as part of the result
* @param selectedOnly Whether to only list subscriptions the user has selected to filter to for this account
*/
getSubscriptions(account?: AzureAccount, ignoreErrors?: boolean, selectedOnly?: boolean): Promise<GetSubscriptionsResult>;
getResourceGroups(account?: AzureAccount, subscription?: azureResource.AzureResourceSubscription, ignoreErrors?: boolean): Promise<GetResourceGroupsResult>;
getLocations(account?: AzureAccount, subscription?: azureResource.AzureResourceSubscription, ignoreErrors?: boolean): Promise<GetLocationsResult>;

View File

@@ -469,9 +469,9 @@ abort-controller@^3.0.0:
event-target-shim "^5.0.0"
ansi-regex@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
version "3.0.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1"
integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==
ansi-styles@^3.2.1:
version "3.2.1"
@@ -655,9 +655,9 @@ events@^3.0.0:
integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
follow-redirects@^1.14.0:
version "1.14.7"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685"
integrity sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==
version "1.14.8"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc"
integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==
form-data@^2.5.0:
version "2.5.1"

View File

@@ -212,7 +212,7 @@
"dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#1.2.2",
"figures": "^2.0.0",
"find-remove": "1.2.1",
"@microsoft/ads-service-downloader": "0.2.3",
"@microsoft/ads-service-downloader": "0.2.4",
"vscode-extension-telemetry": "0.4.2",
"vscode-languageclient": "5.2.1",
"vscode-nls": "^4.0.0"

View File

@@ -2,16 +2,16 @@
# yarn lockfile v1
"@microsoft/ads-service-downloader@0.2.3":
version "0.2.3"
resolved "https://registry.yarnpkg.com/@microsoft/ads-service-downloader/-/ads-service-downloader-0.2.3.tgz#5987c1fc291d2019915e434263ccfe2223d27d5c"
integrity sha512-c8vvBeV0pdLUzATjoj0PlGTH3UwN3tsnT3gA6Uo+H3ZaOfkULhDrv1hG+2jJ8kA7oq+HfTHWEIR6tSnaFk2G/w==
"@microsoft/ads-service-downloader@0.2.4":
version "0.2.4"
resolved "https://registry.yarnpkg.com/@microsoft/ads-service-downloader/-/ads-service-downloader-0.2.4.tgz#905a11eb2da19673629852d9764fb9fb94ad81bd"
integrity sha512-3J0YjH29a5pP+5Yu0HF7itRBZpNOgUN34Gh/p0Py/TQr7qUzZSXwOM+fWD1nCea+q9t8mfHr0yuy0aeDX+33vQ==
dependencies:
async-retry "^1.2.3"
eventemitter2 "^5.0.1"
http-proxy-agent "^2.1.0"
https-proxy-agent "^2.2.3"
mkdirp "^0.5.1"
mkdirp "1.0.4"
tar "^6.1.11"
tmp "^0.0.33"
yauzl "^2.10.0"
@@ -187,11 +187,6 @@ minimatch@^3.0.4:
dependencies:
brace-expansion "^1.1.7"
minimist@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
minipass@^3.0.0:
version "3.1.3"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd"
@@ -207,14 +202,7 @@ minizlib@^2.1.1:
minipass "^3.0.0"
yallist "^4.0.0"
mkdirp@^0.5.1:
version "0.5.5"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
dependencies:
minimist "^1.2.5"
mkdirp@^1.0.3:
mkdirp@1.0.4, mkdirp@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==

View File

@@ -6,7 +6,7 @@
import * as nls from 'vscode-nls';
import * as vscode from 'vscode';
import * as azdata from 'azdata';
import * as mssql from '../../mssql';
import * as mssql from 'mssql';
import * as Utils from './cmsResource/utils';
import { ICmsResourceNodeInfo } from './cmsResource/tree/baseTreeNodes';

View File

@@ -6,4 +6,5 @@
/// <reference path='../../../../src/vs/vscode.d.ts'/>
/// <reference path='../../../../src/sql/azdata.d.ts'/>
/// <reference path='../../../../src/sql/azdata.proposed.d.ts'/>
/// <reference types='@types/node'/>
/// <reference path='../../../mssql/src/mssql.d.ts'/>
/// <reference types='@types/node'/>

View File

@@ -208,9 +208,9 @@
integrity sha512-E6Zn0rffhgd130zbCbAr/JdXfXkoOUFAKNs/rF8qnafSJ8KYaA/j3oz7dcwal+lYjLA7xvdd5J4wdYpCTlP8+w==
ansi-regex@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
version "3.0.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1"
integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==
ansi-styles@^3.2.1:
version "3.2.1"

View File

@@ -14,10 +14,14 @@ let packageInfo = Utils.getPackageInfo(packageJson);
export const TelemetryReporter = new AdsTelemetryReporter(packageInfo.name, packageInfo.version, packageInfo.aiKey);
export enum TelemetryViews {
DataTierApplicationWizard = 'DataTierApplicationWizard',
DeployDacpac = 'DeployDacpac',
DeployPlanPage = 'DeployPlanPage',
ExportBacpac = 'ExportBacpac',
ExtractDacpac = 'ExtractDacpac',
ImportBacpac = 'ImportBacpac'
DataTierApplicationWizard = 'DataTierApplicationWizard'
}
export enum TelemetryAction {
DeployDacpac = 'DeployDacpacOperation',
GenerateScript = 'GenerateDeployScriptOperation',
GenerateDeployPlan = 'GenerateDeployPlan',
ExtractDacpac = 'ExtractDacpacOperation',
ExportBacpac = 'ExportBacpacOperation',
ImportBacpac = 'ImportBacpacOperation'
}

View File

@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import * as azdata from 'azdata';
import * as mssql from '../../../mssql/src/mssql';
import * as mssql from 'mssql';
export const deployOperationId = 'deploy dacpac';
export const extractOperationId = 'extract dacpac';

View File

@@ -6,4 +6,5 @@
/// <reference path='../../../../src/vs/vscode.d.ts'/>
/// <reference path='../../../../src/sql/azdata.d.ts'/>
/// <reference path='../../../../src/sql/azdata.proposed.d.ts'/>
/// <reference path='../../../mssql/src/mssql.d.ts'/>
/// <reference types='@types/node'/>

View File

@@ -6,7 +6,7 @@
import * as vscode from 'vscode';
import * as azdata from 'azdata';
import * as loc from '../localizedConstants';
import * as mssql from '../../../mssql';
import * as mssql from 'mssql';
import * as utils from '../utils';
import { SelectOperationPage } from './pages/selectOperationpage';
import { DeployConfigPage } from './pages/deployConfigPage';
@@ -17,10 +17,9 @@ import { ExtractConfigPage } from './pages/extractConfigPage';
import { ImportConfigPage } from './pages/importConfigPage';
import { DacFxDataModel } from './api/models';
import { BasePage } from './api/basePage';
import { TelemetryReporter, TelemetryViews } from '../telemetry';
import { TelemetryAction, TelemetryReporter, TelemetryViews } from '../telemetry';
import { TelemetryEventMeasures, TelemetryEventProperties } from '@microsoft/ads-extension-telemetry';
const msSqlProvider = 'MSSQL';
class Page {
wizardPage: azdata.window.WizardPage;
dacFxPage: BasePage;
@@ -280,8 +279,8 @@ export class DataTierApplicationWizard {
}
}
if (!result || !result.success) {
vscode.window.showErrorMessage(this.getOperationErrorMessage(this.selectedOperation, result?.errorMessage));
if (!result?.success && result.errorMessage) {
vscode.window.showErrorMessage(this.getOperationErrorMessage(this.selectedOperation, result.errorMessage));
}
return result;
@@ -308,160 +307,130 @@ export class DataTierApplicationWizard {
private cancelDataTierApplicationWizard(): void {
TelemetryReporter.createActionEvent(TelemetryViews.DataTierApplicationWizard, 'WizardCanceled')
.withAdditionalProperties({
isPotentialDataLoss: this.model.potentialDataLoss?.toString()
isPotentialDataLoss: this.model.potentialDataLoss?.toString(),
page: this.wizard.currentPage.toString(),
selectedOperation: this.selectedOperation.toString()
}).send();
}
public async deploy(): Promise<mssql.DacFxResult> {
const deployStartTime = new Date().getTime();
let service: mssql.IDacFxService;
let ownerUri: string;
let result: mssql.DacFxResult;
let additionalProps: TelemetryEventProperties = {};
let additionalMeasurements: TelemetryEventMeasures = {};
try {
service = await this.getService(msSqlProvider);
ownerUri = await azdata.connection.getUriForConnection(this.model.server.connectionId);
result = await service.deployDacpac(this.model.filePath, this.model.database, this.model.upgradeExisting, ownerUri, azdata.TaskExecutionMode.execute);
} catch (e) {
additionalProps.exceptionOccurred = 'true';
}
// If result is null which means exception occured, will be adding additional props to the Telemetry
if (!result) {
additionalProps = { ...additionalProps, ...this.getDacServiceArgsAsProps(service, this.model.database, this.model.filePath, ownerUri) };
}
additionalProps.deploymentStatus = result?.success.toString();
const service = await this.getService();
const ownerUri = await azdata.connection.getUriForConnection(this.model.server.connectionId);
const deployStartTime = new Date().getTime();
const result = await service.deployDacpac(this.model.filePath, this.model.database, this.model.upgradeExisting, ownerUri, azdata.TaskExecutionMode.execute);
additionalMeasurements.totalDurationMs = (new Date().getTime() - deployStartTime);
additionalMeasurements.deployDacpacFileSizeBytes = await utils.tryGetFileSize(this.model.filePath);
additionalProps.upgradeExistingDatabase = this.model.upgradeExisting.toString();
additionalProps.potentialDataLoss = this.model.potentialDataLoss.toString();
additionalMeasurements.deployDacpacFileSizeBytes = await utils.tryGetFileSize(this.model.filePath);
additionalMeasurements.totalDurationMs = (new Date().getTime() - deployStartTime);
this.sendDacFxOperationTelemetryEvent(result, TelemetryAction.DeployDacpac, additionalProps, additionalMeasurements);
// Deploy Dacpac: 'Deploy button' clicked in deploy summary page, Reporting the event selection to the telemetry
this.sendDacServiceTelemetryEvent(TelemetryViews.DeployDacpac, 'DeployDacpacOperation', additionalProps, additionalMeasurements);
return result;
}
private async extract(): Promise<mssql.DacFxResult> {
const extractStartTime = new Date().getTime();
let service: mssql.IDacFxService;
let ownerUri: string;
let result: mssql.DacFxResult;
let additionalProps: TelemetryEventProperties = {};
let additionalMeasurements: TelemetryEventMeasures = {};
try {
service = await this.getService(msSqlProvider);
ownerUri = await azdata.connection.getUriForConnection(this.model.server.connectionId);
result = await service.extractDacpac(this.model.database, this.model.filePath, this.model.database, this.model.version, ownerUri, azdata.TaskExecutionMode.execute);
} catch (e) {
additionalProps.exceptionOccurred = 'true';
}
// If result is null which means exception occured, will be adding additional props to the Telemetry
if (!result) {
additionalProps = { ...additionalProps, ...this.getDacServiceArgsAsProps(service, this.model.database, this.model.filePath, ownerUri) };
}
additionalProps.extractStatus = result?.success.toString();
additionalMeasurements.extractedDacpacFileSizeBytes = await utils.tryGetFileSize(this.model.filePath);
const service = await this.getService();
const ownerUri = await azdata.connection.getUriForConnection(this.model.server.connectionId);
const extractStartTime = new Date().getTime();
const result = await service.extractDacpac(this.model.database, this.model.filePath, this.model.database, this.model.version, ownerUri, azdata.TaskExecutionMode.execute);
additionalMeasurements.totalDurationMs = (new Date().getTime() - extractStartTime);
// Extract Dacpac: 'Extract button' clicked in extract summary page, Reporting the event selection to the telemetry
this.sendDacServiceTelemetryEvent(TelemetryViews.ExtractDacpac, 'ExtractDacpacOperation', additionalProps, additionalMeasurements);
additionalMeasurements.extractedDacpacFileSizeBytes = await utils.tryGetFileSize(this.model.filePath);
this.sendDacFxOperationTelemetryEvent(result, TelemetryAction.ExtractDacpac, { version: this.model.version }, additionalMeasurements);
return result;
}
private async export(): Promise<mssql.DacFxResult> {
const exportStartTime = new Date().getTime();
let service: mssql.IDacFxService;
let ownerUri: string;
let result: mssql.DacFxResult;
let additionalProps: TelemetryEventProperties = {};
let additionalMeasurements: TelemetryEventMeasures = {};
try {
service = await this.getService(msSqlProvider);
ownerUri = await azdata.connection.getUriForConnection(this.model.server.connectionId);
result = await service.exportBacpac(this.model.database, this.model.filePath, ownerUri, azdata.TaskExecutionMode.execute);
} catch (e) {
additionalProps.exceptionOccurred = 'true';
}
// If result is null which means exception occured, will be adding additional props to the Telemetry
if (!result) {
additionalProps = { ...additionalProps, ...this.getDacServiceArgsAsProps(service, this.model.database, this.model.filePath, ownerUri) };
}
additionalProps.exportStatus = result?.success.toString();
additionalMeasurements.exportedBacpacFileSizeBytes = await utils.tryGetFileSize(this.model.filePath);
const service = await this.getService();
const ownerUri = await azdata.connection.getUriForConnection(this.model.server.connectionId);
const exportStartTime = new Date().getTime();
const result = await service.exportBacpac(this.model.database, this.model.filePath, ownerUri, azdata.TaskExecutionMode.execute);
additionalMeasurements.totalDurationMs = (new Date().getTime() - exportStartTime);
// Export Bacpac: 'Export button' clicked in Export summary page, Reporting the event selection to the telemetry
this.sendDacServiceTelemetryEvent(TelemetryViews.ExportBacpac, 'ExportBacpacOperation', additionalProps, additionalMeasurements);
additionalMeasurements.exportedBacpacFileSizeBytes = await utils.tryGetFileSize(this.model.filePath);
this.sendDacFxOperationTelemetryEvent(result, TelemetryAction.ExportBacpac, undefined, additionalMeasurements);
return result;
}
private async import(): Promise<mssql.DacFxResult> {
const importStartTime = new Date().getTime();
let service: mssql.IDacFxService;
let ownerUri: string;
let result: mssql.DacFxResult;
let additionalProps: TelemetryEventProperties = {};
let additionalMeasurements: TelemetryEventMeasures = {};
try {
service = await this.getService(msSqlProvider);
ownerUri = await azdata.connection.getUriForConnection(this.model.server.connectionId);
result = await service.importBacpac(this.model.filePath, this.model.database, ownerUri, azdata.TaskExecutionMode.execute);
} catch (e) {
additionalProps.exceptionOccurred = 'true';
}
// If result is null which means exception occured, will be adding additional props to the Telemetry
if (!result) {
additionalProps = { ...additionalProps, ...this.getDacServiceArgsAsProps(service, this.model.database, this.model.filePath, ownerUri) };
}
additionalProps.importStatus = result?.success.toString();
additionalMeasurements.importedBacpacFileSizeBytes = await utils.tryGetFileSize(this.model.filePath);
const service = await this.getService();
const ownerUri = await azdata.connection.getUriForConnection(this.model.server.connectionId);
const importStartTime = new Date().getTime();
const result = await service.importBacpac(this.model.filePath, this.model.database, ownerUri, azdata.TaskExecutionMode.execute);
additionalMeasurements.totalDurationMs = (new Date().getTime() - importStartTime);
// Import Bacpac: 'Import button' clicked in Import summary page, Reporting the event selection to the telemetry
this.sendDacServiceTelemetryEvent(TelemetryViews.ImportBacpac, 'ImportBacpacOperation', additionalProps, additionalMeasurements);
additionalMeasurements.importedBacpacFileSizeBytes = await utils.tryGetFileSize(this.model.filePath);
this.sendDacFxOperationTelemetryEvent(result, TelemetryAction.ImportBacpac, undefined, additionalMeasurements);
return result;
}
public async generateDeployScript(): Promise<mssql.DacFxResult> {
const genScriptStartTime = new Date().getTime();
let service: mssql.IDacFxService;
let ownerUri: string;
let result: mssql.DacFxResult;
let additionalProps: TelemetryEventProperties = {};
let additionalMeasurements: TelemetryEventMeasures = {};
try {
this.wizard.message = {
text: loc.generatingScriptMessage,
level: azdata.window.MessageLevel.Information,
description: ''
};
this.wizard.message = {
text: loc.generatingScriptMessage,
level: azdata.window.MessageLevel.Information
};
service = await this.getService(msSqlProvider);
ownerUri = await azdata.connection.getUriForConnection(this.model.server.connectionId);
result = await service.generateDeployScript(this.model.filePath, this.model.database, ownerUri, azdata.TaskExecutionMode.script);
} catch (e) {
additionalProps.exceptionOccurred = 'true';
}
const service = await this.getService();
const ownerUri = await azdata.connection.getUriForConnection(this.model.server.connectionId);
if (!result || !result.success) {
vscode.window.showErrorMessage(loc.generateDeployErrorMessage(result?.errorMessage));
}
const genScriptStartTime = new Date().getTime();
const result = await service.generateDeployScript(this.model.filePath, this.model.database, ownerUri, azdata.TaskExecutionMode.script);
// If result is null which means exception occured, will be adding additional props to the Telemetry
if (!result) {
additionalProps = { ...additionalProps, ...this.getDacServiceArgsAsProps(service, this.model.database, this.model.filePath, ownerUri) };
}
additionalProps.isScriptGenerated = result?.success.toString();
additionalProps.potentialDataLoss = this.model.potentialDataLoss.toString();
additionalMeasurements.deployDacpacFileSizeBytes = await utils.tryGetFileSize(this.model.filePath);
additionalMeasurements.totalDurationMs = (new Date().getTime() - genScriptStartTime);
// Deploy Dacpac 'generate script' button clicked in DeployPlanPage, Reporting the event selection to the telemetry with fail/sucess status
this.sendDacServiceTelemetryEvent(TelemetryViews.DeployDacpac, 'GenerateDeployScriptOperation', additionalProps, additionalMeasurements);
additionalMeasurements.deployDacpacFileSizeBytes = await utils.tryGetFileSize(this.model.filePath);
additionalProps.potentialDataLoss = this.model.potentialDataLoss.toString();
this.sendDacFxOperationTelemetryEvent(result, TelemetryAction.GenerateScript, undefined, additionalMeasurements);
if (!result?.success && result.errorMessage) {
vscode.window.showErrorMessage(loc.generateDeployErrorMessage(result.errorMessage));
}
return result;
}
public async generateDeployPlan(): Promise<string> {
let additionalMeasurements: TelemetryEventMeasures = {};
const service = await this.getService();
const ownerUri = await azdata.connection.getUriForConnection(this.model.server.connectionId);
const deployPlanStartTime = new Date().getTime();
const result = await service.generateDeployPlan(this.model.filePath, this.model.database, ownerUri, azdata.TaskExecutionMode.execute);
additionalMeasurements.totalDurationMs = (new Date().getTime() - deployPlanStartTime);
this.sendDacFxOperationTelemetryEvent(result, TelemetryAction.GenerateDeployPlan, undefined, additionalMeasurements);
if (!result?.success && result.errorMessage) {
vscode.window.showErrorMessage(loc.deployPlanErrorMessage(result.errorMessage));
}
return result.report;
}
public getPage(idx: number): Page {
let page: Page;
@@ -501,56 +470,24 @@ export class DataTierApplicationWizard {
|| (this.selectedOperation === Operation.deploy) && idx === DeployOperationPath.summary;
}
public async generateDeployPlan(): Promise<string> {
const deployPlanStartTime = new Date().getTime();
let service: mssql.IDacFxService;
let ownerUri: string;
let result: mssql.GenerateDeployPlanResult;
let additionalProps: TelemetryEventProperties = {};
let additionalMeasurements: TelemetryEventMeasures = {};
try {
service = await this.getService(msSqlProvider);
ownerUri = await azdata.connection.getUriForConnection(this.model.server.connectionId);
result = await service.generateDeployPlan(this.model.filePath, this.model.database, ownerUri, azdata.TaskExecutionMode.execute);
} catch (e) {
additionalProps.exceptionOccurred = 'true';
}
if (!result || !result.success) {
vscode.window.showErrorMessage(loc.deployPlanErrorMessage(result?.errorMessage));
}
// If result is null which means exception occured, will be adding additional props to the Telemetry
if (!result) {
additionalProps = { ...additionalProps, ...this.getDacServiceArgsAsProps(service, this.model.database, this.model.filePath, ownerUri) };
}
additionalProps.isPlanGenerated = result?.success.toString();
additionalMeasurements.totalDurationMs = (new Date().getTime() - deployPlanStartTime);
// send Generate deploy plan error/succes telemetry event
this.sendDacServiceTelemetryEvent(TelemetryViews.DeployPlanPage, 'GenerateDeployPlanOperation', additionalProps, additionalMeasurements);
return result.report;
}
private async getService(providerName: string): Promise<mssql.IDacFxService> {
private async getService(): Promise<mssql.IDacFxService> {
if (!this.dacfxService) {
this.dacfxService = (vscode.extensions.getExtension(mssql.extension.name).exports as mssql.IExtension).dacFx;
}
return this.dacfxService;
}
public getDacServiceArgsAsProps(service: mssql.IDacFxService, database: string, filePath: string, ownerUri: string): { [k: string]: string } {
return {
isServiceExist: (!!service).toString(),
isDatabaseExists: (!!database).toString(),
isFilePathExist: (!!filePath).toString(),
isOwnerUriExist: (!!ownerUri).toString()
};
}
private sendDacServiceTelemetryEvent(telemetryView: string, telemetryAction: string, additionalProps: TelemetryEventProperties, additionalMeasurements: TelemetryEventMeasures): void {
TelemetryReporter.createActionEvent(telemetryView, telemetryAction)
.withAdditionalProperties(additionalProps)
.withAdditionalMeasurements(additionalMeasurements)
.send();
private sendDacFxOperationTelemetryEvent(result: azdata.ResultStatus, telemetryAction: string, additionalProps: TelemetryEventProperties, additionalMeasurements: TelemetryEventMeasures): void {
if (result?.success) {
TelemetryReporter.createActionEvent(TelemetryViews.DataTierApplicationWizard, telemetryAction)
.withAdditionalProperties(additionalProps)
.withAdditionalMeasurements(additionalMeasurements)
.send();
} else {
TelemetryReporter.createErrorEvent(TelemetryViews.DataTierApplicationWizard, telemetryAction)
.withAdditionalProperties(additionalProps)
.withAdditionalMeasurements(additionalMeasurements)
.send();
}
}
}

View File

@@ -263,9 +263,9 @@
integrity sha512-yYezQwGWty8ziyYLdZjwxyMb0CZR49h8JALHGrxjQHWlqGgc8kLdHEgWrgL0uZ29DMvEVBDnHU2Wg36zKSIUtA==
ansi-regex@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
version "3.0.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1"
integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==
ansi-styles@^3.2.1:
version "3.2.1"

View File

@@ -2,7 +2,7 @@
"name": "data-workspace",
"displayName": "Data Workspace",
"description": "Additional common functionality for database projects",
"version": "0.1.1",
"version": "0.2.0",
"publisher": "Microsoft",
"preview": true,
"license": "https://raw.githubusercontent.com/Microsoft/azuredatastudio/main/LICENSE.txt",
@@ -133,12 +133,12 @@
"view/item/context": [
{
"command": "projects.manageProject",
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.project && azdataAvailable",
"when": "view == dataworkspace.views.main && viewItem =~ /^(databaseProject.itemType.project|databaseProject.itemType.legacyProject)$/ && azdataAvailable",
"group": "0_projectsFirst@1"
},
{
"command": "projects.removeProject",
"when": "view == dataworkspace.views.main && viewItem == databaseProject.itemType.project",
"when": "view == dataworkspace.views.main && viewItem =~ /^(databaseProject.itemType.project|databaseProject.itemType.legacyProject)$/",
"group": "9_dbProjectsLast@9"
}
]

View File

@@ -35,7 +35,7 @@ export const DefaultInputWidth = '400px';
export const DefaultButtonWidth = '80px';
// New Project Dialog
export const NewProjectDialogTitle = localize('dataworkspace.NewProjectDialogTitle', "Create new project");
export const NewProjectDialogTitle = localize('dataworkspace.NewProjectDialogTitle', "Create new database project");
export const TypeTitle = localize('dataworkspace.Type', "Type");
export const ProjectNameTitle = localize('dataworkspace.projectNameTitle', "Name");
export const ProjectNamePlaceholder = localize('dataworkspace.projectNamePlaceholder', "Enter project name");
@@ -45,10 +45,17 @@ export const ProjectLocationPlaceholder = localize('dataworkspace.projectLocatio
export const ProjectParentDirectoryNotExistError = (location: string): string => { return localize('dataworkspace.projectParentDirectoryNotExistError', "The selected project location '{0}' does not exist or is not a directory.", location); };
export const ProjectDirectoryAlreadyExistError = (projectName: string, location: string): string => { return localize('dataworkspace.projectDirectoryAlreadyExistError', "There is already a directory named '{0}' in the selected location: '{1}'.", projectName, location); };
export const ProjectDirectoryAlreadyExistErrorShort = (projectName: string) => { return localize('dataworkspace.projectDirectoryAlreadyExistErrorShort', "Directory '{0}' already exists in the selected location, please choose another", projectName); };
export const SelectProjectType = localize('dataworkspace.selectProjectType', "Select Project Type");
export const SelectProjectType = localize('dataworkspace.selectProjectType', "Select Database Project Type");
export const SelectProjectLocation = localize('dataworkspace.selectProjectLocation', "Select Project Location");
export const NameCannotBeEmpty = localize('dataworkspace.nameCannotBeEmpty', "Name cannot be empty");
export const TargetPlatform = localize('dataworkspace.targetPlatform', "Target Platform");
export const SdkStyleProject = localize('dataworkspace.sdkStyleProject', "SDK-style project (Preview)");
export const LearnMore = localize('dataworkspace.learnMore', "Learn More");
export const YesRecommended = localize('dataworkspace.yesRecommended', "Yes (Recommended)");
export const No = localize('dataworkspace.no', "No");
export const SdkLearnMorePlaceholder = localize('dataworkspace.sdkLearnMorePlaceholder', "Click \"Learn More\" button for more information about SDK-style projects");
export const Default = localize('dataworkspace.default', "Default");
export const SelectTargetPlatform = localize('dataworkspace.selectTargetPlatform', "Select Target Platform");
//Open Existing Dialog
export const OpenExistingDialogTitle = localize('dataworkspace.openExistingDialogTitle', "Open Existing Project");

View File

@@ -25,6 +25,10 @@ export class DataWorkspaceExtension implements IExtension {
void vscode.commands.executeCommand('dataworkspace.views.main.focus');
}
refreshProjectsTree(): void {
this.workspaceService.refreshProjectsTree();
}
get defaultProjectSaveLocation(): vscode.Uri | undefined {
return defaultProjectSaveLocation();
}

View File

@@ -74,8 +74,9 @@ export interface IWorkspaceService {
* @param location The location of the project
* @param projectTypeId The project type id
* @param projectTargetPlatform The target platform of the project
* @param sdkStyleProject Whether or not the project is SDK-style
*/
createProject(name: string, location: vscode.Uri, projectTypeId: string, projectTargetPlatform?: string): Promise<vscode.Uri>;
createProject(name: string, location: vscode.Uri, projectTypeId: string, projectTargetPlatform?: string, sdkStyleProject?: boolean): Promise<vscode.Uri>;
/**
* Clones git repository and adds projects to workspace

View File

@@ -33,6 +33,11 @@ declare module 'dataworkspace' {
*/
showProjectsView(): void;
/**
* Fires event to refresh the project tree. The tree is not guaranteed to be refreshed after this call returns
*/
refreshProjectsTree(): void;
/**
* Returns the default location to save projects
*/
@@ -67,8 +72,9 @@ declare module 'dataworkspace' {
* @param location the parent directory of the project
* @param projectTypeId the identifier of the selected project type
* @param projectTargetPlatform the target platform of the project
* @param sdkStyleProject whether or not a project is SDK-style
*/
createProject(name: string, location: vscode.Uri, projectTypeId: string, projectTargetPlatform?: string): Promise<vscode.Uri>;
createProject(name: string, location: vscode.Uri, projectTypeId: string, projectTargetPlatform?: string, sdkStyleProject?: boolean): Promise<vscode.Uri>;
/**
* Gets the project data corresponding to the project file, to be placed in the dashboard container
@@ -131,14 +137,14 @@ declare module 'dataworkspace' {
readonly defaultTargetPlatform?: string;
/**
* Link display value for a link at the end of the project description. linkLocation also needs to be set to use this
* Whether or not sdk style project is an option
*/
readonly linkDisplayValue?: string;
readonly sdkStyleOption?: boolean;
/**
* Location where clicking on the linkDisplayValue will go to
* Location where clicking on the Learn More next to SDK style checkbox will go. sdkStyleOption needs to be set to true to use this
*/
readonly linkLocation?: string
readonly sdkStyleLearnMoreUrl?: string
}
/**

View File

@@ -22,6 +22,7 @@ class NewProjectDialogModel {
name: string = '';
location: string = '';
targetPlatform?: string;
sdkStyleProject?: boolean;
}
export async function openSpecificProjectNewProjectDialog(projectType: IProjectType, workspaceService: WorkspaceService): Promise<vscode.Uri | undefined> {
@@ -35,6 +36,7 @@ export class NewProjectDialog extends DialogBase {
public model: NewProjectDialogModel = new NewProjectDialogModel();
public formBuilder: azdataType.FormBuilder | undefined;
public targetPlatformDropdownFormComponent: azdataType.FormComponent | undefined;
public sdkProjectCheckboxFormComponent: azdataType.FormComponent | undefined;
public newProjectDialogComplete: Deferred<void> | undefined;
public newDialogPromise: Promise<void> = new Promise<void>((resolve, reject) => this.newProjectDialogComplete = { resolve, reject });
public projectUri: vscode.Uri | undefined;
@@ -87,7 +89,7 @@ export class NewProjectDialog extends DialogBase {
.withAdditionalProperties({ projectFileExtension: this.model.projectFileExtension, projectTemplateId: this.model.projectTypeId })
.send();
this.projectUri = await this.workspaceService.createProject(this.model.name, vscode.Uri.file(this.model.location), this.model.projectTypeId, this.model.targetPlatform);
this.projectUri = await this.workspaceService.createProject(this.model.name, vscode.Uri.file(this.model.location), this.model.projectTypeId, this.model.targetPlatform, this.model.sdkStyleProject);
this.newProjectDialogComplete?.resolve();
}
catch (err) {
@@ -122,8 +124,7 @@ export class NewProjectDialog extends DialogBase {
'font-weight': 'bold'
}
}, {
textValue: projectType.description,
linkDisplayValue: projectType.linkDisplayValue
textValue: projectType.description
}
]
};
@@ -138,15 +139,7 @@ export class NewProjectDialog extends DialogBase {
selectedCardId: allProjectTypes.length > 0 ? allProjectTypes[0].id : undefined
}).component();
projectTypeRadioCardGroup.onLinkClick(async (value) => {
for (let projectType of allProjectTypes) {
if (value.cardId === projectType.id) {
void vscode.env.openExternal(vscode.Uri.parse(projectType.linkLocation!));
}
}
});
this.register(projectTypeRadioCardGroup.onSelectionChanged((e) => {
this.register(projectTypeRadioCardGroup.onSelectionChanged(async (e) => {
this.model.projectTypeId = e.cardId;
const selectedProject = allProjectTypes.find(p => p.id === e.cardId);
@@ -155,12 +148,30 @@ export class NewProjectDialog extends DialogBase {
targetPlatformDropdown.values = selectedProject?.targetPlatforms;
targetPlatformDropdown.value = this.getDefaultTargetPlatform(selectedProject);
this.formBuilder?.addFormItem(this.targetPlatformDropdownFormComponent!);
this.formBuilder?.insertFormItem(this.targetPlatformDropdownFormComponent!, 3);
} else {
// remove the target version dropdown if the selected project type didn't provide values for this
this.formBuilder?.removeFormItem(this.targetPlatformDropdownFormComponent!);
this.model.targetPlatform = undefined;
}
if (selectedProject?.sdkStyleOption) {
sdkProjectCheckbox.checked = true;
this.model.sdkStyleProject = true;
if (selectedProject.sdkStyleLearnMoreUrl) {
await sdkLearnMore.updateProperty('url', selectedProject.sdkStyleLearnMoreUrl);
sdkFormComponentGroup.addItem(sdkLearnMore);
} else {
// remove learn more link if the project type didn't provide it
sdkFormComponentGroup.removeItem(sdkLearnMore);
}
this.formBuilder?.addFormItem(this.sdkProjectCheckboxFormComponent!);
} else {
this.model.sdkStyleProject = false;
this.formBuilder?.removeFormItem(this.sdkProjectCheckboxFormComponent!);
}
}));
const projectNameTextBox = view.modelBuilder.inputBox().withProps({
@@ -227,6 +238,34 @@ export class NewProjectDialog extends DialogBase {
component: targetPlatformDropdown
};
const sdkProjectCheckbox = view.modelBuilder.checkBox().withProps({
checked: true,
label: constants.SdkStyleProject
}).component();
this.register(sdkProjectCheckbox.onChanged(() => {
this.model.sdkStyleProject = sdkProjectCheckbox.checked;
}));
const sdkLearnMore = view.modelBuilder.hyperlink().withProps({
label: constants.LearnMore,
url: ''
}).component();
const sdkFormComponentGroup = view.modelBuilder.flexContainer()
.withLayout({ flexFlow: 'row', alignItems: 'baseline' })
.withItems([sdkProjectCheckbox], { CSSStyles: { flex: '0 0 auto', 'margin-right': '10px' } })
.component();
if (allProjectTypes[0].sdkStyleLearnMoreUrl) {
await sdkLearnMore.updateProperty('url', allProjectTypes[0].sdkStyleLearnMoreUrl);
sdkFormComponentGroup.addItem(sdkLearnMore);
}
this.sdkProjectCheckboxFormComponent = {
component: sdkFormComponentGroup,
};
this.formBuilder = view.modelBuilder.formContainer().withFormItems([
{
title: constants.TypeTitle,
@@ -250,6 +289,11 @@ export class NewProjectDialog extends DialogBase {
this.formBuilder.addFormItem(this.targetPlatformDropdownFormComponent);
}
// add sdk style checkbox is the first project has the option
if (allProjectTypes[0].sdkStyleOption) {
this.formBuilder.addFormItem(this.sdkProjectCheckboxFormComponent);
}
await view.initializeModel(this.formBuilder.component());
this.initDialogComplete?.resolve();
}

View File

@@ -19,8 +19,12 @@ export async function createNewProjectWithQuickpick(workspaceService: WorkspaceS
return {
label: projType.displayName,
description: projType.description,
id: projType.id
} as vscode.QuickPickItem & { id: string };
id: projType.id,
targetPlatforms: projType.targetPlatforms,
defaultTargetPlatform: projType.defaultTargetPlatform,
sdkOption: projType.sdkStyleOption,
sdkLearnMoreUrl: projType.sdkStyleLearnMoreUrl
} as vscode.QuickPickItem & { id: string, sdkOption?: boolean, targetPlatforms?: string[], defaultTargetPlatform?: string, sdkLearnMoreUrl?: string };
});
// 1. Prompt for project type
@@ -87,5 +91,79 @@ export async function createNewProjectWithQuickpick(workspaceService: WorkspaceS
continue;
}
await workspaceService.createProject(projectName, vscode.Uri.file(projectLocation), projectType.id, undefined);
let targetPlatform;
if (projectType.targetPlatforms) {
// 4. Target platform of the project
let targetPlatforms: vscode.QuickPickItem[] = projectType.targetPlatforms.map(targetPlatform => { return { label: targetPlatform }; });
if (projectType.defaultTargetPlatform) {
// move the default target platform to be the first one in the list
const defaultIndex = targetPlatforms.findIndex(i => i.label === projectType.defaultTargetPlatform);
if (defaultIndex > -1) {
targetPlatforms.splice(defaultIndex, 1);
}
// add default next to the default target platform
targetPlatforms.unshift({ label: projectType.defaultTargetPlatform, description: constants.Default });
}
const selectedTargetPlatform = await vscode.window.showQuickPick(targetPlatforms, { title: constants.SelectTargetPlatform, ignoreFocusOut: true });
if (!selectedTargetPlatform) {
// User cancelled
return;
}
targetPlatform = selectedTargetPlatform.label;
}
let sdkStyle;
if (projectType.sdkOption) {
// 5. SDK-style project or not
const sdkLearnMoreButton: vscode.QuickInputButton = {
iconPath: new vscode.ThemeIcon('link-external'),
tooltip: constants.LearnMore
};
const quickPick = vscode.window.createQuickPick();
quickPick.items = [{ label: constants.YesRecommended }, { label: constants.No }];
quickPick.title = constants.SdkStyleProject;
quickPick.ignoreFocusOut = true;
const disposables: vscode.Disposable[] = [];
try {
if (projectType.sdkLearnMoreUrl) {
// add button to open sdkLearnMoreUrl if it was provided
quickPick.buttons = [sdkLearnMoreButton];
quickPick.placeholder = constants.SdkLearnMorePlaceholder;
}
let sdkStylePromise = new Promise<boolean | undefined>((resolve) => {
disposables.push(
quickPick.onDidHide(() => {
resolve(undefined);
}),
quickPick.onDidChangeSelection((item) => {
resolve(item[0].label === constants.YesRecommended);
}));
if (projectType.sdkLearnMoreUrl) {
disposables.push(quickPick.onDidTriggerButton(async () => {
await vscode.env.openExternal(vscode.Uri.parse(projectType.sdkLearnMoreUrl!));
}));
}
});
quickPick.show();
sdkStyle = await sdkStylePromise;
quickPick.hide();
} finally {
disposables.forEach(d => d.dispose());
}
if (sdkStyle === undefined) {
// User cancelled
return;
}
}
await workspaceService.createProject(projectName, vscode.Uri.file(projectLocation), projectType.id, targetPlatform, sdkStyle);
}

View File

@@ -169,10 +169,12 @@ export class ProjectDashboard {
.component();
header.addItem(locationLabel, { CSSStyles: { 'padding-left': '34px', 'padding-top': '15px', 'padding-bottom': '50px', 'font-size': '16px' } });
const image = this.projectProvider!.image; // background image added at the bottom right of the header
const backgroundImage = this.projectProvider!.image; // background image added at the bottom right of the header
// Files need to have the vscode-file scheme to be loaded by ADS
const backgroundUri = vscode.Uri.file(backgroundImage!.light.toString()).with({ scheme: 'vscode-file' });
headerContainer.addItem(header, {
CSSStyles: {
'background-image': `url(${vscode.Uri.file(image!.light.toString())})`,
'background-image': `url(${backgroundUri})`,
'background-repeat': 'no-repeat',
'background-position': '85% bottom',
'background-size': '10%',

View File

@@ -168,6 +168,13 @@ export class WorkspaceService implements IWorkspaceService {
}
}
/**
* Fire event to refresh projects tree
*/
public refreshProjectsTree(): void {
this._onDidWorkspaceProjectsChange.fire();
}
/**
* Returns an array of all the supported projects in the folder
* @param folder folder to look look for projects
@@ -197,10 +204,10 @@ export class WorkspaceService implements IWorkspaceService {
return ProjectProviderRegistry.getProviderByProjectExtension(projectType);
}
async createProject(name: string, location: vscode.Uri, projectTypeId: string, projectTargetVersion?: string): Promise<vscode.Uri> {
async createProject(name: string, location: vscode.Uri, projectTypeId: string, projectTargetVersion?: string, sdkStyleProject?: boolean): Promise<vscode.Uri> {
const provider = ProjectProviderRegistry.getProviderByProjectType(projectTypeId);
if (provider) {
const projectFile = await provider.createProject(name, location, projectTypeId, projectTargetVersion);
const projectFile = await provider.createProject(name, location, projectTypeId, projectTargetVersion, sdkStyleProject);
await this.addProjectsToWorkspace([projectFile]);
this._onDidWorkspaceProjectsChange.fire();
return projectFile;

View File

@@ -279,9 +279,9 @@
integrity sha512-yYezQwGWty8ziyYLdZjwxyMb0CZR49h8JALHGrxjQHWlqGgc8kLdHEgWrgL0uZ29DMvEVBDnHU2Wg36zKSIUtA==
ansi-regex@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
version "3.0.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1"
integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==
ansi-styles@^3.2.1:
version "3.2.1"

View File

@@ -50,9 +50,9 @@ delayed-stream@~1.0.0:
integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
follow-redirects@^1.14.0:
version "1.14.7"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685"
integrity sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==
version "1.14.8"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc"
integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==
form-data@^3.0.0:
version "3.0.0"

View File

@@ -79,7 +79,7 @@
"dependencies": {
"dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#0.3.0",
"htmlparser2": "^3.10.1",
"@microsoft/ads-service-downloader": "0.2.3",
"@microsoft/ads-service-downloader": "0.2.4",
"vscode-extension-telemetry": "0.4.2",
"vscode-nls": "^3.2.1"
},

View File

@@ -182,16 +182,16 @@
resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd"
integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==
"@microsoft/ads-service-downloader@0.2.3":
version "0.2.3"
resolved "https://registry.yarnpkg.com/@microsoft/ads-service-downloader/-/ads-service-downloader-0.2.3.tgz#5987c1fc291d2019915e434263ccfe2223d27d5c"
integrity sha512-c8vvBeV0pdLUzATjoj0PlGTH3UwN3tsnT3gA6Uo+H3ZaOfkULhDrv1hG+2jJ8kA7oq+HfTHWEIR6tSnaFk2G/w==
"@microsoft/ads-service-downloader@0.2.4":
version "0.2.4"
resolved "https://registry.yarnpkg.com/@microsoft/ads-service-downloader/-/ads-service-downloader-0.2.4.tgz#905a11eb2da19673629852d9764fb9fb94ad81bd"
integrity sha512-3J0YjH29a5pP+5Yu0HF7itRBZpNOgUN34Gh/p0Py/TQr7qUzZSXwOM+fWD1nCea+q9t8mfHr0yuy0aeDX+33vQ==
dependencies:
async-retry "^1.2.3"
eventemitter2 "^5.0.1"
http-proxy-agent "^2.1.0"
https-proxy-agent "^2.2.3"
mkdirp "^0.5.1"
mkdirp "1.0.4"
tar "^6.1.11"
tmp "^0.0.33"
yauzl "^2.10.0"
@@ -284,9 +284,9 @@ agent-base@^4.3.0:
es6-promisify "^5.0.0"
ansi-regex@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
version "3.0.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1"
integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==
ansi-styles@^3.2.1:
version "3.2.1"
@@ -788,13 +788,18 @@ minizlib@^2.1.1:
minipass "^3.0.0"
yallist "^4.0.0"
mkdirp@0.5.1, mkdirp@^0.5.1:
mkdirp@0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
dependencies:
minimist "0.0.8"
mkdirp@1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
mkdirp@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.3.tgz#4cf2e30ad45959dddea53ad97d518b6c8205e1ea"

View File

@@ -6,7 +6,7 @@
import 'mocha';
import * as vscode from 'vscode';
import * as azdata from 'azdata';
import * as mssql from '../../../mssql';
import * as mssql from 'mssql';
import * as utils from './utils';
import * as uuid from './uuid';
import assert = require('assert');

View File

@@ -9,7 +9,7 @@ import * as utils from './utils';
import * as path from 'path';
import * as fs from 'fs';
import * as os from 'os';
import * as mssql from '../../../mssql';
import * as mssql from 'mssql';
import * as vscode from 'vscode';
import { getStandaloneServer } from './testConfig';
import * as assert from 'assert';

View File

@@ -7,7 +7,7 @@ import 'mocha';
import * as azdata from 'azdata';
import * as vscode from 'vscode';
import * as utils from './utils';
import * as mssql from '../../../mssql';
import * as mssql from 'mssql';
import * as os from 'os';
import * as fs from 'fs';
import * as path from 'path';

View File

@@ -5,5 +5,6 @@
/// <reference path='../../../../src/sql/azdata.d.ts'/>
/// <reference path='../../../../src/sql/azdata.proposed.d.ts'/>
/// <reference path='../../../../src/sql/azdata.test.d.ts'/>
/// <reference path='../../../mssql/src/mssql.d.ts'/>
/// <reference path='../../../../src/vs/vscode.d.ts'/>
/// <reference types='@types/node'/>

View File

@@ -262,9 +262,9 @@ ajv@^6.5.5:
uri-js "^4.2.2"
ansi-regex@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
version "3.0.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1"
integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==
ansi-styles@^3.2.1:
version "3.2.1"
@@ -953,9 +953,9 @@ mocha@^5.2.0:
supports-color "5.4.0"
moment@^2.21.0, moment@^2.22.2:
version "2.24.0"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b"
integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==
version "2.29.2"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.2.tgz#00910c60b20843bcba52d37d58c628b47b1f20e4"
integrity sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==
ms-rest-azure@^2.5.5:
version "2.6.0"

View File

@@ -430,7 +430,7 @@
"dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#1.2.2",
"figures": "^2.0.0",
"find-remove": "1.2.1",
"@microsoft/ads-service-downloader": "0.2.3",
"@microsoft/ads-service-downloader": "0.2.4",
"vscode-extension-telemetry": "0.4.2",
"vscode-languageclient": "5.2.1",
"vscode-nls": "^4.0.0"

View File

@@ -2,16 +2,16 @@
# yarn lockfile v1
"@microsoft/ads-service-downloader@0.2.3":
version "0.2.3"
resolved "https://registry.yarnpkg.com/@microsoft/ads-service-downloader/-/ads-service-downloader-0.2.3.tgz#5987c1fc291d2019915e434263ccfe2223d27d5c"
integrity sha512-c8vvBeV0pdLUzATjoj0PlGTH3UwN3tsnT3gA6Uo+H3ZaOfkULhDrv1hG+2jJ8kA7oq+HfTHWEIR6tSnaFk2G/w==
"@microsoft/ads-service-downloader@0.2.4":
version "0.2.4"
resolved "https://registry.yarnpkg.com/@microsoft/ads-service-downloader/-/ads-service-downloader-0.2.4.tgz#905a11eb2da19673629852d9764fb9fb94ad81bd"
integrity sha512-3J0YjH29a5pP+5Yu0HF7itRBZpNOgUN34Gh/p0Py/TQr7qUzZSXwOM+fWD1nCea+q9t8mfHr0yuy0aeDX+33vQ==
dependencies:
async-retry "^1.2.3"
eventemitter2 "^5.0.1"
http-proxy-agent "^2.1.0"
https-proxy-agent "^2.2.3"
mkdirp "^0.5.1"
mkdirp "1.0.4"
tar "^6.1.11"
tmp "^0.0.33"
yauzl "^2.10.0"
@@ -262,11 +262,6 @@ minimatch@^3.0.4:
dependencies:
brace-expansion "^1.1.7"
minimist@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
minipass@^3.0.0:
version "3.1.3"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd"
@@ -282,14 +277,7 @@ minizlib@^2.1.1:
minipass "^3.0.0"
yallist "^4.0.0"
mkdirp@^0.5.1:
version "0.5.5"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
dependencies:
minimist "^1.2.5"
mkdirp@^1.0.3:
mkdirp@1.0.4, mkdirp@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==

View File

@@ -23,7 +23,6 @@
"devDependencies": {
"@types/node": "^12.11.7",
"ts-loader": "^5.3.3",
"tslint": "^5.12.1",
"typescript": "^3.3.1"
},
"dependencies": {

View File

@@ -35,13 +35,11 @@ export class HostSessionManager {
const queryProvider = new QueryProvider(true);
queryProvider.initialize(true, sharedService);
/* tslint:disable:no-unused-expression */
new StatusProvider(
isHost,
vslsApi,
connectionProvider,
sharedService);
/* tslint:enable:no-unused-expression */
});
}
}

View File

@@ -16,10 +16,8 @@ export async function activate(context: vscode.ExtensionContext) {
return;
}
/* tslint:disable:no-unused-expression */
new HostSessionManager(context, vslsApi);
new GuestSessionManager(context, vslsApi);
/* tslint:enable:no-unused-expression */
}
export function deactivate(): void {

View File

@@ -2,22 +2,6 @@
# yarn lockfile v1
"@babel/code-frame@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8"
integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==
dependencies:
"@babel/highlight" "^7.0.0"
"@babel/highlight@^7.0.0":
version "7.5.0"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540"
integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==
dependencies:
chalk "^2.0.0"
esutils "^2.0.2"
js-tokens "^4.0.0"
"@types/node@^12.11.7":
version "12.12.7"
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.7.tgz#01e4ea724d9e3bd50d90c11fd5980ba317d8fa11"
@@ -30,13 +14,6 @@ ansi-styles@^3.2.1:
dependencies:
color-convert "^1.9.0"
argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
dependencies:
sprintf-js "~1.0.2"
arr-diff@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
@@ -67,11 +44,6 @@ atob@^2.1.1:
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
base@^0.11.1:
version "0.11.2"
resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
@@ -90,14 +62,6 @@ big.js@^5.2.2:
resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
dependencies:
balanced-match "^1.0.0"
concat-map "0.0.1"
braces@^2.3.1:
version "2.3.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
@@ -114,11 +78,6 @@ braces@^2.3.1:
split-string "^3.0.2"
to-regex "^3.0.1"
builtin-modules@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
cache-base@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
@@ -134,7 +93,7 @@ cache-base@^1.0.1:
union-value "^1.0.0"
unset-value "^1.0.0"
chalk@^2.0.0, chalk@^2.3.0:
chalk@^2.3.0:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -173,21 +132,11 @@ color-name@1.1.3:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
commander@^2.12.1:
version "2.20.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422"
integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==
component-emitter@^1.2.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
copy-descriptor@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
@@ -238,11 +187,6 @@ define-property@^2.0.2:
is-descriptor "^1.0.2"
isobject "^3.0.1"
diff@^3.2.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
emojis-list@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
@@ -269,16 +213,6 @@ escape-string-regexp@^1.0.5:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
esprima@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
esutils@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=
expand-brackets@^2.1.4:
version "2.1.4"
resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
@@ -343,28 +277,11 @@ fragment-cache@^0.2.1:
dependencies:
map-cache "^0.2.2"
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
get-value@^2.0.3, get-value@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
glob@^7.1.1:
version "7.1.4"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
inherits "2"
minimatch "^3.0.4"
once "^1.3.0"
path-is-absolute "^1.0.0"
graceful-fs@^4.1.2:
version "4.2.0"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.0.tgz#8d8fdc73977cb04104721cb53666c1ca64cd328b"
@@ -406,15 +323,7 @@ has-values@^1.0.0:
is-number "^3.0.0"
kind-of "^4.0.0"
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
dependencies:
once "^1.3.0"
wrappy "1"
inherits@2, inherits@~2.0.3:
inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -518,19 +427,6 @@ isobject@^3.0.0, isobject@^3.0.1:
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
js-yaml@^3.13.1:
version "3.13.1"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
dependencies:
argparse "^1.0.7"
esprima "^4.0.0"
json5@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
@@ -610,22 +506,10 @@ micromatch@^3.1.4:
snapdragon "^0.8.1"
to-regex "^3.0.2"
minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
dependencies:
brace-expansion "^1.1.7"
minimist@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
minimist@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
version "1.2.6"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
mixin-deep@^1.2.0:
version "1.3.2"
@@ -635,13 +519,6 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
mkdirp@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
dependencies:
minimist "0.0.8"
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@@ -687,28 +564,11 @@ object.pick@^1.3.0:
dependencies:
isobject "^3.0.1"
once@^1.3.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
dependencies:
wrappy "1"
pascalcase@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
path-parse@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
posix-character-classes@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
@@ -760,13 +620,6 @@ resolve-url@^0.2.1:
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
resolve@^1.3.2:
version "1.11.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e"
integrity sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==
dependencies:
path-parse "^1.0.6"
ret@~0.1.10:
version "0.1.15"
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
@@ -784,7 +637,7 @@ safe-regex@^1.1.0:
dependencies:
ret "~0.1.10"
semver@^5.0.1, semver@^5.3.0:
semver@^5.0.1:
version "5.7.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b"
integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==
@@ -857,11 +710,6 @@ split-string@^3.0.1, split-string@^3.0.2:
dependencies:
extend-shallow "^3.0.0"
sprintf-js@~1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
static-extend@^0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
@@ -925,37 +773,6 @@ ts-loader@^5.3.3:
micromatch "^3.1.4"
semver "^5.0.1"
tslib@^1.8.0, tslib@^1.8.1:
version "1.10.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
tslint@^5.12.1:
version "5.18.0"
resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.18.0.tgz#f61a6ddcf372344ac5e41708095bbf043a147ac6"
integrity sha512-Q3kXkuDEijQ37nXZZLKErssQVnwCV/+23gFEMROi8IlbaBG6tXqLPQJ5Wjcyt/yHPKBC+hD5SzuGaMora+ZS6w==
dependencies:
"@babel/code-frame" "^7.0.0"
builtin-modules "^1.1.1"
chalk "^2.3.0"
commander "^2.12.1"
diff "^3.2.0"
glob "^7.1.1"
js-yaml "^3.13.1"
minimatch "^3.0.4"
mkdirp "^0.5.1"
resolve "^1.3.2"
semver "^5.3.0"
tslib "^1.8.0"
tsutils "^2.29.0"
tsutils@^2.29.0:
version "2.29.0"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99"
integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==
dependencies:
tslib "^1.8.1"
typescript@^3.3.1:
version "3.5.3"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977"
@@ -1023,8 +840,3 @@ vsls@^0.3.1291:
version "0.3.1291"
resolved "https://registry.yarnpkg.com/vsls/-/vsls-0.3.1291.tgz#55928c363b24d39a5d03d8e946ba85d7dcec3e38"
integrity sha512-8yJPN9p7k+XYyczOVtQmpun4K1CRDsw/hdnIzT/c40r5bIkpptfsBlHmmLemoIV+CAHvrTLdWKEf5OtRvdcn9A==
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=

View File

@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import * as azdata from 'azdata';
import * as mssql from '../../../mssql';
import * as mssql from 'mssql';
import { ApiWrapper } from '../common/apiWrapper';
/**

View File

@@ -8,7 +8,7 @@ import 'mocha';
import * as TypeMoq from 'typemoq';
import { createContext } from './utils';
import { LanguageController } from '../../../views/externalLanguages/languageController';
import * as mssql from '../../../../../mssql';
import * as mssql from 'mssql';
describe('External Languages Controller', () => {
it('Should open dialog for manage languages successfully ', async function (): Promise<void> {
@@ -21,7 +21,7 @@ describe('External Languages Controller', () => {
it('Should list languages successfully ', async function (): Promise<void> {
let testContext = createContext();
let languages: mssql.ExternalLanguage[] = [{
let languages: mssql.ExternalLanguage[] = [{
name: '',
contents: [{
extensionFileName: '',
@@ -30,7 +30,7 @@ describe('External Languages Controller', () => {
}]
}];
testContext.dialogModel.setup( x=> x.getLanguageList()).returns(() => Promise.resolve(languages));
testContext.dialogModel.setup(x => x.getLanguageList()).returns(() => Promise.resolve(languages));
let controller = new LanguageController(testContext.apiWrapper.object, '', testContext.dialogModel.object);
let dialog = await controller.manageLanguages();
let actual = await dialog.listLanguages();
@@ -48,7 +48,7 @@ describe('External Languages Controller', () => {
}]
};
testContext.dialogModel.setup( x=> x.updateLanguage(language)).returns(() => Promise.resolve());
testContext.dialogModel.setup(x => x.updateLanguage(language)).returns(() => Promise.resolve());
let controller = new LanguageController(testContext.apiWrapper.object, '', testContext.dialogModel.object);
let dialog = await controller.manageLanguages();
await dialog.updateLanguage({
@@ -70,7 +70,7 @@ describe('External Languages Controller', () => {
}]
};
testContext.dialogModel.setup( x=> x.deleteLanguage(language.name)).returns(() => Promise.resolve());
testContext.dialogModel.setup(x => x.deleteLanguage(language.name)).returns(() => Promise.resolve());
let controller = new LanguageController(testContext.apiWrapper.object, '', testContext.dialogModel.object);
let dialog = await controller.manageLanguages();
await dialog.deleteLanguage({

View File

@@ -6,13 +6,13 @@
import * as should from 'should';
import 'mocha';
import { createContext } from './utils';
import * as mssql from '../../../../../mssql';
import * as mssql from 'mssql';
import { LanguageService } from '../../../externalLanguage/languageService';
describe('External Languages Dialog Model', () => {
it('Should list languages successfully ', async function (): Promise<void> {
let testContext = createContext();
let languages: mssql.ExternalLanguage[] = [{
let languages: mssql.ExternalLanguage[] = [{
name: '',
contents: [{
extensionFileName: '',
@@ -20,7 +20,7 @@ describe('External Languages Dialog Model', () => {
pathToExtension: '',
}]
}];
testContext.languageExtensionService.listLanguages = () => {return Promise.resolve(languages);};
testContext.languageExtensionService.listLanguages = () => { return Promise.resolve(languages); };
let model = new LanguageService(testContext.apiWrapper.object, testContext.languageExtensionService);
await model.load();
let actual = await model.getLanguageList();
@@ -29,7 +29,7 @@ describe('External Languages Dialog Model', () => {
it('Should update language successfully ', async function (): Promise<void> {
let testContext = createContext();
let language: mssql.ExternalLanguage = {
let language: mssql.ExternalLanguage = {
name: '',
contents: [{
extensionFileName: '',
@@ -45,7 +45,7 @@ describe('External Languages Dialog Model', () => {
it('Should delete language successfully ', async function (): Promise<void> {
let testContext = createContext();
let language: mssql.ExternalLanguage = {
let language: mssql.ExternalLanguage = {
name: '',
contents: [{
extensionFileName: '',

View File

@@ -8,7 +8,7 @@ import * as vscode from 'vscode';
import * as TypeMoq from 'typemoq';
import { ApiWrapper } from '../../../common/apiWrapper';
import { LanguageViewBase } from '../../../views/externalLanguages/languageViewBase';
import * as mssql from '../../../../../mssql';
import * as mssql from 'mssql';
import { LanguageService } from '../../../externalLanguage/languageService';
import { createViewContext } from '../utils';

View File

@@ -8,4 +8,5 @@
/// <reference path='../../../../src/sql/azdata.proposed.d.ts'/>
/// <reference path='../../../azurecore/src/azurecore.d.ts'/>
/// <reference path='../../../azurecore/src/azureResource/azure-resource.d.ts'/>
/// <reference path='../../../mssql/src/mssql.d.ts'/>
/// <reference types='@types/node'/>

View File

@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import * as azdata from 'azdata';
import * as mssql from '../../../../mssql';
import * as mssql from 'mssql';
import { LanguageViewBase } from './languageViewBase';
import * as constants from '../../common/constants';
import { ApiWrapper } from '../../common/apiWrapper';

View File

@@ -3,7 +3,7 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as mssql from '../../../../mssql';
import * as mssql from 'mssql';
import { ApiWrapper } from '../../common/apiWrapper';
import { LanguageService } from '../../externalLanguage/languageService';
import { LanguagesDialog } from './languagesDialog';

View File

@@ -7,7 +7,7 @@ import * as azdata from 'azdata';
import * as vscode from 'vscode';
import * as constants from '../../common/constants';
import { ApiWrapper } from '../../common/apiWrapper';
import * as mssql from '../../../../mssql';
import * as mssql from 'mssql';
import * as path from 'path';
export interface LanguageUpdateModel {

View File

@@ -5,7 +5,7 @@
import * as azdata from 'azdata';
import * as constants from '../../common/constants';
import * as mssql from '../../../../mssql';
import * as mssql from 'mssql';
import { LanguageViewBase } from './languageViewBase';
import { ApiWrapper } from '../../common/apiWrapper';

View File

@@ -38,10 +38,11 @@ export class DashboardWidget {
}).component();
const header = await this.createHeader(view);
const footerContainer = this.createFooter(view);
const backgroundImageUri = vscode.Uri.file(this.asAbsolutePath('images/background.svg')).with({ scheme: 'vscode-file' });
container.addItem(header, {
CSSStyles: {
'background-image': `
url(${vscode.Uri.file(this.asAbsolutePath('images/background.svg'))}),
url(${backgroundImageUri}),
linear-gradient(0deg, rgba(0,0,0,0.09) 0%, rgba(0,0,0,0) 100%)
`,
'background-repeat': 'no-repeat',
@@ -300,9 +301,11 @@ export class DashboardWidget {
await this._apiWrapper.openExternal(vscode.Uri.parse(linkMetaData.link));
}
});
// Files need to have the vscode-file scheme to be loaded by ADS
const imageUri = vscode.Uri.file(this.asAbsolutePath(linkMetaData.iconPath?.light as string || '')).with({ scheme: 'vscode-file' });
videosContainer.addItem(video1Container, {
CSSStyles: {
'background-image': `url(${vscode.Uri.file(this.asAbsolutePath(linkMetaData.iconPath?.light as string || ''))})`,
'background-image': `url(${imageUri})`,
'background-repeat': 'no-repeat',
'background-position': 'top',
'width': `${maxWidth}px`,

View File

@@ -298,9 +298,9 @@ ajv@^6.5.5:
uri-js "^4.2.2"
ansi-regex@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
version "3.0.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1"
integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==
ansi-styles@^3.2.1:
version "3.2.1"

View File

@@ -1,6 +1,6 @@
{
"downloadUrl": "https://github.com/Microsoft/sqltoolsservice/releases/download/v{#version#}/microsoft.sqltools.servicelayer-{#fileName#}",
"version": "3.0.0-release.204",
"version": "3.0.0-release.238",
"downloadFileNames": {
"Windows_86": "win-x86-net6.0.zip",
"Windows_64": "win-x64-net6.0.zip",

View File

@@ -514,14 +514,14 @@
{
"command": "mssql.designTable",
"when": "connectionProvider == MSSQL && nodeType == Table && config.workbench.enablePreviewFeatures",
"group":"connection@3"
"group": "connection@3"
},
{
"command": "mssql.newTable",
"when": "connectionProvider == MSSQL && nodeType == Folder && nodeLabel == Tables && config.workbench.enablePreviewFeatures",
"group":"connection@1"
"group": "connection@1"
}
],
],
"notebook/toolbar": [
{
"command": "mssql.exportNotebookToSql",
@@ -759,6 +759,9 @@
"connectionProvider": {
"providerId": "MSSQL",
"displayName": "%mssql.provider.displayName%",
"supportedExecutionPlanFileExtensions": [
"sqlplan"
],
"iconPath": [
{
"id": "mssql:cloud",
@@ -1311,7 +1314,7 @@
"find-remove": "1.2.1",
"request": "^2.88.0",
"request-light": "^0.3.0",
"@microsoft/ads-service-downloader": "0.2.3",
"@microsoft/ads-service-downloader": "0.2.4",
"stream-meter": "^1.0.4",
"through2": "^3.0.1",
"tough-cookie": "^3.0.1",

View File

@@ -9,7 +9,7 @@ import * as contracts from '../contracts';
import { AppContext } from '../appContext';
import { ConnectParams, ClientCapabilities } from 'dataprotocol-client/lib/protocol';
import { SqlOpsDataClient, ISqlOpsFeature } from 'dataprotocol-client';
import { ListRegisteredServersResult, ICmsService } from '../mssql';
import { ListRegisteredServersResult, ICmsService } from 'mssql';
import * as Utils from '../utils';
export class CmsService implements ICmsService {

View File

@@ -65,10 +65,6 @@ export enum MssqlClusterItemsSubType {
Spark = ':spark:'
}
export enum TableType {
Basic = 'basic'
}
// SPARK JOB SUBMISSION //////////////////////////////////////////////////////////
export const mssqlClusterNewNotebookTask = 'mssqlCluster.task.newNotebook';
export const mssqlClusterOpenNotebookTask = 'mssqlCluster.task.openNotebook';

View File

@@ -7,7 +7,7 @@ import { NotificationType, RequestType } from 'vscode-languageclient';
import { ITelemetryEventProperties, ITelemetryEventMeasures } from './telemetry';
import * as azdata from 'azdata';
import { ConnectParams } from 'dataprotocol-client/lib/protocol';
import * as mssql from './mssql';
import * as mssql from 'mssql';
// ------------------------------- < Telemetry Sent Event > ------------------------------------
@@ -679,10 +679,6 @@ export namespace SchemaCompareGenerateScriptRequest {
export const type = new RequestType<SchemaCompareGenerateScriptParams, azdata.ResultStatus, void, void>('schemaCompare/generateScript');
}
export namespace SchemaComparePublishChangesRequest {
export const type = new RequestType<SchemaComparePublishDatabaseChangesParams, azdata.ResultStatus, void, void>('schemaCompare/publish');
}
export namespace SchemaComparePublishDatabaseChangesRequest {
export const type = new RequestType<SchemaComparePublishDatabaseChangesParams, azdata.ResultStatus, void, void>('schemaCompare/publishDatabase');
}
@@ -1096,7 +1092,7 @@ export namespace InitializeTableDesignerRequest {
}
export namespace ProcessTableDesignerEditRequest {
export const type = new RequestType<TableDesignerEditRequestParams, azdata.designers.DesignerEditResult, void, void>('tabledesigner/processedit');
export const type = new RequestType<TableDesignerEditRequestParams, azdata.designers.DesignerEditResult<azdata.designers.TableDesignerView>, void, void>('tabledesigner/processedit');
}
export namespace PublishTableDesignerChangesRequest {
@@ -1108,9 +1104,31 @@ export namespace TableDesignerGenerateScriptRequest {
}
export namespace TableDesignerGenerateChangePreviewReportRequest {
export const type = new RequestType<azdata.designers.TableInfo, string, void, void>('tabledesigner/generatepreviewreport');
export const type = new RequestType<azdata.designers.TableInfo, azdata.designers.GeneratePreviewReportResult, void, void>('tabledesigner/generatepreviewreport');
}
export namespace DisposeTableDesignerRequest {
export const type = new RequestType<azdata.designers.TableInfo, void, void, void>('tabledesigner/dispose');
}
// ------------------------------- < Table Designer > ------------------------------------
// ------------------------------- < Execution Plan > ------------------------------------
export interface GetExecutionPlanParams {
graphInfo: azdata.executionPlan.ExecutionPlanGraphInfo,
}
export namespace GetExecutionPlanRequest {
export const type = new RequestType<GetExecutionPlanParams, azdata.executionPlan.GetExecutionPlanResult, void, void>('queryExecutionPlan/getExecutionPlan');
}
export interface ExecutionPlanComparisonParams {
firstExecutionPlanGraphInfo: azdata.executionPlan.ExecutionPlanGraphInfo;
secondExecutionPlanGraphInfo: azdata.executionPlan.ExecutionPlanGraphInfo;
}
export namespace ExecutionPlanComparisonRequest {
export const type = new RequestType<ExecutionPlanComparisonParams, azdata.executionPlan.ExecutionPlanComparisonResult, void, void>('queryExecutionPlan/compareExecutionPlanGraph');
}
// ------------------------------- < Execution Plan > ------------------------------------

View File

@@ -43,16 +43,20 @@ export class SqlCredentialService extends SqlOpsFeature<any> {
protected override registerProvider(options: any): Disposable {
let readCredential = async (credentialId: string): Promise<azdata.Credential> => {
if (Utils.isLinux) {
const password = await this._secretStorage.get(credentialId);
return {
credentialId: credentialId,
password: password
};
}
return this._client.sendRequest(Contracts.ReadCredentialRequest.type, { credentialId, password: undefined });
};
let saveCredential = async (credentialId: string, password: string): Promise<boolean> => {
if (Utils.isLinux) {
/**
* This is only done for linux because this is going to be
* the default credential system for linux in the next release
*/
await this._secretStorage.store(credentialId, password);
return true;
}
return this._client.sendRequest(Contracts.SaveCredentialRequest.type, { credentialId, password });
};
@@ -61,6 +65,7 @@ export class SqlCredentialService extends SqlOpsFeature<any> {
if (Utils.isLinux) {
try {
await this._secretStorage.delete(credentialId);
return true;
} catch (e) {
console.log('credential does not exist in native secret store');
}

View File

@@ -3,7 +3,7 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as mssql from '../mssql';
import * as mssql from 'mssql';
import { AppContext } from '../appContext';
import { ISqlOpsFeature, SqlOpsDataClient } from 'dataprotocol-client';
import { ClientCapabilities } from 'vscode-languageclient';

Some files were not shown because too many files have changed in this diff Show More