Publish Routes

token_auth = dmda.DomoTokenAuth(
    domo_instance= 'domo-community',
    domo_access_token=os.environ["DOMO_DOJO_ACCESS_TOKEN"],
)

Publications


source

CRUD_Publish_Error

 CRUD_Publish_Error
                     (res:domolibrary.client.ResponseGetData.ResponseGetDa
                     ta)

base exception


source

GET_Publish_Error

 GET_Publish_Error
                    (res:domolibrary.client.ResponseGetData.ResponseGetDat
                    a)

base exception


source

search_publications

 search_publications (auth:domolibrary.client.DomoAuth.DomoAuth,
                      search_term:str=None, limit=100, offset=0,
                      session:httpx.AsyncClient=None,
                      debug_loop:bool=False, debug_api:bool=False,
                      debug_num_stacks_to_drop=1, parent_class:str=None,
                      return_raw:bool=False)
res = await search_publications(auth=token_auth, 
                                debug_loop = True, 
                                )

publication = res.response[0]
pd.DataFrame(res.response[0:5])

πŸš€ Retrieving records 0 through 100 via https://domo-community.domo.com/api/publish/v2/publication/summaries
{'all_rows': 9, 'new_records': 9}
skip: 0, limit: 100

πŸš€ Retrieving records 9 through 109 via https://domo-community.domo.com/api/publish/v2/publication/summaries
{'all_rows': 9, 'new_records': 0}
skip: 9, limit: 100

πŸŽ‰ Success - 9 records retrieved from https://domo-community.domo.com/api/publish/v2/publication/summaries in query looper
id name description dataSets dataApps dataAppViews pages embedPages cards subscribers ... invalidPageSubscribers invalidCardSubscribers isV2 hasDuplicate refreshing executionType executionStatusDescription executionStartTime executionEndTime executionEstimatedCompletionTime
0 052567d8-d1ff-46dc-b37c-fcdcb3b3ba15 AppStudio publication 2 1 2 0 0 8 1 ... 0 1 True False False REFRESH SUCCESS 1724781124725 1724781128967 NaN
1 095426a1-2c35-468b-bb96-36c516382f19 Ellibot 1 0 0 0 0 0 1 ... 0 0 True False False NEW_PUBLICATION NaN 1699639510737 1699639511580 1.699640e+12
2 f02ad4d6-8fde-43b6-8263-7b5450ff0e11 jace-testing 1 0 0 1 0 1 1 ... 0 0 True False False NEW_PUBLICATION SUCCESS 1714141667162 1714141678227 1.714142e+12
3 99a4f772-f0e0-47a6-873a-5870d03b9134 Landing Page QA 1 0 0 0 0 0 0 ... 0 0 True False False NEW_PUBLICATION NaN 1686863663474 1686863665990 1.686864e+12
4 e3295d79-4dbe-4994-8f8e-f105b178cc3b Sandbox_PROD 1 0 0 0 0 0 0 ... 0 0 True False False NEW_PUBLICATION NaN 1686862458414 1686862460962 1.686862e+12

5 rows Γ— 25 columns


source

get_publication_by_id

 get_publication_by_id (auth:domolibrary.client.DomoAuth.DomoAuth,
                        publication_id:str,
                        session:httpx.AsyncClient=None,
                        debug_api:bool=False, debug_num_stacks_to_drop=1,
                        parent_class:str=None, timeout=10)
