Cloud Manager Plugin for the Adobe I/O CLI
- Adobe I/O CLI
- Node.js version compatibility:
- 17.x -- 17.0.0 or higher.
- Use with odd Node versions is not recommended.
Although not recommended for general use, it is possible to use this plugin outside of the Adobe I/O CLI. See Standalone Use below.
$ aio plugins:install @adobe/aio-cli-plugin-cloudmanager
$ aio plugins:update
This CLI supports two modes of authentication: Browser-based and Service Account. The key distinction between these is that when using browser-based authentication, the API calls made through the CLI are done as you and use your permissions whereas when using Service Account authentication, a separate service account is needed and that account may have separate permissions than you personally would when logging into the Cloud Manager UI. In general, Service Account authentication should be primarily used in a scripting context where there is no opportunity to authenticate with a browser, although there may be other situations where the Service Account method is more appropriate even for interactive usage.
Browser-based authentication starts by running this command
aio auth:login
More options for this command are available and are described here.
This command will open a browser window in which you will authenticate using your Adobe Identity.
In addition to the authentication, the CLI needs to know the Adobe Organization Identifer (OrgId). There are two ways to do this:
- By running
aio cloudmanager:org:select
and use the interactive menu. By default this will store the selected organization in the current working directory, but the selection can also be stored globally by passing--global
(see full command documentation below) - By setting the identifier as the configuration
cloudmanager_orgid
, i.e.aio config:set cloudmanager_orgid <myorgid>
Alternatively, if you have selected an organization using aio console:org:select
, that organization will be used.
To use a service account authentication, an integration (aka project) must be created in the Adobe I/O Console which has the Cloud Manager service.
The required type of server-to-server authentication should be Service Account (JWT/OAuth). NOTE: The JWT mode of authentication is deprecated and will be completely removed by Jan,2025. So if you are using JWT integration, it is recommended to migrate to OAuth
After you've created the integration, create a config.json
file on your computer and navigate to the integration Overview page. From this page, copy the values into the file as described below.
//config.json
{
"client_id": "value from your CLI integration (String)",
"client_secrets": ["client secret value from your CLI integration (String)"],
"technical_account_id": "value from your CLI integration (String)",
"technical_account_email": "value from your CLI integration (String)",
"ims_org_id": "value from your CLI integration (String)",
"scopes": [
'openid',
'AdobeID',
'read_organizations',
'additional_info.projectedProductContext',
'read_pc.dma_aem_ams',
.
.
'any other scope from your CLI integration (String)'
],
"oauth_enabled": true
}
Configure the credentials:
aio config:set ims.contexts.aio-cli-plugin-cloudmanager PATH_TO_CONFIG_JSON_FILE --file --json
After you've created the integration, create a config.json
file on your computer and navigate to the integration Overview page. From this page, copy the values into the file as described below.
//config.json
{
"client_id": "value from your CLI integration (String)",
"client_secret": "value from your CLI integration (String)",
"technical_account_id": "value from your CLI integration (String)",
"ims_org_id": "value from your CLI integration (String)",
"meta_scopes": [
"ent_cloudmgr_sdk"
],
"oauth_enabled": false
}
The last bit you need to have at hand is the private certificate you've used to create the integration; you need the private key, not the public one. Now, you are ready to configure the aio
CLI.
First, configure the credentials:
aio config:set ims.contexts.aio-cli-plugin-cloudmanager PATH_TO_CONFIG_JSON_FILE --file --json
Then, configure the private certificate:
aio config:set ims.contexts.aio-cli-plugin-cloudmanager.private_key PATH_TO_PRIVATE_KEY_FILE --file
More information on setting up a Cloud Manager integration in the Adobe I/O console can be found here.
More information on IMS contexts can be found in the documentation of @adobe/aio-lib-ims.
Previous versions of this plugin used the configuration key jwt-auth
. Upon execution, the plugin will automatically migrate these configurations. It will not delete the old configuration however and you may want to run
aio config:del jwt-auth
To clean up any dangling configuration unless it is necessary for other aio plugins.
This migration process is silent by default. You can enable debug logging by running any command where the environment variable LOG_LEVEL
is set to debug
, e.g.
LOG_LEVEL=debug aio cloudmanager:list-programs
If you want to avoid passing the program ID flag repeatedly, you can configure it using:
$ aio config:set cloudmanager_programid PROGRAMID
For example
$ aio config:set cloudmanager_programid 4
If you want to avoid passing the environment ID argument repeatedly, you can configure it using:
$ aio config:set cloudmanager_environmentid ENVIRONMENTID
For example
$ aio config:set cloudmanager_environmentid 7
This only works for commands where the environmentId is the first argument.
When used with Adobe I/O CLI 8.2.0 or higher, this plugin can support an HTTP(S) Proxy. See the Adobe I/O CLI release announcement for more information.
Primarily for scripting application purposes, the following exit codes are used:
- 1 - A generic error has occurred
- 2 - A configuration error has occurred
- 3 - A validation error with the supplied flags or arguments has occurred
- 10 - An error in IMS authentication has occurred
- 30 - An error emanating from the Cloud Manager SDK has occurred
In general, issues with this plugin should be reported in this project via GitHub issues using one of the provided issue templates. Errors emanating from the Cloud Manager API (i.e. those with exit code 30 as described above) should be reported to Adobe support. The error output will generally contain the URL, response code, and other debug information that is necessary to identify and resolve the issue.
aio cloudmanager:content-flow:cancel FLOWID
aio cloudmanager:content-flow:create ENVIRONMENTID CONTENTSETID DESTENVIRONMENTID INCLUDEACL [TIER]
aio cloudmanager:content-flow:get CONTENTFLOWID
aio cloudmanager:content-set:delete CONTENTSETID
aio cloudmanager:content-set:get CONTENTSETID
aio cloudmanager:current-execution:advance PIPELINEID
aio cloudmanager:current-execution:cancel PIPELINEID
aio cloudmanager:current-execution:get PIPELINEID
aio cloudmanager:environment:bind-ip-allowlist ENVIRONMENTID IPALLOWLISTID SERVICE
aio cloudmanager:environment:delete ENVIRONMENTID
aio cloudmanager:environment:download-logs ENVIRONMENTID SERVICE NAME [DAYS]
aio cloudmanager:environment:list-available-log-options ENVIRONMENTID
aio cloudmanager:environment:list-ip-allowlist-bindings ENVIRONMENTID
aio cloudmanager:environment:list-variables ENVIRONMENTID
aio cloudmanager:environment:open-developer-console ENVIRONMENTID
aio cloudmanager:environment:set-variables ENVIRONMENTID
aio cloudmanager:environment:tail-log ENVIRONMENTID SERVICE NAME
aio cloudmanager:environment:unbind-ip-allowlist ENVIRONMENTID IPALLOWLISTID SERVICE
aio cloudmanager:execution:get-quality-gate-results PIPELINEID EXECUTIONID ACTION
aio cloudmanager:execution:get-step-details PIPELINEID EXECUTIONID
aio cloudmanager:execution:get-step-log PIPELINEID EXECUTIONID ACTION
aio cloudmanager:execution:tail-step-log PIPELINEID ACTION
aio cloudmanager:ip-allowlist:bind IPALLOWLISTID ENVIRONMENTID SERVICE
aio cloudmanager:ip-allowlist:create NAME
aio cloudmanager:ip-allowlist:delete IPALLOWLISTID
aio cloudmanager:ip-allowlist:get-binding-details IPALLOWLISTID
aio cloudmanager:ip-allowlist:unbind IPALLOWLISTID ENVIRONMENTID SERVICE
aio cloudmanager:ip-allowlist:update IPALLOWLISTID
aio cloudmanager:list-programs
aio cloudmanager:org:list
aio cloudmanager:org:select [ORGID]
aio cloudmanager:pipeline:create-execution PIPELINEID
aio cloudmanager:pipeline:delete PIPELINEID
aio cloudmanager:pipeline:invalidate-cache PIPELINEID
aio cloudmanager:pipeline:list-executions PIPELINEID
aio cloudmanager:pipeline:list-variables PIPELINEID
aio cloudmanager:pipeline:set-variables PIPELINEID
aio cloudmanager:pipeline:update PIPELINEID
aio cloudmanager:program:delete PROGRAMID
aio cloudmanager:program:list-content-flows
aio cloudmanager:program:list-content-sets
aio cloudmanager:program:list-current-executions
aio cloudmanager:program:list-environments
aio cloudmanager:program:list-ip-allowlists
aio cloudmanager:program:list-pipelines
Cancel the specified flow. The flow has to be running to be canceled.
USAGE
$ aio cloudmanager:content-flow:cancel FLOWID
ARGUMENTS
FLOWID the content flow id
OPTIONS
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:cancel-content-flow
See code: src/commands/cloudmanager/content-flow/cancel.js
Create a content flow
USAGE
$ aio cloudmanager:content-flow:create ENVIRONMENTID CONTENTSETID DESTENVIRONMENTID INCLUDEACL [TIER]
ARGUMENTS
ENVIRONMENTID the environment id
CONTENTSETID Id of content set to use
DESTENVIRONMENTID The destination environment id
INCLUDEACL Include ACLs
TIER [default: author] The tier, for example author
OPTIONS
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:create-content-flow
See code: src/commands/cloudmanager/content-flow/create.js
get content flow
USAGE
$ aio cloudmanager:content-flow:get CONTENTFLOWID
ARGUMENTS
CONTENTFLOWID the content flow id
OPTIONS
-j, --json output in json format
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
-y, --yaml output in yaml format
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:get-content-flow
See code: src/commands/cloudmanager/content-flow/get.js
Delete the specified content set.
USAGE
$ aio cloudmanager:content-set:delete CONTENTSETID
ARGUMENTS
CONTENTSETID the content set id
OPTIONS
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:delete-content-set
See code: src/commands/cloudmanager/content-set/delete.js
get content set
USAGE
$ aio cloudmanager:content-set:get CONTENTSETID
ARGUMENTS
CONTENTSETID the content set id
OPTIONS
-j, --json output in json format
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
-y, --yaml output in yaml format
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:get-content-set
See code: src/commands/cloudmanager/content-set/get.js
advance current pipeline execution either by overriding a waiting quality gate or advancing the approval step
USAGE
$ aio cloudmanager:current-execution:advance PIPELINEID
ARGUMENTS
PIPELINEID the pipeline id
OPTIONS
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:advance-current-execution
See code: src/commands/cloudmanager/current-execution/advance.js
cancel current pipeline execution either by cancelling the current step, rejecting a waiting quality gate, or rejecting the approval step
USAGE
$ aio cloudmanager:current-execution:cancel PIPELINEID
ARGUMENTS
PIPELINEID the pipeline id
OPTIONS
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:cancel-current-execution
See code: src/commands/cloudmanager/current-execution/cancel.js
get pipeline execution
USAGE
$ aio cloudmanager:current-execution:get PIPELINEID
ARGUMENTS
PIPELINEID the pipeline id
OPTIONS
-j, --json output in json format
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
-y, --yaml output in yaml format
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:get-current-execution
See code: src/commands/cloudmanager/current-execution/get.js
Bind an IP Allowlist to an environment
USAGE
$ aio cloudmanager:environment:bind-ip-allowlist ENVIRONMENTID IPALLOWLISTID SERVICE
ARGUMENTS
ENVIRONMENTID the environment id
IPALLOWLISTID the IP allowlist id
SERVICE (author|publish|preview) the service name
OPTIONS
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
See code: src/commands/cloudmanager/environment/bind-ip-allowlist.js
delete environment
USAGE
$ aio cloudmanager:environment:delete ENVIRONMENTID
ARGUMENTS
ENVIRONMENTID the environment id
OPTIONS
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:delete-environment
See code: src/commands/cloudmanager/environment/delete.js
downloads log files for the specified environment, service and log name for one or more days
USAGE
$ aio cloudmanager:environment:download-logs ENVIRONMENTID SERVICE NAME [DAYS]
ARGUMENTS
ENVIRONMENTID the environment id
SERVICE the service
NAME the log name
DAYS [default: 1] the number of days
OPTIONS
-o, --outputDirectory=outputDirectory the output directory. If not set, defaults to the current directory.
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config
value
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:download-logs
See code: src/commands/cloudmanager/environment/download-logs.js
lists available log options for an environment in a Cloud Manager program
USAGE
$ aio cloudmanager:environment:list-available-log-options ENVIRONMENTID
ARGUMENTS
ENVIRONMENTID the environment id
OPTIONS
-j, --json output in json format
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
-y, --yaml output in yaml format
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:list-available-log-options
See code: src/commands/cloudmanager/environment/list-available-log-options.js
lists IP Allowlists bound to an environment
USAGE
$ aio cloudmanager:environment:list-ip-allowlist-bindings ENVIRONMENTID
ARGUMENTS
ENVIRONMENTID the environment id
OPTIONS
-j, --json output in json format
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
-y, --yaml output in yaml format
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:environment:list-bound-ip-allowlists
See code: src/commands/cloudmanager/environment/list-ip-allowlist-bindings.js
lists variables set on an environment
USAGE
$ aio cloudmanager:environment:list-variables ENVIRONMENTID
ARGUMENTS
ENVIRONMENTID the environment id
OPTIONS
-j, --json output in json format
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
-y, --yaml output in yaml format
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:list-environment-variables
See code: src/commands/cloudmanager/environment/list-variables.js
opens the Developer Console, if available, in a browser
USAGE
$ aio cloudmanager:environment:open-developer-console ENVIRONMENTID
ARGUMENTS
ENVIRONMENTID the environment id
OPTIONS
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:open-developer-console
See code: src/commands/cloudmanager/environment/open-developer-console.js
sets variables set on an environment. These are runtime variables available to components running inside the runtime environment. Use set-pipeline-variables to set build-time variables on a pipeline.
USAGE
$ aio cloudmanager:environment:set-variables ENVIRONMENTID
ARGUMENTS
ENVIRONMENTID the environment id
OPTIONS
-d, --delete=delete variables/secrets to delete
-j, --json output in json format
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
-s, --secret=secret secret values in KEY VALUE format
-v, --variable=variable variable values in KEY VALUE format
-y, --yaml output in yaml format
--authorDelete=authorDelete variables/secrets to delete for author service
--authorSecret=authorSecret secret values in KEY VALUE format for author service
--authorVariable=authorVariable variable values in KEY VALUE format for author service
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
--jsonFile=jsonFile if set, read variables from a JSON array provided as a file; variables set through
--variable or --secret flag will take precedence
--jsonStdin if set, read variables from a JSON array provided as standard input; variables set
through --variable or --secret flag will take precedence
--previewDelete=previewDelete variables/secrets to delete for preview service
--previewSecret=previewSecret secret values in KEY VALUE format for preview service
--previewVariable=previewVariable variable values in KEY VALUE format for preview service
--publishDelete=publishDelete variables/secrets to delete for publish service
--publishSecret=publishSecret secret values in KEY VALUE format for publish service
--publishVariable=publishVariable variable values in KEY VALUE format for publish service
--strict performs strict validation of internal variables. Can also be enabled by setting
configuration property cloudmanager.environmentVariables.strictValidation to a
truthy value.
--yamlFile=yamlFile if set, read variables from a YAML array provided as a file; variables set through
--variable or --secret flag will take precedence
--yamlStdin if set, read variables from a YAML array provided as standard input; variables set
through --variable or --secret flag will take precedence
ALIASES
$ aio cloudmanager:set-environment-variables
See code: src/commands/cloudmanager/environment/set-variables.js
outputs a stream of log data for the specified environment, service and log name
USAGE
$ aio cloudmanager:environment:tail-log ENVIRONMENTID SERVICE NAME
ARGUMENTS
ENVIRONMENTID the environment id
SERVICE the service
NAME the log name
OPTIONS
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:tail-logs
$ aio cloudmanager:tail-log
See code: src/commands/cloudmanager/environment/tail-log.js
Bind an IP Allowlist to an environment
USAGE
$ aio cloudmanager:environment:unbind-ip-allowlist ENVIRONMENTID IPALLOWLISTID SERVICE
ARGUMENTS
ENVIRONMENTID the environment id
IPALLOWLISTID the IP allowlist id
SERVICE (author|publish|preview) the service name
OPTIONS
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
See code: src/commands/cloudmanager/environment/unbind-ip-allowlist.js
get quality gate results
USAGE
$ aio cloudmanager:execution:get-quality-gate-results PIPELINEID EXECUTIONID ACTION
ARGUMENTS
PIPELINEID the pipeline id
EXECUTIONID the execution id
ACTION (codeQuality|security|performance|contentAudit|experienceAudit) the step action
OPTIONS
-j, --json output in json format
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
-y, --yaml output in yaml format
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:get-quality-gate-results
See code: src/commands/cloudmanager/execution/get-quality-gate-results.js
get execution step details
USAGE
$ aio cloudmanager:execution:get-step-details PIPELINEID EXECUTIONID
ARGUMENTS
PIPELINEID the pipeline id
EXECUTIONID the execution id
OPTIONS
-j, --json output in json format
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
-y, --yaml output in yaml format
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:get-execution-step-details
See code: src/commands/cloudmanager/execution/get-step-details.js
get step log
USAGE
$ aio cloudmanager:execution:get-step-log PIPELINEID EXECUTIONID ACTION
ARGUMENTS
PIPELINEID the pipeline id
EXECUTIONID the execution id
ACTION (build|codeQuality|devDeploy|stageDeploy|prodDeploy|buildImage) the step action
OPTIONS
-f, --file=file the alternative log file name. currently only `sonarLogFile` is available (for the
codeQuality step)
-o, --output=output the output file. If not set, uses standard output.
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:get-execution-step-log
See code: src/commands/cloudmanager/execution/get-step-log.js
tail step log
USAGE
$ aio cloudmanager:execution:tail-step-log PIPELINEID ACTION
ARGUMENTS
PIPELINEID the pipeline id
ACTION (build) [default: build] the step action
OPTIONS
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
See code: src/commands/cloudmanager/execution/tail-step-log.js
Bind an IP Allowlist to an environment
USAGE
$ aio cloudmanager:ip-allowlist:bind IPALLOWLISTID ENVIRONMENTID SERVICE
ARGUMENTS
IPALLOWLISTID the IP allowlist id
ENVIRONMENTID the environment id
SERVICE (author|publish|preview) the service name
OPTIONS
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
See code: src/commands/cloudmanager/ip-allowlist/bind.js
Create an IP Allowlist
USAGE
$ aio cloudmanager:ip-allowlist:create NAME
ARGUMENTS
NAME the name to create
OPTIONS
-c, --cidr=cidr (required) a CIDR block
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
See code: src/commands/cloudmanager/ip-allowlist/create.js
Delete an IP Allowlist
USAGE
$ aio cloudmanager:ip-allowlist:delete IPALLOWLISTID
ARGUMENTS
IPALLOWLISTID the id of the allowlist to delete
OPTIONS
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
See code: src/commands/cloudmanager/ip-allowlist/delete.js
list detailed information on IP Allowlist Bindings
USAGE
$ aio cloudmanager:ip-allowlist:get-binding-details IPALLOWLISTID
ARGUMENTS
IPALLOWLISTID the id of the allowlist
OPTIONS
-j, --json output in json format
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
-y, --yaml output in yaml format
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
See code: src/commands/cloudmanager/ip-allowlist/get-binding-details.js
Remove an IP Allowlist binding
USAGE
$ aio cloudmanager:ip-allowlist:unbind IPALLOWLISTID ENVIRONMENTID SERVICE
ARGUMENTS
IPALLOWLISTID the IP allowlist id
ENVIRONMENTID the environment id
SERVICE (author|publish|preview) the service name
OPTIONS
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
See code: src/commands/cloudmanager/ip-allowlist/unbind.js
Update an IP Allowlist by replacing the CIDR blocks
USAGE
$ aio cloudmanager:ip-allowlist:update IPALLOWLISTID
ARGUMENTS
IPALLOWLISTID the id of the allowlist to update
OPTIONS
-c, --cidr=cidr (required) a CIDR block
-j, --json output in json format
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
-y, --yaml output in yaml format
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
See code: src/commands/cloudmanager/ip-allowlist/update.js
lists programs available in Cloud Manager
USAGE
$ aio cloudmanager:list-programs
OPTIONS
-e, --enabledonly only output Cloud Manager-enabled programs
-j, --json output in json format
-y, --yaml output in yaml format
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
See code: src/commands/cloudmanager/list-programs.js
list the organizations in which the current user is authorized to use Cloud Manager
USAGE
$ aio cloudmanager:org:list
OPTIONS
-j, --json output in json format
-y, --yaml output in yaml format
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
See code: src/commands/cloudmanager/org/list.js
select an organization in which the current user is authorized to use Cloud Manager
USAGE
$ aio cloudmanager:org:select [ORGID]
ARGUMENTS
ORGID the org id to store in configuration
OPTIONS
--global stores selected organization in global configuration
See code: src/commands/cloudmanager/org/select.js
start pipeline execution
USAGE
$ aio cloudmanager:pipeline:create-execution PIPELINEID
ARGUMENTS
PIPELINEID the pipeline id
OPTIONS
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
--[no-]emergency create the execution in emergency mode. emergency mode will skip certain steps and is
only available to select AMS customers.
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:create-execution
$ aio cloudmanager:start-execution
See code: src/commands/cloudmanager/pipeline/create-execution.js
delete pipeline
USAGE
$ aio cloudmanager:pipeline:delete PIPELINEID
ARGUMENTS
PIPELINEID the pipeline id
OPTIONS
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:delete-pipeline
See code: src/commands/cloudmanager/pipeline/delete.js
invalidate pipeline cache
USAGE
$ aio cloudmanager:pipeline:invalidate-cache PIPELINEID
ARGUMENTS
PIPELINEID the pipeline id
OPTIONS
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
See code: src/commands/cloudmanager/pipeline/invalidate-cache.js
list pipeline executions
USAGE
$ aio cloudmanager:pipeline:list-executions PIPELINEID
ARGUMENTS
PIPELINEID the pipeline id
OPTIONS
-j, --json output in json format
-l, --limit=limit Specify number of executions to return (defaults to 20)
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
-y, --yaml output in yaml format
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
See code: src/commands/cloudmanager/pipeline/list-executions.js
lists variables set on an pipeline
USAGE
$ aio cloudmanager:pipeline:list-variables PIPELINEID
ARGUMENTS
PIPELINEID the pipeline id
OPTIONS
-j, --json output in json format
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
-y, --yaml output in yaml format
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:list-pipeline-variables
See code: src/commands/cloudmanager/pipeline/list-variables.js
sets variables set on a pipeline. These are build-time variables available during the build process. Use set-environment-variables to set runtime variables on a environment.
USAGE
$ aio cloudmanager:pipeline:set-variables PIPELINEID
ARGUMENTS
PIPELINEID the pipeline id
OPTIONS
-d, --delete=delete variables/secrets to delete
-j, --json output in json format
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid'
config value
-s, --secret=secret secret values in KEY VALUE format
-v, --variable=variable variable values in KEY VALUE format
-y, --yaml output in yaml format
--buildDelete=buildDelete variables/secrets to delete for build service
--buildSecret=buildSecret secret values in KEY VALUE format for build service
--buildVariable=buildVariable variable values in KEY VALUE format for build service
--functionalTestDelete=functionalTestDelete variables/secrets to delete for functionalTest service
--functionalTestSecret=functionalTestSecret secret values in KEY VALUE format for functionalTest service
--functionalTestVariable=functionalTestVariable variable values in KEY VALUE format for functionalTest service
--imsContextName=imsContextName the alternate IMS context name to use instead of
aio-cli-plugin-cloudmanager
--jsonFile=jsonFile if set, read variables from a JSON array provided as a file;
variables set through --variable or --secret flag will take
precedence
--jsonStdin if set, read variables from a JSON array provided as standard input;
variables set through --variable or --secret flag will take
precedence
--loadTestDelete=loadTestDelete variables/secrets to delete for loadTest service
--loadTestSecret=loadTestSecret secret values in KEY VALUE format for loadTest service
--loadTestVariable=loadTestVariable variable values in KEY VALUE format for loadTest service
--uiTestDelete=uiTestDelete variables/secrets to delete for uiTest service
--uiTestSecret=uiTestSecret secret values in KEY VALUE format for uiTest service
--uiTestVariable=uiTestVariable variable values in KEY VALUE format for uiTest service
--yamlFile=yamlFile if set, read variables from a YAML array provided as a file;
variables set through --variable or --secret flag will take
precedence
--yamlStdin if set, read variables from a YAML array provided as standard input;
variables set through --variable or --secret flag will take
precedence
ALIASES
$ aio cloudmanager:set-pipeline-variables
See code: src/commands/cloudmanager/pipeline/set-variables.js
update pipeline
USAGE
$ aio cloudmanager:pipeline:update PIPELINEID
ARGUMENTS
PIPELINEID the pipeline id
OPTIONS
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config
value
--branch=branch the new branch
--devEnvironmentId=devEnvironmentId the new dev environment id
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
--prodEnvironmentId=prodEnvironmentId the new prod environment id
--repositoryId=repositoryId the new repository id
--stageEnvironmentId=stageEnvironmentId the new stage environment id
--tag=tag the new tag
ALIASES
$ aio cloudmanager:update-pipeline
See code: src/commands/cloudmanager/pipeline/update.js
delete program
USAGE
$ aio cloudmanager:program:delete PROGRAMID
ARGUMENTS
PROGRAMID the program id
OPTIONS
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:delete-program
See code: src/commands/cloudmanager/program/delete.js
lists Content flows available in a Cloud Manager program
USAGE
$ aio cloudmanager:program:list-content-flows
OPTIONS
-j, --json output in json format
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
-y, --yaml output in yaml format
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:list-content-flows
See code: src/commands/cloudmanager/program/list-content-flows.js
lists Content sets available in a Cloud Manager program
USAGE
$ aio cloudmanager:program:list-content-sets
OPTIONS
-j, --json output in json format
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
-y, --yaml output in yaml format
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:list-content-sets
See code: src/commands/cloudmanager/program/list-content-sets.js
list running pipeline executions
USAGE
$ aio cloudmanager:program:list-current-executions
OPTIONS
-j, --json output in json format
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
-y, --yaml output in yaml format
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:list-current-executions
See code: src/commands/cloudmanager/program/list-current-executions.js
lists environments available in a Cloud Manager program
USAGE
$ aio cloudmanager:program:list-environments
OPTIONS
-j, --json output in json format
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
-y, --yaml output in yaml format
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:list-environments
See code: src/commands/cloudmanager/program/list-environments.js
lists IP Allowlists available in a Cloud Manager program
USAGE
$ aio cloudmanager:program:list-ip-allowlists
OPTIONS
-j, --json output in json format
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
-y, --yaml output in yaml format
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
See code: src/commands/cloudmanager/program/list-ip-allowlists.js
lists pipelines available in a Cloud Manager program
USAGE
$ aio cloudmanager:program:list-pipelines
OPTIONS
-j, --json output in json format
-p, --programId=programId the programId. if not specified, defaults to 'cloudmanager_programid' config value
-y, --yaml output in yaml format
--imsContextName=imsContextName the alternate IMS context name to use instead of aio-cli-plugin-cloudmanager
ALIASES
$ aio cloudmanager:list-pipelines
See code: src/commands/cloudmanager/program/list-pipelines.js
Information about Cloud Manager API permissions can be found on https://www.adobe.io/experience-cloud/cloud-manager/guides/getting-started/permissions/. To see the
permissions required for a specific command, you can also run any command with the flag --permissions
, e.g.
$ aio cloudmanager:current-execution:advance --permissions
To execute cloudmanager:current-execution:advance, one of the following product profiles is required: Business Owner, Deployment Manager, Program Manager
The environment:set-variables
and pipeline:set-variables
commands allow for variables to be passed both as flags to the command and as a JSON array provided as standard input or as a file. The objects in this array are expected to have a name
, value
, and type
keys following the same syntax as the Cloud Manager API. Deleting a variable can be done by passing an empty value
. For example, given a file named variables.json
that contains this:
[
{
"name" : "MY_VARIABLE",
"value" : "something",
"type" : "string"
},
{
"name" : "MY_SECRET_VARIABLE",
"value" : "shhhh",
"type" : "secretString"
}
]
This can be passed to the pipeline:set-variables
command using a shell command of
$ cat variables.json | aio cloudmanager:pipeline:set-variables 1 --jsonStdin
Or
$ aio cloudmanager:pipeline:set-variables 1 --jsonFile=variables.json
Adobe I/O CLI is based on oclif which supports a variety of patterns for passing flags to commands. See oclif documentation for more information.
For development, it is useful to use aio plugins:link
to link to a local clone of this repository rather than a specific npm module, e.g.
$ git clone [email protected]:adobe/aio-cli-plugin-cloudmanager.git
$ git checkout -B <your feature branch>
$ npm install
$ aio plugins:link
$ aio cloudmanager:<some command>
It may also be useful during development to point to a different API endpoint than https://cloudmanager.adobe.io, e.g. if you have a mock server you are using. For this you can
configure the cloudmanager.base_url
configuration key:
$ aio config:set cloudmanager.base_url https://mydummyapiserver
When new functions are added to aio-lib-cloudmanager, it may be useful to use a local copy of this library during the development of this plugin. This can be done using npm-link as a two-step process:
First, in the aio-lib-cloudmanager
clone directory, run
npm link
And then in the clone of this project, run
npm link @adobe/aio-lib-cloudmanager
To switch back to the released version of aio-lib-cloudmanager
run
npm unlink --no-save @adobe/aio-lib-cloudmanager
npm install
Of course this should not replace proper unit testing.
To execute the end-to-end tests, create a file named .env
in the project directory and configure it with your JWT credentials:
E2E_CLIENT_ID=<CLIENT ID>
E2E_CLIENT_SECRET=<CLIENT SECRET>
E2E_TA_EMAIL=<TECHNICAL ACCOUNT EMAIL>
E2E_IMS_ORG_ID=<ORG ID>
E2E_PRIVATE_KEY_B64=<Base64-Encoded PRIVATE KEY>
Note that the private key must be base64 encoded, e.g. by running
$ base64 -i private.key
To run tests with OAuth credentials, add the following to .env
:
OAUTH_E2E_CLIENT_ID=<CLIENT ID>
OAUTH_E2E_CLIENT_SECRET=<CLIENT SECRET>
OAUTH_E2E_TA_ID=<TECHNICAL ACCOUNT ID>
OAUTH_E2E_TA_EMAIL=<TECHNICAL ACCOUNT EMAIL>
OAUTH_E2E_IMS_ORG_ID=<ORG ID>
With this in place the end-to-end tests can be run with
npm run e2e
In rare circumstances, it may be useful to run this plugin separately from the Adobe I/O CLI. To do this, install this npm module directly, i.e.
npm install -g @adobe/aio-cli-plugin-cloudmanager
This will create an executable named adobe-cloudmanager-cli
on your PATH
. The arguments to this executable are the same as when used through Adobe I/O CLI. The following caveats apply:
- You must still use Adobe I/O CLI for all configuration setting.
- The help messages displayed will show the command as
aio
notadobe-cloudmanager-cli
.