Snapshots
Steampipe allows you to take snapshots. A snapshot is a saved view of your query results that you can view as a dashboard in Powerpipe All data and metadata for a snapshot is contained in a JSON file which can be saved and viewed locally in the Powerpipe dashboard or uploaded to Turbot Pipes. Snapshots in Turbot Pipes may be shared with other Turbot Pipes users or made public (shared with anyone that has the link).
You can create Turbot Pipes snapshots directly from the Steampipe CLI, however if you wish to subsequently modify them (add/remove tags, change visibility) or delete them, you must do so from the Turbot Pipes console. You may browse the snapshot list in Turbot Pipes by clicking the Snapshots button on the top of your workspace's Dashboards page.
Taking Snapshots
InfoTo upload snapshots to Turbot Pipes, you must either log in via the steampipe login command or create an API token and pass it via the --pipes-token flag or PIPES_TOKEN environment variable.
To take a snapshot and save it to Turbot Pipes, simply add the --snapshot flag to your command.
The --snapshot flag will create a snapshot with workspace visibility in your user workspace. A snapshot with workspace visibility is visible only to users that 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.
If you wish to save to 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 query against the local database, but saved the snapshot to the vandelay-industries/latex workspace. If you want to run the query against the remote vandelay-industries/latex database AND store the snapshot there, you can also add the --database-location argument:
Steampipe provides a shortcut for this though. The --workspace flag supports passing the cloud workspace:
While not a common case, you can even run a query against a Turbot Pipes workspace database, but store the snapshot in an entirely different Turbot Pipes workspace:
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, however 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 STEAMPIPE_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 in the Steampipe snapshot format. This will create a file with a .sps extension in the current directory:
The snapshot export/output type is an alias for sps:
To give the file a name, simply use {filename}.sps, for example:
Alternatively, you can write the steampipe snapshot to stdout with --output sps
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: