francois2metz/scalingo

steampipe plugin install francois2metz/scalingosteampipe plugin install francois2metz/scalingo

Scalingo + Steampipe

Scalingo provides on-demand cloud computing platforms and APIs to authenticated customers on a metered pay-as-you-go basis.

Steampipe is an open source CLI to instantly query cloud APIs using SQL.

For example:

select
name,
region,
url
from
scalingo_app
+--------------------+----------------+------------------------------------------------------+
| name | region | url |
+--------------------+----------------+------------------------------------------------------+
| caresteouvert-map | osc-fr1 | https://carestouvert.fr |
| caresteouvert-api | osc-secnum-fr1 | https://caresteouvert-api.osc-secnum-fr1.scalingo.io |
+--------------------+----------------+------------------------------------------------------+

Documentation

Get started

Install

Download and install the latest Scalingo plugin:

steampipe plugin install francois2metz/scalingo

Configuration

Installing the latest scalingo plugin will create a config file (~/.steampipe/config/scalingo.spc) with a single connection named scalingo:

connection "scalingo" {
plugin = "francois2metz/scalingo"
# The API Endpoint (default is https://api.osc-fr1.scalingo.com)
# endpoint = "https://api.osc-fr1.scalingo.com"
# API token for your scalingo instance (required).
# Get it on: https://dashboard.scalingo.com/account/tokens
#token = "tk-us-0000-0000-000000000-000000000000000"
}

You can also use environment variables:

  • SCALINGO_ENDPOINT the base url for the API endpoint of the region (ex: https://api.osc-fr1.scalingo.com)
  • SCALINGO_TOKEN for the API token (ex: tk-us-00000-0000-000)

Get Involved

Multi-Account Connections

You may create multiple scalingo connections:

connection "scalingo_osc {
plugin = "francois2metz/scalingo"
endpoint = "https://api.osc-fr1.scalingo.com"
token = "tk-us-00000-0000-000"
}
connection "scalingo_secnum {
plugin = "francois2metz/scalingo"
endpoint = "https://api.osc-secnum-fr1.scalingo.com"
token = "tk-us-00000-0000-000"
}

Each connection is implemented as a distinct Postgres schema. As such, you can use qualified table names to query a specific connection:

select * from scalingo_osc.scalingo_app

You can multi-account connections by using an aggregator connection. Aggregators allow you to query data from multiple connections for a plugin as if they are a single connection:

connection "scalingo_all {
plugin = "francois2metz/scalingo"
type = "aggregator"
connections = ["scalingo_osc", "scalingo_secnum"]
}

Querying tables from this connection will return results from the scalingo_osc, and scalingo_secnum connections:

select * from scalingo_all.scalingo_app

Steampipe supports the * wildcard in the connection names. For example, to aggregate all the Scalingo plugin connections whose names begin with scalingo_:

connection "scalingo_all" {
type = "aggregator"
plugin = "francois2metz/scalingo"
connections = ["scalingo_*"]
}