Skip to content

osteele/gsheet-keyring

Repository files navigation

Google Sheet Keyring backend

Latest PyPI Version Documentation Status License Supported Python Versions

This package provides a Keyring backend that stores passwords in a Google Sheet.

Motivation

This package allows ipython-secrets to be used on Google Colaboratory, and on other hosted services that don’t support the standard Keyring backends.

The ipython-secrets package uses Keyring to store secrets for use in a Jupyter notebook. However, none of the standard Keyring backends works in Google Colaboratory, since that service provides neither durable file storage, nor the native operating system services that the standard keyring backends require.

Usage

To use this package, install it via pip3 install gsheet-keyring, and use the Keyring API as normal. If one of the built-in Keyring backends is available, Keyring will use that backend in preference to this one (as it should). However, if a platform-specific backend is not available, Keyring will automatically detect and use this package instead.

Use keyring.set_keyring to force Keyring to use this package even, if other backends are available:

import keyring
from gsheet_keyring import GoogleSheetKeyring
keyring.set_keyring(GoogleSheetKeyring())

By default, this backend searches for a Google Sheet named “keyring”. If there’s no sheet with this name, one is created.

You can override this default by specifying a Google Sheet name, a Google Sheet key, or a Worksheet from the gspread package.

Alternatives

If you're running in an environment where any other Keyring backend is available, use that instead. (This should happen automatically.)

If you require either greater performance or security than this package provides (see the notes in the API documentation), you probably want to instead create or use a backend that uses a secret management service such AWS Secrets Manager, Google Cloud AMS, or or Hashicorp Vault.

The keyring-vault-backend package is a Keyring backend interface to Hashicorp Vault. I haven't used it.

License

MIT