You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Franzi c40ac809f6
this is also compatible with python 3.9
4 weeks ago
.gitignore initialize repo 4 weeks ago
LICENSE initialize repo 4 weeks ago
README.md fix typo in README 4 weeks ago
bwkeepass.py check for required variables before doing anything else in _get_contents_from_keepass() 4 weeks ago
setup.py this is also compatible with python 3.9 4 weeks ago

README.md

Use secrets from keepass in your BundleWrap repo.

Installation

pip install bundlewrap-keepass

Setup

Create .bw_keepass.cfg in your home. It should contain two lines: First line should contain a path to your keepass file, second line may contain your password.

If you're not comfortable putting your password into a plain-text file, you may also use BW_KEEPASS_PASSWORD in your environment variables.

You may also set BW_KEEPASS_FILE in your environment to overwrite the location of your keepass file. Please note that if you set the file path in your environment, you must also set the password.

Usage

All function calls accept lists or strings as their arguments. If you need to traverse into subdirectories in your keepass file, you have to use | as separator when not using lists.

For example, if you want to access the Password for 'mysite', which is located inside the directory 'bundlewrap', you can use either one of these:

bwkeepass.password('bundlewrap|mysite')
bwkeepass.password(['bundlewrap', 'mysite'])

Example nodes.py:

import bwkeepass as keepass

nodes = {
    'somenode': {
        'metadata': {
            'my_secret': keepass.password('my_identifier'),
        },
    },
}

Available Fields/Methods are:

  • bwkeepass.password() for passwords
  • bwkeepass.username() for usernames
  • bwkeepass.url() for urls
  • bwkeepass.notes() for notes

Note: This will insert a proxy object into your metadata, the actual secret is not retrieved until you convert it to a string (e.g. by inserting it in a template or calling str() explicitly).


© 2021 Franziska Kunsmann