# hide
import os
import nbdev
API Client Routes
import pandas as pd
= dmda.DomoTokenAuth(
auth =os.environ["DOMO_INSTANCE"],
domo_instance=os.environ["DOMO_ACCESS_TOKEN"],
domo_access_token
)
= dmda.DomoFullAuth(
full_auth =os.environ["DOMO_INSTANCE"],
domo_instance=os.environ["DOMO_USERNAME"],
domo_username= os.environ['DOMO_PASSWORD']
domo_password
)
await full_auth.print_is_token()
🎉 full_auth token retrieved from domo-community ⚙️
True
Get Client
get_api_clients
get_api_clients (auth:domolibrary.client.DomoAuth.DomoAuth, debug_api:bool=False, debug_num_stacks_to_drop=1, parent_class=None, session:httpx.AsyncClient=None, return_raw:bool=False)
ApiClient_GET_Error
ApiClient_GET_Error (res:domolibrary.client.ResponseGetData.ResponseGetD ata, message=None)
base exception
await get_api_clients(auth=auth)).response[0:5]) pd.DataFrame((
id | scope | name | description | clientId | authorizedGrantTypes | user | role | customer | |
---|---|---|---|---|---|---|---|---|---|
0 | 4731 | [data, workflow, audit, buzz, user, account, d... | SF Write-back | 374b3480-4fdd-XXXX-XXXX-XXXXXXXXXXXX | [client_credentials] | 68216396 | Admin | mmmm-0012-0200 | |
1 | 8939 | [data, workflow, audit, buzz, user, account, d... | AWS Export | 68fa308a-b408-XXXX-XXXX-XXXXXXXXXXXX | [client_credentials] | 68216396 | Admin | mmmm-0012-0200 | |
2 | 12739 | [data, workflow, audit, buzz, user, account, d... | Domo IDEA Orchestration | 9647357d-b136-XXXX-XXXX-XXXXXXXXXXXX | [client_credentials] | 1026818196 | Admin | mmmm-0012-0200 | |
3 | 18413 | [data, workflow, user, account, dashboard] | Plan Writeback | d8cda0c5-f125-XXXX-XXXX-XXXXXXXXXXXX | [client_credentials] | 1536267297 | Privileged | mmmm-0012-0200 | |
4 | 19020 | [data, workflow, audit, buzz, user, account, d... | Desc | dfeec71d-64ca-XXXX-XXXX-XXXXXXXXXXXX | [client_credentials] | 1345737456 | Privileged | mmmm-0012-0200 |
get_client_by_id
get_client_by_id (auth:domolibrary.client.DomoAuth.DomoAuth, client_id:int, debug_api:bool=False, debug_num_stacks_to_drop=1, parent_class=None, session:httpx.AsyncClient=None, return_raw:bool=False)
await get_client_by_id(auth=auth, client_id=4731, debug_api=False)).response (
{'id': 4731,
'scope': ['data',
'workflow',
'audit',
'buzz',
'user',
'account',
'dashboard'],
'name': 'SF Write-back',
'description': '',
'clientId': '374b3480-4fdd-XXXX-XXXX-XXXXXXXXXXXX',
'authorizedGrantTypes': ['client_credentials'],
'user': 68216396,
'role': 'Admin',
'customer': 'mmmm-0012-0200'}
Create Auth
create_api_client
create_api_client (auth:domolibrary.client.DomoAuth.DomoFullAuth, client_name:str, client_description:str='generated via DL 20250311', scope:List[__main__.ApiClient_ScopeEnum]=None, debug_api:bool=False, debug_num_stacks_to_drop=1, parent_class=None, session:httpx.AsyncClient=None)
Type | Default | Details | |
---|---|---|---|
auth | DomoFullAuth | usernme and password (full) auth required for this API | |
client_name | str | ||
client_description | str | generated via DL 20250311 | |
scope | List | None | defaults to [data, audit] |
debug_api | bool | False | |
debug_num_stacks_to_drop | int | 1 | |
parent_class | NoneType | None | |
session | AsyncClient | None | |
Returns | ResponseGetData |
ApiClient_ScopeEnum
ApiClient_ScopeEnum (value, names=None, module=None, qualname=None, type=None, start=1)
An enumeration.
ApiClient_CRUD_Error
ApiClient_CRUD_Error (res:domolibrary.client.ResponseGetData.ResponseGet Data, message:str=None)
base exception
= None
res try:
= await create_api_client(auth=full_auth, client_name="catty wompus5",
res # description = 'hello world',
= [ApiClient_ScopeEnum.DATA, ApiClient_ScopeEnum.AUDIT],
scope =False)
debug_apiexcept ApiClient_CRUD_Error as e:
= e
res
res
🐛 debugging get_data
{'body': {'description': 'generated via DL 20241014',
'name': 'catty wompus5',
'scope': ['data', 'audit']},
'function_name': 'wrapper',
'headers': {'Connection': 'keep-alive',
'Content-Type': 'application/json',
'X-DOMO-CustomerDomain': 'domo-community.domo.com',
'accept': 'application/json, text/plain',
'x-domo-authentication': 'eyJjdXN0b21lcklkIjoibW1tbS0wMDEyLTAyMDAiLCJleHBpcmF0aW9uIjoxNzI4OTY4OTc0NzgxLCJobWFjU2lnbmF0dXJlIjoiMGRmZTMyZmRiNjg0OWJlNDNjODY2MTE4NWVkZDUyMTg1OWJlNzJkYTc3NjI0NzBjMTRiMDRlNDJkNzAzOGFjNyIsInNpZCI6ImQ1YjkyYWZlLTQ2MzMtNGU3OC05MTRmLWYwMjE5ZTViNjdkNSIsInRpbWVzdGFtcCI6MTcyODk0MDE3NDc4MSwidG9lcyI6IlVOS05PV05TSUQiLCJ1c2VySWQiOiIxODkzOTUyNzIwIn0%3D'},
'method': 'POST',
'params': None,
'parent_class': None,
'url': 'https://api.domo.com/clients'}
get_data: sending json
get_data_response <Response [201 Created]>
ResponseGetData(status=201, response={'scope': ['data', 'audit'], 'name': 'catty wompus5', 'description': 'generated via DL 20241014', 'user': 1893952720, 'role': 'Anonymous', 'client_id': 'fb53994b-aa01-4ef1-840a-eb2d5d1ed980', 'client_secret': '2063214de2d2e9dc933b3e72a363a2a09c03a18f8d6cb4cc91e4401ac51a0ae0', 'authorized_grant_types': ['client_credentials']}, is_success=True, parent_class=None)
Revoke Client
revoke_api_client
revoke_api_client (auth:domolibrary.client.DomoAuth.DomoAuth, client_id:str, debug_api:bool=False, debug_num_stacks_to_drop=1, parent_class=None, session:httpx.AsyncClient=None)
ApiClient_RevokeError
ApiClient_RevokeError (res:domolibrary.client.ResponseGetData.ResponseGe tData, client_id:str=None, message:str=None)
base exception
try:
await revoke_api_client(auth=auth, client_id=33897)
except ApiClient_RevokeError as e:
print(e)
🛑 ApiClient_RevokeError 🛑 - function: wrapper || status 400 || error revoking client 33897, validate that it exists. at domo-community