= dmda.DomoTokenAuth(
token_auth ="domo-alpha",
domo_instance=os.environ["ALPHA_ACCESS_TOKEN"],
domo_access_token )
Application
What are applications?
Applications tend to be tooling that domo implemented on the executor framework or extensions to domo products that originated as custom apps that have been fully integrated into the UI.
For example Publish started out as a 3rd party app that was later integrated into domo as an App, and then later received dedicated API paths.
Similarly Remote DomoStats / Observability metrics started out as 3rd party scripting, which was later integrated into Domo’s “Executor Framework” an internal framework for managing java / lambda functions, now defined under the application APIs.
Note, pieces of the executor framework has slowly been morphed and adapted into CodeEngine and exposed to end users.
DomoJob_Types
DomoJob_Types (value, names=None, module=None, qualname=None, type=None, start=1)
An enumeration.
= await application_routes.get_applications(auth = token_auth)
res
'name') for app in res.response])
pprint([app.get(
= next((obj for obj in res.response if "Remote Domo Stats" in obj['name'])) rds_app
['Toolkit: DataSet S3 Backup',
'Toolkit: Schema Management',
'Sony PDP Executor',
'Sony Collaboration Publisher Executor',
'Toolkit: User Automation',
'Toolkit: DataSet Tag Automation',
'Geocoder Executor',
'Toolkit: Virtual Dataset Sharing',
'Toolkit: Data Copy',
'Toolkit: PDP Automation',
'Toolkit: Group Management',
'Toolkit: Triggered Reports',
'Toolkit: Remote Domo Stats',
'Toolkit: Data Watchdog']
DomoApplication
DomoApplication (auth:domolibrary.client.DomoAuth.DomoAuth, id:str, version:str=None, name:str=None, customer_id:str=None, description:str=None, execution_class:str=None, grants:List[str]=None, jobs:List[domolibrary.classes.Dom oApplication_Job_Base.DomoJob_Base]=None, jobs_schedule: List[domolibrary.classes.DomoApplication_Job_Base.DomoTr igger_Schedule]=None)
Exported source
@dataclass
class DomoApplication:
= field(repr=False)
auth: dmda.DomoAuth id: str
str = None
version: str = None
name: str = None
customer_id: str = None
description: str = None
execution_class: str] = None
grants: List[= field(default=None)
jobs: List[dmdj.DomoJob] = field(default=None, repr=False)
jobs_schedule: List[dmdj.DomoTrigger_Schedule]
@classmethod
def _from_json(cls, obj, auth: dmda.DomoAuth = None):
= util_dd.DictDot(obj)
dd
return cls(
id=dd.applicationId,
=dd.customerId,
customer_id=dd.name,
name=dd.description,
description=dd.version,
version=dd.executionClass,
execution_class=dd.authorities,
grants=auth,
auth
)
def _get_job_class(self):
return DomoJob_Types.get_from_api_name(self.name)
= await DomoApplication.get_by_id(
test_application =token_auth,
auth=rds_app['applicationId'],
application_id=False,
return_raw
)
pprint(test_application)
DomoApplication(id='50e7230f-d2f2-42e2-a208-d94c8ae9f64c',
version='1.2.469_1',
name='Toolkit: Remote Domo Stats',
customer_id='domo-alpha',
description='Remote Domo Stats',
execution_class='com.domo.executor.subscriberstats.SubscriberStatsExecutor',
grants=['developer.token.manage',
'pipeline.executor.job.create',
'content.export',
'service.internal',
'dataset.admin',
'audit',
'domostats-connector',
'content.admin',
'usage.reports.view',
'authenticated.user'],
jobs=None)
await test_application.get_jobs()
[DomoJob_RemoteDomoStats(name='domo-community', application_id='50e7230f-d2f2-42e2-a208-d94c8ae9f64c', logs_dataset_id='c29116fa-c3ad-4bc9-9de5-0f05ce7e7649', id='95ace776-c254-4e61-97f6-77671f3b098b', user_id=1623162654, execution_timeout=1440, is_enabled=False, customer_id='domo-alpha', created_dt=datetime.datetime(2024, 9, 19, 21, 32, 55), updated_dt=datetime.datetime(2024, 9, 19, 21, 35, 2), description='', execution_payload={'remoteInstance': 'domo-community', 'subscriberJobId': 'df57f5b6-9219-46ec-9cf9-d0c8ae56b76f', 'policies': {'People': '7a7caccc-4724-470d-b89f-e5f6d27676a8'}, 'metricsDatasetId': 'c29116fa-c3ad-4bc9-9de5-0f05ce7e7649'}, share_state={'sharedEntities': [{'id': '1623162654', 'type': 'USER', 'accessLevel': 'OWNER'}]}, accounts=[14], triggers=[], remote_instance='domo-community', subscriber_job_id='df57f5b6-9219-46ec-9cf9-d0c8ae56b76f', config=RemoteDomoStats_Config(policies=[RemoteDomoStats_Config_Policy(type='People', dataset_id='7a7caccc-4724-470d-b89f-e5f6d27676a8')])),
DomoJob_RemoteDomoStats(name='REMOTE_Users', application_id='50e7230f-d2f2-42e2-a208-d94c8ae9f64c', logs_dataset_id='c29116fa-c3ad-4bc9-9de5-0f05ce7e7649', id='b4fd853a-1524-4512-9e4f-1d7a809913db', user_id=1623162654, execution_timeout=1440, is_enabled=False, customer_id='domo-alpha', created_dt=datetime.datetime(2024, 3, 8, 21, 35, 46), updated_dt=datetime.datetime(2024, 9, 19, 21, 30, 25), description='updated - 2024-03-08 17:50:24.269350', execution_payload={'remoteInstance': 'domo-alpha.domo.com', 'policies': {'People': '7a7caccc-4724-470d-b89f-e5f6d27676a8'}, 'metricsDatasetId': 'c29116fa-c3ad-4bc9-9de5-0f05ce7e7649'}, share_state={'sharedEntities': [{'id': '1623162654', 'type': 'USER', 'accessLevel': 'OWNER'}]}, accounts=[10], triggers=[], remote_instance='domo-alpha', subscriber_job_id=None, config=RemoteDomoStats_Config(policies=[RemoteDomoStats_Config_Policy(type='People', dataset_id='7a7caccc-4724-470d-b89f-e5f6d27676a8')]))]
= await DomoApplication.get_by_id(
test_application =token_auth, application_id="50e7230f-d2f2-42e2-a208-d94c8ae9f64c"
auth
)
await test_application.get_schedules()
= await DomoApplication.get_by_id(
test_application =token_auth, application_id="50e7230f-d2f2-42e2-a208-d94c8ae9f64c"
auth
)await test_application.find_next_job_schedule(return_raw=False)
DomoTrigger_Schedule(schedule_text=None, schedule_type='scheduleTriggered', minute=0, hour=0, minute_str=None, hour_str=None)