CLI Client

Managing applications

The application command

Using the application command allows you to manage your Scalable Pixel Streaming applications across one or more installations of Scalable Pixel Streaming.

Commands

The following sub-commands are available for the application command:

  • create - Creates a new Application
  • update Updates an Application
  • delete - Deletes an existing Application
  • info - Provides brief information for a specific Application
  • list - Lists one or more Applications

Flags

The following flags are available for the application command:

  • -h, --help - print out help for application command
  • -s, --skeleton - Output the Application configuration JSON template
  • --config - allow overriding the location that the configuration file is loaded from

The --skeleton flag

For a complete reference to the application JSON payload see the Scalable Pixel Streaming REST API documentation.

The --skeleton command allows retrieval of the application JSON payload template. This is useful if your application management needs are more involved that what the pre-defined flags of the CLI tool offer.

You can retrieve a valid application JSON payload template from running the following command:

sps-client application --skeleton

The above command will output a full JSON payload template for an application. The application JSON payload can be saved to a file to be modified and use with the various other application commands.

An example of a JSON application payload

{
        "cloudPlatformParameters": "",
        "hardware": [],
        "name": "",
        "overProvisioning": {
                "instances": 0,
                "nodes": 0
        },
        "resources": {
                "cpu": "",
                "memory": ""
        },
        "signallingServer": {
                "authPluginEndpoint": "",
                "builtinPlugins": {
                        "authentication": {
                                "authType": "noop",
                                "maxReplicas": 10,
                                "minReplicas": 1,
                                "providers": [
                                        {
                                                "name": "",
                                                "oAuthConfig": {
                                                        "endpoint": {},
                                                        "scopes": []
                                                }
                                        }
                                ]
                        },
                        "instanceManager": {
                                "customEndpoints": [],
                                "maxReplicas": 10,
                                "minReplicas": 1
                        }
                },
                "customDomainName": "",
                "maxReplicas": 10,
                "minReplicas": 1,
                "peerConnectionOptions": ""
        }
}

Using the application create command

To create an application using the application create command can be done one of two ways.

  1. Supplying the relevant flags, including the --name flag
  2. Using a file containing the JSON payload of your Application with the --filepath flag

Creating an application using the --name flag

To create an application using the --name flag, run the following command:

sps-client application create --name myapp

If the creation of the application myapp is successful, you should receive output in the form of JSON describing your newly created application. The output should look similar to the following:

{
        "server": "myserver",
        "method": "POST",
        "endpoint": "http://my-sps-server.com/api/v1/application",
        "statusCode": 200,
        "status": "200 OK",
        "response": {
                "cloudPlatformParameters": "",
                "hardware": null,
                "name": "myapp",
                "overProvisioning": {
                        "instances": 0,
                        "nodes": 0
                },
                "resources": {
                        "cpu": null,
                        "memory": null
                },
                "signallingServer": {
                        "authPluginEndpoint": "",
                        "builtinPlugins": {
                                "authentication": {
                                        "authType": "noop",
                                        "maxReplicas": 10,
                                        "minReplicas": 1,
                                        "providers": []
                                },
                                "instanceManager": {
                                        "customEndpoints": null,
                                        "maxReplicas": 10,
                                        "minReplicas": 1
                                }
                        },
                        "customDomainName": "",
                        "maxReplicas": 10,
                        "minReplicas": 1,
                        "peerConnectionOptions": "{\"iceServers\":[{\"urls\":[\"stun:stun.l.google.com:19302\"]}]}"
                },
                "timeCreated": "2023-08-09 06:22:44 +0000 UTC",
                "timeLastUpdated": "2023-08-09 06:22:44 +0000 UTC"
        }
}

If an application named myapp already exists, you should receive output similar to the following:

{
        "server": "myserver",
        "method": "POST",
        "endpoint": "http://my-sps-server.com/api/v1/application",
        "statusCode": 500,
        "status": "500 Internal Server Error",
        "response": "scalablepixelstreamingapplications.sps.tensorworks.com.au \"myapp\" already exists"
}

There are a range of option flags that can be associated with the application create command, for example, if you wanted to limit the number of available CPU’s your application has to 4:

sps-client application create --name myapp --cpu 4

Creating an application using the --filepath flag

The --filepath flag can be used in combination with other application create flags. The flags supplied as part of the command will take precedence over values from the JSON file