( await get_publication_by_id(
        publication_id=publication['id'], auth=token_auth, timeout=10
    ) ).response
{'id': '052567d8-d1ff-46dc-b37c-fcdcb3b3ba15',
 'name': 'AppStudio publication',
 'customerId': 'mmmm-0012-0200',
 'created': 1717488524142,
 'content': {'id': '0d949808-b3b3-4432-ad57-e59dfe4e5be9',
  'domain': 'domo-community.domo.com',
  'customerId': 'mmmm-0012-0200',
  'userId': '612085674',
  'type': 'PACKAGE',
  'updated': 1717488524142,
  'hash': '58df8f64-fb5a-4bf2-809f-c046d2ed4420',
  'publicationId': '052567d8-d1ff-46dc-b37c-fcdcb3b3ba15'},
 'description': '',
 'isV2': True,
 'hasDuplicate': False,
 'useDirectContent': True,
 'type': 'CONTENT',
 'isBackup': False,
 'children': [{'id': '6d605d2c-e425-4673-bb5c-2afa3498c8d5',
   'customerId': '',
   'created': 1732812330129,
   'content': {'id': 'b2227248-cc5d-43b9-a7dc-9cb76954df53',
    'domain': 'domo-community.domo.com',
    'customerId': '',
    'userId': '612085674',
    'domoObjectId': 'e747ac95-669f-40d6-aeb4-f3b9e769c975',
    'type': 'DATASET',
    'updated': 1732812330129,
    'hash': 'f828e2fe-a6eb-4708-ab77-86e7927bd2a2'},
   'isV2': True,
   'hasDuplicate': False,
   'useDirectContent': True,
   'type': 'CONTENT',
   'isBackup': False,
   'children': [],
   'subscriptionAuthorizations': [],
   'subscribers': [],
   'isPublic': False},
  {'id': 'd5d94e25-06ac-4205-b693-04d44ff9dbe4',
   'customerId': '',
   'created': 1732812330129,
   'content': {'id': '93a3e7fb-1db8-4105-958b-316b92666219',
    'domain': 'domo-community.domo.com',
    'customerId': '',
    'userId': '612085674',
    'domoObjectId': '248e93d7-1a06-422b-afe0-28159f1f07ec',
    'type': 'DATASET',
    'updated': 1732812330129,
    'hash': 'a2b55353-0743-4de0-b52d-fcf10969af5f'},
   'isV2': True,
   'hasDuplicate': False,
   'useDirectContent': True,
   'type': 'CONTENT',
   'isBackup': False,
   'children': [],
   'subscriptionAuthorizations': [],
   'subscribers': [],
   'isPublic': False},
  {'id': '866f98bd-2390-4910-b8ec-f9ca8e28677b',
   'customerId': '',
   'created': 1732812330129,
   'content': {'id': 'c4339bee-0633-40ca-b9fd-76d62c907e6e',
    'domain': 'domo-community.domo.com',
    'customerId': '',
    'userId': '612085674',
    'domoObjectId': '847733852',
    'type': 'DATA_APP',
    'updated': 1732812330129,
    'hash': 'e7ef0d71-2729-4852-b324-234d59d6a79c'},
   'isV2': True,
   'hasDuplicate': False,
   'useDirectContent': True,
   'type': 'CONTENT',
   'isBackup': False,
   'children': [],
   'subscriptionAuthorizations': [],
   'subscribers': [],
   'isPublic': False}],
 'subscriptionAuthorizations': [{'id': '8ec9b3ce-d4ae-445a-9b00-f8bef3a56818',
   'domain': 'domo-community-subscriber.domo.com',
   'created': 1724781125474,
   'publicationId': '052567d8-d1ff-46dc-b37c-fcdcb3b3ba15'},
  {'id': 'eff7320a-50aa-47fe-89ae-9a4ae12df73f',
   'domain': 'datacrew-space.domo.com',
   'created': 1717488551349,
   'publicationId': '052567d8-d1ff-46dc-b37c-fcdcb3b3ba15'}],
 'subscribers': [],
 'userId': 612085674,
 'isPublic': False}

source

generate_publish_body

 generate_publish_body (url:str, sub_domain_ls:List[str],
                        content_ls:List[str], name:str, description:str,
                        unique_id:str, is_new:bool)
body = generate_publish_body(
    "domo-community.domo.com", ["test.domo.com"], ["content"], "test", "", "id", True
)
body
{'id': 'id',
 'name': 'test',
 'description': '',
 'domain': 'domo-community.domo.com',
 'content': ['content'],
 'subscriberDomain': ['test.domo.com'],
 'new': 'true'}

source

create_publish_job

 create_publish_job (auth:domolibrary.client.DomoAuth.DomoAuth, body:dict,
                     session:httpx.AsyncClient=None, debug_api:bool=False,
                     parent_class:str=None, debug_num_stacks_to_drop=1)

