Skip to content

adobe/aio-cli-plugin-cloudmanager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

oclif Version Build Status License Codecov Coverage Known Vulnerabilities

aio-cli-plugin-cloudmanager

Cloud Manager Plugin for the Adobe I/O CLI

Requirements

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

Installation

$ aio plugins:install @adobe/aio-cli-plugin-cloudmanager

Updating

$ aio plugins:update

Configuration

Authentication

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

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:

  1. 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)
  2. 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.

Service Account Authentication

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

Setup for OAuth integration

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

Setup for JWT integration (Deprecated)

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.

Old Service Account Configuration Migration

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

Set Default Program

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

Set Default Environment

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.

Proxy Support

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.

Exit Codes

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

Reporting Issues

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.

Commands

aio cloudmanager:content-flow:cancel FLOWID

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

aio cloudmanager:content-flow:create ENVIRONMENTID CONTENTSETID DESTENVIRONMENTID INCLUDEACL [TIER]

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

aio cloudmanager:content-flow:get CONTENTFLOWID

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

aio cloudmanager:content-set:delete CONTENTSETID

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

aio cloudmanager:content-set:get CONTENTSETID

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

aio cloudmanager:current-execution:advance PIPELINEID

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

aio cloudmanager:current-execution:cancel PIPELINEID

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

aio cloudmanager:current-execution:get PIPELINEID

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

aio cloudmanager:environment:bind-ip-allowlist ENVIRONMENTID IPALLOWLISTID SERVICE

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

aio cloudmanager:environment:delete ENVIRONMENTID

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

aio cloudmanager:environment:download-logs ENVIRONMENTID SERVICE NAME [DAYS]

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

aio cloudmanager:environment:list-available-log-options ENVIRONMENTID

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

aio cloudmanager:environment:list-ip-allowlist-bindings ENVIRONMENTID

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

aio cloudmanager:environment:list-variables ENVIRONMENTID

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

aio cloudmanager:environment:open-developer-console ENVIRONMENTID

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

aio cloudmanager:environment:set-variables ENVIRONMENTID

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

aio cloudmanager:environment:tail-log ENVIRONMENTID SERVICE NAME

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

aio cloudmanager:environment:unbind-ip-allowlist ENVIRONMENTID IPALLOWLISTID SERVICE

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

aio cloudmanager:execution:get-quality-gate-results PIPELINEID EXECUTIONID ACTION

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

aio cloudmanager:execution:get-step-details PIPELINEID EXECUTIONID

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

aio cloudmanager:execution:get-step-log PIPELINEID EXECUTIONID ACTION

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

aio cloudmanager:execution:tail-step-log PIPELINEID ACTION

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

aio cloudmanager:ip-allowlist:bind IPALLOWLISTID ENVIRONMENTID SERVICE

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

aio cloudmanager:ip-allowlist:create NAME

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

aio cloudmanager:ip-allowlist:delete IPALLOWLISTID

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

aio cloudmanager:ip-allowlist:get-binding-details IPALLOWLISTID

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

aio cloudmanager:ip-allowlist:unbind IPALLOWLISTID ENVIRONMENTID SERVICE

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

aio cloudmanager:ip-allowlist:update IPALLOWLISTID

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

aio cloudmanager:list-programs

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

aio cloudmanager:org:list

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

aio cloudmanager:org:select [ORGID]

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

aio cloudmanager:pipeline:create-execution PIPELINEID

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

aio cloudmanager:pipeline:delete PIPELINEID

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

aio cloudmanager:pipeline:invalidate-cache PIPELINEID

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

aio cloudmanager:pipeline:list-executions PIPELINEID

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

aio cloudmanager:pipeline:list-variables PIPELINEID

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

aio cloudmanager:pipeline:set-variables PIPELINEID

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

aio cloudmanager:pipeline:update PIPELINEID

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

aio cloudmanager:program:delete PROGRAMID

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

aio cloudmanager:program:list-content-flows

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

aio cloudmanager:program:list-content-sets

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

aio cloudmanager:program:list-current-executions

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

aio cloudmanager:program:list-environments

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

aio cloudmanager:program:list-ip-allowlists

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

aio cloudmanager:program:list-pipelines

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

Permissions

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

Variables From Standard Input

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

Alternative Flag Inputs

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.

Development

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

Using an Unreleased aio-lib-cloudmanager

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.

End-to-End (E2E) 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

Standalone Use

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 not adobe-cloudmanager-cli.