Using the --filepath flag requires that you have a JSON file path to feed into this flag. The file should consist of a valid application JSON payload. See the --skeleton flag for information on how to obtain the application JSON payload.

Your application JSON payload does not need to be a complete JSON object, all that is required is the name field. The following application JSON payload is valid, the rest of the fields will be filled in by the server defaults:

{
    "name": "myapp"
}

To create an application using the --filepath flag, run the following command, changing the <path/to/application.json> with your file path:

sps-client application create --filepath <path/to/application.json>

Windows example

An example of using the --filepath flag on Windows:

sps-client application create --filepath "C:\Users\Example\app.json"

Linux example

An example of using the --filepath flag on Linux:

sps-client application create --filepath /home/user/app.json

If the creation of the application myapp is successful, you should receive output in the form of JSON describing your newly created application. The output should look similar to the following:

{
        "server": "myserver",
        "method": "POST",
        "endpoint": "http://my-sps-server.com/api/v1/application",
        "statusCode": 200,
        "status": "200 OK",
        "response": {
                "cloudPlatformParameters": "",
                "hardware": null,
                "name": "myapp",
                "overProvisioning": {
                        "instances": 0,
                        "nodes": 0
                },
                "resources": {
                        "cpu": null,
                        "memory": null
                },
                "signallingServer": {
                        "authPluginEndpoint": "",
                        "builtinPlugins": {
                                "authentication": {
                                        "authType": "noop",
                                        "maxReplicas": 10,
                                        "minReplicas": 1,
                                        "providers": []
                                },
                                "instanceManager": {
                                        "customEndpoints": null,
                                        "maxReplicas": 10,
                                        "minReplicas": 1
                                }
                        },
                        "customDomainName": "",
                        "maxReplicas": 10,
                        "minReplicas": 1,
                        "peerConnectionOptions": "{\"iceServers\":[{\"urls\":[\"stun:stun.l.google.com:19302\"]}]}"
                },
                "timeCreated": "2023-08-09 06:22:44 +0000 UTC",
                "timeLastUpdated": "2023-08-09 06:22:44 +0000 UTC"
        }
}

If an application named myapp already exists, you should receive output similar to the following:

{
        "server": "myserver",
        "method": "POST",
        "endpoint": "http://my-sps-server.com/api/v1/application",
        "statusCode": 500,
        "status": "500 Internal Server Error",
        "response": "scalablepixelstreamingapplications.sps.tensorworks.com.au \"myapp\" already exists"
}

Flags

The following flags are available for the application create command:

  • --all-servers - Run the command on all registered servers
  • --auth-plugin-endpoint - Endpoint to use if connecting to a custom authentication plugin
  • --auth-provider - Specifies the default oAuth2 identity provider
  • --auth-replicas-max - Sets the maximum number of replicas of the authentication plugin
  • --auth-replicas-min - Sets the minimum number of replicas of the authentication plugin
  • --auth-type - Specifies which built-in auth plugin to use, “noop” or “oauth2”
  • --cloud-params - A JSON string with configuration specific to the underlying cloud platform
  • --cloud-params-file - Path to the JSON configuration specific to the underlying cloud platform file
  • --cpu - Specifies the number of CPU cores to be allocated to each instance of the Pixel Streaming application
  • --custom-domain-name - Domain name to access the signalling server and the bundled HTTP server
  • --custom-endpoints - Specifies a list of endpoints for any installed instance customisation plugins
  • -d, --dry-run - Display the JSON payload of the command without executing it
  • -f, --filepath - Path to the application JSON configuration file
  • -h, --help - help for create
  • --im-replicas-max - Sets the maximum number of replicas of the instance manager plugin
  • --im-replicas-min - Sets the minimum number of replicas of the instance manager plugin
  • --memory - Specifies the amount of RAM to be allocated to each instance of the Pixel Streaming application. Enter in ‘#Gi’ format.’
  • -n, --name - Unique application name. When created, the name will be parsed to lower case; any characters outside [^-a-z0-9] regex will be replaced with ‘-‘
  • --overprovisioning-nodes - Number of overprovisioned worker nodes
  • --peer-connection-options - The WebRTC peer connection options. Primarily useful for specifying STUN and TURN servers for the ICE protocol
  • --server - Run the command on a specific server
  • --ss-replicas-max - Sets the maximum number of replicas of the signalling server
  • --ss-replicas-min - Sets the minimum number of replicas of the signalling server
  • --config - allow overriding the location that the configuration file is loaded from

