Reference: Tools for SL1 PowerFlow

Download this manual as a PDF file

PowerFlow includes the following developer tools to help you manage content:

  • iscli. PowerFlow includes a command line tool called iscli. When you install PowerFlow, iscli is automatically installed. The iscli tool allows you to upload PowerFlow applications, steps, and configurations.

  • PowerFlow API. PowerFlow includes an API. When you install PowerFlow, the API is available.

In addition, you can contact your ScienceLogic Customer Success Manager (CSM) to get access to the following tools, which are not included in a PowerFlow system:

  • PowerFlow SyncPack Cookiecutter. Provides a template that you can use to create SyncPacks in a repeatable manner. For more information see Generating the SyncPack Structure.
  • PowerFlow SyncPack SDK. Contains a functional environment for developing and testing SyncPacks without the need for a full PowerFlow System. For more information see Using the PowerFlow SyncPack SDK.
  • PowerFlow SyncPack Pytest Fixtures. Allows unit test coverage of individual steps without the need for a full PowerFlow system. Included into the PowerFlow SyncPack SDK. For more information see PowerFlow SyncPack Pytest Fixtures.

iscli

PowerFlow includes a command line tool called iscli. When you install PowerFlow, iscli is automatically installed. The iscli tool allows you to upload PowerFlow applications, steps, and configurations.

To access the iscli tool:

  • Either go to the console of the PowerFlow system or use SSH to access the server.

  • Log in as isadmin with the appropriate password.

  • Type the following at the command line:

    iscli -h

Syntax

To upload a step:

iscli -u -s -f <path_and_name_of_step_file>.py -H <hostname_or_IP_address_of_powerflow> -P <port_number_of_http_on_powerflow> -U <user_name> -p password

where

  • <path_and_name_of_step_file> is the full pathname for the step.
  • <hostname_or_IP_address_of_powerflow> is the hostname or IP address of PowerFlow.
  • <port_number_of_http_on_powerflow> is the port number to access PowerFlow. The default value is 443.
  • <user_name> is the user name you use to log in to PowerFlow.
  • password is the password you use to log in to PowerFlow.

To upload an application:

iscli -u -a -f <path_and_name_of_application_file>.py -H <hostname_or_IP_address_of_powerflow> -P <port_number_of_http_on_powerflow> -U <user_name> -p password

where:

  • <path_and_name_of_application_file> is the full pathname for the application.
  • <hostname_or_IP_address_of_powerflow> is the hostname or IP address of PowerFlow.
  • <port_number_of_http_on_powerflow> is the port number to access PowerFlow. The default value is 443.
  • <user_name> is the user name you use to log in to PowerFlow.
  • password is the password you use to log in to PowerFlow.

To upload a configuration object:

iscli -u -c -f <path_and_name_of_configuration_file>.py -H <hostname_or_IP_address_of_PowerFlow> -P <port_number_of_http_on_PowerFlow> -U <user_name> -p <password>

where:

  • <path_and_name_of_configuration_file> is the full pathname for the step.
  • <hostname_or_IP_address_of_PowerFlow> is the hostname or IP address of the PowerFlow system.
  • <port_number_of_http_on_PowerFlow> is the port number to access the PowerFlow system. The default value is 443.
  • <user_name> is the user name you use to log in to the PowerFlow system.
  • <password> is the password you use to log in to the PowerFlow system.

List of Arguments

