From c5599ebe4597b3fc3dcd705f5e2022bdecc2f132 Mon Sep 17 00:00:00 2001 From: sid Date: Fri, 19 Jun 2020 10:00:15 -0400 Subject: [PATCH] Release 0.7.1 --- cli.json | 4 +- docs/cli_pm_commands_help.md | 500 ++++++++++++++++++++------------- docs/pipeline_commands_help.md | 404 ++++++++++++++------------ package.json | 2 +- src/cli.js | 2 + src/common/common_cli.js | 8 + src/devops.js | 3 +- src/pm/property_manager_cli.js | 8 + 8 files changed, 549 insertions(+), 382 deletions(-) diff --git a/cli.json b/cli.json index 57038b0..5b68abd 100644 --- a/cli.json +++ b/cli.json @@ -6,13 +6,13 @@ { "name": "property-manager", "aliases": ["pm", "snippets"], - "version": "0.7.0-RELEASE", + "version": "0.7.1-RELEASE", "description": "Property Manager CLI for DevOps" }, { "name": "pipeline", "aliases": ["pl", "pd", "proddeploy"], - "version": "0.7.0-RELEASE", + "version": "0.7.1-RELEASE", "description": "Akamai Pipeline for DevOps" } ] diff --git a/docs/cli_pm_commands_help.md b/docs/cli_pm_commands_help.md index bf3951e..02a5670 100644 --- a/docs/cli_pm_commands_help.md +++ b/docs/cli_pm_commands_help.md @@ -2,264 +2,369 @@ # Property Manager command help ## General Property Manager Help Use akamai pm help to get general help about all property manager commands. -``` - Usage: akamai pm [options] [command] -``` - PM CLI. The command assumes that your current working directory is the project space under which all properties reside -``` + Usage: akamai property-manager [options] [command] + + Property Manager CLI. Run these commands from the project directory that contains your local properties. + Options: - -V, --version output the version number - -v, --verbose Verbose output, show logging on stdout - -s, --section
Section name representing Client ID in .edgerc file, defaults to "credentials" - -f, --format Select output format, allowed values are 'json' or 'table' - -h, --help output usage information + -V, --version output the version number + -f, --format Select output format for commands, either 'table', the default, or 'json'. + -s, --section
The section of the .edgerc file that contains the user profile, or client ID, to use for the command. If not set, uses the `default` settings in the .edgerc file. + -v, --verbose Show detailed log information for the command. + --edgerc Optional. Enter the location of the .edgerc file used for credentials. If not set, uses the edgerc.config file in the project directory if present. Otherwise, uses the .edgerc file in your home directory. + --workspace Optional. Enter the directory containing all property and project files. If not set, uses the value of the AKAMAI_PROJECT_HOME environment variable if present.Otherwise, uses the current working directory as the workspace. + -h, --help output usage information Commands: - new-property|np [options] Create a new PM CLI property with provided attributes. - set-default|sd [options] Set the default PM CLI property and or the default section name from .edgerc - show-defaults|sf Show default settings for this workspace - merge|m [options] Merge config snippets into a PM/PAPI ruletree JSON document, stored in dist folder in the current property folder - search|s Search for properties by name - set-prefixes|sp Set or unset use of prefixes [true|false] for current user credentials and setup - set-ruleformat|srf Set ruleformat for current user credentials and setup - list-contracts|lc List contracts available to current user credentials and setup - list-products|lp [options] List products available under provided contract ID and client ID available to current user credentials and setup - list-groups|lg List groups available to current user credentials and setup - list-cpcodes|lcp [options] List cpcodes available to current user credentials and setup. - show-ruletree|sr [options] Shows the rule tree of a local property - save|sv [options] Save rule tree and hostnames for provided PM CLI property. Edge hostnames are also created if needed. - list-edgehostnames|leh [options] List edge hostnames available to current user credentials and setup (this could be a long list). - activate|atv [options] Activate a PM CLI property. This command also executes the merge and save commands mentioned above by default. - deactivate|datv [options] Deactivate a PM CLI property. This command will check if the property is active and then deactivate it - check-activation-status|cs [options] Check status of activation of a PM CLI property. - update-local|ul [options] Update local property with the latest from Property Manager. - import|i [options] Import a property from Property Manager. - help [cmd] display help for [cmd] -``` + activate|atv [options] Activate the latest version of a property. By default, this command also executes the merge and save commands. + activate-version [options] Activate a specific version of a property. Activates latest if no version specified. + check-activation-status|cs [options] Check the activation status of a property. + create-cpcode [options] Create a new CP code. + deactivate|datv [options] Deactivates a property. Checks if the property is active and then deactivates it. + delete [options] Permanently deletes a property. You have to deactivate the property on both networks first. + help help command + import|i [options] Import a property from Property Manager. + list-contracts|lc List contracts available based on the current user credentials and setup. + list-cpcodes|lcp [options] List CP codes available based on the current user credentials and setup. + list-edgehostnames|leh [options] List edge hostnames available based on current user credentials and setup. May return a long list of hostnames. + list-groups|lg List groups available based on the current user credentials (clientId). + list-products|lp [options] List products available based on the current user credentials and contract ID. + list-properties|lpr [options] List properties available based on the current user credentials and setup. + list-property-hostnames|lph [options] List hostnames assigned to this property. + list-property-rule-format|lprf [options] List the current rule format for the property. + list-property-variables|lpv [options] List the property's variables. + list-rule-formats|lrf Display the list of available rule formats. + merge|m [options] Merge all property configuration files, or snippets, into a property rule tree file in JSON format. You can find the file in the property's dist folder. + new-property|np [options] Create a new property using the attributes provided. + save|sv [options] Saves the rule tree and hostnames for the selected property. Creates edge hostnames if needed. + search|s Search for properties by name. + set-default|sd [options] Set the default property and the default section name from the .edgerc file. + set-prefixes|sp Boolean. Enter `true` to use the Property Manager ID prefixes with ID values. Enter `false` to disable them. For prefixes used, see: https://developer.akamai.com/api/core_features/property_manager/v1.html#prefixes. + set-ruleformat|srf Set the rule format to use for the user credentials and setup. Enter `latest` for the most current rule format. For a list of earlier rule formats, see: https://developer.akamai.com/api/core_features/property_manager/v1.html#versioning. + show-defaults|sf Displays the current default settings for this workspace. + show-ruletree|sr [options] Shows the rule tree for the selected environment. + update-local|ul [options] Update local property with the latest version from the Property Manager API. + help [cmd] display help for [cmd] + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Most useful commands in order of assumed importance ## Create new property In order to create a new property you also need to specify a group Id, product Id and contract Id. These ids can be obtained by using the list-* commands. See below. -``` - Usage: new-property|np [options] - ``` - Create a new PM CLI property with provided attributes. -``` + + Usage: akamai property-manager new-property|np [options] + + Create a new property using the attributes provided. + Options: - --retry Assuming command failed last time during execution. Try to continue where it left off. - --dry-run Just parse the parameters and print out the json generated that would normally call the create property function. - -p, --property PM CLI property name - -g, --groupId Group ID, optional if -e propertyId/Name is used - -c, --contractId Contract ID, optional if -e propertyId/Name is used - -d, --productId Product ID, optional if -e propertyId/Name is used - -e, --propertyId Use existing property as blue print for PM CLI property. Either pass property ID or exact property name. PM CLI will lookup account information like group id, contract id and product id of the existing property and use the information for creating PM CLI properties - -n, --version Can be used only if option '-e' is being used. Specify version of existing property being used as blue print, if omitted, use latest - --variable-mode Choose how your new property will pull in variable. Allowed values are 'default', 'no-var', and 'user-var-value'. Only works when creating a property from an existing property - --secure Make new property secure - --insecure Make new property not secure + -c, --contractId Enter the contract ID to use. Optional if using -e with a property ID or name. + -d, --productId Enter the product ID to use. Optional if using -e with a property ID or name. + -e, --propertyId Optional. Use an existing property as the blueprint for the new one. Enter either a property ID or an exact property name. The CLI looks up the group ID, contract ID, and product ID of the existing property and uses that data to create a new property. + -g, --groupId Enter the group ID for the property. Optional if using -e with a property ID or name. + -n, --propver Add only if using a property as a template. Enter the version of the existing property to use as the blueprint. Uses latest version if omitted. + -p, --property Property name. Optional if a default property was previously set with the set-default command. + --dry-run Verify the result of your command syntax before running it. Displays the JSON generated by the command as currently written. + --insecure Makes all new environment properties HTTP, not secure HTTPS. + --retry Use if the command failed during execution. Tries to continue where the command left off. + --secure Makes the new property use secure HTTPS. + --variable-mode If creating a property from an existing one, choose how your new property pulls in variables. Allowed values are ${printAllowedModes()}. -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Import existing property Import creates a PM CLI Property locally to work directly with an existing configuration -``` - Usage: import|i [options] -``` + + Usage: akamai property-manager import|i [options] + Import a property from Property Manager. -``` + Options: - -p, --property PM CLI property name - --dry-run Just parse the parameters and print out the json generated that would normally call the create property function. - --variable-mode Choose how your import will pull in variables. Allowed values are 'no-var' and 'user-var-value'. Default functionality is no-var + -p, --property Property name. Optional if default property + was set using the set-default command. + --dry-run Verify the result of your command syntax + before running it. Displays the JSON + generated by the command as currently + written. + --variable-mode Choose how to pull in variables. Allowed + values are 'no-var' and 'user-var-value'. By + default, variables aren't imported (no-var). -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Update property Update local property with the latest from papi. -``` - Usage: update-local|ul [options] -``` - Update local property with the latest from Property Manager. -``` + + Usage: akamai property-manager update-local|ul [options] + + Update local property with the latest version from the Property Manager API. + Options: - -p, --property PM CLI property name - --dry-run Just parse the parameters and print out the json generated that would normally call the create property function. - --variable-mode Choose how your update-local will pull in variables. Allowed values are 'no-var' and 'user-var-value'. Default functionality is no-var - --force-update WARNING: This option will bypass the confirmation prompt and will overwrite your local files + -p, --property Property name. Optional if default property + was set using the set-default command. + --dry-run Verify the result of your command syntax + before running it. Displays the JSON + generated by the command as currently + written. + --force-update WARNING: This option bypasses the + confirmation prompt and automatically + overwrites your local files. + --variable-mode Choose how this command pulls in variables. + Allowed values are 'no-var' and + 'user-var-value'. Default functionality is + no-var. -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Merge Merge config snippets into a PM/PAPI rule tree JSON document, stored in dist folder in the current pipeline folder. This command also calls validate on the PAPI end point. -``` - Usage: merge|m [options] -``` - Merge config snippets into a PM/PAPI ruletree JSON document, stored in dist folder in the current property folder - ``` + + Usage: akamai property-manager merge|m [options] + + Merge all property configuration files, or snippets, into a property rule tree file in JSON format. You can find the file in the property's dist folder. + Options: - -p, --property PM CLI property name - -n, --no-validate Don't call validation end point. Just run merge. + -n, --no-validate Merge without validating command syntax. + -p, --property Property name. Optional if a default property + was previously set with the set-default + command. -h, --help output usage information - ``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Save Store rule tree of provided property. This will also perform validation. -``` - Usage: save|sv [options] -``` - Save rule tree and hostnames for provided PM CLI property. Edge hostnames are also created if needed. -``` + + Usage: akamai property-manager save|sv [options] + + Saves the rule tree and hostnames for the selected property. Creates edge hostnames if needed. + Options: - -p, --property PM CLI property name + -p, --property Property name. Optional if default property + was set using the set-default command. -h, --help output usage information - ``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Activate environment Activate a property. -``` - Usage: activate|atv [options] -``` - Activate a PM CLI property. This command also executes the merge and save commands mentioned above by default. -``` + + Usage: akamai property-manager activate|atv [options] + + Activate the latest version of a property. By default, this command also executes the merge and save commands. + Options: - -p, --property PM CLI property name - -n, --network Network, either 'production' or 'staging', can be abbreviated to 'p' or 's' - -e, --emails Comma separated list of email addresses. Optional if default emails were previously set with set-default - -m, --message Activation message passed to activation backend - -w, --wait-for-activate Return after activation of a property is active. + -e, --emails Comma-separated list of email addresses. + Optional if default emails were set using the + set-default command. + -m, --message Enter a message describing changes made to the + property. + --note (Alias of --message) Enter a message + describing changes made to the property. + -n, --network Network, either 'production' or 'staging'. You + can shorten 'production' to 'prod' or 'p' and + 'staging' to 'stage' or 's'. + -p, --property Property name. Optional if default property + was set using the set-default command. + -w, --wait-for-activate Prevents you from entering more commands until + activation is complete. May take several + minutes. -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Deactivate environment Deactivate a property. -``` - Usage: deactivate|datv [options] -``` - Deactivate a PM CLI property. This command will check if the property is active and then deactivate it -``` + + Usage: akamai property-manager deactivate|datv [options] + + Deactivates a property. Checks if the property is active and then deactivates it. + Options: - -p, --property PM CLI property name - -n, --network Network, either 'production' or 'staging', can be abbreviated to 'p' or 's' - -e, --emails Comma separated list of email addresses. Optional if default emails were previously set with set-default - -m, --message deactivation message passed to backend - -w, --wait-for-activate Return after the property is deactivated. - --force-deactivate WARNING: This option will bypass the confirmation prompt and will Deactivate your property on the network + -e, --emails Comma-separated list of email addresses. + Optional if default emails were set using the + set-default command. + -m, --message Enter a message describing the reason for + deactivating. + --note (Alias of --message) Enter a message + describing the reason for deactivating. + -n, --network Network, either 'production' or 'staging'. You + can shorten 'production' to 'prod' or 'p' and + 'staging' to 'stage' or 's'. + -p, --property Property name. Optional if default property + was set using the set-default command. + -w, --wait-for-activate Prevents you from entering more commands until + deactivation is complete. May take several + minutes. + --force-deactivate WARNING: This option bypasses the confirmation + prompt and automatically deactivates your + property on the network. -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Check activation status Checks status of previously initiated activation. -``` - Usage: check-activation-status|cs [options] -``` - Check status of activation of a PM CLI property. -``` + + Usage: akamai property-manager check-activation-status|cs [options] + + Check the activation status of a property. + Options: - -p, --property PM CLI property name - -w, --wait-for-activate Return after activation of a PM CLI property is active. + -p, --property Property name. Optional if default property + was previously set using set-default. + -w, --wait-for-activate Prevents you from entering more commands until + activation is complete. May take several + minutes. -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Show Default Show default property and section name in snippetSettings.json. -``` - Usage: show-defaults|sf [options] -``` - Show default settings for this workspace -``` + + Usage: akamai property-manager show-defaults|sf [options] + + Displays the current default settings for this workspace. + Options: -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Set Default Sets default property and section name in snippetsSettings.json. For all commands involving an existing property one can omit the -p [property-name] option -``` - Usage: set-default|sd [options] -``` - Set the default PM CLI property and or the default section name from .edgerc - ``` + + Usage: akamai property-manager set-default|sd [options] + + Set the default property and the default section name from the .edgerc file. + Options: - -p, --property Set default property name - -s, --section
Set default section name from edgerc file - -f, --format Select output format, allowed values are 'json' or 'table' - -e, --emails Set default notification emails as comma separated list - -h, --help output usage information - ``` + -a, --accountSwitchKey Enter the account ID you want to use when running commands. The account persists for all pipeline commands until you change it. + -e, --emails Enter the email addresses to send notifications to as a comma-separated list. + -f, --format Select output format for commands, either 'table', the default, or 'json'. + -p, --property Set the default property to use with commands. + -s, --section
The section of the .edgerc file that contains the user profile, or client ID, to use with commands. + -h, --help output usage information + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## List contracts List contracts available to client ID. The output is in form of a table. -``` - Usage: list-contracts|lc [options] - ``` - List contracts available to current user credentials and setup -``` + + Usage: akamai property-manager list-contracts|lc [options] + + List contracts available based on the current user credentials and setup. + Options: -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## List products List products available under provided contract ID and client ID. The output is in form of a table. -``` - Usage: list-products|lp [options] -``` - List products available under provided contract ID and client ID available to current user credentials and setup -``` + + Usage: akamai property-manager list-products|lp [options] + + List products available based on the current user credentials and contract ID. + Options: - -c, --contractId Contract ID + -c, --contractId Contract ID. -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## List groups List groups client ID has access to. The output is in form of a table. -``` - Usage: list-groups|lg [options] -``` - List groups available to current user credentials and setup -``` + + Usage: akamai property-manager list-groups|lg [options] + + List groups available based on the current user credentials (clientId). + Options: -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## List cpcodes. List cpcodes for provided contract ID and group ID. -``` - Usage: list-cpcodes|lcp [options] -``` - List cpcodes available to current user credentials and setup. -``` + + Usage: akamai property-manager list-cpcodes|lcp [options] + + List CP codes available based on the current user credentials and setup. + Options: - -c, --contractId Contract ID - -g, --groupId Group ID + -c, --contractId Contract ID. + -g, --groupId Group ID. -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## List Edge hostnames List edge hostnames available under provided contract ID and group ID (this could be a long list). -``` - Usage: list-edgehostnames|leh [options] -``` - List edge hostnames available to current user credentials and setup (this could be a long list). -``` + + Usage: akamai property-manager list-edgehostnames|leh [options] + + List edge hostnames available based on current user credentials and setup. May return a long list of hostnames. + Options: - -c, --contractId Contract ID - -g, --groupId Group ID + -c, --contractId Contract ID. + -g, --groupId Group ID. -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Search Searches for existing property by name. Does not support wild cards, the name needs to be exact. -``` - Usage: search|s [options] -``` - Search for properties by name -``` + + Usage: akamai property-manager search|s [options] + + Search for properties by name. + Options: -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Set Prefixes Set or unset id prefixes in responses. Instead of IDs with prefix like act_ACCT-ID or grp_2342 responses will only contain the id, @@ -268,39 +373,52 @@ details with the communication between client and REST end points. The value is stored with options of the currently used client id. If the users uses multiple client ids, they would have to call set-prefixes for each client id. *Caution: this will also affect any other REST client implemented by user using the same client id!* -``` - Usage: set-prefixes|sp [options] -``` - Set or unset use of prefixes [true|false] for current user credentials and setup -``` + + Usage: akamai property-manager set-prefixes|sp [options] + + Boolean. Enter `true` to use the Property Manager ID prefixes with ID values. Enter `false` to disable them. For prefixes used, see: https://developer.akamai.com/api/core_features/property_manager/v1.html#prefixes. + Options: -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Set Rule Format Sets the default rule format for creating new properties. This value is stored per client id. *Caution: this will also affect any other REST client implemented by user using the same client id!* -``` - Usage: set-ruleformat|srf [options] -``` - Set ruleformat for current user credentials and setup -``` + + Usage: akamai property-manager set-ruleformat|srf [options] + + Set the rule format to use for the user credentials and setup. Enter `latest` for the most current rule format. For a list of earlier rule formats, see: https://developer.akamai.com/api/core_features/property_manager/v1.html#versioning. + Options: -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Show rule tree Download and print out the rule tree for provided property (default or provided by -p option). -The rule tree is generated by the SDK and stored in the dist folder. -Also, one can use the ```show-ruletree -p >> ``` to store it into a local file. +For the most part this command is useless, since the rule tree is generated by the SDK and stored in the dist folder. This command might get removed in the future or expanded in some way to make it more useful. -``` - Usage: show-ruletree|sr [options] -``` - Shows the rule tree of a local property -``` + + Usage: akamai property-manager show-ruletree|sr [options] + + Shows the rule tree for the selected environment. + Options: - -p, --property property name + -p, --property Property name. Optional if a default property + was set using the set-default command. + --propver Optional. Enter a property version. Uses + latest version if not specified. + --file Optional. Enter a filename to save the command + output to. The output is in JSON format. -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + \ No newline at end of file diff --git a/docs/pipeline_commands_help.md b/docs/pipeline_commands_help.md index 6c91395..4c4f73b 100644 --- a/docs/pipeline_commands_help.md +++ b/docs/pipeline_commands_help.md @@ -4,274 +4,304 @@ ## General Pipeline help Use akamai pl help to get general help about all pipeline commands. -``` - Usage: akamai pl [options] [command] -``` - Akamai Pipeline. The command assumes that your current working directory is the pipeline space under which all pipelines reside - -``` + Usage: akamai pipeline [options] [command] + + Akamai Pipeline. Run these commands from the directory that contains all of your pipelines. + Options: -V, --version output the version number - -v, --verbose Verbose output, show logging on stdout - -s, --section
Section name representing Client ID in .edgerc file, defaults to "credentials" - -f, --format Select output format, allowed values are 'json' or 'table' + -f, --format Select output format for commands, either 'table', the default, or 'json'. + -s, --section
The section of the .edgerc file that contains the user profile, or client ID, to use for the command. If not set, uses the `default` settings in the .edgerc file. + -v, --verbose Show detailed log information for the command. + --edgerc Optional. Enter the location of the edgerc.config file used for credentials. If not set, uses the .edgerc file in the project directory if present. Otherwise, uses the .edgerc file in your home directory. + --workspace Optional. Enter the directory containing all property and project files. If not set, uses the value of the AKAMAI_PROJECT_HOME environment variable if present.Otherwise, uses the current working directory as the workspace. -h, --help output usage information Commands: - new-pipeline|np [options] [environments...] Create a new pipeline with provided attributes. This will also create one property for each environment. - set-default|sd [options] Set the default pipeline and or the default section name from .edgerc - show-defaults|sf Show default settings for this workspace - merge|m [options] Merge template json and variable values into a PM/PAPI ruletree JSON document, stored in dist folder in the current pipeline folder - search|s Search for properties by name - set-prefixes|sp Set or unset use of prefixes [true|false] for current user credentials and setup - set-ruleformat|srf Set ruleformat for current user credentials and setup - list-contracts|lc List contracts available to current user credentials and setup - list-products|lp [options] List products available under provided contract ID and client ID available to current user credentials and setup - list-groups|lg List groups available to current user credentials and setup - list-cpcodes|lcp [options] List cpcodes available to current user credentials and setup. - show-ruletree|sr [options] Shows the rule tree of a local property for provided environment - save|sv [options] Save rule tree and hostnames for provided environment. Edge hostnames are also created if needed. - list-edgehostnames|leh [options] List edge hostnames available to current user credentials and setup (this could be a long list). - list-status|lstat [options] Show status of pipeline - promote|pm [options] Promote (activate) an environment. This command also executes the merge and save commands mentioned above by default. - check-promotion-status|cs [options] Check status of promotion (activation) of an environment. + change-ruleformat|crf [options] [environments...] Change the property rule format used by a pipeline or an environment. Enter a space-separated list of environments after the pipeline name to update a subset of environments. + check-promotion-status|cs [options] For the selected environment, check the activation status. + help help command + list-contracts|lc List contracts available based on current user credentials and setup. + list-cpcodes|lcp [options] List CP codes available based on the current user credentials and setup. + list-edgehostnames|leh [options] List edge hostnames available based on current user credentials and setup. May return a long list of hostnames. + list-groups|lg List groups available based on the current user credentials and setup. + list-products|lp [options] List products available based on contract ID, client ID, and the current user credentials and setup. + list-properties|lpr [options] List properties available based on the current user credentials and setup. + list-property-hostnames|lph [options] List hostnames assigned to this property. + list-property-rule-format|lprf [options] List the current rule format for the property. + list-property-variables|lpv [options] List the property's variables. + list-rule-formats|lrf Display the list of available rule formats. + list-status|lstat [options] Show status of the pipeline. + merge|m [options] Merge the pipeline property's template JSON and variable values into a rule tree file. The system stores the resulting JSON file in the pipeline's /dist folder. + new-pipeline|np [options] Create a new pipeline with provided attributes. Separate each environment name with a space. This command creates one property for each environment. + promote|pm [options] Promote, or activate, an environment. By default, this command also executes the merge and save commands. + save|sv [options] Save rule tree and hostnames for the environment you select. Also creates edge hostnames if needed. + search|s Search for properties by name. + set-default|sd [options] Set the default pipeline and the default section of the .edgerc file to use. + set-prefixes|sp Boolean. Enter `true` to enable prefixes with the current user credentials and setup. Enter `false` to disable them. + set-ruleformat|srf Set the rule format to use with the current user credentials and setup. Enter `latest` for the most current rule format. For a list of earlier rule formats, see: https://developer.akamai.com/api/core_features/property_manager/v1.html#versioning + show-defaults|sf Displays the current default settings for this workspace. + show-ruletree|sr [options] For the selected environment, shows local property's rule tree. Run this to store the rule tree in a local file: show-ruletree -p >> help [cmd] display help for [cmd] -``` - + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + + ## Most useful commands in order of assumed importance ## Create new pipeline. A pipeline consists of a pipeline name and 2 or more environment names. In order to create a new pipeline you also need to specify a group Id, product Id and contract Id. These ids can be obtained by using the list-* commands. See below. -``` - Usage: new-pipeline|np [options] [environments...] -``` - Create a new pipeline with provided attributes. This will also create one property for each environment. + Usage: akamai pipeline new-pipeline|np [options] + + Create a new pipeline with provided attributes. Separate each environment name with a space. This command creates one property for each environment. -``` Options: - --retry Assuming command failed last time during execution. Try to continue where it left off. - --dry-run Just parse the parameters and print out the json generated that would normally call the create pipeline function. + -c, --contractId Enter the contract ID to use. If used with the -e option, the CLI takes the contract value from the template property. + -d, --productId Enter the product ID to use. Optional if using -e with a property ID or name. + -e, --propertyId Optional. Use an existing property as the blueprint for new pipeline properties. Enter a property ID or an exact property name. The CLI looks up the group ID, contract ID, and product ID of the existing property and uses that information to create properties for the pipeline. + -g, --groupIds Enter the group IDs for the environments. Optional if using -e with a property ID or name. Provide one group ID if all environments are in the same group. If each environment needs to be in its own group, add a separate -g option for each environment and in the order the environments are listed in. (default: []) + -n, --propver Add only if using a property as a template. Enter the version of the existing property to use as the blueprint. The CLI uses latest version if omitted. -p, --pipeline Pipeline name - -g, --groupIds Group IDs, optional if -e propertyId/Name is used. Provide one groupId if all environments are expected in that same group. If each environment needs to be in its own group, provide the same number of groupIds as environments by using multiple -g options. (default: []) - -c, --contractId Contract ID, optional if -e propertyId/Name is used - -d, --productId Product ID, optional if -e propertyId/Name is used - -e, --propertyId Use existing property as blue print for pipeline templates. Either pass property ID or exact property name. Akamai pipeline will lookup account information like group id, contract id and product id of the existing property and use the information for creating pipeline properties - -n, --version Can be used only if option '-e' is being used. Specify version of existing property being used as blue print, if omitted, use latest - --secure Make new pipeline secure, all environment properties are going to be secure - --insecure Make all environment properties not secure - --custom-property-name To use custom property names - --associate-property-name To use existing properties in the pipeline - --variable-mode Choose how your new pipeline will pull in variable. Allowed values are 'default', 'no-var', and 'user-var-value'. Only works when creating a pipeline from an existing property + --associate-property-name Use an existing property with the new pipeline. When using, make sure your entry matches the property name exactly. + --custom-property-name Give the existing property a custom name used only with the pipeline. + --dry-run Add only if using a property as a template. Displays the JSON generated by the current command as currently written. + --insecure Makes all new environment properties HTTP, not secure HTTPS. + --retry Use if the command failed during execution. Tries to continue where the command left off. + --secure Makes new pipeline and all environment properties use secure HTTPS. + --variable-mode If creating a pipeline from an existing property, choose how your new pipeline will pull in variables from that property. Allowed values are ${printAllowedModes()}. -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Merge Merge template json and environment variable values into a PM/PAPI rule tree JSON document, stored in dist folder in the current pipeline folder. This command also calls validate on the PAPI end point. -``` - Usage: merge|m [options] -``` + Usage: akamai pipeline merge|m [options] + + Merge the pipeline property's template JSON and variable values into a rule tree file. The system stores the resulting JSON file in the pipeline's /dist folder. - Merge template json and variable values into a PM/PAPI ruletree JSON document, stored in dist folder in the current pipeline folder - -``` Options: - -p, --pipeline Pipeline name - -n, --no-validate Don't call validation end point. Just run merge. + -n, --no-validate Merge the environment without validating. + -p, --pipeline Pipeline name. Optional if a default pipeline + was set using set-default. -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Save Store rule tree of provided environment. This will also perform validation. -``` - Usage: save|sv [options] -``` + Usage: akamai pipeline save|sv [options] + + Save rule tree and hostnames for the environment you select. Also creates edge hostnames if needed. - Save rule tree and hostnames for provided environment. Edge hostnames are also created if needed. - -``` Options: - -p, --pipeline pipeline name + -p, --pipeline Pipeline name. Optional if a default pipeline + was set using the set-default command. -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Promote environment Promote (activate property of) an environment. -``` - Usage: promote|pm [options] -``` - - Promote (activate) an environment. This command also executes the merge and save commands mentioned above by default. - -``` + Usage: akamai pipeline promote|pm [options] + + Promote, or activate, an environment. By default, this command also executes the merge and save commands. + Options: - -p, --pipeline pipeline name - -n, --network Network, either 'production' or 'staging', can be abbreviated to 'p' or 's' - -e, --emails Comma separated list of email addresses. Optional if default emails were previously set with set-default - -m, --message Promotion message passed to activation backend - -w, --wait-for-activate Return after promotion of an environment is active. - --force Force command is deprecated, out of sequence activations are now allowed by default. + -e, --emails Comma-separated list of email addresses. + Optional if default emails were set using the + set-default command. + -p, --pipeline Pipeline name. Optional if default pipeline + was set using the set-default command. + -m, --message Enter a message describing changes made to + the environment. + --note (Alias of --message) Enter a message + describing changes made to the environment. + -n, --network Network, either 'production' or 'staging'. You + can shorten 'production' to 'prod' or 'p' and + 'staging' to 'stage' or 's'. + -w, --wait-for-activate Prevents you from entering more commands until + promotion is complete. May take several + minutes. + --force Deprecated. Out-of-sequence activations are + now allowed by default. -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Check promotion status Checks status of previously initiated promotion. If the underlying property activation is complete, the environment is considered promoted. -``` - Usage: check-promotion-status|cs [options] -``` - - Check status of promotion (activation) of an environment. + Usage: akamai pipeline check-promotion-status|cs [options] + + For the selected environment, check the activation status. -``` Options: - -p, --pipeline pipeline name - -w, --wait-for-activate Return after promotion of an environment is active. + -p, --pipeline Pipeline name. Optional if default pipeline + was set using the set-default command. + -w, --wait-for-activate Prevents you from entering more commands until + promotion is complete. May take several + minutes. -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Show status Lists or shows status of each environment of the provided (or default) pipeline. Output format is a table. -``` - Usage: list-status|lstat [options] -``` - - Show status of pipeline - -``` + Usage: akamai pipeline list-status|lstat [options] + + Show status of the pipeline. + Options: - -p, --pipeline pipeline name + -p, --pipeline Pipeline name. -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Show Default Show default pipeline and section name in devopsSettings.json. -``` - Usage: show-defaults|sf [options] -``` - Show default settings for this workspace - -``` + Usage: akamai pipeline show-defaults|sf [options] + + Displays the current default settings for this workspace. + Options: -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Set Default Sets default pipeline and section name in devopsSettings.json. For all commands involving an existing pipeline one can omit the -p [pipeline-name] option -``` - Usage: set-default|sd [options] -``` - - Set the default pipeline and or the default section name from .edgerc - -``` + Usage: akamai pipeline set-default|sd [options] + + Set the default pipeline and the default section of the .edgerc file to use. + Options: - -p, --pipeline Set default pipeline name - -s, --section
Set default section name from edgerc file - -f, --format Select output format, allowed values are 'json' or 'table' - -e, --emails Set default notification emails as comma separated list - -h, --help output usage information -``` + -a, --accountSwitchKey Enter the account ID you want to use when running commands. The account persists for all pipeline commands until you change it. + -e, --emails Enter the email addresses to send notification emails to as a comma-separated list + -f, --format Select output format for commands, either 'table', the default, or 'json'. + -p, --pipeline Set the default pipeline to use with commands. + -s, --section
The section of the .edgerc file that contains the user profile, or client ID, to use with commands. + -h, --help output usage information + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## List contracts List contracts available to client ID. The output is in form of a table. -``` - Usage: list-contracts|lc [options] -``` - List contracts available to current user credentials and setup - -``` + Usage: akamai pipeline list-contracts|lc [options] + + List contracts available based on current user credentials and setup. + Options: -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## List products List products available under provided contract ID and client ID. The output is in form of a table. -``` - Usage: list-products|lp [options] -``` - - List products available under provided contract ID and client ID available to current user credentials and setup - -``` + Usage: akamai pipeline list-products|lp [options] + + List products available based on contract ID, client ID, and the current user credentials and setup. + Options: - -c, --contractId Contract ID + -c, --contractId Contract ID. A contract has a fixed term of + service during which specified Akamai products + and modules are active. -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## List groups List groups client ID has access to. The output is in form of a table. -``` - Usage: list-groups|lg [options] -``` + Usage: akamai pipeline list-groups|lg [options] + + List groups available based on the current user credentials and setup. - List groups available to current user credentials and setup - -``` Options: -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## List cpcodes. List cpcodes for provided contract ID and group ID. -``` - Usage: list-cpcodes|lcp [options] -``` + Usage: akamai pipeline list-cpcodes|lcp [options] + + List CP codes available based on the current user credentials and setup. - List cpcodes available to current user credentials and setup. - -``` Options: - -c, --contractId Contract ID - -g, --groupId Group ID + -c, --contractId Contract ID. + -g, --groupId Group ID. -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation ## List Edge hostnames List edge hostnames available under provided contract ID and group ID (this could be a long list). -``` - Usage: list-edgehostnames|leh [options] -``` + Usage: akamai pipeline list-edgehostnames|leh [options] + + List edge hostnames available based on current user credentials and setup. May return a long list of hostnames. - List edge hostnames available to current user credentials and setup (this could be a long list). - -``` Options: - -c, --contractId Contract ID - -g, --groupId Group ID + -c, --contractId Contract ID. + -g, --groupId Group ID. -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Search Searches for existing property by name. Does not support wild cards, the name needs to be exact. -``` - Usage: search|s [options] -``` + Usage: akamai pipeline search|s [options] + + Search for properties by name. - Search for properties by name - -``` Options: -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Set Prefixes Set or unset id prefixes in responses. Instead of IDs with prefix like act_ACCT-ID or grp_2342 responses will only contain the id, @@ -281,47 +311,47 @@ The value is stored with options of the currently used client id. If the users uses multiple client ids, they would have to call set-prefixes for each client id. *Caution: this will also affect any other REST client implemented by user using the same client id!* -``` - Usage: set-prefixes|sp [options] -``` + Usage: akamai pipeline set-prefixes|sp [options] + + Boolean. Enter `true` to enable prefixes with the current user credentials and setup. Enter `false` to disable them. - Set or unset use of prefixes [true|false] for current user credentials and setup - -``` Options: -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation ## Set Rule Format Sets the default rule format for creating new properties. This value is stored per client id. *Caution: this will also affect any other REST client implemented by user using the same client id!* -``` - Usage: set-ruleformat|srf [options] -``` - - Set ruleformat for current user credentials and setup + Usage: akamai pipeline set-ruleformat|srf [options] + + Set the rule format to use with the current user credentials and setup. Enter `latest` for the most current rule format. For a list of earlier rule formats, see: https://developer.akamai.com/api/core_features/property_manager/v1.html#versioning -``` Options: -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + ## Show rule tree Download and print out the rule tree for provided environment under a pipeline (default or provided by -p option). -The rule tree is generated by the SDK and stored in the dist folder. -Also, one can use the ```show-ruletree -p >> ``` to store it into a local file. +For the most part this command is useless, since the rule tree is generated by the SDK and stored in the dist folder. This command might get removed in the future or expanded in some way to make it more useful. -``` - Usage: show-ruletree|sr [options] -``` - Shows the rule tree of a local property for provided environment - -``` + Usage: akamai pipeline show-ruletree|sr [options] + + For the selected environment, shows local property's rule tree. Run this to store the rule tree in a local file: show-ruletree -p >> + Options: - -p, --pipeline pipeline name + -p, --pipeline Pipeline name. Optional if default pipeline + was set using the set-default command. -h, --help output usage information -``` + + © 2017-2020 Akamai Technologies, Inc. All rights reserved + Visit http://github.com/akamai/cli-property-manager for documentation + \ No newline at end of file diff --git a/package.json b/package.json index 37ec044..5fb0af3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cli-promotional-deployment", - "version": "0.7.0-RELEASE", + "version": "0.7.1-RELEASE", "engines": { "node": ">=8.0.0", "npm": ">=6.13.4" diff --git a/src/cli.js b/src/cli.js index e7d80e3..bc50288 100644 --- a/src/cli.js +++ b/src/cli.js @@ -442,6 +442,7 @@ module.exports = function(cmdArgs = process.argv, procEnv = process.env, const promote = async function(devops, envName, options) { let network = commonCli.checkNetworkName(options); let projectName = devops.extractProjectName(options); + commonCli.handleNotes(options); let data = await devops.promote(projectName, envName, network, options.emails, options.message, options.force); let pending = data.pending; if (devops.devopsSettings.outputFormat === 'table') { @@ -808,6 +809,7 @@ module.exports = function(cmdArgs = process.argv, procEnv = process.env, .option('-e, --emails ', "Comma-separated list of email addresses. Optional if default emails were set using the set-default command.") .option('-p, --pipeline ', 'Pipeline name. Optional if default pipeline was set using the set-default command.') .option('-m, --message ', "Enter a message describing changes made to the environment.") + .option('--note ', "(Alias of --message) Enter a message describing changes made to the environment.") .requiredOption('-n, --network ', "Network, either 'production' or 'staging'. You can shorten 'production' to " + "'prod' or 'p' and 'staging' to 'stage' or 's'.") .option('-w, --wait-for-activate', "Prevents you from entering more commands until promotion is complete. May take several minutes.") .option('--force', "Deprecated. Out-of-sequence activations are now allowed by default.") diff --git a/src/common/common_cli.js b/src/common/common_cli.js index 1c04627..4b75f39 100644 --- a/src/common/common_cli.js +++ b/src/common/common_cli.js @@ -635,5 +635,13 @@ class CommonCli { return allowedVarModes.has(mode); } + handleNotes(options) { + if (options.message && options.note) { + throw new errors.ArgumentError("Cannot use both --message/-m and --note together. --note is an alias of --message", "redundant_options"); + } else if (!options.message && options.note) { + options.message = options.note; + } + } + } module.exports = CommonCli; \ No newline at end of file diff --git a/src/devops.js b/src/devops.js index ddc1e07..aaf5ae1 100644 --- a/src/devops.js +++ b/src/devops.js @@ -358,9 +358,10 @@ class DevOps { } async activateVersion(propertyInfo, network, emails, message) { + let emailSet = this.createEmailSet(emails); let versionInfo = await this.getVersionInfo(propertyInfo); let result = await this.getPAPI().activateProperty(versionInfo.propertyId, - versionInfo.propertyVersion, network, Array.from(emails), message); + versionInfo.propertyVersion, network, Array.from(emailSet), message); let activationId = Environment._extractActivationId(result); return { "propertyId": versionInfo.propertyId, diff --git a/src/pm/property_manager_cli.js b/src/pm/property_manager_cli.js index 334de9c..2b9535b 100644 --- a/src/pm/property_manager_cli.js +++ b/src/pm/property_manager_cli.js @@ -419,6 +419,7 @@ module.exports = function(cmdArgs = process.argv, procEnv = process.env, const activate = async function(devops, options) { let network = commonCli.checkNetworkName(options); let propertyName = devops.extractProjectName(options); + commonCli.handleNotes(options); let data = await devops.promote(propertyName, propertyName, network, options.emails, options.message, options.force); let pending = data.pending; if (devops.devopsSettings.outputFormat === 'table') { @@ -443,6 +444,7 @@ module.exports = function(cmdArgs = process.argv, procEnv = process.env, const activateVersion = async function(devops, options) { let property = devops.extractProjectName(options); + commonCli.handleNotes(options); let propertyInfo = commonCli.checkPropertyIdAndPropertyVersion(property, parseInt(options.propver, 10)); let network = commonCli.checkNetworkName(options); return devops.activateVersion(propertyInfo, network, options.emails, options.message).then(data => { @@ -470,6 +472,7 @@ module.exports = function(cmdArgs = process.argv, procEnv = process.env, */ const deactivate = async function(devops, options) { let runDatv = options.forceDeactivate; + commonCli.handleNotes(options); let propertyName = devops.extractProjectName(options); let network = commonCli.checkNetworkName(options); if (!runDatv) { @@ -542,6 +545,7 @@ Are you sure you want to deactivate the property '${propertyName}' on network '$ const deleteProperty = async function(devops, options) { let runDel = options.forceDelete; + commonCli.handleNotes(options); if (!runDel) { var questions = [{ type: 'confirm', @@ -869,6 +873,7 @@ Are you sure you want to DELETE the property '${options.property}'?`, "Activate the latest version of a property. By default, this command also executes the merge and save commands.") .option('-e, --emails ', "Comma-separated list of email addresses. Optional if default emails were set using the set-default command.") .option('-m, --message ', "Enter a message describing changes made to the property.") + .option('--note ', "(Alias of --message) Enter a message describing changes made to the property.") .requiredOption('-n, --network ', "Network, either 'production' or 'staging'. You can shorten 'production' to " + "'prod' or 'p' and 'staging' to 'stage' or 's'.") .option('-p, --property ', 'Property name. Optional if default property was set using the set-default command.') .option('-w, --wait-for-activate', "Prevents you from entering more commands until activation is complete. May take several minutes.") @@ -886,6 +891,7 @@ Are you sure you want to DELETE the property '${options.property}'?`, "Deactivates a property. Checks if the property is active and then deactivates it.") .option('-e, --emails ', "Comma-separated list of email addresses. Optional if default emails were set using the set-default command.") .option('-m, --message ', "Enter a message describing the reason for deactivating.") + .option('--note ', "(Alias of --message) Enter a message describing the reason for deactivating.") .requiredOption('-n, --network ', "Network, either 'production' or 'staging'. You can shorten 'production' to " + "'prod' or 'p' and 'staging' to 'stage' or 's'.") .option('-p, --property ', 'Property name. Optional if default property was set using the set-default command.') .option('-w, --wait-for-activate', "Prevents you from entering more commands until deactivation is complete. May take several minutes.") @@ -904,6 +910,7 @@ Are you sure you want to DELETE the property '${options.property}'?`, "Activate a specific version of a property. Activates latest if no version specified.") .option('-e, --emails ', "Comma-separated list of email addresses. Optional if default emails were previously set with set-default") .option('-m, --message ', "Activation message passed to activation backend") + .option('--note ', "(Alias of --message) Activation message passed to activation backend") .requiredOption('-n, --network ', "Network, either 'production' or 'staging'. You can shorten 'production' to " + "'prod' or 'p' and 'staging' to 'stage' or 's'.") .option('-p, --property ', 'Property name or ID, Optional if default property was previously set using set-default.') .option(' --propver ', "Optional. The property version to activate. Uses latest version if not specified.") @@ -961,6 +968,7 @@ Are you sure you want to DELETE the property '${options.property}'?`, .command("delete", "Permanently deletes a property. You have to deactivate the property on both networks first.") .requiredOption('-p, --property ', 'Property name or ID.') .requiredOption('-m, --message ', "Enter a message describing the reason for the deletion.") + .requiredOption('--note ', "(Alias of --message) Enter a message describing the reason for the deletion.") .option('--force-delete', 'WARNING: This option bypasses the confirmation prompt and automatically deletes your property.') .on('--help', () => { consoleLogger.debug(footer);