API Client Routes

# hide
import os
import nbdev
import pandas as pd
auth = dmda.DomoTokenAuth(
    domo_instance=os.environ["DOMO_INSTANCE"],
    domo_access_token=os.environ["DOMO_ACCESS_TOKEN"],
)

full_auth = dmda.DomoFullAuth(
    domo_instance=os.environ["DOMO_INSTANCE"],
    domo_username=os.environ["DOMO_USERNAME"],
    domo_password = os.environ['DOMO_PASSWORD']
)

await full_auth.print_is_token()
🎉 full_auth token retrieved from domo-community ⚙️
True

Get Client


source

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)

source

ApiClient_GET_Error

 ApiClient_GET_Error
                      (res:domolibrary.client.ResponseGetData.ResponseGetD
                      ata, message=None)

base exception

pd.DataFrame((await get_api_clients(auth=auth)).response[0:5])
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

source

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


source

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

source

ApiClient_ScopeEnum

 ApiClient_ScopeEnum (value, names=None, module=None, qualname=None,
                      type=None, start=1)

An enumeration.


source

ApiClient_CRUD_Error

 ApiClient_CRUD_Error
                       (res:domolibrary.client.ResponseGetData.ResponseGet
                       Data, message:str=None)

base exception

res = None
try:
    res = await create_api_client(auth=full_auth, client_name="catty wompus5",
                            # description = 'hello world',
                            scope = [ApiClient_ScopeEnum.DATA, ApiClient_ScopeEnum.AUDIT],
                            debug_api=False)
except ApiClient_CRUD_Error as e:
    res = e

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


source

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)

source

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