The Solace Cloud CLI
The Solace Cloud CLI is a command line interface that simplifies deployment and configuration automation when working with your Solace Cloud org and services.
Use it to:
- Create and manage Environments
- Create and manage Mission Control and Event Broker Services
- Script deployment of Solace Cloud resources in your org
The CLI is built using the oclif framework that allows for plugin based development where users can add and extend the functionality of this CLI. For example, a new command can be added that can create and manage VPN Bridges, which uses the SEMP API to provision the bridges across two Message VPN on the same broker or across two brokers.
$ npm install -g @dishantlangayan/solace-cloud-cli
$ sc COMMAND
running command...
$ sc (--version)
@dishantlangayan/solace-cloud-cli/0.1.1 darwin-arm64 node-v24.1.0
$ sc --help [COMMAND]
USAGE
$ sc COMMAND
...To use any commands you will need to configure an Access Token in Solace Cloud Console with the appropriate permissions first. The access token can be set using the follow Environment Variable:
SC_ACCESS_TOKEN=<Your access token>
The following Environment variables are optional:
- SC_API_VERSION - The API version of the Solace Cloud REST API. Default is
v2. - SC_BASE_URL - The location of your Solace Home Cloud account determines the base URL you use. Default is
https://api.solace.cloud/
This is not an officially supported Solace product.
For more information try these resources:
- Ask the Solace Community
- The Solace Developer Portal website at: https://solace.dev
Contributions are encouraged! Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
See the list of contributors who participated in this project.
See the LICENSE file for details.
sc help [COMMAND]sc missionctrl broker createsc missionctrl broker deletesc missionctrl broker displaysc missionctrl broker listsc missionctrl broker opstatussc missionctrl broker statesc missionctrl broker updatesc platform env createsc platform env deletesc platform env displaysc platform env listsc platform env updatesc pluginssc plugins add PLUGINsc plugins:inspect PLUGIN...sc plugins install PLUGINsc plugins link PATHsc plugins remove [PLUGIN]sc plugins resetsc plugins uninstall [PLUGIN]sc plugins unlink [PLUGIN]sc plugins update
Display help for sc.
USAGE
$ sc help [COMMAND...] [-n]
ARGUMENTS
COMMAND... Command to show help for.
FLAGS
-n, --nested-commands Include all nested commands in the output.
DESCRIPTION
Display help for sc.
See code: @oclif/plugin-help
Create an event broker service. You must provide a unique name and select a service class and datacenter. You can optionally define other properties for the event broker service.
USAGE
$ sc missionctrl broker create -d <value> -n <value> -c <value> [--json] [--log-level debug|warn|error|info|trace] [-e
<value>] [-l] [-s <value>] [-m <value>] [-r] [-v <value>]
FLAGS
-c, --service-class-id=<value>
(required) Supported service classes.
-d, --datacenter-id=<value>
(required) The identifier of the datacenter.
-e, --env-name=<value>
The name of the environment environment where you want to create the service.
You can only specify an environment identifier when creating services in a Public Region.
You cannot specify an environment identifier when creating a service in a Dedicated Region.
If no name is provided, the service will be created in the default environment.
-l, --locked
Indicates if you can delete the event broker service after creating it. The default value is false.
-m, --msg-vpn-name=<value>
The message VPN name. A default message VPN name is provided when this is not specified.
-n, --name=<value>
(required) Name of the event broker service to create.
-r, --redundancy-group-ssl-enabled
Enable or disable SSL for the redundancy group (for mate-link encryption). The default value is false (disabled)
-s, --max-spool-usage=<value>
The message spool size, in gigabytes (GB). A default message spool size is provided if this is not specified.
-v, --version=<value>
The event broker version. A default version is provided when this is not specified.
GLOBAL FLAGS
--json Format output as json.
--log-level=<option> [default: info] Specify level for logging.
<options: debug|warn|error|info|trace>
DESCRIPTION
Create an event broker service. You must provide a unique name and select a service class and datacenter. You can
optionally define other properties for the event broker service.
Your token must have one of the permissions listed in the Token Permissions.
Token Permissions: [ `services:post` ]
EXAMPLES
$ sc missionctrl broker create --name=MyBrokerName --datacenter-id=eks-ca-central-1a --service-class-id=DEVELOPER
See code: src/commands/missionctrl/broker/create.ts
Delete a service using its unique identifier.
USAGE
$ sc missionctrl broker delete [--json] [--log-level debug|warn|error|info|trace] [-b <value>] [-n <value>]
FLAGS
-b, --broker-id=<value> Id of the event broker service.
-n, --name=<value> Name of the event broker service.
GLOBAL FLAGS
--json Format output as json.
--log-level=<option> [default: info] Specify level for logging.
<options: debug|warn|error|info|trace>
DESCRIPTION
Delete a service using its unique identifier.
Your token must have one of the permissions listed in the Token Permissions.
Token Permissions: [ `services:delete` **or** `services:delete:self` **or** `mission_control:access` ]
EXAMPLES
$ sc missionctrl broker delete --broker-id=MyBrokerId
$ sc missionctrl broker delete --name=MyBrokerName
See code: src/commands/missionctrl/broker/delete.ts
Get the details of an event broker service using its identifier or name.
USAGE
$ sc missionctrl broker display [--json] [--log-level debug|warn|error|info|trace] [-b <value>] [-n <value>]
FLAGS
-b, --broker-id=<value> Id of the event broker service.
-n, --name=<value> Name of the event broker service.
GLOBAL FLAGS
--json Format output as json.
--log-level=<option> [default: info] Specify level for logging.
<options: debug|warn|error|info|trace>
DESCRIPTION
Get the details of an event broker service using its identifier or name.
Use either the Event Broker's ID (--broker-id) or name of the Event Broker (--name).
Token Permissions: [ `mission_control:access` **or** `services:get` **or** `services:get:self` **or** `services:view`
**or** `services:view:self` ]
EXAMPLES
$ sc missionctrl broker display
See code: src/commands/missionctrl/broker/display.ts
Get a listing of event broker services.
USAGE
$ sc missionctrl broker list [--json] [--log-level debug|warn|error|info|trace] [-n <value>] [--pageNumber <value>]
[--pageSize <value>] [--sort <value>]
FLAGS
-n, --name=<value>
Name of the event broker service to match on.
--pageNumber=<value>
The page number to get. Defaults to 1
--pageSize=<value>
The number of event broker services to return per page. Defaults to 10
--sort=<value>
Sort the returned event broker services by attribute.
You can use the following value formats for the sort order:
* attributes-names
* attributes-names:sort-order
GLOBAL FLAGS
--json Format output as json.
--log-level=<option> [default: info] Specify level for logging.
<options: debug|warn|error|info|trace>
DESCRIPTION
Get a listing of event broker services.
Your token must have one of the permissions listed in the Token Permissions.
Token Permissions: [ `mission_control:access` **or** `services:get` **or** `services:get:self` **or** `services:view`
**or** `services:view:self` ]
EXAMPLES
$ sc missionctrl broker list
$ sc missionctrl broker list --name=MyBrokerName --pageNumber=1 --pageSize=10 --sort=name:asc
See code: src/commands/missionctrl/broker/list.ts
Get the status of all operations being performed on an event broker service.
USAGE
$ sc missionctrl broker opstatus [--json] [--log-level debug|warn|error|info|trace] [-b <value>] [-n <value>] [-p] [-w
<value>]
FLAGS
-b, --broker-id=<value> Id of the event broker service.
-n, --name=<value> Name of the event broker service.
-p, --show-progress Displays a status bar of the in-progress operations. The command will wait for completion of
each step of the operation.
-w, --wait-ms=<value> The milliseconds to wait between API calls for checking progress of the operation. Default is
5000 ms.
GLOBAL FLAGS
--json Format output as json.
--log-level=<option> [default: info] Specify level for logging.
<options: debug|warn|error|info|trace>
DESCRIPTION
Get the status of all operations being performed on an event broker service.
To get the operation status, you must provide the identifier or name of the event broker service.
Token Permissions: [ mission_control:access or services:get or services:get:self or services:view or
services:view:self ]
EXAMPLES
$ sc missionctrl broker opstatus -b <broker-id>
$ sc missionctrl broker opstatus -n <broker-name>
See code: src/commands/missionctrl/broker/opstatus.ts
Get the availability state of an event broker service and the name of the active messaging node using the service's unique identifier.
USAGE
$ sc missionctrl broker state [--json] [--log-level debug|warn|error|info|trace] [-b <value>] [-n <value>]
FLAGS
-b, --broker-id=<value> Id of the event broker service.
-n, --name=<value> Name of the event broker service.
GLOBAL FLAGS
--json Format output as json.
--log-level=<option> [default: info] Specify level for logging.
<options: debug|warn|error|info|trace>
DESCRIPTION
Get the availability state of an event broker service and the name of the active messaging node using the service's
unique identifier.
Your token must have one of the permissions listed in the Token Permissions.
Token Permissions: [ mission_control:access or services:get or services:get:self or services:view or
services:view:self ]
EXAMPLES
$ sc missionctrl broker state --broker-id=MyBrokerServiceId
$ sc missionctrl broker state --name=MyBrokerName
See code: src/commands/missionctrl/broker/state.ts
Update the configuration of an existing event broker service.
USAGE
$ sc missionctrl broker update [--json] [--log-level debug|warn|error|info|trace] [-b <value>] [-l <value>] [-n <value>]
[--new-name <value>]
FLAGS
-b, --broker-id=<value> Id of the event broker service.
-l, --locked=<value> Indicates whether the event broker service has deletion protection enabled. The valid values
are 'true' (enabled) or 'false' (disabled).
-n, --name=<value> Name of the event broker service.
--new-name=<value> New name of the event broker service. The new service name must be unique within an
organization.
GLOBAL FLAGS
--json Format output as json.
--log-level=<option> [default: info] Specify level for logging.
<options: debug|warn|error|info|trace>
DESCRIPTION
Update the configuration of an existing event broker service.
You can provide any combination of supported flags. If a flag is not provided, then it will not be updated.
Your token must have one of the permissions listed in the Token Permissions.
Token Permissions: [ mission_control:access or services:put ]
EXAMPLES
$ sc missionctrl broker update
$ sc missionctrl broker update --broker-id <broker-id> --new-name <new-name>
$ sc missionctrl broker update --name <name> --new-name <new-name>
See code: src/commands/missionctrl/broker/update.ts
Create a new environment.
USAGE
$ sc platform env create -n <value> [--json] [--log-level debug|warn|error|info|trace] [-d <value>] [--isDefault]
[--isProduction]
FLAGS
-d, --description=<value> Description of the environment to create.
-n, --name=<value> (required) Name of the environment to create.
--isDefault Indicates this is the organization's default environment.
--isProduction Indicates this is an organization's production environment.
This is an immutable field. If an environment needs to be migrated,
architecture can be migrated to a new environment with the desired
environment type instead.
GLOBAL FLAGS
--json Format output as json.
--log-level=<option> [default: info] Specify level for logging.
<options: debug|warn|error|info|trace>
DESCRIPTION
Create a new environment.
Token Permissions: [ environments:edit ]
EXAMPLES
$ sc platform env create --name=MyEnvironment --desc="My environment description" --isDefault --isProduction
See code: src/commands/platform/env/create.ts
Delete an environment using either its name or unique identifier. The default environment cannot be deleted.
USAGE
$ sc platform env delete [--json] [--log-level debug|warn|error|info|trace] [-e <value>] [-n <value>]
FLAGS
-e, --env-id=<value> Id of the environment.
-n, --name=<value> Name of the environment.
GLOBAL FLAGS
--json Format output as json.
--log-level=<option> [default: info] Specify level for logging.
<options: debug|warn|error|info|trace>
DESCRIPTION
Delete an environment using either its name or unique identifier. The default environment cannot be deleted.
Token Permissions: [ environments:edit ]
EXAMPLES
$ sc platform env delete --name=MyEnvName
$ sc platform env delete --env-id=MyEnvId
See code: src/commands/platform/env/delete.ts
Display information about an Environment.
USAGE
$ sc platform env display [--json] [--log-level debug|warn|error|info|trace] [-e <value>] [-n <value>]
FLAGS
-e, --env-id=<value> Id of the environment.
-n, --name=<value> Name of the environment.
GLOBAL FLAGS
--json Format output as json.
--log-level=<option> [default: info] Specify level for logging.
<options: debug|warn|error|info|trace>
DESCRIPTION
Display information about an Environment.
Use either the Environment's ID (--env-id) or name of the Environment (--name).
Required token permissions: [ environments:view ]
EXAMPLES
$ sc platform env display --name=MyEnvName
$ sc platform env display --env-id=MyEnvId
See code: src/commands/platform/env/display.ts
Get a list of all Environments.
USAGE
$ sc platform env list [--json] [--log-level debug|warn|error|info|trace] [-n <value>] [-p <value>] [-s <value>]
[--sort <value>]
FLAGS
-n, --name=<value> Name of the environment to match on.
-p, --pageNumber=<value> The page number to get. Defaults to 10
-s, --pageSize=<value> The number of environments to get per page. Defaults to 1
--sort=<value> The query (fieldName:<ASC/DESC>) used to sort the environment list in the response.
GLOBAL FLAGS
--json Format output as json.
--log-level=<option> [default: info] Specify level for logging.
<options: debug|warn|error|info|trace>
DESCRIPTION
Get a list of all Environments.
Required token permissions: [ environments:view ]
EXAMPLES
$ sc platform env list
$ sc platform env list --name=Default --pageNumber=1 --pageSize=10 --sort=name:ASC
See code: src/commands/platform/env/list.ts
Modify an environment's attributes
USAGE
$ sc platform env update [--json] [--log-level debug|warn|error|info|trace] [-d <value>] [-e <value>] [--isDefault] [-n
<value>] [--new-name <value>]
FLAGS
-d, --description=<value> Description of the environment to update.
-e, --env-id=<value> Id of the environment.
-n, --name=<value> Current name of the environment.
--isDefault Indicates this is the organization's default environment. The default value is false.
--new-name=<value> New name of the environment.
GLOBAL FLAGS
--json Format output as json.
--log-level=<option> [default: info] Specify level for logging.
<options: debug|warn|error|info|trace>
DESCRIPTION
Modify an environment's attributes
Use either the Environment's ID (--env-id) or name of the Environment (--name).
Token Permissions: [ environments:edit ]
EXAMPLES
$ sc platform env update --name=MyEnvName --new-name=MyNewEnvName --desc="My description to update" --isDefault
$ sc platform env update --env-id=MyEnvId --new-name=MyNewEnvName --desc="My description to update" --isDefault
See code: src/commands/platform/env/update.ts
List installed plugins.
USAGE
$ sc plugins [--json] [--core]
FLAGS
--core Show core plugins.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
List installed plugins.
EXAMPLES
$ sc plugins
See code: @oclif/plugin-plugins
Installs a plugin into sc.
USAGE
$ sc plugins add PLUGIN... [--json] [-f] [-h] [-s | -v]
ARGUMENTS
PLUGIN... Plugin to install.
FLAGS
-f, --force Force npm to fetch remote resources even if a local copy exists on disk.
-h, --help Show CLI help.
-s, --silent Silences npm output.
-v, --verbose Show verbose npm output.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Installs a plugin into sc.
Uses npm to install plugins.
Installation of a user-installed plugin will override a core plugin.
Use the SC_NPM_LOG_LEVEL environment variable to set the npm loglevel.
Use the SC_NPM_REGISTRY environment variable to set the npm registry.
ALIASES
$ sc plugins add
EXAMPLES
Install a plugin from npm registry.
$ sc plugins add myplugin
Install a plugin from a github url.
$ sc plugins add https://github.com/someuser/someplugin
Install a plugin from a github slug.
$ sc plugins add someuser/someplugin
Displays installation properties of a plugin.
USAGE
$ sc plugins inspect PLUGIN...
ARGUMENTS
PLUGIN... [default: .] Plugin to inspect.
FLAGS
-h, --help Show CLI help.
-v, --verbose
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Displays installation properties of a plugin.
EXAMPLES
$ sc plugins inspect myplugin
See code: @oclif/plugin-plugins
Installs a plugin into sc.
USAGE
$ sc plugins install PLUGIN... [--json] [-f] [-h] [-s | -v]
ARGUMENTS
PLUGIN... Plugin to install.
FLAGS
-f, --force Force npm to fetch remote resources even if a local copy exists on disk.
-h, --help Show CLI help.
-s, --silent Silences npm output.
-v, --verbose Show verbose npm output.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Installs a plugin into sc.
Uses npm to install plugins.
Installation of a user-installed plugin will override a core plugin.
Use the SC_NPM_LOG_LEVEL environment variable to set the npm loglevel.
Use the SC_NPM_REGISTRY environment variable to set the npm registry.
ALIASES
$ sc plugins add
EXAMPLES
Install a plugin from npm registry.
$ sc plugins install myplugin
Install a plugin from a github url.
$ sc plugins install https://github.com/someuser/someplugin
Install a plugin from a github slug.
$ sc plugins install someuser/someplugin
See code: @oclif/plugin-plugins
Links a plugin into the CLI for development.
USAGE
$ sc plugins link PATH [-h] [--install] [-v]
ARGUMENTS
PATH [default: .] path to plugin
FLAGS
-h, --help Show CLI help.
-v, --verbose
--[no-]install Install dependencies after linking the plugin.
DESCRIPTION
Links a plugin into the CLI for development.
Installation of a linked plugin will override a user-installed or core plugin.
e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
command will override the user-installed or core plugin implementation. This is useful for development work.
EXAMPLES
$ sc plugins link myplugin
See code: @oclif/plugin-plugins
Removes a plugin from the CLI.
USAGE
$ sc plugins remove [PLUGIN...] [-h] [-v]
ARGUMENTS
PLUGIN... plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ sc plugins unlink
$ sc plugins remove
EXAMPLES
$ sc plugins remove myplugin
Remove all user-installed and linked plugins.
USAGE
$ sc plugins reset [--hard] [--reinstall]
FLAGS
--hard Delete node_modules and package manager related files in addition to uninstalling plugins.
--reinstall Reinstall all plugins after uninstalling.
See code: @oclif/plugin-plugins
Removes a plugin from the CLI.
USAGE
$ sc plugins uninstall [PLUGIN...] [-h] [-v]
ARGUMENTS
PLUGIN... plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ sc plugins unlink
$ sc plugins remove
EXAMPLES
$ sc plugins uninstall myplugin
See code: @oclif/plugin-plugins
Removes a plugin from the CLI.
USAGE
$ sc plugins unlink [PLUGIN...] [-h] [-v]
ARGUMENTS
PLUGIN... plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ sc plugins unlink
$ sc plugins remove
EXAMPLES
$ sc plugins unlink myplugin
Update installed plugins.
USAGE
$ sc plugins update [-h] [-v]
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Update installed plugins.
See code: @oclif/plugin-plugins