Skip to main content

Command line interface (CLI) and software development kit (SDK) to interact with Gable API

Project description

Gable CLI and SDK

gable is Gable on the command line. It publishes contracts, registers data assets and more.

gable --help
Usage: gable [OPTIONS] COMMAND [ARGS]...

Options:
  --endpoint TEXT  Customer API endpoint for Gable, in the format
                   https://api.company.gable.ai/
  --api-key TEXT   API Key for Gable
  --version        Show the version and exit.
  --help           Show this message and exit.

Commands:
  auth        View configured Gable authentication information
  contract    Validate/publish contracts and check data asset compliance
  data-asset  Commands for data assets
  ping        Pings the Gable API to check for connectivity

Getting Started

gable is hosted on PyPi, so to install it just run:

pip install gable

Installing Additional Modules for MySQL and PostgreSQL

Gable's CLI allows you to introspect your database and register tables as data assets within Gable's system. Connecting to these databases require additional packages to communicate with your database(s) of choice.

For MySQL, install the additional packages by running:

pip install 'gable[mysql]'

For PostgreSQL, install the additional packages by running:

pip install 'gable[postgres]'

To install all additional dependencies at once, you can run:

pip install 'gable[all]'

Setting up zsh/bash Autocomplete

The Gable CLI supports shell autocomplete for zsh and bash so you can hit TAB to see available commands and options as you write the command.

To enable it, run the following commands:

_SHELL=zsh # or bash
GABLE_CONFIG_DIR=~/.config/gable
mkdir -p $GABLE_CONFIG_DIR
_GABLE_COMPLETE=${_SHELL}_source gable > $GABLE_CONFIG_DIR/complete.sh

Then add the following to your shell startup scripts (e.g. .zshrc, .bashrc):

source ~/.config/gable/complete.sh

Authentication

To establish an authenticated connection with Gable via the CLI, you need:

  • The API endpoint associated with your organization
  • An API key that corresponds to the endpoint

In order to find your API key and API endpoint, see the documentation in your Gable web app at (/docs/settings/api_keys).

There are two supported methods for providing this config to the CLI:

Authenticating with CLI Arguments

You have the option to pass the endpoint and API key information directly as arguments during the CLI invocation. For example:

gable --endpoint "https://api.yourorganization.gable.ai" --api-key "yourapikey" ping

Authenticating with Environment Variables

To avoid providing this config every time you execute a command, you can set them as environment variables: GABLE_API_ENDPOINT and GABLE_API_KEY. To make them persistent in your environment, add this to your shell initialization file (e.g. .zshrc or .bashrc):

export GABLE_API_ENDPOINT="https://api.yourorganization.gable.ai"
export GABLE_API_KEY="yourapikey"

Then, you can simply use the CLI as follows:

gable ping

Publishing to PyPi

Full releases should be published in an automated way by the github deployment pipelines. In the event we want to quickly deploy a pre-release to a customer:

  1. Update the version in the pyproject.toml file by appending a a0 or b0 (for alpha or beta), so for example 0.3.0a0. The number afterwards can be incremented as needed if you need to publish a new version of the pre-release (a1, a2, etc).
  2. Grab the API KEY from the PyPi Gable Login+API Key login in the Engineering 1password vault.
  3. Run TWINE_PASSWORD="the value you got from 1password!!!" poetry run poe publish_pypi_pre
  4. Verify the new version shows up in our PyPi project history, and is marked as PRE-RELEASE.
  5. Open a PR to commit the new version in the pyproject.toml. On merging the automation will fail (gracefully) due to the specified version already existing in pypi

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gable-0.18.0a1.tar.gz (98.5 kB view details)

Uploaded Source

Built Distribution

gable-0.18.0a1-py3-none-any.whl (122.8 kB view details)

Uploaded Python 3

File details

Details for the file gable-0.18.0a1.tar.gz.

File metadata

  • Download URL: gable-0.18.0a1.tar.gz
  • Upload date:
  • Size: 98.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.18

File hashes

Hashes for gable-0.18.0a1.tar.gz
Algorithm Hash digest
SHA256 b7f6b262ebf900d1107f256176f508d7feae03873cb37383cbf2c30580c3ddca
MD5 95a4a5597de52f149a97ac9b0acb66d9
BLAKE2b-256 90148ec4b6bfb904e40763768681831c95c4b7592a46be4fcf7b2bfa1e510708

See more details on using hashes here.

File details

Details for the file gable-0.18.0a1-py3-none-any.whl.

File metadata

  • Download URL: gable-0.18.0a1-py3-none-any.whl
  • Upload date:
  • Size: 122.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.18

File hashes

Hashes for gable-0.18.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 46b0b127b4347f719bb9fb7226dd04d82078b41bb3b18a89513d7dd8a8b8308a
MD5 11ea8a0ca27d89a0a7625db48b99894e
BLAKE2b-256 a401a20b53115feee8433c20229653012bdfe51113162bca14f9d52ad1765956

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page