A Python Module for the TeamPasswordManager API
Requires: requests
You can install the tpm module via pip
pip install tpm
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://mypasswordpanager.example.com"
USER = 'MyUser'
PASS = 'Secret'
tpmconn = tpm.TpmApiv4(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.TpmApiv4(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.TpmApiv4(URL, username=USER, password=PASS, unlock_reason="Because I can!")
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)
list_projects()
list_projects_archived()
list_projects_favorite()
list_projects_search(searchstring)
(v4 Only) 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, NewParrentID)
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)
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)
list_users()
show_user(ID)
show_me() who_am_i()
create_user(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)
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)
generate_password()
get_version() get_latest_version() up_to_date()