Options
All
  • Public
  • Public/Protected
  • All
Menu

Module @zowe/imperative

Imperative CLI Framework

codecov OpenSSF Best Practices

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.

    npm install @zowe/imperative
    
  • Install @zowe-v2-lts version:

    This is a Long Term Support release that is guaranteed to have no breaking changes.

    npm install @zowe/imperative@zowe-v2-lts
    

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:

  1. Clone the zowe/imperative project to your PC.
  2. From the command line, issue cd [relative path]/imperative
  3. Issue npm install
  4. Issue npm run build
  5. Issue 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

Command Description
npm run test Run all automated tests (unit & integration)
npm test:unit Run unit tests
npm test:integration Run integration tests
npm test:system Run system tests (requires IPv6 connection)

Note: To build and install the test CLIs used by the integration tests:

  1. node scripts/sampleCliTool.js build
  2. 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.

Index

Enumerations

Classes

Interfaces

Type aliases

Variables

Functions

Object literals

Type aliases

AUTH_TYPE_CHOICES

AUTH_TYPE_CHOICES: typeof AUTH_TYPE_NONE | typeof AUTH_TYPE_BASIC | typeof AUTH_TYPE_BEARER | typeof AUTH_TYPE_TOKEN | typeof AUTH_TYPE_CERT_PEM

type that specifies the choice of authentication types

CLIENT_PROPERTY

CLIENT_PROPERTY: "requestSuccess" | "requestFailure" | "data" | "dataString" | "response" | "session" | "log"

String type definition for properties of abstractRestClient that has a getter set. This can be safely used in a getter call as a variable for the abstractRestClient object.

export

COMMAND_RESPONSE_FORMAT

COMMAND_RESPONSE_FORMAT: "json" | "default"

The command response format type definition - currently only JSON or default (stdout/stderr) are supported.

export

CommandOptionType

CommandOptionType: "array" | "boolean" | "count" | "existingLocalFile" | "json" | "number" | "string" | "stringOrEmpty"

The type of value that should be specified for an option by the user. "array": an array of space delimited strings "boolean": a switch - the user specifies: true "--option-name" or false: "--option-name false" "count" : accepting only whole numbers as input value "existingLocalFile": a file for which fs.existsSync returns true "json": a parseable JSON string "number" : accepting integers as input value "string" : string input that does not allow "" as a valid input value "stringOrEmpty" : allow string to be empty when defined

CommandSegment

CommandSegment: "group" | "command"

The command segment represents the "level" you are at in the command (for help generation)

ContentEncoding

ContentEncoding: typeof CONTENT_ENCODING_TYPES[number]

EventCallback

EventCallback: () => void | PromiseLike<void>

Type declaration

    • (): void | PromiseLike<void>
    • Returns void | PromiseLike<void>

HTTP_PROTOCOL_CHOICES

HTTP_PROTOCOL_CHOICES: typeof HTTP_PROTOCOL | typeof HTTPS_PROTOCOL

type that specifies the choice of protocols

HTTP_VERB

HTTP_VERB: "GET" | "PUT" | "POST" | "DELETE"

IAddProfTypeResult

IAddProfTypeResult: { info: string; success: boolean }

Type declaration

  • info: string
  • success: boolean

ICommandHandlerConstructor

ICommandHandlerConstructor: {}

This type is here so that we can indicate an object from a require can be instantiated.

Type declaration

ICommandNodeType

ICommandNodeType: "group" | "command"

Command Segment type - either "group" or "command".

"group" implies no handler and should have children. Use groups to logically arrange portions of your CLI. "command" implies there is a handler and may or may not have children.

IConfigSecure

IConfigSecure: {}

Type declaration

IConfigSecureProperties

IConfigSecureProperties: {}

Type declaration

  • [key: string]: any

IConstructor

IConstructor<T>: {}

An type that defines a class constructor

Type parameters

  • T

Type declaration

ICredentialManagerConstructor

ICredentialManagerConstructor: {}