Using the application update command

To update an application using the application update command can be done one of two ways.

  1. Supplying the relevant flags, including the --name flag
  2. Using a file containing the JSON payload of your Application with the --filepath flag

Updating an application using the --name flag

An application name can not be changed once the application has been created. All other fields of an application can be updated.

The command to update an application using the --name flag will vary depending on the specific fields of the application you are wanting to update. For a list of flags, including available application fields that can be updated from the CLI see application update flags.

Example: Updating the active version of an application

One key usage when updating an application is to update the active version. The following is an example of setting the active version of the myapp application to a version named v1:

sps-client application update --name myapp --active-version v1

To learn more about how Scalable Pixel Streaming manages its deployments see Application Deployment Model

Example: Updating allocated resources for an application

If you wanted to update your application myapp to use 8Gi of memory and 3 CPU’s, the command would look like the following:

sps-client application update --name myapp --memory 8Gi --cpu 3

If the updating of the application myapp is successful, you should receive output in the form of JSON describing your newly updated application. The output should look similar to the following:

{
        "server": "sps",
        "method": "PATCH",
        "endpoint": "http://my-sps-server.com/api/v1/application/myapp",
        "statusCode": 200,
        "status": "200 OK",
        "response": {
                "cloudPlatformParameters": "",
                "hardware": null,
                "name": "myapp",
                "overProvisioning": {
                        "instances": 0,
                        "nodes": 0
                },
                "resources": {
                        "cpu": "3",
                        "memory": "8Gi"
                },
                "signallingServer": {
                        "authPluginEndpoint": "",
                        "builtinPlugins": {
                                "authentication": {
                                        "authType": "noop",
                                        "maxReplicas": 10,
                                        "minReplicas": 1,
                                        "providers": []
                                },
                                "instanceManager": {
                                        "customEndpoints": null,
                                        "maxReplicas": 10,
                                        "minReplicas": 1
                                }
                        },
                        "customDomainName": "",
                        "maxReplicas": 10,
                        "minReplicas": 1,
                        "peerConnectionOptions": "{\"iceServers\":[{\"urls\":[\"stun:stun.l.google.com:19302\"]}]}"
                },
                "status": "New",
                "timeCreated": "2023-08-10 03:30:57 +0000 UTC",
                "timeLastUpdated": "2023-08-10 03:31:19 +0000 UTC"
        }
}

Updating an application using the --filepath flag

The --filepath flag can be used in combination with other application update flags. The flags supplied as part of the command will take precedence over values from the JSON file

Using the --filepath flag requires that you have a JSON file path to feed into this flag. The file should consist of a valid application JSON payload. See the --skeleton flag for information on how to obtain the application JSON payload.

Your application JSON payload does not need to be a complete JSON object, all that is required is the name field and any other fields that you are wanting to update. The following application JSON payload is valid, the rest of the fields will be filled in by the server defaults:

{
    "name": "myapp",
    "resources": {
        "cpu": "3",
        "memory": "8Gi"
    }
}

To update an application using the --filepath flag, run the following command, changing the <path/to/application.json> with your file path:

sps-client application update --filepath <path/to/application.json>

Windows example

An example of using the --filepath flag on Windows:

sps-client application update --filepath "C:\Users\Example\app.json"

Linux example

An example of using the --filepath flag on Linux:

sps-client application update --filepath /home/user/app.json

If the updating of the application myapp is successful, you should receive output in the form of JSON describing your newly updated application. The output should look similar to the following:

