Metadata-Version: 2.3
Name: onepasswordconnectsdk
Version: 2.0.0
Summary: Python SDK for 1Password Connect
License: MIT
Author: 1Password
Requires-Python: >=3.10,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Dist: httpx (>=0.28.1,<0.29.0)
Requires-Dist: python-dateutil (>=2.8.1,<3.0.0)
Project-URL: Bug Tracker, https://github.com/1Password/connect-sdk-python/issues
Project-URL: Repository, https://github.com/1Password/connect-sdk-python
Project-URL: Report Security Issue, https://bugcrowd.com/agilebits
Description-Content-Type: text/markdown
1Password Connect SDK for Python
Access your 1Password items in your Python applications through your self-hosted 1Password Connect server.
---
The 1Password Connect SDK provides access to 1Password via [1Password Connect](https://developer.1password.com/docs/connect) hosted in your infrastructure. The library is intended to be used by Python applications to simplify accessing items in 1Password vaults.
## 🪄 See it in action
Check the [Python Connect SDK Example](example/README.md) to see an example of item manipulation using the SDK that you can execute on your machine.
## ✨ Get started
1. Install the 1Password Connect Python SDK:
```sh
pip install onepasswordconnectsdk
```
2. Export the `OP_CONNECT_HOST` and `OP_CONNECT_TOKEN` environment variables:
```sh
export OP_CONNECT_HOST= && \
export OP_CONNECT_TOKEN=
```
2.1 If you need a higher timeout on the client requests you can export `OP_CONNECT_CLIENT_REQ_TIMEOUT` environment variable:
```sh
# set the timeout to 90 seconds
export OP_CONNECT_CLIENT_REQ_TIMEOUT=90
```
3. Use the SDK:
- Read a secret:
```python
from onepasswordconnectsdk.client import (
Client,
new_client_from_environment,
)
connect_client: Client = new_client_from_environment()
client.get_item("{item_id}", "{vault_id}")
```
- Write a secret:
```python
from onepasswordconnectsdk.client import (
Client,
new_client_from_environment,
}
from onepasswordconnectsdk.models import (
Item,
ItemVault,
Field
)
connect_client: Client = new_client_from_environment()
# Example item creation. Create an item with your desired arguments.
item = Item(
vault=ItemVault(id=op_vault),
id="custom_id",
title="newtitle",
category="LOGIN",
tags=["1password-connect"],
fields=[Field(value="new_user", purpose="USERNAME")],
)
new_item = connect_client.create_item(op_vault, item)
```
For more examples of how to use the SDK, check out [USAGE.md](USAGE.md).
## 💙 Community & Support
- File an [issue](https://github.com/1Password/connect-sdk-python/issues) for bugs and feature requests.
- Join the [Developer Slack workspace](https://join.slack.com/t/1password-devs/shared_invite/zt-1halo11ps-6o9pEv96xZ3LtX_VE0fJQA).
- Subscribe to the [Developer Newsletter](https://1password.com/dev-subscribe/).
## 🔐 Security
1Password requests you practice responsible disclosure if you discover a vulnerability.
Please file requests by sending an email to bugbounty@agilebits.com.