This interface defines the constructor for a credential manager. This is used by the TypeScript compiler to verify that any class that wishes to be a Credential Manager adheres to the constructor arguments sent to it.

Your class will satisfy this interface when all the following are true:

  1. Your class extends AbstractCredentialManager
  2. Your constructor has less than or equal to the number of parameters specified in the interface
  3. Your constructor has matching parameter types for all parameters accepted

Type declaration

IExtenderTypeInfo

IExtenderTypeInfo: { schema: IProfileSchema; sourceApp: string }

Type declaration

IExtendersJsonOpts

IExtendersJsonOpts: { profileTypes: Record<string, { from: string[]; latestFrom?: string; version?: string }> }

This type corresponds to the extenders.json file stored in the CLI home directory.

Here is an example structure of what extenders.json could look like on disk:

{
    "profileTypes": {
        "banana": {
            "from": ["@zowe/banana-for-zowe-cli", "Zowe Explorer Banana Extension"],
            "version": "v1.1.0",
            "latestFrom": "Zowe Explorer Banana Extension"
        }
    }
}

Type declaration

  • profileTypes: Record<string, { from: string[]; latestFrom?: string; version?: string }>

IImperativeOverrides

IImperativeOverrides: ConstructorOrString<ImperativeOverrides>

All of the Default Imperative classes that can be changed by your Imperative CLI app.

A plugin can also define overrides through the same means as an Imperative CLI app. When additional overrides provided by plugins are present, Imperative will favor those classes over ones provided by your application.

Whether you are defining an Imperative Plugin or an Imperative CLI app, all keys in this object are expected to be a class constructor or of type string.

  • A class constructor will be instantiated directly from imperative with no additional work by the provider. (Assuming it is properly defined for the specific key)
  • A string will trigger imperative to load the module before instantiating it.
    • If the string is absolute, nothing special happens.
    • If the string is relative, then imperative will base the load on a well known location depending on if it is a plugin provided override or base cli provided override.
      • For Imperative Plugins: The module is located relative to the packages default import path (e.g require('package-name'))
      • For Imperative CLI Apps: The module is located relative to the main entry point of your application

When defining the location of an overrides as a string, it must adhere to the following format. Otherwise Imperative will not be able to load the class.

Exporting an Anonymous Class

export = class {
  // Code goes here
};

Exporting a Named Class

export = class YourOverridesClass {
  // Code goes here
};

Using module.exports (Not preferred for TypeScript Users)

class YourOverridesClass {
  // Code goes here
}

module.exports = YourOverridesClass;
see

{@link ImperativeOverrides} for documentation on the available keys.

IOperationCompleted

IOperationCompleted<T>: (output: T) => void

Type parameters

  • T

Type declaration

    • (output: T): void
    • Parameters

      • output: T

      Returns void

IOperationResultReady

IOperationResultReady<T>: (output: T, operationResults: IOperationResult<any>) => void

Type parameters

  • T

Type declaration

IOperationUndoCompleted

IOperationUndoCompleted: () => void

Type declaration

    • (): void
    • Returns void

IProfArgValue

IProfArgValue: string | number | boolean | string[] | object

The value for the argument

IProfDataType

IProfDataType: "string" | "number" | "boolean" | "array" | "object"

The type of data for this property

ImperativeReject

ImperativeReject: (error: ImperativeError) => void

Definition for a promise rejection method that provides an ImperativeError (or subclass)

Type declaration

ImperativeYargsCommandAction

ImperativeYargsCommandAction: "syntax validation" | "command handler invoked" | "help invoked"

Indicates the action performed.

OUTPUT_FORMAT

OUTPUT_FORMAT: "list" | "table" | "string" | "object"

The available format types for formatting of output.

list

Formats the output data as a list of strings. If an array of objects is present in the output, each is stringified and printed on a newline.

table

Formats the output data as a table using the properties as the column headers. You must ensure that the array of objects is homogeneous for the table to print properly.

string

Formats the output data as a string. If the output data is an object/array it is stringified.

object

Formats the output a prettified JSON object.

RestClientResolve