source

udpate_publish_job

 udpate_publish_job (auth:domolibrary.client.DomoAuth.DomoAuth,
                     publication_id:str, body:dict,
                     session:httpx.AsyncClient=None, debug_api:bool=False,
                     debug_num_stacks_to_drop=1, parent_class:str=None)

Subscriptions


source

get_publish_subscriptions

 get_publish_subscriptions (auth:domolibrary.client.DomoAuth.DomoAuth,
                            publish_id:str,
                            session:httpx.AsyncClient=None,
                            debug_api:bool=False,
                            debug_num_stacks_to_drop=1,
                            parent_class:str=None)

retrieves a summary of existing subscriptions

res = await get_publish_subscriptions(auth=token_auth, publish_id=publication['id'])
res.response
{'id': '052567d8-d1ff-46dc-b37c-fcdcb3b3ba15',
 'subscriptionsCount': 1,
 'subscriptionSummaries': [{'subscriptionId': 'ef6e4cd0-9607-4db2-b4bb-b9f830b665a2',
   'subscriberDomain': 'domo-community-subscriber.domo.com',
   'result': 'MISSING_DATASET',
   'description': 'Missing dataset for content id, e747ac95-669f-40d6-aeb4-f3b9e769c975. Missing dataset for content id, 248e93d7-1a06-422b-afe0-28159f1f07ec. Missing data_app for content id, 847733852. Missing additional content...',
   'datasets': 0,
   'dataApps': 0,
   'dataAppViews': 0,
   'pages': 0,
   'embedPages': 0,
   'cards': 0,
   'created': 1724781129000,
   'updated': 1724781129000}]}

source

get_subscription_summaries

 get_subscription_summaries (auth:domolibrary.client.DomoAuth.DomoAuth,
                             session:httpx.AsyncClient=None,
                             debug_api:bool=False,
                             debug_num_stacks_to_drop=1,
                             parent_class:str=None)

retrieves a summary of existing subscriptions

await get_subscription_summaries(auth=token_auth)
ResponseGetData(status=200, response=[], is_success=True, parent_class=None)
(await get_publish_subscriptions(auth=token_auth, publish_id=publication['id'])).response
{'id': '052567d8-d1ff-46dc-b37c-fcdcb3b3ba15',
 'subscriptionsCount': 1,
 'subscriptionSummaries': [{'subscriptionId': 'ef6e4cd0-9607-4db2-b4bb-b9f830b665a2',
   'subscriberDomain': 'domo-community-subscriber.domo.com',
   'result': 'MISSING_DATASET',
   'description': 'Missing dataset for content id, e747ac95-669f-40d6-aeb4-f3b9e769c975. Missing dataset for content id, 248e93d7-1a06-422b-afe0-28159f1f07ec. Missing data_app for content id, 847733852. Missing additional content...',
   'datasets': 0,
   'dataApps': 0,
   'dataAppViews': 0,
   'pages': 0,
   'embedPages': 0,
   'cards': 0,
   'created': 1724781129000,
   'updated': 1724781129000}]}

get subscription content details


source

get_subscriber_content_details

 get_subscriber_content_details
                                 (auth:domolibrary.client.DomoAuth.DomoAut
                                 h, publication_id,
                                 subscriber_instance:str,
                                 debug_api:bool=False,
                                 debug_num_stacks_to_drop=1,
                                 session:httpx.AsyncClient=None,
                                 parent_class:str=None)
publication_id = "701eb547-4244-43f6-bcda-003ed2c483c7"


res = await get_subscriber_content_details(
    auth=token_auth,
    publication_id=publication_id,
    subscriber_instance="datacrew-space",
)

res.response
[]

source

get_subscription_invititations

 get_subscription_invititations
                                 (auth:domolibrary.client.DomoAuth.DomoAut
                                 h, session:httpx.AsyncClient=None,
                                 debug_api:bool=False,
                                 parent_class:str=None,
                                 debug_num_stacks_to_drop=1)

retrieves a list of subscription invitations


source

add_subscriber_domain

 add_subscriber_domain (auth:domolibrary.client.DomoAuth.DomoAuth,
                        domain:str, session:httpx.AsyncClient=None,
                        debug_api:bool=False, parent_class:str=None,
                        debug_num_stacks_to_drop=1)

adds subscriber domain to the list


source

get_subscriber_domains

 get_subscriber_domains (auth:domolibrary.client.DomoAuth.DomoAuth,
                         session:httpx.AsyncClient=None,
                         debug_api:bool=False, parent_class:str=None,
                         debug_num_stacks_to_drop=1)

retrieves a list of subsriber domains

#domain = "test-add-subscriber-domain.domo.com"
#res = await add_subscriber_domain(auth=token_auth, domain = domain)
#print (res)

res = await get_subscriber_domains(auth=token_auth)

pd.DataFrame(res.response)
id publisherDomain customerId subscriberDomain virtualUserId created activeSubscriptions tenantId
0 44a56146-f422-4175-9c3b-a194f339f9b6 domo-community.domo.com mmmm-0012-0200 domo-community.domo.com fc:f230ba95-bc49-4875-a0db-3c7cd58ed3cc 1680594505000 0 NaN
1 8b5c26e0-db3a-40f8-855f-6189ac3cf5c8 domo-community.domo.com mmmm-0012-0200 test.domo.com fc:e3ce6205-6717-42b4-ba1c-16b5e40eca98 1680594505000 5 NaN
2 8d1454a3-82ac-42ef-b9a7-aa443b50afa1 domo-community.domo.com mmmm-0012-0200 datacrew-space.domo.com fc:9240937f-377d-415b-923c-12d443447565 1713994806000 3 NaN
3 af56ef48-bcbd-4b73-baf8-d9422138af50 domo-community.domo.com mmmm-0012-0200 test-add-subscriber-domain.domo.com fc:17238133-806d-40b5-a6ac-ab0ec97c0c36 1732731040000 0 test-add-subscriber-domain.domo.com
4 bcd9b266-7d2b-4aee-8bc1-73d7f8f3e504 domo-community.domo.com mmmm-0012-0200 domo-community-jace-testing.domo.com fc:63b0128f-b01d-4480-883a-b871715c6093 1714140839000 1 none
5 ca8cd344-df00-443b-b0f7-eed0d1fad30c domo-community.domo.com mmmm-0012-0200 domo-community-subscriber.domo.com fc:5c4fdb78-6f26-4bed-a12d-1930c69f6a1e 1691590327000 1 zakrevskyi@gmail.com
6 d5fba4c4-1d8d-437c-a639-f23fd5263efd domo-community.domo.com mmmm-0012-0200 domo-community-ellibot.domo.com fc:4763b9b3-52bc-48e5-9f2b-e12b3515e6d7 1699639129000 1 West

sample implementation of get_subscription_invitations


source

accept_invite_by_id

 accept_invite_by_id (auth:domolibrary.client.DomoAuth.DomoAuth,
                      subscription_id:str, session:httpx.AsyncClient=None,
                      debug_api:bool=False, debug_num_stacks_to_drop=1,
                      parent_class:str=None)

this takes get_subscription_invites_list into account and accepts - not instant


source

accept_invite_by_id_v2

 accept_invite_by_id_v2 (auth:domolibrary.client.DomoAuth.DomoAuth,
                         publication_id:str, owner_id:str,
                         session:httpx.AsyncClient=None,
                         debug_api:bool=False, parent_class:str=None,
                         debug_num_stacks_to_drop=1)

this takes get_subscription_invites_list into account and accepts - not instant


source

refresh_publish_jobs

 refresh_publish_jobs (auth:domolibrary.client.DomoAuth.DomoAuth,
                       publish_ids:list, session:httpx.AsyncClient=None,
                       debug_api:bool=False,
                       debug_num_stacks_to_drop:int=1,
                       parent_class:str=None)

Refreshing list of publish jobs. Typically β€œinstance” = publisher instance

res = await get_subscription_invititations(auth=token_auth)

pd.DataFrame(res.response[0:5])