{
        "server": "sps",
        "method": "PATCH",
        "endpoint": "http://my-sps-server.com/api/v1/application/myapp",
        "statusCode": 200,
        "status": "200 OK",
        "response": {
                "cloudPlatformParameters": "",
                "hardware": null,
                "name": "myapp",
                "overProvisioning": {
                        "instances": 0,
                        "nodes": 0
                },
                "resources": {
                        "cpu": "3",
                        "memory": "8Gi"
                },
                "signallingServer": {
                        "authPluginEndpoint": "",
                        "builtinPlugins": {
                                "authentication": {
                                        "authType": "noop",
                                        "maxReplicas": 10,
                                        "minReplicas": 1,
                                        "providers": []
                                },
                                "instanceManager": {
                                        "customEndpoints": null,
                                        "maxReplicas": 10,
                                        "minReplicas": 1
                                }
                        },
                        "customDomainName": "",
                        "maxReplicas": 10,
                        "minReplicas": 1,
                        "peerConnectionOptions": "{\"iceServers\":[{\"urls\":[\"stun:stun.l.google.com:19302\"]}]}"
                },
                "status": "New",
                "timeCreated": "2023-08-10 03:30:57 +0000 UTC",
                "timeLastUpdated": "2023-08-10 03:31:19 +0000 UTC"
        }
}

Flags

The following flags are available for the application update command:

  • --active-version - Name of a deployed version of this application to be set as Active
  • --all-servers - Run the command on all registered servers
  • --auth-plugin-endpoint - Endpoint to use if connecting to a custom authentication plugin
  • --auth-provider - Specifies the default oAuth2 identity provider
  • --auth-replicas-max - Sets the maximum number of replicas of the authentication plugin
  • --auth-replicas-min - Sets the minimum number of replicas of the authentication plugin
  • --auth-type - Specifies which built-in auth plugin to use, “noop” or “oauth2”
  • --cloud-params - A JSON string with configuration specific to the underlying cloud platform
  • --cloud-params-file - Path to the JSON configuration specific to the underlying cloud platform file
  • --cpu - Specifies the number of CPU cores to be allocated to each instance of the Pixel Streaming application
  • --custom-domain-name - Domain name to access the signalling server and the bundled HTTP server
  • --custom-endpoints - Specifies a list of endpoints for any installed instance customisation plugins
  • -d, --dry-run - Display the JSON payload of the command without executing it
  • -f, --filepath - Path to the application JSON configuration file
  • -h, --help - help for create
  • --im-replicas-max - Sets the maximum number of replicas of the instance manager plugin
  • --im-replicas-min - Sets the minimum number of replicas of the instance manager plugin
  • --memory - Specifies the amount of RAM to be allocated to each instance of the Pixel Streaming application. Enter in ‘#Gi’ format.’
  • -n, --name - Unique application name. When created, the name will be parsed to lower case; any characters outside [^-a-z0-9] regex will be replaced with ‘-‘
  • --overprovisioning-nodes - Number of overprovisioned worker nodes
  • --peer-connection-options - The WebRTC peer connection options. Primarily useful for specifying STUN and TURN servers for the ICE protocol
  • --server - Run the command on a specific server
  • --ss-replicas-max - Sets the maximum number of replicas of the signalling server
  • --ss-replicas-min - Sets the minimum number of replicas of the signalling server
  • --config - allow overriding the location that the configuration file is loaded from

Using the application delete command

To delete an application using the application delete command can be done one of two ways.

  1. Supplying the --name flag
  2. Using a file containing the JSON payload of your Application with the --filepath flag

Deleting an application using the --name flag

To delete an application using the --name flag, run the following command:

sps-client application delete --name myapp

If the deletion of the application myapp is successful, you should receive output that looks similar to the following:

{
        "server": "sps",
        "method": "DELETE",
        "endpoint": "http://my-sps-server.com/api/v1/application/john",
        "statusCode": 200,
        "status": "200 OK"
}

Deleting an application using the --filepath flag

When using the --filepath flag to delete an application, the only field that will be used in the application JSON payload is the name. All other fields will be ignored as they are not used when deleting an application.

Using the --filepath flag requires that you have a JSON file path to feed into this flag. The file should consist of a valid application JSON payload. See the --skeleton flag for information on how to obtain the application JSON payload.

Your application JSON payload does not need to be a complete JSON object, especially if using the application delete command, all that is required is the name field. The following application JSON payload is valid:

{
    "name": "myapp"
}

To delete an application using the --filepath flag, run the following command, changing the <path/to/application.json> with your file path:

sps-client application delete --filepath <path/to/application.json>

Windows example

An example of using the --filepath flag on Windows:

sps-client application delete --filepath "C:\Users\Example\app.json"

Linux example

An example of using the --filepath flag on Linux:

sps-client application delete --filepath /home/user/app.json

If the deletion of the application myapp is successful, you should receive output that looks similar to the following:

