Skip to content

SolaceLabs/solace-cloud-cli

@dishantlangayan/solace-cloud-cli

The Solace Cloud CLI

oclif Version Downloads/week License

Overview

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.

Usage

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

Configuration

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/

Resources

This is not an officially supported Solace product.

For more information try these resources:

Contributing

Contributions are encouraged! Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Authors

See the list of contributors who participated in this project.

License

See the LICENSE file for details.

Commands

sc help [COMMAND]

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

sc missionctrl broker create

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

sc missionctrl broker delete

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

sc missionctrl broker display

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

sc missionctrl broker list

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

sc missionctrl broker opstatus

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

sc missionctrl broker state

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

sc missionctrl broker update

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

sc platform env create

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

sc platform env delete

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

sc platform env display

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

sc platform env list

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

sc platform env update

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

sc plugins

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

sc plugins add PLUGIN

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

sc plugins:inspect PLUGIN...

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

sc plugins install PLUGIN

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

sc plugins link PATH

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

sc plugins remove [PLUGIN]

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

sc plugins reset

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

sc plugins uninstall [PLUGIN]

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

sc plugins unlink [PLUGIN]

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

sc plugins update

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

About

A command line interface for Solace Cloud built using oclif framework.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages