Welcome to lowball-arangodb-authdb’s documentation!

A simple Authentication Database implementation of the specification for`Lowball <https://github.com/EmersonElectricCo/lowball>`_ AuthDatabase provider leveraging ArangoDB.

Installation

lowball arangodb authdb has been tested to work with only Python 3.6+ and with ArangoDB Versions 3.4-3.7

pip

pip install lowball-arangodb-authdb

from source

git clone https://github.com/EmersonElectricCo/lowball-arangodb-authdb
cd ./lowball-arangodb-authdb
python setup.py install

Configuration

In the lowball configuration’s auth_db section, the following fields can be set. These are the default values, and if you do not wish to change them, they do not need to appear in the configuration file/dictionary

...
auth_db:
  url: "http://127.0.0.1"
  port: 8529
  user: "root"
  password:
  verify: true
  database_name: "lowball_authdb"
  collection_name: "authentication_tokens"
...

Field Descriptions

  • url - the full url to the server, including http or https

  • port - the port to connect with

  • user - the user to authenticate to the arango instance

  • password - the password for the user

  • verify - Irrelevant for non-TLS connections, true to validate certificates, false to skip validation.

    Can also be set to a path to a certificate file that will be used for validation.

  • database_name - the name to give the database which will hold the collection storing the tokens

  • collection_name - the name to give the collection to hold the tokens.

Example Usage

from lowball import Lowball, config_from_file
from lowball_arangodb_authdb import LowballArangoDBAuthDB

lowball_config = config_from_file("/path/to/config.yaml")

lowball = Lowball(config=lowball_config, auth_database=LowballArangoDBAuthDB)

Notes

The authentication database implementation expects to have a collection to itself. Documents it attempts to load which do not match the Token specification will be deleted.

Multiple Lowball Applications should have no issue interacting with the same ArangoDB backend.