{
        "server": "sps",
        "method": "DELETE",
        "endpoint": "http://my-sps-server.com/api/v1/application/john",
        "statusCode": 200,
        "status": "200 OK"
}

The --delete-all flag

The --delete-all command will delete all applications and should be carefully considered when used with the --skip-confirmation and --all-servers flags.

When supplied with the application delete command the --delete-all command will delete all applications for a given server. To delete all applications, run the following command:

sps-client application delete --delete-all

You will be prompted with a confirmation Are you sure you want to delete all? y/n

Answering y if you want to delete or n if you do not want to delete. You can also use the --skip-confirmation flag to skip showing this confirmation entirely.

The --force flag

In a rare circumstance when an application is stuck in DeleteFailed status and won’t delete, add this flag to force-delete it:

sps-client application delete --name myapp --force

Flags

  • --all-servers - Run command on all registered servers
  • --delete-all - all deployed applications
  • -d, --dry-run - Display the JSON payload of the command without executing it
  • -f, --filepath - Path to the application JSON configuration file
  • --force - Force delete an application stuck in DeleteFailed state
  • -h, --help - help for delete
  • -n, --name - Name of the application to be deleted
  • --server - Run command on a specific server
  • --skip-confirmation - Skips the confirmation prompt
  • --config - allow overriding the location that the configuration file is loaded from

Using the application info command

To retrieve application information using the application info command can be done one of two ways.

  1. Supplying the --name flag
  2. Using a file containing the JSON payload of your Application with the --filepath flag

The application info command gives a small summary specific to the details of an applications active version and it’s associated URLs.

Retrieving application information using the --name flag

To retrieve application information using the --name flag, run the following command:

sps-client application info --name myapp

You should receive output in the form of JSON describing your application. The output will vary depending on the current state of your application.

Application without an active version

 {
        "server": "sps",
        "method": "GET",
        "endpoint": "http://my-sps-server.com/api/v1/application/myapp/activeVersion",
        "statusCode": 200,
        "status": "200 OK",
        "response": {
                "activeVersion": {},
                "name": "myapp",
                "status": "New"
        }
}

Application with an active version

{
        "server": "sps",
        "method": "GET",
        "endpoint": "http://my-sps-server.com/api/v1/application/myapp/activeVersion",
        "statusCode": 200,
        "status": "200 OK",
        "response": {
                "activeVersion": {
                        "name": "v1",
                        "status": "Ready"
                },
                "httpServer": {
                        "urls": [
                                "http://my-sps-server.com/myapp"
                        ]
                },
                "name": "myapp",
                "signallingServer": {
                        "urls": [
                                "ws://my-sps-server.com/myapp/ws"
                        ]
                },
                "status": "Running"
        }
}

Retrieving application information using the --filepath flag

Using the --filepath flag requires that you have a JSON file path to feed into this flag. The file should consist of a valid application JSON payload. See the --skeleton flag for information on how to obtain the application JSON payload.

Your application JSON payload does not need to be a complete JSON object, especially if using the application info command, all that is required is the name field. The following application JSON payload is valid:

{
    "name": "myapp"
}

To retrieve application information using the --filepath flag, run the following command, changing the <path/to/application.json> with your file path:

sps-client application info --filepath <path/to/application.json>

Windows example

An example of using the --filepath flag on Windows:

sps-client application info --filepath "C:\Users\Example\app.json"

Linux example

An example of using the --filepath flag on Linux:

sps-client application info --filepath /home/user/app.json

You should receive output in the form of JSON describing your application. The output will vary depending on the current state of your application.

Application without an active version

This provides details of the application and its status. There is not much more information to retrieve at this stage.

{
        "server": "sps",
        "method": "GET",
        "endpoint": "http://my-sps-server.com/api/v1/application/myapp/activeVersion",
        "statusCode": 200,
        "status": "200 OK",
        "response": {
                "activeVersion": {},
                "name": "myapp",
                "status": "New"
        }
}

Application with an active version

This provides details about our active version, including endpoints for accessing the signalling server and optionally deployed http server.

