Skip to content

Commit 3e2e19e

Browse files
committed
Doc for first 3.0 preview release
1 parent 983d66d commit 3e2e19e

10 files changed

+79
-2
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## 3.0.0 (27-Nov-2021 pre-release)
2+
* Implement `intersystems-server-credentials` authentication provider.
3+
14
## 2.0.6 (28-Sep-2021)
25
* Apply `pathPrefix` correctly (#95, #99).
36
* Update vulnerable dependencies.

README.md

Lines changed: 76 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,78 @@ InterSystems Server Manager is a Visual Studio Code extension for defining conne
55

66
See the [CHANGELOG](https://marketplace.visualstudio.com/items/intersystems-community.servermanager/changelog) for changes in each release.
77

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).
911

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).
1113
1214
> Thanks to [George James Software](https://georgejames.com) for backing this development effort.
1315
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+
![Allow an extension](images/README/authenticationProvider-allow.png)
35+
36+
If you allow this and your server definition in `intersystems.servers` does not specify a `username` the next step is:
37+
38+
![Enter username](images/README/authenticationProvider-username.png)
39+
40+
If you proceed, or if this step was skipped because your server definition includes a username, the next step is:
41+
42+
![Enter password](images/README/authenticationProvider-password.png)
43+
44+
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+
![Allow another extension](images/README/authenticationProvider-allow.png)
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:
59+
60+
![Manage account](images/README/authenticationProvider-signedIn.png)
61+
62+
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:
63+
64+
![Manage trusted extension list](images/README/authenticationProvider-manageTrusted.png)
65+
66+
The 'Sign Out' option lets you sign out this account after confirmation:
67+
68+
![Sign out](images/README/authenticationProvider-signOut.png)
69+
70+
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:
71+
72+
![Delete password](images/README/authenticationProvider-deletePassword.png)
73+
74+
---
75+
76+
# New in 2.0 - April 2021
77+
78+
The following features were originally introduced in Server Manager version 2.0.
79+
1480
## The Server Tree
1581

1682
Server Manager displays connection definitions as a tree on an InterSystems Tools view:
@@ -131,6 +197,14 @@ Use the server's context menu. Alternatively, run `InterSystems Server Manager:
131197

132198
## Technical Notes
133199

200+
### Legacy Mode
201+
202+
Server Manager 3.0 makes changes which may degrade the user experience relative to version 2.0. To revert, make this user-level setting:
203+
```json
204+
"intersystemsServerManager.authentication.provider": "none"
205+
```
206+
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+
134208
### Colors, Favorites and Recents
135209

136210
These features use VS Code's extension-private global state storage. Data is not present in your `settings.json` file.
34 KB
Loading
5.58 KB
Loading
8.42 KB
Loading
7.88 KB
Loading
24.2 KB
Loading
7.45 KB
Loading
9.49 KB
Loading
25.2 KB
Loading

0 commit comments

Comments
 (0)