RestClientResolve: (data: string) => void

Type declaration

    • (data: string): void
    • Parameters

      • data: string

      Returns void

RestErrorSource

RestErrorSource: "client" | "http"

SecureCredential

SecureCredential: string

String credential

SecureOperationFunction

SecureOperationFunction: (propNamePath: string, propValue?: any, optional?: boolean) => Promise<any>

This type defines the signature for a function taht calls the credential manager. This is used by the TypeScript compiler to verify that any function that wants to call the credential manager have the necessary arguments sent to it.

Type declaration

    • (propNamePath: string, propValue?: any, optional?: boolean): Promise<any>
    • Parameters

      • propNamePath: string

        The path to a child property

      • Optional propValue: any

        The value of said property

      • Optional optional: boolean

        Set to true if failure to find credentials should be ignored

      Returns Promise<any>

      • The processed value after the secure operation function runs

TOKEN_TYPE_CHOICES

TOKEN_TYPE_CHOICES: typeof TOKEN_TYPE_LTPA | typeof TOKEN_TYPE_JWT | typeof TOKEN_TYPE_APIML

type that specifies the choice of token types

YargsCommandCompleted

YargsCommandCompleted: (args: Arguments, response: IYargsResponse) => void

Callback that is invoked when a command defined to yargs completes execution.

Type declaration

Variables

Const ALL_TOKEN_TYPES

ALL_TOKEN_TYPES: string[] = [TOKEN_TYPE_APIML,TOKEN_TYPE_JWT,TOKEN_TYPE_LTPA]

list that specifies the choice of token types

Const AUTH_TYPE_BASIC

AUTH_TYPE_BASIC: "basic" = "basic"

Session type property value for basic authentication

Const AUTH_TYPE_BEARER

AUTH_TYPE_BEARER: "bearer" = "bearer"

Session type property value for bearer token authentication

Const AUTH_TYPE_CERT_PEM

AUTH_TYPE_CERT_PEM: "cert-pem" = "cert-pem"

Session type property value for certificate authentication, which uses a certificate file and key file.

Const AUTH_TYPE_NONE

AUTH_TYPE_NONE: "none" = "none"

Session type property value for no authentication

Const AUTH_TYPE_TOKEN

AUTH_TYPE_TOKEN: "token" = "token"

Session type property value for cookie token authentication, which uses a named token type.

Const ClipboardJS

ClipboardJS: any

Const HTTPS_PROTOCOL

HTTPS_PROTOCOL: "https" = "https"

https protocol

Const HTTP_PROTOCOL

HTTP_PROTOCOL: "http" = "http"

http protocol

Const TOKEN_TYPE_APIML

TOKEN_TYPE_APIML: "apimlAuthenticationToken" = "apimlAuthenticationToken"

tokenType property value for an API Mediation Layer token

Const TOKEN_TYPE_JWT

TOKEN_TYPE_JWT: "jwtToken" = "jwtToken"

tokenType property value for a JWT token

Const TOKEN_TYPE_LTPA

TOKEN_TYPE_LTPA: "LtpaToken2" = "LtpaToken2"

tokenType property value for IBM's LTPA2 token

Const aliasList

aliasList: {}

Type declaration

  • [key: string]: string[]

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

probTests: 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")}]

The tests to check for problems that we run for environmental items. One ItemId can have multiple entries in the array, to check for different problems. When the probExpr is true, we have a problem, and we print the probMsg.

Const sameOrigin

sameOrigin: string = window.location.protocol !== "file:" ? window.location.origin : "*"

Const scrollIntoView

scrollIntoView: any

Let searchTimeout

searchTimeout: number = 0

Const treeNodes

treeNodes: ITreeNode[]

Const urlParams

urlParams: URLSearchParams = new URLSearchParams(window.location.search)

Functions

arrayFrom

  • arrayFrom(items: any): any[]

changeView

  • changeView(newMode: number): void

Const compareCommands

findCurrentCmdAnchor

  • findCurrentCmdAnchor(): any