The following is a list of arguments you can use in the iscli tool:

  • -h or --help. Help message.
  • -H or --host. Hostname of content store. If left blank, default from config is used.
  • -P or --port. Port of content store. If left blank, default from config is used.
  • -U or --username. Username used to access content store. If left blank, default is used.
  • -p or --password. Password used to access content store. If left blank, default is used.
  • -u or --upload. Upload data to content store. Requires -f tag and a version to be used.
  • -f or --fileLocation. File path of SyncPacks, PowerFlow applications, steps, and configuration objects to upload. Note that while you can bulk upload applications, steps, and configuration objects, you cannot bulk upload SyncPacks.
  • -c or --configuration.
  • -a or --application. Use the iscli tool to interact with an application.
  • -s or --step. Use the iscli tool to interact with a step.
  • -i or --insecure. Upload with an insecure (http) connection.

  • -k or --syncpack. Use the iscli tool to interact with a SyncPack.

  • -A or --activate. Activate a SyncPack. Requires -n, -v tag. -F is optional to force the activation and the tag -I to install the SyncPack.

  • -I or --install. Install a SyncPack. Requires -n, -v tag. -F is optional to force the installation.

  • -n or --name. Name of the SyncPack that will be activated.

  • -V or --version. Version of the SyncPack that will be activated.

  • -F or --force. Force a SyncPack activation or installation.

  • -O or --overwrite. Specify if non-SyncPack content will be overwritten.

  • -l or --license. Use the CLI to license your IS system.

  • -e or --email. Licensing: Customer Email.

  • -C or --customer. Licensing: Customer Name.

  • -o or --output. Licensing: Path to output license file.

You will use the following commands most often:

  • Upload an application file. iscli –uaf <application-file>
  • Upload a configuration file. iscli –ucf <configuration-file>
  • Upload a step file. iscli –usf <step-file>

PowerFlow API

PowerFlow includes an API. When you install PowerFlow, the API is available.

Viewing API Documentation

To view the full documentation for the PowerFlow API:

  1. From the PowerFlow system, copy the /opt/iservices/scripts/swagger.yml file to your local computer.
  2. Open a browser session and go to editor.swagger.io.
  3. In the Swagger Editor, open the File menu, select Import File, and import the file swagger.yml. The right pane in the Swagger Editor displays the API documentation.

Available Endpoints

POST

/api/v1/apikeys/. Add a new API key.

/api/v1/applications. Add a new application or overwrite an existing application.

/api/v1/applications/{appName}/run. Run a single application by name with saved or provided configurations.

/api/v1/applications/run. Run a single application by name. 

/api/v1/configurations. Add a new configuration or overwrite an existing configuration.

/api/v1/roles/owner. Add a new owner assigned a specific role.

/api/v1/schedule. Add a new scheduled PowerFlow application.

/api/v1/status. Runs the "PowerFlow Control Tower HealthCheck" application to generate health status data.

/api/v1/steps. Add a new step or overwrite an existing step.

/api/v1/steps/run. Run a single step by name.

/api/v1/syncpacks/{syncpackName}/install. Install a specific SyncPack version by name.

/api/v1/tasks/{taskId}/replay. Replay a specific PowerFlow application. Replayed applications run with the same application variables, configuration, and queue as the originally executed application.

/api/v1/tasks/{taskId}/revoke. Terminate a specific task or application. By default, this command will not terminate the current running task.

/api/v1/tasks/{appId}/revoke. Terminate all tasks associated with a specific application.

/api/v1/me/widgets/{widget_id}. Creates a new widget or updates a existing widget used on the PowerFlow Control Tower page.

GET

/api/v1/about. Retrieve version information about the packages used by this PowerFlow system, including the version of PowerFlow.

/api/v1/apikeys. Retrieve all available API keys saved in the PowerFlow system.

/api/v1/apikeys/{api_key}. Get details of a single API key.

/api/v1/applications. Retrieve a list of all available applications on this PowerFlow system.

/api/v1/applications/{appName}. Retrieve a specific application.

/api/v1/applications/{appName}/logs. Retrieve the logs for the specified application.

/api/v1/cache/{cache_id}. Retrieve a specific cache to gather information about the user interface and the PowerFlow applications.

/api/v1/cache/{cache_key}. Retrieve cache documents, but only if this cache document was explicitly saved to be exposed to the API. You will need to save the cache document using the latest version of the "SaveToCache" step in the Base Steps SyncPack. This step has a step parameter called "read_from_api" that lets you decide whether the cache document can be requested from the API.

