Taking Snapshots from the Command Line

To upload snapshots to Turbot Pipes, you must either log in via the powerpipe login command or create an API token and pass it via the --pipes-token argument or PIPES_TOKEN environment variable.

To take a snapshot and save it to Turbot Pipes, simply add the --snapshot flag to your run command.

You can take a snapshot of a dashboard:

or a benchmark:

or a control:

or a query:

including named queries:

Sharing Snapshots

The --snapshot flag will create a snapshot with workspace visibility in your user workspace. A snapshot with workspace visibility is visible only to users who have access to the workspace in which the snapshot resides -- A user must be authenticated to Turbot Pipes with permissions on the workspace.

If you want to create a snapshot that can be shared with anyone, use the --share flag instead. This will create the snapshot with anyone_with_link visibility:

You can set a snapshot title in Turbot Pipes with the --snapshot-title argument. This is especially useful for ad hoc queries:

If you wish to save the snapshot to a different workspace, such as an org workspace, you can use the --snapshot-location argument with --share or --snapshot:

Note that the previous command ran the benchmark against the local database, but saved the snapshot to the vandelay-industries/latex workspace. If you want to run the benchmark against the remote vandelay-industries/latex database AND store the snapshot there, you can use the--workspace flag instead - Powerpipe supports passing the cloud workspace implicitly:

Passing Args

If your dashboard has inputs, you may specify them with one or more --arg arguments:

Likewise, if you want to run a query that defines params, you can pass --arg to them as well:

Tagging Snapshots

You may want to tag your snapshots to make it easier to organize them. You can use the --snapshot-tag argument to add a tag:

Simply repeat the flag to add more than one tag:

Saving Snapshots to Local Files

Turbot Pipes makes it easy to save and share your snapshots but it is not strictly required; You can save and view snapshots using only the CLI.

You can specify a local path in the --snapshot-location argument or POWERPIPE_SNAPSHOT_LOCATION environment variable to save your snapshots to a directory in your filesystem:

You can also set snapshot_location in a workspace if you wish to make it the default location.

Alternatively, you can use the --export argument to export a query, control, dashboard, or benchmark in the Powerpipe snapshot format. This will create a file with a .pps extension in the current directory:

The snapshot export/output type is an alias for pps:

To give the file a name, simply use {filename}.pps, for example:

Alternatively, you can write the Powerpipe snapshot to stdout with --output pps

or --output snapshot

Controlling Output

When using --share or --snapshot, the output will include the URL to view the snapshot that you created in addition to the usual output:

You can use the --progress=false argument to suppress displaying the URL and other progress data. This may be desirable when you are using an alternate output format, especially when piping the output to another command:

You can use all the usual --export or --output formats with --snapshot and --share. Neither the --output nor the --export` flag affects the snapshot format though; the snapshot itself is always a JSON file that is saved to Turbot Pipes and viewable as HTML:

In fact, all the usual arguments will work with snapshots: