pybanyan - Banyan Python Library and CLI tool

  • Updated on Apr 19, 2023
  • 3 minutes to read
  • Contributors

Overview

pybanyan is a Python API client and Command Line Interface (CLI) tool. You can use the commands and subcommands in pybanyan to interact with the Banyan API.

Pre-requisites

  • [Python 3.7+] must be installed
  • API Key for programmatic access to the Banyan Command Center REST APIs

Installation

Install pybanyan using the pip package installer.

pip install pybanyan

Usage

The pybanyan package contains both an API client and a CLI tool.

CLI Tool

Before you use the CLI, create a file called ~/.banyan.conf in your home directory and paste in your API token:

[banyan]
api_url = https://net.banyanops.com
refresh_token = MY_API_TOKEN

The CLI is invoked with the banyan tool. It contains a number of commands and sub-commands to help you work with policies, roles, services, users, and other objects in Banyan. Run the banyan tool by itself to see the available commands.

$ banyan
usage: banyan [options] <command> <subcommand> [<subcommand> ...] [parameters]

API library and command-line interface for Banyan Security

optional arguments:
  -h, --help            show this help message and exit
  -d, --debug           full application debug mode
  -q, --quiet           suppress all console output
  -v, --version         show program's version number and exit
  --api-url API_URL     URL for the Banyan API server. Can also be configured
                        via the BANYAN_API_URL environment variable.
  --refresh-token REFRESH_TOKEN
                        API token used for the initial authentication to the
                        Banyan API server. Can also be configured via the
                        BANYAN_REFRESH_TOKEN environment variable.
  --output-format {table,json,yaml}, -o {table,json,yaml}
                        desired output format (table, json, yaml)

Commands:
  {event,admin,device,user,netagent,shield,policy,role,service}
    event               report on security and audit events
    admin               manage administrator accounts
    device              manage devices
    user                manage user accounts
    netagent            manage netagents (AccessTiers and HostAgents)
    shield              manage Banyan Shield clusters
    policy              manage authorization policies for users and workloads
    role                manage user and workload roles
    service             manage web and TCP services and workloads

API library

Here’s a sample script that uses the library to print the names of every service registered in Banyan:

from banyan.api import BanyanApiClient

c = BanyanApiClient()
for service in c.services.list():
    print(service.name)

Run it:

$ python examples/list_services.py
jira
jupyter
kube
mysql
rds-mysql
rds-pgsql

The BanyanApiClient class accepts optional arguments to specify the API server and refresh token. If not provided, it gets them from environment variables named BANYAN_API_URL and BANYAN_REFRESH_TOKEN.

Get Started

To get started with the Banyan Python Library and CLI tool, review the source code or customize the tool, please refer to our open-source Github repo.