
The new release brings independent token lifecycle management, flexible SSL certificate verification, and multi-URL support for password items.
Token lifecycle management
Previously, the only way to extend an active session was to call the full token refresh — which replaced both the access token and the refresh token at once. Version 0.2.0 introduces two new methods for independent, fine-grained control over session lifetime.
update_access_token()
Extends the access token using the current access token, without touching the refresh token. Useful when you want to keep a long-lived session alive in a background service without cycling the refresh token.
result = client.update_access_token()
# result contains: accessToken, accessTokenExpiredAt
update_refresh_token()
Extends the refresh token using the current refresh token, without affecting the access token. Useful in scripts that run infrequently and need to maintain a valid refresh token between runs.
result = client.update_refresh_token()
# result contains: refreshToken, refreshTokenExpiredAt
Both methods automatically update the internal client state and re-save the session file if one is configured.
SSL certificate verification
The PassworkClient now accepts a string path as the verify_ssl parameter in addition to True and False. This allows you to specify a custom CA certificate bundle — useful in corporate environments with internal PKI or self-signed certificates.
# Use system default CA bundle (default behavior)
client = PassworkClient("https://passwork.example.com", verify_ssl=True)
# Use a custom CA bundle
client = PassworkClient("https://passwork.example.com", verify_ssl="/etc/ssl/certs/ca-bundle.crt")
# Disable verification (not recommended for production)
client = PassworkClient("https://passwork.example.com", verify_ssl=False)
Multiple URLs per item
Password items now expose a urls field — a list of all URLs associated with the item. The existing url field (primary URL) remains unchanged for backward compatibility.
item = client.get_item(item_id)
print(item["url"]) # https://example.com (primary)
print(item["urls"]) # ["https://example.com", "https://staging.example.com"]
Requirements
- Python ≥ 3.10
- Passwork 7 server
Useful links



Table of contents
Table of contents
Self-hosted password manager for business
Passwork provides an advantage of effective teamwork with corporate passwords in a totally safe environment. Double encryption and zero-knowledge architecture ensure your passwords never leave your infrastructure.
Learn more