{
        "server": "sps",
        "method": "GET",
        "endpoint": "http://my-sps-server.com/api/v1/application/myapp/activeVersion",
        "statusCode": 200,
        "status": "200 OK",
        "response": {
                "activeVersion": {
                        "name": "v1",
                        "status": "Ready"
                },
                "httpServer": {
                        "urls": [
                                "http://my-sps-server.com/myapp"
                        ]
                },
                "name": "myapp",
                "signallingServer": {
                        "urls": [
                                "ws://my-sps-server.com/myapp/ws"
                        ]
                },
                "status": "Running"
        }
}

Flags

  • --all-servers - Run command on all servers registered
  • -d, --dry-run - Display the JSON payload of the command without executing it
  • -f, --filepath - Path to the SPS application JSON configuration file
  • -h, --help - help for info
  • -n, --name - The name of the SPS application
  • --server - Run command on a specific server
  • --config - allow overriding the location that the configuration file is loaded from

Using the application list command

The application list command can be used in one of two ways:

  1. Running the application list command with no flags to list all applications
  2. Supplying the --name flag to list information for a specific application

The application list command will retrieve all relevant information for an application, including:

  • Any active version information
  • A full list of versions associated with the application
  • A list of current running instances
  • A history of active versions

To list all applications, run the following command:

sps-client application list

The above command will output JSON of a full list of all applications. The output should look similar to the following:

{
        "server": "sps",
        "method": "GET",
        "endpoint": "http://my-sps-server.com/api/v1/application",
        "statusCode": 200,
        "status": "200 OK",
        "response": [
                {
                        "activeVersionInfo": {
                                "activeVersion": {},
                                "name": "myapp",
                                "status": "New"
                        },
                        "cloudPlatformParameters": "",
                        "hardware": null,
                        "name": "myapp",
                        "overProvisioning": {
                                "instances": 0,
                                "nodes": 0
                        },
                        "previousActiveVersions": [
                                {
                                        "name": "",
                                        "replacementTime": "2023-08-14 02:01:53 +0000 UTC"
                                },
                                {
                                        "name": "v1",
                                        "replacementTime": "2023-08-14 02:19:58 +0000 UTC"
                                },
                                {
                                        "name": "",
                                        "replacementTime": "2023-08-14 02:20:31 +0000 UTC"
                                },
                                {
                                        "name": "v1",
                                        "replacementTime": "2023-08-14 02:27:46 +0000 UTC"
                                }
                        ],
                        "resources": {
                                "cpu": "4",
                                "memory": "7Gi"
                        },
                        "signallingServer": {
                                "authPluginEndpoint": "",
                                "builtinPlugins": {
                                        "authentication": {
                                                "authType": "noop",
                                                "maxReplicas": null,
                                                "providers": []
                                        },
                                        "instanceManager": {
                                                "customEndpoints": null
                                        }
                                },
                                "customDomainName": "my-sps-server.com",
                                "peerConnectionOptions": "{\"iceServers\":[{\"urls\":[\"stun:stun.l.google.com:19302\"]}]}"
                        },
                        "status": "New",
                        "timeCreated": "2023-08-10 03:30:57 +0000 UTC",
                        "timeLastUpdated": "2023-08-14 02:27:46 +0000 UTC",
                        "versions": [
                                {
                                        "buildOptions": {
                                                "input": {
                                                        "containerTag": "registry/repo/image:tag",
                                                        "type": "imageTag"
                                                },
                                                "output": {
                                                        "encapsulation": "container"
                                                }
                                        },
                                        "engineVersion": "",
                                        "httpServer": {
                                                "enable": true
                                        },
                                        "name": "v1",
                                        "platform": "linux",
                                        "runtimeOptions": {
                                                "args": null,
                                                "pixelStreaming": {
                                                        "webRTC": {
                                                                "frontendToSendOffer": false,
                                                                "maxFps": 60
                                                        }
                                                },
                                                "resolution": {
                                                        "x": 1920,
                                                        "y": 1080
                                                },
                                                "volumeMounts": null
                                        },
                                        "status": "Ready",
                                        "timeCreated": "2023-08-14 02:01:22 +0000 UTC",
                                        "timeLastUpdated": "2023-08-14 02:01:53 +0000 UTC",
                                        "turnServer": {
                                                "enable": true
                                        }
                                }
                        ]
                },
                {
                        "activeVersionInfo": {
                                "activeVersion": {},
                                "name": "myapp2",
                                "status": "New"
                        },
                        "cloudPlatformParameters": "",
                        "hardware": null,
                        "name": "myapp2",
                        "overProvisioning": {
                                "instances": 0,
                                "nodes": 0
                        },
                        "resources": {
                                "cpu": null,
                                "memory": null
                        },
                        "signallingServer": {
                                "authPluginEndpoint": "",
                                "builtinPlugins": {
                                        "authentication": {
                                                "authType": "noop",
                                                "maxReplicas": 10,
                                                "minReplicas": 1,
                                                "providers": []
                                        },
                                        "instanceManager": {
                                                "customEndpoints": null,
                                                "maxReplicas": 10,
                                                "minReplicas": 1
                                        }
                                },
                                "customDomainName": "",
                                "maxReplicas": 10,
                                "minReplicas": 1,
                                "peerConnectionOptions": "{\"iceServers\":[{\"urls\":[\"stun:stun.l.google.com:19302\"]}]}"
                        },
                        "status": "New",
                        "timeCreated": "2023-08-14 03:00:39 +0000 UTC",
                        "timeLastUpdated": "2023-08-14 03:00:39 +0000 UTC"
                }
        ]
}

