Type aliases
CLIENT_PROPERTY
CLIENT_PROPERTY: "requestSuccess" | "requestFailure" | "data" | "dataString" | "response" | "session" | "log"
COMMAND_RESPONSE_FORMAT
COMMAND_RESPONSE_FORMAT: "json" | "default"
CommandOptionType
CommandOptionType: "array" | "boolean" | "count" | "existingLocalFile" | "json" | "number" | "string" | "stringOrEmpty"
CommandSegment
CommandSegment: "group" | "command"
ContentEncoding
ContentEncoding: typeof CONTENT_ENCODING_TYPES[number]
HTTP_VERB
HTTP_VERB: "GET" | "PUT" | "POST" | "DELETE"
IAddProfTypeResult
IAddProfTypeResult: { info: string; success: boolean }
Type declaration
-
info: string
-
success: boolean
ICommandHandlerConstructor
ICommandHandlerConstructor: {}
ICommandNodeType
ICommandNodeType: "group" | "command"
IConfigSecure
IConfigSecure: {}
IConfigSecureProperties
IConfigSecureProperties: {}
IConstructor
IConstructor<T>: {}
Type parameters
ICredentialManagerConstructor
ICredentialManagerConstructor: {}
IExtendersJsonOpts
IExtendersJsonOpts: { profileTypes: Record<string, { from: string[]; latestFrom?: string; version?: string }> }
Type declaration
-
profileTypes: Record<string, { from: string[]; latestFrom?: string; version?: string }>
IImperativeOverrides
IImperativeOverrides: ConstructorOrString<ImperativeOverrides>
IOperationCompleted
IOperationCompleted<T>: (output: T) => void
Type parameters
IOperationResultReady
IOperation
ResultReady<T>: (output: T, operationResults: IOperationResult<any>) => void
Type parameters
IOperationUndoCompleted
IOperationUndoCompleted: () => void
IProfArgValue
IProfArgValue: string | number | boolean | string[] | object
IProfDataType
IProfDataType: "string" | "number" | "boolean" | "array" | "object"
IProfileValidationTaskFunction
ImperativeYargsCommandAction
ImperativeYargsCommandAction: "syntax validation" | "command handler invoked" | "help invoked"
OUTPUT_FORMAT
OUTPUT_FORMAT: "list" | "table" | "string" | "object"
RestClientResolve
RestClientResolve: (data: string) => void
RestErrorSource
RestErrorSource: "client" | "http"
SecureCredential
SecureCredential: string
SecureOperationFunction
Secure
OperationFunction: (propNamePath: string, propValue?: any, optional?: boolean) => Promise<any>
Type declaration
-
- (propNamePath: string, propValue?: any, optional?: boolean): Promise<any>
-
Parameters
-
propNamePath: string
-
Optional propValue: any
-
Optional optional: boolean
- The processed value after the secure operation function runs
VALIDATION_OUTCOME
VALIDATION_OUTCOME: "Failed" | "OK" | "Warning"
YargsCommandCompleted
Yargs
CommandCompleted: (args: Arguments, response: IYargsResponse) => void
Variables
Const ALL_TOKEN_TYPES
ALL_TOKEN_TYPES: string[] = [TOKEN_TYPE_APIML,TOKEN_TYPE_JWT,TOKEN_TYPE_LTPA]
Const AUTH_TYPE_BASIC
AUTH_TYPE_BASIC: "basic" = "basic"
Const AUTH_TYPE_BEARER
AUTH_TYPE_BEARER: "bearer" = "bearer"
Const AUTH_TYPE_CERT_PEM
AUTH_TYPE_CERT_PEM: "cert-pem" = "cert-pem"
Const AUTH_TYPE_NONE
AUTH_TYPE_NONE: "none" = "none"
Const AUTH_TYPE_TOKEN
AUTH_TYPE_TOKEN: "token" = "token"
Const ClipboardJS
ClipboardJS: any
Const HTTPS_PROTOCOL
HTTPS_PROTOCOL: "https" = "https"
Const HTTP_PROTOCOL
HTTP_PROTOCOL: "http" = "http"
Const TOKEN_TYPE_APIML
TOKEN_TYPE_APIML: "apimlAuthenticationToken" = "apimlAuthenticationToken"
Const TOKEN_TYPE_JWT
TOKEN_TYPE_JWT: "jwtToken" = "jwtToken"
Const TOKEN_TYPE_LTPA
TOKEN_TYPE_LTPA: "LtpaToken2" = "LtpaToken2"
Const aliasList
aliasList: {}
Const clipboard
clipboard: any = new ClipboardJS(".btn-copy")
Let currentNodeId
currentNodeId: string
Let currentView
currentView: number = +(urlParams.get("v") === "1")
Const footerStr
footerStr: string
Const headerStr
headerStr: string
Const isInIframe
isInIframe: boolean = window.location !== window.parent.location
Const links
links: any = arrayFrom(document.getElementsByTagName("a"))
Const loggerUtilsRequire
loggerUtilsRequire: any = (jest as any).requireActual("../LoggerUtils").LoggerUtils
Const probTests
prob
Tests: IProbTest[] = [{itemId: ItemId.NODEJS_VER,probExpr: "semver.satisfies('{val}', '<18.x || 19.x || >=21.x')",probMsg: "Only Node.js versions 18 and 20 are supported."},{itemId: ItemId.NPM_VER,probExpr: "semver.satisfies('{val}', '8.11.0 || 8.12.0')",probMsg: "NPM versions 8.11.0 and 8.12.0 cause SCS errors in some situations."},{itemId: ItemId.ZOWE_APP_LOG_LEVEL,probExpr: logLevelExpr,probMsg: formatLogLevelMsg("ZOWE_APP_LOG_LEVEL")},{itemId: ItemId.ZOWE_IMPERATIVE_LOG_LEVEL,probExpr: logLevelExpr,probMsg: formatLogLevelMsg("ZOWE_IMPERATIVE_LOG_LEVEL")}]
Const scrollIntoView
scrollIntoView: any
Let searchTimeout
searchTimeout: number = 0
Const urlParams
urlParams: URLSearchParams = new URLSearchParams(window.location.search)
Object literals
Const MOCKED_COMMAND_TREE
MOCKED_COMMAND_TREE: object
children
children: { description: string; name: string; options: ({ description: string; name: string; type: "string" } | { description: string; name: string; type: "boolean" })[]; positionals: { description: string; name: string; required: false; type: "string" }[]; type: "command" }[] = [{name: "test-command-one",description: "test command one",type: "command",options: [{name: "test-option",description: "the option",type: "string"},{name: "test-boolean",description: "the boolean option",type: "boolean"}],positionals: [{name: "positional1",description: "the positional option",type: "string",required: false}]},{name: "test-command-two",description: "test command two",type: "command",options: [{name: "test-option",description: "the option",type: "string"},{name: "test-boolean",description: "the boolean option",type: "boolean"}],positionals: [{name: "positional1",description: "the positional option",type: "string",required: false}]}]
description
description: string = "a test group"
name
name: string = "test-group"
type
type: "group" = "group"
Const ReportEnvDefinition
ReportEnvDefinition: object
aliases
aliases: string[] = ["re"]
description
description: string = "Reports key items from your environment and identifies problem conditions"
examples
examples: { description: string; options: string }[] = [{description: "Report information and issues about your working environment",options: ""},{description: "Save the report about your working environment to a file",options: "> report.log"}]
handler
handler: string = join(__dirname, "Report-env.handler")
name
name: string = "report-env"
summary
summary: string = "Report the state of your working environment"
type
type: "command" = "command"
Const apiErrorHeader
apiErrorHeader: object
message
message: string = `${Constants.FRAMEWORK_DISPLAY_NAME} API Error`
Const authCategoryDesc
authCategoryDesc: object
message
message: string = `Connect to token-based authentication services`
Const authLoginCommandDesc
authLoginCommandDesc: object
message
message: string = `Log in to {{type}} authentication service`
Const authLoginGroupDesc
authLoginGroupDesc: object
message
message: string = `${authLoginGroupSummary.message}.`
Const authLoginGroupSummary
authLoginGroupSummary: object
message
message: string = `Log in to an authentication service`
Const authLoginShowTokenDesc
authLoginShowTokenDesc: object
message
message: string = `Show the token when login is successful. If specified, does not save the token to a profile.`
Const authLogoutCommandDesc
authLogoutCommandDesc: object
message
message: string = `Log out of {{type}} authentication service`
Const authLogoutGroupDesc
authLogoutGroupDesc: object
message
message: string = `${authLogoutGroupSummary.message}.`
Const authLogoutGroupSummary
authLogoutGroupSummary: object
message
message: string = `Log out of an authentication service`
Const autoInitCommandDesc
autoInitCommandDesc: object
message
message: string = `Automatically generate a config from {{source}}`
Const convertProfilesDefinition
convertProfilesDefinition: object
aliases
aliases: string[] = ["convert"]
description
description: string = `Convert v1 profiles to a global ${ImperativeConfig.instance.rootCommandName}.config.json file.`
examples
examples: { description: string; options: string }[] = [{description: "Convert profiles to team config without prompting",options: "--no-prompt"}, {description: "Convert profiles to team config and delete the old profiles",options: "--delete"}]
handler
handler: string = join(__dirname, "convert-profiles.handler")
name
name: string = "convert-profiles"
options
options: ({ defaultValue: boolean; description: string; name: string; type: "boolean" } | { description: string; name: string; type: "boolean" })[] = [{name: "prompt",description: "Prompt for confirmation. Use --no-prompt to disable prompting.",type: "boolean",defaultValue: true}, {name: "delete",description: "Delete the existing profiles on disk and any securely stored secrets.",type: "boolean"}]
summary
summary: string = "Convert profiles to team config"
type
type: "command" = "command"
Const couldNotInstantiateCommandHandler
couldNotInstantiateCommandHandler: object
message
message: string = `Could not instantiate the handler {{commandHandler}} for ` +`command {{definitionName}}`
Const createProfileCommandDesc
createProfileCommandDesc: object
message
message: string = `Create a {{type}} profile`
Const createProfileDisableDefaultsDesc
createProfileDisableDefaultsDesc: object
message
message: string = `Disable populating profile values of undefined properties with default values.`
Const createProfileOptionDesc
createProfileOptionDesc: object
message
message: string = `Specifies the name of the new {{type}} profile. ` +`You can load this profile by using the name on commands that support the ` +`"--{{type}}-profile" option.`
Const createProfileOptionOverwriteDesc
createProfileOptionOverwriteDesc: object
message
message: string = `Overwrite the {{type}} profile when a profile of the same name exists.`
Const createProfilesCommandDesc
createProfilesCommandDesc: object
message
message: string = `${createProfilesCommandSummary.message}.`
Const createProfilesCommandSummary
createProfilesCommandSummary: object
message
message: string = `Create new configuration profiles`
Const deleteProfileActionDesc
deleteProfileActionDesc: object
message
message: string = `Delete a {{type}} profile.`
Const deleteProfileCommandDesc
deleteProfileCommandDesc: object
message
message: string = `Delete a {{type}} profile.` +` You must specify a profile name to be deleted. To find a list of available profiles for deletion,` +` issue the profiles list command. By default, you will be prompted to confirm the profile removal.`
Const deleteProfileDepsDesc
deleteProfileDepsDesc: object
message
message: string = `Set to true to delete all dependent profiles along with the {{type}} profile.` +`If set to true, a list of dependent profiles will be shown along with a confirmation prompt before the ` +`deletions occur. If set to false, only the {{type}} profile specified will be deleted.`
Const deleteProfileExample
deleteProfileExample: object
message
message: string = `Delete a {{type}} profile named {{name}}`
Const deleteProfileForceOptionDesc
deleteProfileForceOptionDesc: object
message
message: string = `Force deletion of profile, and dependent profiles if specified. No prompt will be displayed before `+ ` deletion occurs.`
Const deleteProfileNameDesc
deleteProfileNameDesc: object
message
message: string = `Specifies the name of the {{type}} ` +` profile to be deleted. ` +`You can also load this profile by using the name on commands that support the ` +`"--{{typeOption}}" option.`
Const deleteProfilesCommandDesc
deleteProfilesCommandDesc: object
message
message: string = `${deleteProfilesCommandSummary.message}.`
Const deleteProfilesCommandSummary
deleteProfilesCommandSummary: object
message
message: string = `Delete existing profiles`
Const detailProfileCommandDesc
detailProfileCommandDesc: object
message
message: string = `Show details of a profile of a selected type.`
Const editDefinition
editDefinition: object
description
description: string = `Edit an existing config file in your system's default text editor.\n\n` +`In a graphical environment, the application associated with JSON files will be launched. ` +`In a command-line environment, vi will be launched. To override the command-line editor used, specify it in ` +`the ${ImperativeConfig.instance.loadedConfig.envVariablePrefix}_EDITOR environment variable.`
examples
examples: { description: string; options: string }[] = [{description: "Edit global config file",options: "--global-config"}]
handler
handler: string = join(__dirname, "edit.handler")
name
name: string = "edit"
options
options: { aliases: string[]; defaultValue: boolean; description: string; name: string; type: "boolean" }[] = [{name: "global-config",description: "Target the global config files.",aliases: ["gc"],type: "boolean",defaultValue: false},{name: "user-config",description: "Target the user config files.",aliases: ["uc"],type: "boolean",defaultValue: false}]
summary
summary: string = "edit config files"
type
type: "command" = "command"
Const errorDetailsHeader
errorDetailsHeader: object
message
message: string = "Error Details:"
Const firststepsDefinition
firststepsDefinition: object
aliases
aliases: string[] = ["fs"]
description
description: string = "Show first steps required to set up plugin for use."
examples
examples: { description: string; options: string }[] = [{description: `Show first steps for a plugin called 'my-plugin'`,options: "my-plugin"}]
handler
handler: string = join(__dirname, "showfirststeps.handler")
name
name: string = "show-first-steps"
positionals
positionals: { description: string; name: string; required: false; type: "string" }[] = [{name: "plugin",type: "string",description: pluginDescription,required: false}]
summary
summary: string = "Show first steps for a plugin"
type
type: "command" = "command"
Const importDefinition
importDefinition: object
description
description: string = "Import config files from another location on disk or from an Internet URL.\n\n" +"If the config `$schema` property points to a relative path, the schema will also be imported."
examples
examples: { description: string; options: string }[] = [{description: "Import config from local file on disk",options: "~/Downloads/zowe.config.json"},{description: "Import global config from Internet URL",options: "https://example.com/zowe.config.json --global-config"}]
handler
handler: string = join(__dirname, "import.handler")
name
name: string = "import"
options
options: ({ aliases: string[]; defaultValue: boolean; description: string; name: string; type: "boolean" } | { aliases: string[]; description: string; group: string; implies: string[]; name: string; type: "string" } | { aliases: string[]; defaultValue: boolean; description: string; group: string; name: string; type: "boolean" })[] = [{name: "global-config",description: "Target the global config files.",aliases: ["gc"],type: "boolean",defaultValue: false},{name: "user-config",description: "Target the user config files.",aliases: ["uc"],type: "boolean",defaultValue: false},{name: "overwrite",description: "Overwrite config file if one already exists.",aliases: ["ow"],type: "boolean",defaultValue: false},{name: "user",aliases: ["u"],description: "User name if authentication is required to download the config from a URL.",type: "string",implies: ["password"],group: CONNECTION_OPTION_GROUP},{name: "password",aliases: ["pass", "pw"],description: "Password if authentication is required to download the config from a URL.",type: "string",implies: ["user"],group: CONNECTION_OPTION_GROUP},{name: "reject-unauthorized",aliases: ["ru"],description: "Reject self-signed certificates if config is downloaded from an HTTPS URL.",type: "boolean",defaultValue: true,group: CONNECTION_OPTION_GROUP}]
positionals
positionals: { description: string; name: string; required: true; type: "string" }[] = [{name: "location",description: "File path or URL to import from.",required: true,type: "string"}]
summary
summary: string = "import config files"
type
type: "command" = "command"
Const initDefinition
initDefinition: object
description
description: string = `Initialize config files. Defaults to initializing "${ImperativeConfig.instance.rootCommandName}.config.json" in the current ` +`working directory unless otherwise specified.\n\nUse "--user-config" to init ` +`"${ImperativeConfig.instance.rootCommandName}.config.user.json". Use "--global-config" to initialize the configuration files in your home ` +`"~/.zowe" directory.\n\nUse "--no-prompt" to skip prompting for values in a CI environment.`
examples
examples: { description: string; options: string }[] = [{description: `Initialize configuration files in your home "~/.zowe" directory`,options: "--global-config"},{description: `Do a dry run of initializing configuration files in your home "~/.zowe" directory`,options: "--global-config --dry-run"},{description: "Initialize the user config files",options: "--user-config"},{description: "Initialize the user config files and do not prompt for secure values",options: "--user-config --prompt false"},{description: "Do a dry run of initializing the user config files and do not prompt for secure values",options: "--user-config --prompt false --dry-run"},{description: "Overwrite any existing global config files",options: "--global-config --overwrite --for-sure"},{description: "Overwrite any existing user config files",options: "--user-config --overwrite --for-sure"}]
handler
handler: string = join(__dirname, "init.handler")
name
name: string = "init"
options
options: ({ aliases: string[]; defaultValue: boolean; description: string; name: string; type: "boolean" } | { defaultValue: boolean; description: string; name: string; type: "boolean" } | { aliases: string[]; conflictsWith: string[]; description: string; implies: string[]; name: string; type: "boolean" } | { aliases: string[]; conflictsWith: string[]; description: string; name: string; type: "boolean" })[] = [{name: "global-config",description: "Target the global config files.",aliases: ["gc"],type: "boolean",defaultValue: false},{name: "user-config",description: "Target the user config files.",aliases: ["uc"],type: "boolean",defaultValue: false},{name: "prompt",description: "Prompt for missing values in the base profile. Useful for disabling prompting in CI environments.",type: "boolean",defaultValue: true},{name: "overwrite",description: "Replace existing config files instead of merging the new changes.",aliases: ["ow"],type: "boolean",conflictsWith: ["dry-run"],implies: ["for-sure"]},{name: "for-sure",aliases: ["fs"],description: "Confirms the overwrite option.",type: "boolean",defaultValue: false},{name: "dry-run",description: "Display the outcome of the initialization without saving it.",aliases: ["dr", "dry"],type: "boolean",conflictsWith: ["edit", "overwrite", "prompt"]},{name: "edit",aliases: ["e"],description: "Open in editor after initializing the configuration",type: "boolean",conflictsWith: ["dry-run"]}]
summary
summary: string = "init config files"
type
type: "command" = "command"
Const installDefinition
installDefinition: object
description
description: string = "Install plug-ins to an application."
examples
examples: { description: string; options: string }[] = [{description: `Install plug-ins saved in ${PMFConstants.instance.PLUGIN_JSON}`,options: ""},{description: "Install plug-ins saved in a properly formatted config file",options: "--file /some/file/path/file_name.json"},{description: "Install a remote plug-in",options: "my-plugin"},{description: "Install a remote plug-in using semver",options: "my-plugin@\"^1.2.3\""},{description: "Install a remote plug-in from the specified registry",options: "my-plugin --registry https://registry.npmjs.org/"},{description: "Install a local folder, local TAR file, and a git URL",options: "./local-file /root/tar/some-tar.tgz git://github.com/project/repository.git#v1.0.0"},{description: "Install a remote plug-in from the registry which requires authorization" +"(don't need to use this flag if you have already logged in before)",options: "my-plugin --registry https://registry.npmjs.org/ --login"}]
handler
handler: string = join(__dirname, "install.handler")
name
name: string = "install"
options
options: ({ conflictsWith: string[]; description: string; name: string; required: false; type: "existingLocalFile" } | { description: string; name: string; required: false; type: "string" } | { description: string; implies: string[]; name: string; required: false; type: "boolean" })[] = [{name: "file",type: "existingLocalFile",description: fileDescription,required: false,conflictsWith: ["registry"]},{name: "registry",type: "string",description: registryDescription,required: false},{name: "login",type: "boolean",description: loginDescription,required: false,implies: ["registry"]}]
positionals
positionals: { description: string; name: string; required: false; type: "string" }[] = [{name: "plugin...",type: "string",description: pluginDescription,required: false}]
summary
summary: string = "Install a plug-in"
type
type: "command" = "command"
Const listDefinition
listDefinition: object
aliases
aliases: string[] = ["ls"]
description
description: string = "List config properties"
examples
examples: { description: string; options: string }[] = [{description: "List property names for a specified config property",options: `"defaults"`},{description: "List only root level property names for a specified config property",options: `"defaults" --root`},{description: "List config properties by separating them by their respective config file locations",options: "--locations"},{description: "List only the root level configuration property names",options: "--root"},{description: "List only the root level configuration properties by separating them by their respective config file locations",options: "--locations --root"}]
handler
handler: string = join(__dirname, "list.handler")
name
name: string = "list"
options
options: { description: string; name: string; type: "boolean" }[] = [{name: "locations",description: "Separate the config properties into their respective config file locations. " +"Helpful to determine where configuration value is specified.",type: "boolean"},{name: "root",description: "List only the root level property names. " +"For example, specify in addition to '--locations' to get a list of config file paths only.",type: "boolean"}]
positionals
positionals: { description: string; name: string; type: "string" }[] = [{name: "property",description: "The config property to list. Blank to list all properties.",type: "string"}]
summary
summary: string = "list config properties"
type
type: "command" = "command"
Const listGroupWithOnlyProfileCommandSummary
listGroupWithOnlyProfileCommandSummary: object
message
message: string = `List {{type}} loaded profiles`
Const listGroupWithOnlyProfileDefaultDesc
listGroupWithOnlyProfileDefaultDesc: object
message
message: string = `Lists all known profiles for this command group. ` +`When you issue a command that requires a profile or set of ` +`profiles, said profiles are loaded by default (or according to override options on the command). You can use this ` +`command to review your configured profiles, and verify your default profile set.`
Const listGroupWithOnlyProfileSetDesc
listGroupWithOnlyProfileSetDesc: object
message
message: string = `To set the default profiles, use the " ` +`{{type}} ${Constants.DEFAULT_SET_GROUP} ${Constants.DEFAULT_SET_PROFILE_OBJECT}" command.`
Const listGroupWithOnlyProfilesDefinition
listGroupWithOnlyProfilesDefinition: object
message
message: string = `List the {{type}} profiles loaded.`
Const listGroupWithOnlyProfilesSummary
listGroupWithOnlyProfilesSummary: object
message
message: string = `List the {{type}} profiles loaded`
Const listProfileCommandDesc
listProfileCommandDesc: object
message
message: string = `List profiles of the type {{type}}.`
Const listProfileCommandSummary
listProfileCommandSummary: object
message
message: string = `List existing profiles`
Const listProfileExample
listProfileExample: object
message
message: string = `List profiles of type {{type}}`
Const listProfileExampleShowContents
listProfileExampleShowContents: object
message
message: string = `List profiles of type {{type}} and display their contents`
Const listProfileLoadedModulesOptionDesc
listProfileLoadedModulesOptionDesc: object
message
message: string = `List {{type}} ` +` profiles that are loaded as part of normal command execution. ` +`This will show you the default profiles being loaded.`
Const listProfileVerboseOptionDesc
listProfileVerboseOptionDesc: object
message
message: string = `List {{type}} ` +` profiles and their contents. ` +`All profile details will be printed as part of command output.`
Const listProfilesFoundMessage
listProfilesFoundMessage: object
message
message: string = `The following profiles were found of the type "{{type}}":`
Const listProfilesNotFoundMessage
listProfilesNotFoundMessage: object
message
message: string = `No profiles were found of the type "{{type}}".`
Const locateProfilesDesc
locateProfilesDesc: object
message
message: string = `Configuration profiles are located and used by searching in the following order,` +` ending the search when a profile is found:`
Const onlyForTesting
onlyForTesting: object
callPluginPostInstall
callPluginPostInstall: callPluginPostInstall = callPluginPostInstall
Const overroteProfileMessage
overroteProfileMessage: object
message
message: string = "Overwrote existing profile for {{profileOption}}."
Const profileCreateErrorDetails
profileCreateErrorDetails: object
message
message: string = "Error Details: {{errorDetails}}"
Const profileCreateErrorHeader
profileCreateErrorHeader: object
message
message: string = "Profile Create Error"
Const profileCreatedSuccessfully
profileCreatedSuccessfully: object
message
message: string = `Profile created successfully.`
Const profileCreatedSuccessfullyAndPath
profileCreatedSuccessfullyAndPath: object
message
message: string = `Profile created successfully! Path:`
Const profileDeleteErrorDetails
profileDeleteErrorDetails: object
message
message: string = "Error Details: {{errorDetails}}"
Const profileDeleteErrorHeader
profileDeleteErrorHeader: object
message
message: string = "Profile Deletion Error"
Const profileDeletedSuccessfully
profileDeletedSuccessfully: object
message
message: string = "Successfully deleted the following profile(s): "
Const profileDesc
profileDesc: object
message
message: string = `Configuration profiles are loaded based on the requirements ` +`of the command:`
Const profileLoadError
profileLoadError: object
message
message: string = `Error loading {{type}} profile: {{profileName}}.\n\n` +`Additional Details:\n\n`
Const profileNotDeletedMessage
profileNotDeletedMessage: object
message
message: string = "No profiles were deleted."
Const profileReviewMessage
profileReviewMessage: object
message
message: string = "Review the created profile and edit if necessary using the profile update command."
Const profileUpdatedSuccessfullyAndPath
profileUpdatedSuccessfullyAndPath: object
message
message: string = `Profile updated successfully! Path:`
Const profilesDefinition
profilesDefinition: object
description
description: string = "Displays profile paths."
examples
examples: { description: string; options: string }[] = [{description: "Display profile paths",options: ""}]
handler
handler: string = join(__dirname, "profiles.handler")
name
name: string = "profiles"
summary
summary: string = "displays profile paths"
type
type: "command" = "command"
Const schemaDefinition
schemaDefinition: object
description
description: string = "Dumps the JSON schema for the config. " +"The schema is dynamically created based on your available plugins. " +"Direct the output of this command to a file and include in your config with '$schema' property to get editor completion."
examples
examples: { description: string; options: string }[] = [{description: "Display the JSON schema for the config",options: ""}]
handler
handler: string = join(__dirname, "schema.handler")
name
name: string = "schema"
summary
summary: string = "dumps the JSON schema for the config"
type
type: "command" = "command"
Const secureDefinition
secureDefinition: object
description
description: string = "prompt for secure configuration properties"
examples
examples: { description: string; options: string }[] = [{description: "Secure the properties in global config",options: "--global-config"},{description: "Secure the properties in user config",options: "--user-config"}]
handler
handler: string = join(__dirname, "secure.handler")
name
name: string = "secure"
options
options: { aliases: string[]; defaultValue: boolean; description: string; name: string; type: "boolean" }[] = [{name: "global-config",description: "Secure properties in global config.",aliases: ["gc"],type: "boolean",defaultValue: false},{name: "user-config",description: "Secure properties in user config.",aliases: ["uc"],type: "boolean",defaultValue: false},{name: "prune",description: "Delete properties stored in the vault for team config files that do not exist.",aliases: ["p"],type: "boolean",defaultValue: false}]
summary
summary: string = "secure configuration properties"
type
type: "command" = "command"
Const selectProfileNameDesc
selectProfileNameDesc: object
message
message: string = `Specifies the name of the {{type}} ` +`profile to be used with this command. ` +`To see profiles that can be validated, issue the list action for this module. ` +`You can also load this profile by using the name on commands that support the ` +`"--{{typeOption}}" option.`
Const setDefinition
setDefinition: object
description
description: string = "create or update a configuration property"
examples
examples: { description: string; options: string }[] = [{description: "Set the property in global config",options: `"profiles.host1.profiles.service1.properties.setting" "value" --global-config`},{description: "Set the property in user config",options: `"profiles.host1.profiles.service2.properties.setting" "value" --user-config`},{description: "Set property value to JSON",options: `"profiles.host1.profiles.service3.properties.setting" "{"property":"value"}" --json`},{description: "Store the property value",options: `"profiles.host1.profiles.service1.properties.setting" "value" --secure`},{description: "Set a default zosmf profile",options: `"defaults.zosmf" "zosmfProfileName"`},{description: "Set a default tso profile",options: `"defaults.tso" "tsoProfileName"`}]
handler
handler: string = join(__dirname, "set.handler")
name
name: string = "set"
options
options: ({ aliases: string[]; defaultValue: boolean; description: string; name: string; type: "boolean" } | { defaultValue: boolean; description: string; name: string; type: "boolean" } | { description: string; name: string; type: "boolean" })[] = [{name: "global-config",description: "Set the property in global config.",aliases: ["gc"],type: "boolean",defaultValue: false},{name: "user-config",description: "Set the property in user config.",aliases: ["uc"],type: "boolean",defaultValue: false},{name: "json",description: "The property value is JSON.",type: "boolean",defaultValue: false},{name: "secure",description: "Store the property value securely. " +"If omitted, any property named in the secure array of the config file will be saved securely.",type: "boolean"}]
positionals
positionals: ({ description: string; name: string; required: true; type: "string" } | { description: string; name: string; type: "string" })[] = [{name: "property",description: "The property to set. You may specify a path using dot notation (e.g. profiles.host1.profiles.service1.properties.setting)",required: true,type: "string"},{name: "value",description: "The property value to set. The value may be JSON. Use '--json' to indicate.",type: "string"}]
summary
summary: string = "set configuration property"
type
type: "command" = "command"
Const setGroupWithOnlyProfilesCommandDesc
setGroupWithOnlyProfilesCommandDesc: object
message
message: string = `The {{type}} set ${Constants.DEFAULT_SET_PROFILE_OBJECT} command allows you to set the default profiles for ` +`this command group. When a {{type}} command is issued and no profile override options are ` +`specified, the default profiles for the command group are automatically loaded for the command based on the ` +`commands profile requirements.`
Const setGroupWithOnlyProfilesListDesc
setGroupWithOnlyProfilesListDesc: object
message
message: string = `To view the default profiles, use the " ` +`{{type}} ${Constants.DEFAULT_LIST_GROUP} ${Constants.DEFAULT_LIST_PROFILE_OBJECT}" command.`
Const setGroupWithOnlyProfilesSummary
setGroupWithOnlyProfilesSummary: object
message
message: string = `Set the defaultprofiles for the {{type}} group`
Const setProfileActionDesc
setProfileActionDesc: object
message
message: string = `${setProfileActionSummary.message}.`
Const setProfileActionSummary
setProfileActionSummary: object
message
message: string = `Set which profiles are loaded by default`
Const setProfileExample
setProfileExample: object
message
message: string = `Set the default profile for type {{type}} to the profile named '{{name}}'`
Const setProfileOptionDesc
setProfileOptionDesc: object
message
message: string = `Specify aprofile for default usage within the {{type}} group. ` +`When you issue commands within the {{type}} group without a profile specified as part of the command, the default ` +`will be loaded instead.`
Const showDependenciesCommandDesc
showDependenciesCommandDesc: object
message
message: string = `View all profiles which may be used within a selected group.`
Const syntaxErrorHeader
syntaxErrorHeader: object
message
message: string = `\nSyntax Error`
Const unableToCreateProfile
unableToCreateProfile: object
message
message: string = "Unable to create the requested profile."
Const unableToDeleteProfile
unableToDeleteProfile: object
message
message: string = "Not all requested profiles could be deleted."
Const unableToFindProfile
unableToFindProfile: object
message
message: string = "Could not find or load the supplied profile name. Error details: "
Const unableToLoadRequestedProfilesError
unableToLoadRequestedProfilesError: object
message
message: string = "Command processing cannot continue: Unable to load requested or default profiles."
Const unexpectedCommandError
unexpectedCommandError: object
message
message: string = "Unexpected Command Error"
Const unexpectedCommandPreparationError
unexpectedCommandPreparationError: object
message
message: string = "An unexpected command preparation error occurred:"
Const unexpectedProfileCreationError
unexpectedProfileCreationError: object
message
message: string = `An unexpected profile creation error occurred: \n{{unexpectedError}}`
Const unexpectedProfileLoadError
unexpectedProfileLoadError: object
message
message: string = "An unexpected profile load error occurred:"
Const unexpectedProfileUpdateError
unexpectedProfileUpdateError: object
message
message: string = `An unexpected profile update error occurred: \n{{unexpectedError}}`
Const unexpectedProfilesLoadError
unexpectedProfilesLoadError: object
message
message: string = "An unexpected error occurred while loading requested profiles:"
Const uninstallDefinition
uninstallDefinition: object
description
description: string = "Uninstall plug-ins."
examples
examples: { description: string; options: string }[] = [{description: "Uninstall a plug-in",options : "my-plugin"},]
handler
handler: string = join(__dirname, "uninstall.handler")
name
name: string = "uninstall"
positionals
positionals: { description: string; name: string; required: false; type: "string" }[] = [{name: "plugin...",type: "string",description: pluginDescription,required: false}]
summary
summary: string = "Uninstall a plug-in"
type
type: "command" = "command"
Const updateDefinition
updateDefinition: object
description
description: string = "Update plug-ins."
examples
examples: { description: string; options: string }[] = [{description: "Update a plug-in",options : "my-plugin"},{description: "Update a remote plug-in from the registry which requires authorization" +"(don't need to use this flag if you have already logged in before)",options: "my-plugin --registry https://registry.npmjs.org/ --login"}]
handler
handler: string = join(__dirname, "update.handler")
name
name: string = "update"
options
options: ({ description: string; name: string; required: false; type: "string" } | { description: string; implies: string[]; name: string; required: false; type: "boolean" })[] = [{name: "registry",type: "string",description: registryDescription,required: false},{name: "login",type: "boolean",description: loginDescription,required: false,implies: ["registry"]}]
positionals
positionals: { description: string; name: string; required: false; type: "string" }[] = [{name: "plugin...",type: "string",description: pluginDescription,required: false}]
summary
summary: string = "Update a plug-in"
type
type: "command" = "command"
Const updateProfileActionDesc
updateProfileActionDesc: object
message
message: string = `Update a {{type}} profile`
Const updateProfileCommandDesc
updateProfileCommandDesc: object
message
message: string = `Update a {{type}} profile. ` +`You can update any property present within the profile configuration. The updated profile ` +`will be printed so that you can review the result of the updates.`
Const updateProfileCommandSummary
updateProfileCommandSummary: object
message
message: string = `Update existing profiles`
Const updateSchemasDefinition
updateSchemasDefinition: object
aliases
aliases: string[] = ["us"]
description
description: string = "Update schema files by looking up the directory structure.\n\n" +"Schema files up in higher level directories will always be updated. " +"To also update schema files down in lower level directories, specify the `--depth` flag."
examples
examples: { description: string; options: string }[] = [{description: "Update all schema files found in higher level directories",options: ``},{description: "Update all schema files found in higher level directories and 2 levels down the directory structure",options: `--depth 2`},]
handler
handler: string = join(__dirname, "update-schemas.handler")
name
name: string = "update-schemas"
options
options: { defaultValue: number; description: string; name: string; type: "number" }[] = [{name: "depth",description: "Specifies how many levels down the directory structure should the schemas be updated.",type: "number",defaultValue: 0},]
positionals
positionals: undefined[] = []
summary
summary: string = "update schema files"
type
type: "command" = "command"
Const validateDefinition
validateDefinition: object
description
description: string = "Validate a plug-in that has been installed."
examples
examples: { description: string; options: string }[] = [{description: `Validate a plug-in named my-plugin`,options : "my-plugin"},{description: "Validate all installed plug-ins",options : ""},{description: "Validate a plug-in named my-plugin, and treat warnings as errors",options : "my-plugin --fail-on-warning"}]
handler
handler: string = join(__dirname, "validate.handler")
name
name: string = "validate"
options
options: ({ aliases: string[]; defaultValue: boolean; description: string; name: string; required: false; type: "boolean" } | { aliases: string[]; defaultValue: boolean; description: string; implies: string[]; name: string; required: false; type: "boolean" })[] = [{name: "fail-on-error",aliases: ["foe"],type: "boolean",description: "Enables throwing an error and setting an error code if plugin validation detects an error",required: false,defaultValue: true},{name: "fail-on-warning",aliases: ["fow"],type: "boolean",description: "Treat validation warnings as errors. Requires fail-on-error.",required: false,defaultValue: false,implies: ["fail-on-error"]}]
positionals
positionals: { description: string; name: string; required: false; type: "string" }[] = [{name: "plugin",type: "string",description: pluginDescription,required: false}]
summary
summary: string = "Validate a plug-in"
type
type: "command" = "command"
Const validateProfileCommandDesc
validateProfileCommandDesc: object
message
message: string = `Test the validity of a {{type}} profile.`
Const validateProfileCommandSummary
validateProfileCommandSummary: object
message
message: string = `Test the validity of a profile`
Const validateProfileGroupDesc
validateProfileGroupDesc: object
message
message: string = `Test the validity of your profiles.`
Const validateProfileNameDesc
validateProfileNameDesc: object
message
message: string = `Specifies the name of the {{type}} ` +` profile to be validated. ` +`If the --print-plan-only option is specified, then only a plan to validate the specified profile will be displayed.`
Const validateProfileOptionDesc
validateProfileOptionDesc: object
message
message: string = `Validate the state of a group.`
Imperative CLI Framework
Imperative CLI Framework is a command processing system that lets you quickly build customized command-line interfaces. Focus on adding functionality for your users rather than creating CLI infrastructure. We provide you with all the tools to get started building your own CLI plug-ins.
Software Requirements
Install Node.js package manager on your computer. Node.jsĀ® is a JavaScript runtime environment on which we architected Imperative CLI Framework.
You must have a means to execute ".sh" (bash) scripts to run integration tests. On Windows, you can install "Git Bash", which is bundled with the standard Git installation - (choose the "Use Git and Unix Tools from Windows Command Prompt" installation option). When you run the integration tests on Windows, you must have Administrative authority to enable the integration tests to create symbolic links.
Note: Broadcom Inc. does not maintain the prerequisite software that Imperative CLI Framework requires. You are responsible for updating Node.js and other prerequisites on your computer. We recommend that you update Node.js regularly to the latest Long Term Support (LTS) version.
Install Imperative as a Dependency
Issue the following commands to install Imperative CLI Framework as a dependency.
Install
@latest
version:Be aware that if you update via
@latest
, you accept breaking changes into your project.Install
@zowe-v2-lts
version:This is a Long Term Support release that is guaranteed to have no breaking changes.
Note: If you want to install the bleeding edge version of Imperative, you can append
--@zowe:registry=https://zowe.jfrog.io/zowe/api/npm/npm-release/
to the install command to get it from a staging registry. It is not recommended to use this registry for production dependencies.Build and Install Imperative CLI Framework from Source
To build and install the Imperative CLI Framework, follow these steps:
zowe/imperative
project to your PC.cd [relative path]/imperative
npm install
npm run build
npm run test
To build the entire project (including test stand-alone CLIs):
npm run build
To build only imperative source:
npm run build:packages
Run Tests
npm run test
npm test:unit
npm test:integration
npm test:system
Note: To build and install the test CLIs used by the integration tests:
node scripts/sampleCliTool.js build
node scripts/sampleCliTool.js install
Sample Applications
We provide a sample plug-in that you can use to get started developing your own plug-ins. See the Zowe CLI Sample Plug-in.
Documentation
We provide documentation that describes how to define commands, work with user profiles, and more! For more information, see the Imperative CLI Framework wiki.
Contribute
For information about how you can contribute code to Imperative CLI Framework, see CONTRIBUTING.
Submit an Issue
To report a bug or request an enhancement, please submit an issue.
Versioning
Imperative CLI Framework uses Semantic Versioning (SemVer) for versioning. For more information, see the Semantic Versioning website.
Licensing Imperative CLI Framework
For Imperative CLI Framework licensing rules, requirements, and guidelines, see LICENSE.