API и интеграции

Python коннектор

11min
описание python клиент используется для взаимодействия с api системой управления паролями пассворк он обеспечивает безопасное хранение, получение и управление паролями с поддержкой клиентского шифрования требования python 3 10+ requests>=2 31 0 python dotenv>=1 0 0 cryptography>=42 0 0 pbkdf2>=1 3 установка можно установить пакет прямо из github shell pip install git+ssh //git\@github com\ passwork me/passwork python git или через https shell pip install git+https //github com/passwork me/passwork python git возможности клиентское шифрование с поддержкой мастер пароля; автоматическое обновление токена; зашифрованное хранение и восстановление сессий; многоуровневое шифрование (pbkdf2, rsa, aes); работа с вложениями; управление пользователями и ролями; управление хранилищами (vault); совместное использование паролей через «входящие»; поддержка пользовательских полей; система тегов; расширенное использование управление сессиями сохранять и восстанавливать сессии, чтобы не авторизовываться каждый раз python # сохранение сессии в файл (зашифрованно) encryption key = client save session("session file", none, true) \# восстановление сессии client = passworkclient("https //your passwork instance com", true) client load session("session file", encryption key) управление паролями создание пароля с пользовательскими полями, тегами и вложениями python password = { "name" "service name", "login" "username", "password" "secure password", "vaultid" vault id, "folderid" folder id, # необязательно "description" "описание", "url" "https //service url com", "tags" \["tag1", "tag2"], "customs" \[ { "name" "дополнительный логин", "value" "second username", "type" "text" }, { "name" "код восстановления", "value" "recovery code value", "type" "password" }, { "name" "totp", "value" "jbswy3dpehpk3pxp", "type" "totp" } ], "attachments" \[ { "path" "path/to/file png", "name" "file png" } ] } password id = client create password(password) обновление существующего пароля python update data = { "login" "new username", "password" "new password", "vaultid" vault id } client update password(password id, update data) удаление пароля python bin item id = client delete password(password id) управление пользователями создание нового пользователя python # получение доступных ролей пользователей user roles = client get user roles({"includeuserrole" true, "isonlymanageable" true}) user role = \[role for role in user roles\["items"] if role\["code"] == "user"]\[0] \# создание пользователя user data = { "login" "new user", "userroleid" user role\["id"], "usergroupids" \[] } new user = client create user(user data) \# возвращает user id, password и master password совместное использование паролей поделиться паролем с другим пользователем через «входящие» python # поделиться паролем с правами чтения inbox id = client create inbox password(password id, recipient user id, "read") \# получатель может получить доступ к паролю inbox password = client get inbox password(inbox id) прямые вызовы к api для операций, не покрытых вспомогательными методами python # прямой вызов к api response = client call("delete", f"/api/v1/folders/{folder id}") документация подробные примеры расположены в директории examples репозитория