/tpm

Python Module for TeamPasswordManager API

Primary LanguagePythonMIT LicenseMIT

tpm.py

Build Status Codecov Scrutinizer Python version license

A Python Module for the TeamPasswordManager API

Requires: requests

Install tpm.py

You can install the tpm module via pip

pip install tpm

How to Use

This is an example how you can use it in a python script

#! /usr/bin/env python
import tpm
# create a object for the connection settings
URL = "https://mypasswordmanager.example.com"
USER = 'MyUser'
PASS = 'Secret'
tpmconn = tpm.TpmApiv5(URL, username=USER, password=PASS)

# get a dictionary for all password entries
data = tpmconn.list_passwords()
# show all names from the password entries
for item in data:
    print (item.get('name'))

You can also use Private/Public Key authentication

#! /usr/bin/env python
import tpm
# create a object for the connection settings
URL = "https://mypasswordmanager.example.com"
pubkey = '3726d93f2a0e5f0fe2cc3a6e9e3ade964b43b07f897d579466c28b7f8ff51cd0'
privkey = '87324bedead51af96a45271d217b8ad5ef3f220da6c078a9bce4e4318729189c'
tpmconn = tpm.TpmApiv5(URL, private_key=privkey, public_key=pubkey)

# get a dictionary for all password entries
data = tpmconn.list_passwords()
# show all names from the password entries
for item in data:
    print (item.get('name'))

If you always want to unlock entries that are locked, you can specify an unlock reason

tpmconn = tpm.TpmApiv5(URL, username=USER, password=PASS, unlock_reason="Because I can!")

Logging

Every function call leads to a at least a logging message. If you want to log all your script does, you can do it like this:

import logging

# set log file and log level
logfile = 'MyLogFile.log'
loglevel = logging.INFO
logformat = '%(asctime)s - %(levelname)s - %(message)s'

logging.basicConfig(filename=logfile, level=loglevel, format=logformat)
# If you don't want the requests and urllib3 module to log too much
logging.getLogger("requests").setLevel(logging.WARNING)
logging.getLogger("urllib3").setLevel(logging.WARNING)

Functions explained

All Functions are also explained at the API documentation


list_projects()

list_projects_archived()

list_projects_favorite()

list_projects_search(searchstring)

(since v4) List Subprojects

list_subprojects(ID)

list_subprojects_action(ID, action)

show_project(ID)

list_passwords_of_project(ID)

list_user_access_on_project(ID)

create_project(data)

update_project(ID, data)

change_parent_of_project(ID, NewParentID)

update_security_of_project(ID, data)

archive_project(ID)

unarchive_project(ID)

delete_project(ID)

list_passwords()

list_passwords_archived()

list_passwords_favorite()

list_passwords_search(searchstring)

show_password(ID)

list_user_access_on_password(ID)

create_password(data)

update_password(ID, data)

update_security_of_password(ID, data)

update_custom_fields_of_password(ID, data)

delete_password(ID)

lock_password(ID)

unlock_password(ID)

(since v5) Archive Password

archive_password(ID)

unarchive_password(ID)

(since v5) Move Password

move_password(ID, PROJECT_ID)

list_mypasswords()

list_mypasswords_search(searchstring)

show_mypassword(ID)

create_mypassword(data)

update_mypassword(ID, data)

delete_mypassword(ID)

set_favorite_password(ID)

unset_favorite_password(ID)

set_favorite_project(ID)

unset_favorite_project(ID)

move_mypassword(ID, PROJECT_ID)

list_users()

show_user(ID)

show_me() who_am_i()

create_user(data)

(since v5) Create LDAP User

create_user_ldap(data)

(since v5) Create SAML User

create_user_saml(data)

update_user(ID, data)

change_user_password(ID, data)

activate_user(ID)

deactivate_user(ID)

convert_user_to_ldap(ID, DN) convert_ldap_user_to_normal(ID)

convert_user_to_ldap(ID, DN, SERVER_ID)

convert_user_to_saml(ID)

delete_user(ID)

list_groups()

show_group(ID)

create_group(data)

update_group(ID, data):

add_user_to_group(GroupID, UserID)

delete_user_from_group(GroupID, UserID)

delete_group(ID)

list_project_files(ID)

list_password_files(ID)

upload_project_file(ID, file, notes="optional notes")

upload_password_file(ID, file, notes="optional notes")

show_file_info(ID)

update_file_notes(ID, NOTES)

max_upload_file_size()

(since v5) Download a file

download_file(ID)

(since v5) Delete a file

delete_file(ID)

generate_password()

get_version() get_latest_version() up_to_date()