Skip to content

Commit 983d66d

Browse files
committed
Changes and fixes for first preview release
1 parent c8cb9fa commit 983d66d

File tree

5 files changed

+227
-202
lines changed

5 files changed

+227
-202
lines changed

package.json

Lines changed: 143 additions & 135 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
{
22
"name": "servermanager",
33
"displayName": "InterSystems Server Manager",
4-
"version": "3.0.0-SNAPSHOT-authentication-provider-20211126",
4+
"version": "3.0.0-SNAPSHOT-authentication-provider-20211127",
5+
"preview": true,
56
"publisher": "intersystems-community",
67
"description": "Define connections to InterSystems servers. Browse and manage those servers.",
78
"repository": {
89
"type": "git",
9-
"url": "https://github.com/intersystems-community/intersystems-servermanager"
10+
"url": "https://github.com/gjsjohnmurray/intersystems-servermanager"
1011
},
1112
"license": "MIT",
1213
"keywords": [
@@ -110,151 +111,158 @@
110111
"contents": "Use the 'InterSystems Tools: Servers' view to work with your servers.\n[Manage Servers $(tools)](command:workbench.view.extension.intersystems-community_servermanager)"
111112
}
112113
],
113-
"configuration": {
114-
"title": "InterSystems Server Manager",
115-
"properties": {
116-
"intersystems.servers": {
117-
"type": "object",
118-
"description": "InterSystems servers that other extensions connect to. Each property of this object names a server and holds nested properties specifying how to connect to it.",
119-
"markdownDescription": "[InterSystems](https://www.intersystems.com) servers that other extensions connect to. Each property of this object names a server and holds nested properties specifying how to connect to it. Server names may only contain characters 'A' to 'Z', 'a' to 'z', digits, '-', '.', '_' and '~' characters.",
120-
"scope": "resource",
121-
"default": {
122-
"default~iris": {
123-
"webServer": {
124-
"scheme": "http",
125-
"host": "127.0.0.1",
126-
"port": 52773
114+
"configuration": [
115+
{
116+
"title": "Servers",
117+
"properties": {
118+
"intersystems.servers": {
119+
"type": "object",
120+
"description": "InterSystems servers that other extensions connect to. Each property of this object names a server and holds nested properties specifying how to connect to it.",
121+
"markdownDescription": "[InterSystems](https://www.intersystems.com) servers that other extensions connect to. Each property of this object names a server and holds nested properties specifying how to connect to it. Server names may only contain characters 'A' to 'Z', 'a' to 'z', digits, '-', '.', '_' and '~' characters.",
122+
"scope": "resource",
123+
"default": {
124+
"default~iris": {
125+
"webServer": {
126+
"scheme": "http",
127+
"host": "127.0.0.1",
128+
"port": 52773
129+
},
130+
"description": "Connection to local InterSystems IRIS™ installed with default settings."
127131
},
128-
"description": "Connection to local InterSystems IRIS™ installed with default settings."
129-
},
130-
"default~cache": {
131-
"webServer": {
132-
"scheme": "http",
133-
"host": "127.0.0.1",
134-
"port": 57772
132+
"default~cache": {
133+
"webServer": {
134+
"scheme": "http",
135+
"host": "127.0.0.1",
136+
"port": 57772
137+
},
138+
"description": "Connection to local InterSystems Caché installed with default settings."
135139
},
136-
"description": "Connection to local InterSystems Caché installed with default settings."
137-
},
138-
"default~ensemble": {
139-
"webServer": {
140-
"scheme": "http",
141-
"host": "127.0.0.1",
142-
"port": 57772
140+
"default~ensemble": {
141+
"webServer": {
142+
"scheme": "http",
143+
"host": "127.0.0.1",
144+
"port": 57772
145+
},
146+
"description": "Connection to local InterSystems Ensemble installed with default settings."
143147
},
144-
"description": "Connection to local InterSystems Ensemble installed with default settings."
148+
"/default": "default~iris"
145149
},
146-
"/default": "default~iris"
147-
},
148-
"patternProperties": {
149-
"^[a-z0-9-_~]+$": {
150-
"type": "object",
151-
"description": "A server definition, with properties that specify how to connect to it.",
152-
"properties": {
153-
"webServer": {
154-
"type": "object",
155-
"description": "Web server publishing an InterSystems server's web services.",
156-
"properties": {
157-
"scheme": {
158-
"type": "string",
159-
"description": "Protocol used for connections.",
160-
"enum": [
161-
"http",
162-
"https"
163-
],
164-
"default": "http"
165-
},
166-
"host": {
167-
"type": "string",
168-
"description": "Hostname or IP address of the web server. Often the same as the InterSystems server host.",
169-
"anyOf": [
170-
{
171-
"format": "hostname"
172-
},
173-
{
174-
"format": "ipv4"
175-
},
176-
{
177-
"format": "ipv6"
178-
}
179-
],
180-
"default": "127.0.0.1"
181-
},
182-
"port": {
183-
"type": "integer",
184-
"description": "TCP port number the web server listens on.",
185-
"minimum": 1,
186-
"maximum": 65535,
187-
"default": 52773
150+
"patternProperties": {
151+
"^[a-z0-9-_~]+$": {
152+
"type": "object",
153+
"description": "A server definition, with properties that specify how to connect to it.",
154+
"properties": {
155+
"webServer": {
156+
"type": "object",
157+
"description": "Web server publishing an InterSystems server's web services.",
158+
"properties": {
159+
"scheme": {
160+
"type": "string",
161+
"description": "Protocol used for connections.",
162+
"enum": [
163+
"http",
164+
"https"
165+
],
166+
"default": "http"
167+
},
168+
"host": {
169+
"type": "string",
170+
"description": "Hostname or IP address of the web server. Often the same as the InterSystems server host.",
171+
"anyOf": [
172+
{
173+
"format": "hostname"
174+
},
175+
{
176+
"format": "ipv4"
177+
},
178+
{
179+
"format": "ipv6"
180+
}
181+
],
182+
"default": "127.0.0.1"
183+
},
184+
"port": {
185+
"type": "integer",
186+
"description": "TCP port number the web server listens on.",
187+
"minimum": 1,
188+
"maximum": 65535,
189+
"default": 52773
190+
},
191+
"pathPrefix": {
192+
"type": "string",
193+
"description": "Optional prefix for the path to the resource, for example '/dev' or '/vm/test'. Only needed when one web server publishes services on behalf of multiple InterSystems servers.",
194+
"pattern": "^(/[^/]+)*$"
195+
}
188196
},
189-
"pathPrefix": {
190-
"type": "string",
191-
"description": "Optional prefix for the path to the resource, for example '/dev' or '/vm/test'. Only needed when one web server publishes services on behalf of multiple InterSystems servers.",
192-
"pattern": "^(/[^/]+)*$"
193-
}
197+
"required": [
198+
"host",
199+
"port"
200+
],
201+
"additionalProperties": false
194202
},
195-
"required": [
196-
"host",
197-
"port"
198-
],
199-
"additionalProperties": false
200-
},
201-
"username": {
202-
"type": "string",
203-
"description": "Username to connect as. If not set here it must be provided when connecting."
204-
},
205-
"password": {
206-
"type": "string",
207-
"description": "Password of username.",
208-
"deprecationMessage": "Storing password in plaintext is not recommended. Instead, use the Command Palette command to store it in your keychain."
203+
"username": {
204+
"type": "string",
205+
"description": "Username to connect as. If not set here it must be provided when connecting."
206+
},
207+
"password": {
208+
"type": "string",
209+
"description": "Password of username.",
210+
"deprecationMessage": "Storing password in plaintext is not recommended. Instead, use the Command Palette command to store it in your keychain."
211+
},
212+
"description": {
213+
"type": "string",
214+
"description": "Optional description of the server."
215+
}
209216
},
210-
"description": {
211-
"type": "string",
212-
"description": "Optional description of the server."
213-
}
217+
"required": [
218+
"webServer"
219+
],
220+
"additionalProperties": false
221+
}
222+
},
223+
"properties": {
224+
"/default": {
225+
"type": "string",
226+
"description": "Name of the server to promote to the top of pick lists."
214227
},
215-
"required": [
216-
"webServer"
217-
],
218-
"additionalProperties": false
219-
}
220-
},
221-
"properties": {
222-
"/default": {
223-
"type": "string",
224-
"description": "Name of the server to promote to the top of pick lists."
228+
"/hideEmbeddedEntries": {
229+
"type": "boolean",
230+
"description": "Do not append the built-in 'default~*' server definitions to pick lists."
231+
}
225232
},
226-
"/hideEmbeddedEntries": {
227-
"type": "boolean",
228-
"description": "Do not append the built-in 'default~*' server definitions to pick lists."
229-
}
233+
"additionalProperties": false
234+
}
235+
}
236+
},
237+
{
238+
"title": "Authentication",
239+
"properties": {
240+
"intersystemsServerManager.authentication.provider": {
241+
"type": "string",
242+
"description": "Authentication provider that Server Manager will use for accessing InterSystems servers. This setting also affects the API that Server Manager publishes for use by other extensions.",
243+
"enum": ["intersystems-server-credentials", "none"],
244+
"enumDescriptions": [
245+
"Use Server Manager's embedded 'InterSystems Server Credentials' authentication provider. Server Manager's own API will no longer return credentials that have been stored securely in the workstation's keychain.",
246+
"Do not use VS Code's authentication model. Secure credential storage will be handled natively by Server Manager using the workstation's keychain, but Server Manager is unable to restrict which extensions can access those credentials via its API. Only use this if other extensions using the API have not yet been updated to use the authentication provider."
247+
],
248+
"default": "intersystems-server-credentials",
249+
"scope": "application"
230250
},
231-
"additionalProperties": false
232-
},
233-
"intersystemsServerManager.authentication.provider": {
234-
"type": "string",
235-
"description": "Authentication provider that Server Manager will use for accessing InterSystems servers and for fulfilling the API it published to other extensions.",
236-
"enum": ["none", "intersystems-server-credentials"],
237-
"enumDescriptions": [
238-
"Do not use VS Code's authentication model. Credential storage is handled natively by Server Manager, but it is unable to identify which extensions are accessing those credentials via Server Manager's API.",
239-
"Use Server Manager's embedded authentication provider."
240-
],
241-
"default": "none",
242-
"scope": "application"
243-
},
244-
"intersystemsServerManager.authentication.forgetPasswordOnSignout": {
245-
"type": "string",
246-
"description": "Whether to delete an account's stored password after signing out.",
247-
"enum": ["ask", "always", "never"],
248-
"enumDescriptions": [
249-
"Ask each time, after signout has completed.",
250-
"Always delete stored password after signing out.",
251-
"Retain stored password after signing out."
252-
],
253-
"default": "ask",
254-
"scope": "application"
251+
"intersystemsServerManager.credentialsProvider.deletePasswordOnSignout": {
252+
"type": "string",
253+
"description": "Whether to delete an account's stored password after signing out.",
254+
"enum": ["ask", "always", "never"],
255+
"enumDescriptions": [
256+
"Ask each time, after signout has completed.",
257+
"Always delete stored password after signing out.",
258+
"Retain stored password after signing out."
259+
],
260+
"default": "ask",
261+
"scope": "application"
262+
}
255263
}
256264
}
257-
},
265+
],
258266
"commands": [
259267
{
260268
"command": "intersystems-community.servermanager.refreshTree",

src/api/getServerSpec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ export async function getServerSpec(
5454
} else {
5555

5656
// Obtain a username (including blank to try connecting anonymously)
57-
if (!server.username) {
57+
if (!server.username && !useOurAuthProvider) {
5858
await vscode.window
5959
.showInputBox({
6060
ignoreFocusOut: true,

0 commit comments

Comments
 (0)