Powerpipe CLI v0.4.0 - Updated JSON and snapshot output to handle duplicate column names

June 10, 2024cli

Whats new

  • Updated JSON and snapshot output to handle duplicate column names - append a unique suffix to duplicate column names. (#375)

Bug fixes

  • Fixed bug when generating a snapshot from a benchmark run, the row data is empty if any of the rows are in error. (#366)
  • Updated mod install to only install or update mods which are command targets (and their dependencies). Set default pull mode for install is latest if there is a target, and minimal if no target is given. (#381)
  • Fixed incorrect help message for output in powerpipe benchmark/control run. (#367)
  • Fixed issue where POWERPIPE_PORT env var was not being honoured. (#362)
  • Updated timing metadata output to rename duration field to duration_ms for consistency with steampipe. (#368)
  • Dashboard graph should not crash if an invalid edge category color is provided. (#364)
  • Dashboard flow/hierarchy components should show panel controls. (#363)

Updated output formats

The rows property in the JSON and snapshot output will now have unique column names for duplicate column names. The columns property will have the original column name as original_name. For example, for the query:

powerpipe query run " select arn as title, account_id as title, title as title from aws_account" --output pps

Here is the updated JSON output:

powerpipe query run " select arn as title, account_id as title, title as title from aws_account" --output json
{
"columns": [
{
"name": "title",
"data_type": "text"
},
{
"name": "title_t5zj1",
"data_type": "text",
"original_name": "title"
},
{
"name": "title_t5zj2",
"data_type": "text",
"original_name": "title"
}
],
"rows": [
{
"title": "arn:aws:::882789663776",
"title_t5zj1": "882789663776",
"title_t5zj2": "882789663776"
},
],
"metadata": {
"rows_returned": 3,
"duration_ms": "202ms"
}
}

Here is the updated snapshot output:

{
"schema_version": "20240130",
"panels": {
"custom.dashboard.sql_e5br7b82": {
"dashboard": "custom.dashboard.sql_e5br7b82",
"name": "custom.dashboard.sql_e5br7b82",
"panel_type": "dashboard",
"source_definition": "",
"status": "complete",
"title": "Custom query [e5br7b82]"
},
"custom.table.results": {
"dashboard": "custom.dashboard.sql_e5br7b82",
"name": "custom.table.results",
"panel_type": "table",
"source_definition": "",
"status": "complete",
"sql": " select arn as title, account_id as title, title as title from aws_account",
"properties": {
"name": "results"
},
"data": {
"columns": [
{
"name": "title",
"data_type": "TEXT"
},
{
"name": "title_t5zj1",
"data_type": "TEXT",
"original_name": "title"
},
{
"name": "title_t5zj2",
"data_type": "TEXT",
"original_name": "title"
}
],
"rows": [
{
"title": "arn:aws:::876515858155",
"title_t5zj1": "876515858155",
"title_t5zj2": "morales-aaa"
},
{
"title": "arn:aws:::882789663776",
"title_t5zj1": "882789663776",
"title_t5zj2": "882789663776"
},
{
"title": "arn:aws:::097350876455",
"title_t5zj1": "097350876455",
"title_t5zj2": "turbot-silverwater"
}
]
}
}
},
"inputs": {},
"variables": {},
"search_path": null,
"start_time": "2024-06-06T14:50:16.906739+01:00",
"end_time": "2024-06-06T14:50:16.991955+01:00",
"layout": {
"name": "custom.dashboard.sql_e5br7b82",
"children": [
{
"name": "custom.table.results",
"panel_type": "table"
}
],
"panel_type": "dashboard"
}
}