findNpmOnPath

  • findNpmOnPath(): string

flattenNodes

getJstreeThemeName

  • getJstreeThemeName(): string

getPackageInfo

  • getPackageInfo(pkgSpec: string): Promise<{ name: string; version: string }>

getRegistry

  • getRegistry(): string

getScopeRegistry

  • getScopeRegistry(scope: string): string

install

  • install(packageLocation: string, registry: string, installFromFile?: boolean): Promise<string>
  • Common function that abstracts the install process. This function should be called for each package that needs to be installed. (ex: sample-cli plugin install a b c d -> calls install 4 times)

    todo

    work needs to be done to support proper sharing of the plugins.json. As of now local plugins can only be reinstalled on the same machine. (due to how the conversion to an absolute URI happens)

    Parameters

    • packageLocation: string

      A package name or location. This value can be a valid npm package name or the location of an npm tar file or project folder. Also, git URLs are also acceptable here (basically anything that npm install supports). If this parameter is a relative path, it will be converted to an absolute path prior to being passed to the npm install command.

    • registry: string

      The npm registry to use, this is expected to be passed by every caller so if calling functions don't have a registry available, they need to get it from npm.

    • Default value installFromFile: boolean = false

    Returns Promise<string>

    The name of the plugin.

installPackages

  • installPackages(prefix: string, registry: string, npmPackage: string): string

loadTree

  • loadTree(): void

npmLogin

  • npmLogin(registry: string): void

onDocsPageChanged

  • onDocsPageChanged(e: any): void

onSearchTextChanged

  • onSearchTextChanged(noDelay?: boolean): void
  • Search command tree after text in search box has changed

    Parameters

    • Default value noDelay: boolean = false

      If true, searches instantly rather than delaying 250 ms

    Returns void

onTreeContextMenu

  • onTreeContextMenu(node: ITreeNode): {} | { collapseAll: object; expandAll: object }
  • Generate list of context menu items for a node

    Parameters

    • node: ITreeNode

      Node that was right clicked

    Returns {} | { collapseAll: object; expandAll: object }

    List of context menu items containing labels and actions

onTreeLoaded

  • onTreeLoaded(): void

onTreeSearch

  • onTreeSearch(permutedSearchStr: string, node: any): boolean
  • Check if node is matched by a search string

    Parameters

    • permutedSearchStr: string

      NUL-delimited list of search strings

    • node: any

    Returns boolean

    True if the node matches

onTreeSelectionChanged

  • onTreeSelectionChanged(_: any, data: any): void

permuteSearchStr

  • permuteSearchStr(searchStr: string): string
  • Find all possible combinations of a search string that exist with different aliases

    Parameters

    • searchStr: string

      Search string input by user

    Returns string

    NUL-delimited list of search strings with all combinations of aliases

runValidatePlugin

  • runValidatePlugin(pluginName: string): string
  • Run another instance of the host CLI command to validate a plugin that has just been installed. We use a separate process instead of an API call because when the user re-installs an existing plugin we cannot validate if the plugin has conflicting command names because the plugin has already been incorporated into the Imperative command tree, and thus it could conflict with its own commands. However, if we run a validate command in a new process, we start with a clean slate and we get accurate results.

    Parameters

    • pluginName: string

      The name of a plugin to be validated.

    Returns string

    • The text output of the validate plugin command.

setTooltip

  • setTooltip(btn: any, message: string): void
  • Show tooltip next to copy button that times out after 1 sec

    Parameters

    • btn: any

      Button element the tooltip will show next to

    • message: string

      Message to show in the tooltip

    Returns void

toggleTree

  • toggleTree(splitter: any): void

uninstall

  • uninstall(packageName: string): void

update

  • update(packageName: string, registry: string): Promise<string>

Const updateAndGetRemovedTypes

  • updateAndGetRemovedTypes(npmPackage: string): string[]

updateCurrentNode

  • updateCurrentNode(newNodeId: string, goto: boolean, expand: boolean, force?: boolean): void
  • Update node that docs are displayed for

    Parameters

    • newNodeId: string

      Node ID to select

    • goto: boolean

      Whether to load docs page for node

    • expand: boolean

      Whether to expand tree node

    • Default value force: boolean = false

      Whether to update node even if already selected

    Returns void

Const updateExtendersJson

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

Definition for the 'config report-env' command.

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 = `${authCategorySummary.message}.`

Const authCategorySummary

authCategorySummary: 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 = `${autoInitCommandSummary.message}.`

Const autoInitCommandSummary

autoInitCommandSummary: object

message

message: string = `Automatically generate a config from {{source}}`

Const convertProfilesDefinition

convertProfilesDefinition: object

Definition of the convert-profiles command.

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 V1 profiles to a new Zowe client configuration without prompting",options: "--no-prompt"}, {description: "Convert V1 profiles to a new Zowe client configuration and delete the old V1 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 V1 profiles to a current Zowe client configuration"

type

type: "command" = "command"

Const couldNotInstantiateCommandHandler

couldNotInstantiateCommandHandler: object

message

message: string = `Could not instantiate the handler {{commandHandler}} for ` +`command {{definitionName}}`

Const editDefinition

editDefinition: object

Definition of the edit command.

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 with the --editor option.`

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" } | { aliases: string[]; description: string; name: string; required: false; type: "string" })[] = [{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: "editor",description: `Editor that overrides the default editor for this file type. Set the option to the editor's executable file location ` +`or the program's name: ie "--editor notepad".`,aliases: ["ed"],type: "string",required: false},]

summary

summary: string = "Edit config files"

type

type: "command" = "command"

Const errorDetailsHeader

errorDetailsHeader: object

message

message: string = "Error Details:"

Const firststepsDefinition

firststepsDefinition: object

Definition of the firststeps command.

aliases

aliases: string[] = ["fs"]

description

description: string = "Show first steps required to set up plug-in for use."

examples

examples: { description: string; options: string }[] = [{description: `Show first steps for a plug-in 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 plug-in"

type

type: "command" = "command"

Const importDefinition

importDefinition: object

Definition of the import command.

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

Definition of the init command.

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" } | { aliases: string[]; description: string; implies: string[]; name: string; type: "string" })[] = [{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"]},{name: "editor",description: `Editor that overrides the default editor for this file type. Set the option to the editor's executable file location ` +`or the program's name: ie "--editor notepad".`,aliases: ["ed"],type: "string",implies: ["edit"]}]

summary

summary: string = "Init config files"

type

type: "command" = "command"

Const installDefinition

installDefinition: object

Definition of the install command.

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" --name-only`},{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: "--name-only"},{description: "List only the root level configuration property names by separating them by their respective config file locations",options: "--locations --name-only"}]

handler

handler: string = join(__dirname, "list.handler")

name

name: string = "list"

options

options: ({ description: string; name: string; type: "boolean" } | { aliases: string[]; 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: "name-only",description: "List only the names of root level property names. " +"For example, specify in addition to '--locations' to get a list of config file paths only.",type: "boolean",aliases: ["root"]}]

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 onlyForTesting

onlyForTesting: object

callPluginPostInstall

callPluginPostInstall: callPluginPostInstall = callPluginPostInstall

Const profilesDefinition

profilesDefinition: object

Definition of the paths command.

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

Definition of the paths command.

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 Zowe client config files that do not exist.",aliases: ["p"],type: "boolean",defaultValue: false}]

summary

summary: string = "Secure configuration properties"

type

type: "command" = "command"

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 syntaxErrorHeader

syntaxErrorHeader: object

message

message: string = `\nSyntax Error`

Const unexpectedCommandError

unexpectedCommandError: object

message

message: string = "Unexpected Command Error"

Const unexpectedCommandPreparationError

unexpectedCommandPreparationError: object

message

message: string = "An unexpected command preparation error occurred:"

Const uninstallDefinition

uninstallDefinition: object

Definition of the uninstall command.

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

Definition of the update command.

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 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

Definition of the validate command.

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"

Generated using TypeDoc