steampipe plugin install zoom

Zoom + Steampipe

Steampipe is an open-source zero-ETL engine to instantly query cloud APIs using SQL.

Zoom provides videotelephony and online chat services through a cloud-based peer-to-peer software platform and is used for teleconferencing, telecommuting, distance education, and social relations.

List your Zoom users:

select
email,
personal_meeting_url
from
zoom_user;
+--------------------------+--------------------------------------------------------------------------+
| email | personal_meeting_url |
+--------------------------+--------------------------------------------------------------------------+
| jim@dundermifflin.com | https://turbot.zoom.us/j/9694476416 |
| dwight@dundermifflin.com | https://turbot.zoom.us/j/1453171280?pwd=bWloMG5Ic0JrKFQ2SGJaUmNxZXhNQT09 |
+--------------------------+--------------------------------------------------------------------------+

Documentation

Get started

Install

Download and install the latest Zoom plugin:

steampipe plugin install zoom

Credentials

ItemDescription
CredentialsCreate a Server-to-Server OAuth app to get the Account ID, Client ID and Client Secret.
PermissionsThe permission scope of Server-to-Server OAuth app or SDK/JWT app is set by the Admin at the creation time of the app.
RadiusEach connection represents a single Zoom account.
Resolution1. Credentials explicitly set in a Steampipe config file (~/.steampipe/config/zoom.spc)
2. Credentials specified in environment variables, e.g., ZOOM_ACCOUNT_ID, ZOOM_CLIENT_ID and ZOOM_CLIENT_SECRET.

Configuration

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

Configure your account details in ~/.steampipe/config/zoom.spc:

connection "zoom" {
plugin = "zoom"
# Zoom API credentials are available to users with Developer role in the account.
# You need to create a Server-to-Server OAuth app (https://developers.zoom.us/docs/internal-apps/create) or a SDK/JWT APP (https://marketplace.zoom.us/docs/guides/build/sdk-app) to get the credentials.
# It is recommended that you create Server-to-Server OAuth since the JWT app has been deprecated as of June 1, 2023 and will be disabled on September 1, 2023. https://developers.zoom.us/docs/internal-apps/jwt-faq/
# Server-to-Server OAuth app credentials
# Zoom account ID is required for requests. Required.
# This can also be set via the ZOOM_ACCOUNT_ID environment variable.
# account_id = "Xt1aUD4WQ56w7hDhVbtDp"
# Zoom Client ID provided by Server-to-Server OAuth app is required for requests. Required.
# This can also be set via the ZOOM_CLIENT_ID environment variable.
# client_id = "MZw2piRfTsOdpwx2Dh5U"
# Zoom Client Secret provided by Server-to-Server OAuth app is required for requests. Required.
# This can also be set via the ZOOM_CLIENT_SECRET environment variable.
# client_secret = "04tKwHgFGvwB1M4HPHOBFP0aLHYqUE"
# SDK/JWT app credentials
# Zoom API key provided by SDK/JWT OAuth app is required for requests. Required.
# This can also be set via the ZOOM_API_KEY environment variable.
# api_key = "LFMU3oagTjO8_5sYKQVe"
# Zoom API secret provided by SDK/JWT OAuth app is required for requests. Required.
# This can also be set via the ZOOM_API_SECRET environment variable.
# api_secret = "PKS96L69nWSFK2y0A07R2k7xGryVbcWiem"
# If you define Server-to-Server and JWT, then the plugin prioritizes Server-to-Server creds.
}

Configuring Zoom Credentials

Server-to-Server OAuth Application

You may specify the account ID, client ID, and client secret to authenticate:

  • account_id: The Zoom account ID.
  • client_id: The Zoom Client ID provided by Server-to-Server OAuth app.
  • client_secret: The Zoom Client Secret provided by Server-to-Server OAuth app.
connection "zoom" {
plugin = "zoom"
account_id = "Xt1aUD4WQ56w7hDhVbtDp"
client_id = "MZw2piRfTsOdpwx2Dh5U"
client_secret = "04tKwHgFGvwB1M4HPHOBFP0aLHYqUE"
}

Alternatively, you can also use the Zoom environment variable to obtain credentials only if the account_id, client_id, and client_secret arguments are not specified in the connection:

export ZOOM_ACCOUNT_ID="Xt1aUD4WQ56w7hDhVbtDp"
export ZOOM_CLIENT_ID="MZw2piRfTsOdpwx2Dh5U"
export ZOOM_CLIENT_SECRET="04tKwHgFGvwB1M4HPHOBFP0aLHYqUE"

JWT Application

Note: JWT applications are deprecated as of June 1, 2023 and will be entirely disabled on September 1, 2023. We recommend migrating to Server-to-Server OAuth applications.

You may specify the API key and API secret:

  • api_key: The Zoom API key provided by SDK/JWT OAuth app.
  • api_secret: The Zoom API secret provided by SDK/JWT OAuth app.
connection "zoom" {
plugin = "zoom"
api_key = "9m_kAcfuTlW_JCrvoMYK6g"
api_secret = "lEEDVf3SgyQWckN3ASqMpXWpCixkwMzgnZY7"
}

Alternatively, you can also use the Zoom environment variable to obtain credentials only if api_key and api_secret arguments are not specified in the connection:

export ZOOM_API_KEY="9m_kAcfuTlW_JCrvoMYK6g"
export ZOOM_API_SECRET="lEEDVf3SgyQWckN3ASqMpXWpCixkwMzgnZY7"

Postgres FDW

This plugin is available as a native Postgres FDW. Unlike Steampipe CLI, which ships with an embedded Postgres server instance, the Postgres FDW can be installed in any supported Postgres database version.

You can download the tarball for your platform from the Releases page, but it is simplest to install them with the steampipe_postgres_installer.sh script:

/bin/sh -c "$(curl -fsSL https://steampipe.io/install/postgres.sh)" -- zoom

The installer will prompt you for the plugin name and version, download and install the appropriate files for your OS, system architecture, and Postgres version.

To configure the Postgres FDW, you will create an extension, foreign server, and schema and import the foreign schema.

CREATE EXTENSION IF NOT EXISTS steampipe_postgres_zoom;
CREATE SERVER steampipe_zoom FOREIGN DATA WRAPPER steampipe_postgres_zoom OPTIONS (config '<your_config>');
CREATE SCHEMA zoom;
IMPORT FOREIGN SCHEMA zoom FROM SERVER steampipe_zoom INTO zoom;

SQLite Extension

This plugin is available as a SQLite Extension, making the tables available as SQLite virtual tables.

You can download the tarball for your platform from the Releases page, but it is simplest to install them with the steampipe_sqlite_installer.sh script:

/bin/sh -c "$(curl -fsSL https://steampipe.io/install/sqlite.sh)" -- zoom

The installer will prompt you for the plugin name, version, and destination directory. It will then determine the OS and system architecture, and it will download and install the appropriate package.

To configure the SQLite extension, load the extension module and then run the steampipe_configure_zoom function to configure it with plugin-specific options.

$ sqlite3
sqlite> .load ./steampipe_sqlite_extension_zoom.so
sqlite> select steampipe_configure_zoom('<your_config>');

Export

This plugin is available as a standalone Export CLI. Steampipe exporters are stand-alone binaries that allow you to extract data using Steampipe plugins without a database.

You can download the tarball for your platform from the Releases page, but it is simplest to install them with the steampipe_export_installer.sh script:

/bin/sh -c "$(curl -fsSL https://steampipe.io/install/export.sh)" -- zoom

You can pass the configuration to the command with the --config argument:

steampipe_export_zoom --config '<your_config>' <table_name>