You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+76-2Lines changed: 76 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,12 +5,78 @@ InterSystems Server Manager is a Visual Studio Code extension for defining conne
5
5
6
6
See the [CHANGELOG](https://marketplace.visualstudio.com/items/intersystems-community.servermanager/changelog) for changes in each release.
7
7
8
-
# New in 2.0 - April 2021
8
+
# New in 3.0 - November 2021
9
+
10
+
We are pleased to publish version 3.0 of this extension which improves the security of stored passwords by integrating with VS Code's [Authentication Provider API](https://code.visualstudio.com/api/references/vscode-api#AuthenticationProvider). This significant new release has been entered into the [November 2021 InterSystems Security Contest](https://openexchange.intersystems.com/contest/19).
9
11
10
-
> We are pleased to publish version 2.0 of this extension, adding a tree-style user interface. This significant new release won the [April 2021 InterSystems Programming Contest for Developer Tools](https://openexchange.intersystems.com/contest/13).
12
+
> 2021-11-27: This is currently a preview release, available only as a VSIX file. It requires VS Code 1.63, which until mid-December (estimated) is only available by installing and running the [Insiders](https://code.visualstudio.com/insiders) build. Note that Insiders can be installed alongside the Stable build (currently 1.62.3).
11
13
12
14
> Thanks to [George James Software](https://georgejames.com) for backing this development effort.
13
15
16
+
## The Authentication Provider
17
+
18
+
Since version 2.0 Server Manager has enabled you to store connection passwords in the native keystore of your workstation's operating system. This was a more secure alternative to you putting them as plaintext in your JSON files. However, the `getServerSpec` function in Server Manager 2.0's API allowed **any** installed extension to obtain these stored passwords without requiring your permission.
19
+
20
+
VS Code's Authentication Provider API, introduced in version 1.54 ([February 2021](https://code.visualstudio.com/updates/v1_54#_authentication-provider-api)) is now (version 1.63) mature enough for us to use.
21
+
22
+
Server Manager 3.0 does the following:
23
+
24
+
1. Implements an authentication provider called 'intersystems-server-credentials'.
25
+
2. Uses this authentication provider when accessing servers from its own [Server Tree](#the-server-tree).
26
+
3. No longer returns passwords to callers of `getServerSpec`.
27
+
28
+
> Items #2 and #3 have implications regarding backward compatibility. An interim [legacy mode](#legacy-mode) is available to help with the transition.
29
+
30
+
### Signing In
31
+
32
+
The first time you expand a server in the tree VS Code displays a modal dialog asking for your permission:
33
+
34
+

35
+
36
+
If you allow this and your server definition in `intersystems.servers` does not specify a `username` the next step is:
If you click the 'key' button after typing your password it will be saved securely in your workstation keychain, from where the 'InterSystems Server Credentials' authentication provider will be able to retrieve it after you restart VS Code.
45
+
46
+
If instead you press 'Enter' the password will be available only until you restart VS Code.
47
+
48
+
Either way, you are now signed in on the specified account.
49
+
50
+
### Trusting Other Extensions
51
+
52
+
When another extension first asks to use an InterSystems Server Credentials account you must either allow this or deny it. For example, with a pre-release build of the InterSystems ObjectScript extension which uses the new authentication provider you get this after you click the edit pencil button alongside a namespace in the [Server Manager tree](#the-server-tree):
53
+
54
+

55
+
56
+
### Managing Signed In Accounts
57
+
58
+
You can use the menu of VS Code's Accounts icon in the activity bar to manage your signed in accounts:
The 'Manage Trusted Extensions' option lets you remove an extension from the list of those you previously granted access to this InterSystems Server Credentials account:
When signing out an account for which you previously saved the password will get an option to delete the password, unless you have altered the `intersystemsServerManager.credentialsProvider.deletePasswordOnSignout` setting:
Please only use this as a short term measure until extensions that use the Server Manager `getServerSpec` API get updated to use the 'intersystems-server-credentials' authentication provider. The setting may be removed in a future release.
207
+
134
208
### Colors, Favorites and Recents
135
209
136
210
These features use VS Code's extension-private global state storage. Data is not present in your `settings.json` file.
0 commit comments