Skip to content

peshay/tpm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

203 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tpm.py

Modern Python SDK groundwork for TeamPasswordManager with safer API boundaries and maintainable packaging.

CI Python version license

Support maintenance via bunq

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()

Support

Voluntary support helps fund ongoing freelance software maintenance for this SDK. It does not automatically grant support, feature delivery, consulting, SLA, or invoice-based engagement.

About

Python Module for TeamPasswordManager API

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages