Use SQL to query data from various types of configuration files, e.g. INI
, JSON
, YML
.
- Get started โ
- Documentation: Table definitions & examples
- Community: Slack Channel
- Get involved: Issues
Install the plugin with Steampipe:
steampipe plugin install config
Configure your config file for each supported file type to include directories with files to be parsed. For any of the paths
arguments, if no directory is specified, the current working directory will be used.
Run steampipe:
steampipe query
Query all data in your INI files:
select
path,
section,
key,
value
from
ini_key_value;
+----------------------------+----------+---------------+-------------------------------------------+
| path | section | key | value |
+----------------------------+----------+---------------+-------------------------------------------+
| /Users/myuser/defaults.ini | Settings | DetailedLog | 1 |
| /Users/myuser/defaults.ini | Status | RunStatus | 1 |
| /Users/myuser/defaults.ini | Status | StatusRefresh | 10 |
| /Users/myuser/defaults.ini | Status | StatusPort | 6090 |
| /Users/myuser/logs.ini | Server | Archive | 1 |
| /Users/myuser/logs.ini | Server | ServerName | Unknown |
| /Users/myuser/logs.ini | Settings | LogFile | /opt/ecs/mvuser/MV_IPTel/log/MV_IPTel.log |
| /Users/myuser/logs.ini | Settings | Version | 0.9 Build 4 Created July 11 2004 14:00 |
+----------------------------+----------+---------------+-------------------------------------------+
Query all data in your JSON files:
select
path,
jsonb_pretty(content) as file_content
from
json_file;
+----------------------------+------------------------------------------------------------+
| path | file_content |
+----------------------------+------------------------------------------------------------+
| /Users/myuser/invoice.json | { |
| | "city": "East Centerville", |
| | "date": "2012-08-06T00:00:00Z", |
| | "items": [ |
| | { |
| | "price": 1.47, |
| | "part_no": "A4786", |
| | "quantity": 4, |
| | "description": "Water Bucket (Filled)" |
| | }, |
| | { |
| | "size": 8, |
| | "price": 133.7, |
| | "part_no": "E1628", |
| | "quantity": 1, |
| | "description": "High Heeled \"Ruby\" Slippers" |
| | } |
| | ], |
| | "state": "KS", |
| | "street": "123 Tornado Alley\nSuite 16\n", |
| | "bill-to": null, |
| | "receipt": "Oz-Ware Purchase Invoice", |
| | "ship-to": null, |
| | "customer": { |
| | "first_name": "Dorothy", |
| | "family_name": "Gale" |
| | }, |
| | } |
| /Users/myuser/test.json | { |
| | "foo": "bar", |
| | "includes": [ |
| | "common.json" |
| | ] |
| | } |
+----------------------------+------------------------------------------------------------+
Query all data in your YML files:
select
path,
jsonb_pretty(content) as file_content
from
yml_file;
+---------------------------+------------------------------------------------------------+
| path | file_content |
+---------------------------+------------------------------------------------------------+
| /Users/myuser/invoice.yml | { |
| | "city": "East Centerville", |
| | "date": "2012-08-06T00:00:00Z", |
| | "items": [ |
| | { |
| | "price": 1.47, |
| | "part_no": "A4786", |
| | "quantity": 4, |
| | "description": "Water Bucket (Filled)" |
| | }, |
| | { |
| | "size": 8, |
| | "price": 133.7, |
| | "part_no": "E1628", |
| | "quantity": 1, |
| | "description": "High Heeled \"Ruby\" Slippers" |
| | } |
| | ], |
| | "state": "KS", |
| | "street": "123 Tornado Alley\nSuite 16\n", |
| | "bill-to": null, |
| | "receipt": "Oz-Ware Purchase Invoice", |
| | "ship-to": null, |
| | "customer": { |
| | "first_name": "Dorothy", |
| | "family_name": "Gale" |
| | }, |
| | } |
| /Users/myuser/test.yaml | { |
| | "foo": "bar", |
| | "includes": [ |
| | "common.yaml" |
| | ] |
| | } |
+---------------------------+------------------------------------------------------------+
Prerequisites:
Clone:
git clone https://github.com/turbot/steampipe-plugin-config.git
cd steampipe-plugin-config
Build, which automatically installs the new version to your ~/.steampipe/plugins
directory:
make
Configure the plugin:
cp config/* ~/.steampipe/config
vi ~/.steampipe/config/config.spc
Try it!
steampipe query
> .inspect config
Further reading:
Please see the contribution guidelines and our code of conduct. All contributions are subject to the Apache 2.0 open source license.
help wanted
issues: