|
1 | 1 | {
|
2 | 2 | "name": "servermanager",
|
3 | 3 | "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, |
5 | 6 | "publisher": "intersystems-community",
|
6 | 7 | "description": "Define connections to InterSystems servers. Browse and manage those servers.",
|
7 | 8 | "repository": {
|
8 | 9 | "type": "git",
|
9 |
| - "url": "https://github.com/intersystems-community/intersystems-servermanager" |
| 10 | + "url": "https://github.com/gjsjohnmurray/intersystems-servermanager" |
10 | 11 | },
|
11 | 12 | "license": "MIT",
|
12 | 13 | "keywords": [
|
|
110 | 111 | "contents": "Use the 'InterSystems Tools: Servers' view to work with your servers.\n[Manage Servers $(tools)](command:workbench.view.extension.intersystems-community_servermanager)"
|
111 | 112 | }
|
112 | 113 | ],
|
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." |
127 | 131 | },
|
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." |
135 | 139 | },
|
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." |
143 | 147 | },
|
144 |
| - "description": "Connection to local InterSystems Ensemble installed with default settings." |
| 148 | + "/default": "default~iris" |
145 | 149 | },
|
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 | + } |
188 | 196 | },
|
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 |
194 | 202 | },
|
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 | + } |
209 | 216 | },
|
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." |
214 | 227 | },
|
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 | + } |
225 | 232 | },
|
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" |
230 | 250 | },
|
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 | + } |
255 | 263 | }
|
256 | 264 | }
|
257 |
| - }, |
| 265 | + ], |
258 | 266 | "commands": [
|
259 | 267 | {
|
260 | 268 | "command": "intersystems-community.servermanager.refreshTree",
|
|
0 commit comments