/api/v1/configurations. Retrieve a list of all configurations on this PowerFlow system.

/api/v1/configurations/{configName}. Retrieve a specific configuration.

/api/v1/license?type=platform. Retrieve license data for this PowerFlow system.

/api/v1/reports. Retrieve a list of paginated reports.

/api/v1/reports/{reportId}. Retrieve a specific report by ID.

/api/v1/roles. Retrieve a list of available roles on this PowerFlow system.

/api/v1/roles/owner. Retrieve a list of roles assigned to owners on this PowerFlow system.

/api/v1/roles/owner/{owner}. Retrieve the role assigned to a specific owner.

/api/v1/sessions. Retrieve a list of sessions for this PowerFlow system.

/api/v1/sessions/status. Retrieve the Session Management status for this PowerFlow system.

/api/v1/sessions/username/{username}. Retrieve the session IDs for a specific user.

/api/v1/sessions/{session_id}. Retrieve a specific session from Session Management for this PowerFlow system.

/api/v1/schedule. Retrieve a list of all scheduled applications on this PowerFlow system.

/api/v1/status. Retrieve all the health status cache documents without running the "PowerFlow Control Tower HealthCheck" application.

/api/v1/status?all=true. Retrieve all health metrics for PowerFlow services and merge all the health status cache documents to return only one JSON response.

/api/v1/status/{service}. Retrieve all health metrics for a specific PowerFlow service, including the following services: contentapi, couchbase, dexserver, iservices_syncpack_steprunner, iservices_syncpacks_steprunner, pfctl_output, rabbitmq, redis, steprunner. Starting with PowerFlow version 2.6.0, you can run a GET api/v1/status operation that returns all the health status cache documents without running the HealthCheck application.

/api/v1/steps. Retrieve a list of all steps on this PowerFlow system.

/api/v1/steps/{stepName}. Retrieve a specific step.

/api/v1/syncpacks. Retrieve a list of all SyncPacks on this PowerFlow system.

/api/v1/syncpacks/{synpackName}. Retrieve the full details about a specific SyncPack.

/api/v1/syncpacks?only_installed=true. Retrieve a list of only the installed SyncPacks on this system.

/api/v1/syncpacks?only_activated=true. Retrieve a list of only the activated SyncPacks on this system.

/api/v1/tasks/{taskId}. Retrieve a specific task.

/api/v1/webhooks. Retrieve all available webhooks saved in the PowerFlow system.

/api/v1/me/widgets. Returns a list of all installed widgets used on the PowerFlow Control Tower page.

/api/v1/me/widgets/{widget_id}. Returns a specific widget using the specified widget ID.

DELETE

/api/v1/apikeys/{api_key}. Delete an API key.

/api/v1/applications/{appName}. Delete a PowerFlow application by name.

/api/v1/cache/{cache_id}. Delete a cache entry by name.

/api/v1/configurations/{configName}. Delete a configuration by name.

/api/v1/license?type=platform. Delete license data for this PowerFlow system.

/api/v1/me/widgets/{widget_id}. Delete the specified widget used on the PowerFlow Control Tower page.

/api/v1/roles/owner. Delete a specific owner role.

/api/v1/schedule. Delete a scheduled PowerFlow application by ID.

/api/v1/sessions. Delete a list of sessions for this PowerFlow system.

/api/v1/sessions?all=true. Delete all sessions for this PowerFlow system.

/api/v1/sessions/status. Delete the Session Management status for this PowerFlow system.

/api/v1/sessions/username/{username}. Delete the session IDs for a specific user.

/api/v1/sessions/{session_id}. Delete a specific session from Session Management for this PowerFlow system.

/api/v1/reports/{appName}. Delete a specific report by name.

/api/v1/reports/{reportId}. Delete a specific report by report ID.

/api/v1/steps/{stepName}. Delete a specific step by name.

/api/v1/syncpacks/{spName}. Delete a specific SyncPack by name.