Retrieving application information using the --name flag

To retrieve application information using the --name flag, run the following command:

sps-client application list --name myapp

The above command will output JSON for the specified application. The output should look similar to the following:

{
        "server": "sps",
        "method": "GET",
        "endpoint": "http://my-sps-server.com/api/v1/application/myapp",
        "statusCode": 200,
        "status": "200 OK",
        "response": {
                "cloudPlatformParameters": "",
                "hardware": null,
                "name": "myapp",
                "overProvisioning": {
                        "instances": 0,
                        "nodes": 0
                },
                "previousActiveVersions": [
                        {
                                "name": "",
                                "replacementTime": "2023-08-14 02:01:53 +0000 UTC"
                        },
                        {
                                "name": "v1",
                                "replacementTime": "2023-08-14 02:19:58 +0000 UTC"
                        },
                        {
                                "name": "",
                                "replacementTime": "2023-08-14 02:20:31 +0000 UTC"
                        },
                        {
                                "name": "v1",
                                "replacementTime": "2023-08-14 02:27:46 +0000 UTC"
                        }
                ],
                "resources": {
                        "cpu": "4",
                        "memory": "7Gi"
                },
                "signallingServer": {
                        "authPluginEndpoint": "",
                        "builtinPlugins": {
                                "authentication": {
                                        "authType": "noop",
                                        "maxReplicas": null,
                                        "providers": []
                                },
                                "instanceManager": {
                                        "customEndpoints": null
                                }
                        },
                        "customDomainName": "my-sps-server.com",
                        "peerConnectionOptions": "{\"iceServers\":[{\"urls\":[\"stun:stun.l.google.com:19302\"]}]}"
                },
                "status": "New",
                "timeCreated": "2023-08-10 03:30:57 +0000 UTC",
                "timeLastUpdated": "2023-08-14 02:27:46 +0000 UTC",
                "versions": [
                        {
                                "buildOptions": {
                                        "input": {
                                                "containerTag": "registry/repo/image:tag",
                                                "type": "imageTag"
                                        },
                                        "output": {
                                                "encapsulation": "container"
                                        }
                                },
                                "engineVersion": "",
                                "httpServer": {
                                        "enable": true
                                },
                                "name": "v1",
                                "platform": "linux",
                                "runtimeOptions": {
                                        "args": null,
                                        "pixelStreaming": {
                                                "webRTC": {
                                                        "frontendToSendOffer": false,
                                                        "maxFps": 60
                                                }
                                        },
                                        "resolution": {
                                                "x": 1920,
                                                "y": 1080
                                        },
                                        "volumeMounts": null
                                },
                                "status": "Ready",
                                "timeCreated": "2023-08-14 02:01:22 +0000 UTC",
                                "timeLastUpdated": "2023-08-14 02:01:53 +0000 UTC",
                                "turnServer": {
                                        "enable": true
                                }
                        }
                ]
        }
}

Flags

  • --all-servers - Run command on all servers registered
  • -d, --dry-run - Display the JSON payload of the command without executing it
  • -h, --help - help for list
  • -n, --name - The name of the SPS application
  • --server - Run command on a specific server
  • --config - allow overriding the location that the configuration file is loaded from