# ONEKEY API Client
This is the official Python client for the
[ONEKEY](https://www.onekey.com/) public API.
# Usage
First, you have to log in and select a tenant:
```python
from onekey_client import Client
YOUR_API_URL = "https://demo.onekey.com/api"
client = Client(api_url=YOUR_API_URL)
client.login(EMAIL, PASSWORD)
tenant = client.get_tenant("Environment name")
client.use_tenant(tenant)
```
After you logged in and selected the tenant, you can query the GraphQL API
```python
GET_ALL_FIRMWARES = """
query {
allFirmwares {
id
name
}
}
"""
res = client.query(GET_ALL_FIRMWARES)
print(res)
GET_PRODUCT_GROUPS = """
query {
allProductGroups {
id
name
}
}
"""
res = client.query(GET_PRODUCT_GROUPS)
default_product_group = next(pg for pg in res["allProductGroups"] if pg["name"] == "Default")
```
You can upload firmwares:
```python
metadata = FirmwareMetadata(
name="myFirmware",
vendor_name="myVendor",
product_name="myProduct",
product_group_id=default_product_group["id"],
)
firmware_path = Path("/path/to/firmware.bin")
res = client.upload_firmware(metadata, firmware_path, enable_monitoring=True)
print(res)
```
# Support
You can create a [new issue in this repo](https://github.com/onekey-sec/python-client/issues/new)
or contact us at support@onekey.com.
Raw data
{
"_id": null,
"home_page": "https://www.onekey.com/",
"name": "onekey-client",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7.0,<4.0.0",
"maintainer_email": "",
"keywords": "iot,security,firmware,analysis",
"author": "ONEKEY",
"author_email": "support@onekey.com",
"download_url": "https://files.pythonhosted.org/packages/82/1f/25fae22563999dceb794a82fc593665c573e07f394b246b0b8c8dbec4529/onekey_client-2.1.1.tar.gz",
"platform": null,
"description": "# ONEKEY API Client\n\nThis is the official Python client for the\n[ONEKEY](https://www.onekey.com/) public API.\n\n# Usage\n\nFirst, you have to log in and select a tenant:\n\n```python\nfrom onekey_client import Client\n\nYOUR_API_URL = \"https://demo.onekey.com/api\"\n\nclient = Client(api_url=YOUR_API_URL)\n\nclient.login(EMAIL, PASSWORD)\ntenant = client.get_tenant(\"Environment name\")\nclient.use_tenant(tenant)\n```\n\nAfter you logged in and selected the tenant, you can query the GraphQL API\n\n```python\nGET_ALL_FIRMWARES = \"\"\"\nquery {\n allFirmwares {\n id\n name\n }\n}\n\"\"\"\nres = client.query(GET_ALL_FIRMWARES)\nprint(res)\n\nGET_PRODUCT_GROUPS = \"\"\"\nquery {\n allProductGroups {\n id\n name\n }\n}\n\"\"\"\nres = client.query(GET_PRODUCT_GROUPS)\ndefault_product_group = next(pg for pg in res[\"allProductGroups\"] if pg[\"name\"] == \"Default\")\n```\n\nYou can upload firmwares:\n\n```python\nmetadata = FirmwareMetadata(\n name=\"myFirmware\",\n vendor_name=\"myVendor\",\n product_name=\"myProduct\",\n product_group_id=default_product_group[\"id\"],\n)\n\nfirmware_path = Path(\"/path/to/firmware.bin\")\nres = client.upload_firmware(metadata, firmware_path, enable_monitoring=True)\nprint(res)\n```\n\n# Support\n\nYou can create a [new issue in this repo](https://github.com/onekey-sec/python-client/issues/new)\nor contact us at support@onekey.com.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "ONEKEY API client",
"version": "2.1.1",
"split_keywords": [
"iot",
"security",
"firmware",
"analysis"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "19a1fed9326f1bc02ffc0fb2064451ad410387dc31a977a95772b7ef0ab6d0b4",
"md5": "30ec556494ba93eacf6d4e9a6e94d4a1",
"sha256": "39fa8604e06aa4663a541748744f7649997169c66853caa41a16bee3b5aa02a6"
},
"downloads": -1,
"filename": "onekey_client-2.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "30ec556494ba93eacf6d4e9a6e94d4a1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7.0,<4.0.0",
"size": 26999,
"upload_time": "2023-04-03T21:33:34",
"upload_time_iso_8601": "2023-04-03T21:33:34.201472Z",
"url": "https://files.pythonhosted.org/packages/19/a1/fed9326f1bc02ffc0fb2064451ad410387dc31a977a95772b7ef0ab6d0b4/onekey_client-2.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "821f25fae22563999dceb794a82fc593665c573e07f394b246b0b8c8dbec4529",
"md5": "666c8de1ba4941816af0c84c3b653c90",
"sha256": "a7479598a0f665082f732e0539cf37d80f53e705cb4039b14d047ef4604647af"
},
"downloads": -1,
"filename": "onekey_client-2.1.1.tar.gz",
"has_sig": false,
"md5_digest": "666c8de1ba4941816af0c84c3b653c90",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7.0,<4.0.0",
"size": 22994,
"upload_time": "2023-04-03T21:33:35",
"upload_time_iso_8601": "2023-04-03T21:33:35.772141Z",
"url": "https://files.pythonhosted.org/packages/82/1f/25fae22563999dceb794a82fc593665c573e07f394b246b0b8c8dbec4529/onekey_client-2.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-04-03 21:33:35",
"github": false,
"gitlab": false,
"bitbucket": false,
"lcname": "onekey-client"
}