-
Notifications
You must be signed in to change notification settings - Fork 85
/
Core.constants.ts
408 lines (371 loc) · 16.3 KB
/
Core.constants.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
/*
* This program and the accompanying materials are made available under the terms of the
* Eclipse Public License v2.0 which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-v20.html
*
* SPDX-License-Identifier: EPL-2.0
*
* Copyright Contributors to the Zowe Project.
*
*/
import { ICommandExampleDefinition, ICommandOptionDefinition, ICommandProfileTypeConfiguration, SessConstants } from "@zowe/imperative";
/**
* Class containing the various profile related constants
*/
export class ProfileConstants {
public static readonly BASE_CONNECTION_OPTION_GROUP = "Base Connection Options";
/**
* Option used in profile creation and commands for hostname
*/
public static readonly BASE_OPTION_HOST: ICommandOptionDefinition = {
name: "host",
aliases: ["H"],
description: "Host name of service on the mainframe.",
type: "string",
group: ProfileConstants.BASE_CONNECTION_OPTION_GROUP
};
/**
* Option used in profile creation and commands for port
*/
public static readonly BASE_OPTION_PORT: ICommandOptionDefinition = {
name: "port",
aliases: ["P"],
description: "Port number of service on the mainframe.",
type: "number",
group: ProfileConstants.BASE_CONNECTION_OPTION_GROUP
};
/**
* Option used in profile creation and commands for username / ID
*/
public static readonly BASE_OPTION_USER: ICommandOptionDefinition = {
name: "user",
aliases: ["u"],
description: "User name to authenticate to service on the mainframe.",
type: "string",
group: ProfileConstants.BASE_CONNECTION_OPTION_GROUP
};
/**
* Option used in profile creation and commands for password/passphrase
*/
public static readonly BASE_OPTION_PASSWORD: ICommandOptionDefinition = {
name: "password",
aliases: ["pass", "pw"],
description: "Password to authenticate to service on the mainframe.",
type: "string",
group: ProfileConstants.BASE_CONNECTION_OPTION_GROUP
};
/**
* Option used in profile creation and commands for rejectUnauthorized setting for connecting to z/OSMF
*/
public static readonly BASE_OPTION_REJECT_UNAUTHORIZED: ICommandOptionDefinition = {
name: "reject-unauthorized",
aliases: ["ru"],
description: "Reject self-signed certificates.",
type: "boolean",
defaultValue: true,
group: ProfileConstants.BASE_CONNECTION_OPTION_GROUP
};
/**
* Option used in profile creation and commands for tokenType
*/
public static readonly BASE_OPTION_TOKEN_TYPE: ICommandOptionDefinition = {
name: "token-type",
aliases: ["tt"],
description: "The type of token to get and use for the API. Omit this option to use the default token type, which is provided by " +
"'zowe auth login'.",
type: "string",
group: ProfileConstants.BASE_CONNECTION_OPTION_GROUP
};
/**
* Option used in profile creation and commands for tokenValue to be used to interact with APIs
*/
public static readonly BASE_OPTION_TOKEN_VALUE: ICommandOptionDefinition = {
name: "token-value",
aliases: ["tv"],
description: "The value of the token to pass to the API.",
type: "string",
group: ProfileConstants.BASE_CONNECTION_OPTION_GROUP
};
/**
* Option used to specify the path to the certificate file for authentication
*/
public static readonly BASE_OPTION_CERT_FILE: ICommandOptionDefinition = {
name: "cert-file",
description: "The file path to a certificate file to use for authentication",
type: "existingLocalFile",
group: ProfileConstants.BASE_CONNECTION_OPTION_GROUP
};
/**
* Option used to specify the path to the certificate file for authentication
*/
public static readonly BASE_OPTION_CERT_KEY_FILE: ICommandOptionDefinition = {
name: "cert-key-file",
description: "The file path to a certificate key file to use for authentication",
type: "existingLocalFile",
group: ProfileConstants.BASE_CONNECTION_OPTION_GROUP
};
/**
* Option used to specify the path to the certificate file for authentication
*/
// public static readonly BASE_OPTION_CERT_FILE_PASSPHRASE: ICommandOptionDefinition = {
// name: "cert-file-passphrase",
// description: "The passphrase to decrypt a certificate file to use for authentication",
// type: "string",
// group: ProfileConstants.BASE_CONNECTION_OPTION_GROUP
// };
public static readonly AUTO_INIT_OPTION_GROUP = "APIML Connection Options";
/**
* Option used in profile creation and commands for hostname
*/
public static readonly AUTO_INIT_OPTION_HOST: ICommandOptionDefinition = {
...ProfileConstants.BASE_OPTION_HOST,
description: "Host name of the mainframe running the API Mediation Layer.",
group: ProfileConstants.AUTO_INIT_OPTION_GROUP
};
/**
* Option used in profile creation and commands for port
*/
public static readonly AUTO_INIT_OPTION_PORT: ICommandOptionDefinition = {
...ProfileConstants.BASE_OPTION_PORT,
description: "Port number of API Mediation Layer on the mainframe.",
group: ProfileConstants.AUTO_INIT_OPTION_GROUP
};
/**
* Option used in profile creation and commands for username / ID
*/
public static readonly AUTO_INIT_OPTION_USER: ICommandOptionDefinition = {
...ProfileConstants.BASE_OPTION_USER,
description: "User name to authenticate to the API Mediation Layer on the mainframe.",
group: ProfileConstants.AUTO_INIT_OPTION_GROUP
};
/**
* Option used in profile creation and commands for password/passphrase
*/
public static readonly AUTO_INIT_OPTION_PASSWORD: ICommandOptionDefinition = {
...ProfileConstants.BASE_OPTION_PASSWORD,
description: "Password to authenticate to the API Mediation Layer on the mainframe.",
group: ProfileConstants.AUTO_INIT_OPTION_GROUP
};
/**
* Option used in profile creation and commands for rejectUnauthorized setting for connecting to z/OSMF
*/
public static readonly AUTO_INIT_OPTION_REJECT_UNAUTHORIZED: ICommandOptionDefinition = {
...ProfileConstants.BASE_OPTION_REJECT_UNAUTHORIZED,
group: ProfileConstants.AUTO_INIT_OPTION_GROUP
};
/**
* Option used in profile creation and commands for tokenType
*/
public static readonly AUTO_INIT_OPTION_TOKEN_TYPE: ICommandOptionDefinition = {
...ProfileConstants.BASE_OPTION_TOKEN_TYPE,
description: "The type of token to get and use for the API Mediation Layer. " +
"Omit this option to use the default token type, which is provided by 'zowe auth login'.",
group: ProfileConstants.AUTO_INIT_OPTION_GROUP
};
/**
* Option used in profile creation and commands for tokenValue to be used to interact with APIs
*/
public static readonly AUTO_INIT_OPTION_TOKEN_VALUE: ICommandOptionDefinition = {
...ProfileConstants.BASE_OPTION_TOKEN_VALUE,
description: "The value of the token to pass to the API Mediation Layer.",
group: ProfileConstants.AUTO_INIT_OPTION_GROUP
};
/**
* Option used in profile creation and commands for certificate file to be used to interact with login APIs
*/
public static AUTO_INIT_OPTION_CERT_FILE: ICommandOptionDefinition = {
...ProfileConstants.BASE_OPTION_CERT_FILE,
description: "The file path to a certificate file to use to authenticate to the API Mediation Layer",
group: ProfileConstants.AUTO_INIT_OPTION_GROUP
};
/**
* Option used in profile creation and commands for certificate key file to be used to interact with login APIs
*/
public static AUTO_INIT_OPTION_CERT_KEY_FILE: ICommandOptionDefinition = {
...ProfileConstants.BASE_OPTION_CERT_KEY_FILE,
description: "The file path to a certificate key file to use to authenticate to the API Mediation Layer",
group: ProfileConstants.AUTO_INIT_OPTION_GROUP
};
/**
* Summary of auth command group
* @static
* @memberof AuthConstants
*/
public static readonly AUTH_GROUP_SUMMARY = "Connect to Zowe API ML authentication service";
/**
* Description of auth command group
* @static
* @memberof AuthConstants
*/
public static readonly AUTH_GROUP_DESCRIPTION = "Connect to Zowe API Mediation Layer authentication service and obtain a token, or disconnect " +
"from the authentication service and revoke the token.\n" +
"\n" +
"The token provides authentication to services that support the API ML SSO (Single Sign-On) capability. When you log in, the token is " +
"stored in your default base profile until it expires. Base profiles store connection information shared by multiple services (e.g., " +
"z/OSMF), and are used if you do not supply connection information in a service profile. To take advantage of the API ML SSO capability, " +
"you should omit username and password in service profiles so that the token in the base profile is used.";
/**
* Summary of APIML login command
* @static
* @memberof AuthConstants
*/
public static readonly APIML_LOGIN_SUMMARY = "Log in to API ML authentication service";
/**
* Description of APIML login command
* @static
* @memberof AuthConstants
*/
public static readonly APIML_LOGIN_DESCRIPTION = "Log in to Zowe API Mediation Layer authentication service and obtain or update a token.\n" +
"\n" +
"The token provides authentication to services that support the API ML SSO (Single Sign-On) capability. When you log in, the token is " +
"stored in your default base profile until it expires. Base profiles store connection information shared by multiple services (e.g., " +
"z/OSMF), and are used if you do not supply connection information in a service profile. To take advantage of the API ML SSO capability, " +
"you should omit username and password in service profiles so that the token in the base profile is used.";
/**
* Example definition for APIML login command
* @static
* @memberof AuthConstants
*/
public static readonly APIML_LOGIN_EXAMPLE1: ICommandExampleDefinition = {
description: "Log in to an API ML instance to obtain or update the token stored in your base profile",
options: ""
};
/**
* Example definition for APIML login command with show-token
* @static
* @memberof AuthConstants
*/
public static readonly APIML_LOGIN_EXAMPLE2: ICommandExampleDefinition = {
description: "Log in to an API ML instance to obtain a token without storing it in a profile",
options: "--show-token"
};
/**
* Summary of APIML logout command
* @static
* @memberof AuthConstants
*/
public static readonly APIML_LOGOUT_SUMMARY = "Log out of API ML authentication service";
/**
* Description of APIML logout command
* @static
* @memberof AuthConstants
*/
public static readonly APIML_LOGOUT_DESCRIPTION = "Log out of the Zowe API Mediation Layer authentication service and revoke the token so it " +
"can no longer authenticate. Also remove the token from the default base profile, if it is stored on disk.";
/**
* Example definition for APIML logout command
* @static
* @memberof AuthConstants
*/
public static readonly APIML_LOGOUT_EXAMPLE1: ICommandExampleDefinition = {
description: "Log out of an API ML instance to revoke the token that was in use and remove it from your base profile",
options: ""
};
/**
* Example definition for APIML logout command with token-value
* @static
* @memberof AuthConstants
*/
public static readonly APIML_LOGOUT_EXAMPLE2: ICommandExampleDefinition = {
description: "Log out of an API ML instance to revoke a token that was not stored in a profile",
options: "--token-value <token>"
};
/**
* Option used in APIML logout command for token-type
*/
public static readonly APIML_LOGOUT_OPTION_TOKEN_TYPE: ICommandOptionDefinition = {
...ProfileConstants.BASE_OPTION_TOKEN_TYPE,
allowableValues: { values: SessConstants.ALL_TOKEN_TYPES }
};
/**
* Profile configuration for SSH profiles
* @type {ICommandProfileTypeConfiguration}
* @memberof BaseProfile
*/
public static readonly BaseProfile: ICommandProfileTypeConfiguration = {
type: "base",
schema: {
type: "object",
title: "Base Profile",
description: "Base profile that stores values shared by multiple service profiles",
properties: {
host: {
type: "string",
optionDefinition: ProfileConstants.BASE_OPTION_HOST,
includeInTemplate: true
},
port: {
type: "number",
optionDefinition: ProfileConstants.BASE_OPTION_PORT
},
user: {
type: "string",
secure: true,
optionDefinition: ProfileConstants.BASE_OPTION_USER,
includeInTemplate: true
},
password: {
type: "string",
secure: true,
optionDefinition: ProfileConstants.BASE_OPTION_PASSWORD,
includeInTemplate: true
},
rejectUnauthorized: {
type: "boolean",
optionDefinition: ProfileConstants.BASE_OPTION_REJECT_UNAUTHORIZED,
includeInTemplate: true
},
tokenType: {
type: "string",
optionDefinition: ProfileConstants.BASE_OPTION_TOKEN_TYPE
},
tokenValue: {
type: "string",
secure: true,
optionDefinition: ProfileConstants.BASE_OPTION_TOKEN_VALUE
},
certFile: {
type: "string",
optionDefinition: ProfileConstants.BASE_OPTION_CERT_FILE
},
certKeyFile: {
type: "string",
optionDefinition: ProfileConstants.BASE_OPTION_CERT_KEY_FILE
// },
// certFilePassphrase: {
// type: "string",
// secure: true,
// optionDefinition: BASE_OPTION_CERT_FILE_PASSPHRASE
}
},
required: []
},
createProfileExamples: [
{
options: "base1 --host example.com --port 443 --user admin --password 123456",
description: "Create a profile called 'base1' to connect to host example.com and port 443"
},
{
options: "base2 --host example.com --user admin --password 123456 --reject-unauthorized false",
description: "Create a profile called 'base2' to connect to host example.com (default port - 443) " +
"and allow self-signed certificates"
},
{
options: "base3 --host example.com --port 1443",
description: "Create a profile called 'base3' to connect to host example.com and port 1443, " +
" not specifying a username or password so they are not stored on disk; these will need to be specified on every command"
},
{
options: "base4 --reject-unauthorized false",
description: "Create a zosmf profile called 'base4' to connect to default port 443 and allow self-signed certificates, " +
"not specifying a username, password, or host so they are not stored on disk; these will need to be specified on every command"
}
],
updateProfileExamples: [
{
options: "base1 --user newuser --password newp4ss",
description: "Update a base profile named 'base1' with a new username and password"
}
]
};
}