= dmda.DomoTokenAuth(
auth =os.environ["DOMO_INSTANCE"],
domo_instance=os.environ["DOMO_ACCESS_TOKEN"],
domo_access_token
)
= (await role_routes.get_roles(auth=auth)).response
roles = next((role for role in roles if 'test' in role['name'].lower()))
role = role["id"]
role_id
= (await user_routes.get_all_users(auth=auth)).response
users = next((user for user in users if 'test' in user["emailAddress"].lower())) user
Role
DomoRole
DomoRole
DomoRole (auth:domolibrary.client.DomoAuth.DomoAuth, id:str, name:str=None, description:str=None, is_system_role:bool=False, is_default_role:bool=False, grants:List[domolibrary.classes.DomoGrant.DomoGrant]=<factory>, membership_ls:list=<factory>)
DomoRole GET
## DomoRole GET
sample get role by id
await DomoRole.get_by_id(auth=auth, role_id=role_id, return_raw=False)
DomoRole(id=108369421, name='test_update_metadata', description='updated via domolibrary on 2024-11-11', is_system_role=0, is_default_role=None, grants=[], membership_ls=[])
Handle Role Grants
sample implementation of get_role_grants
= DomoRole(auth=auth, id=role_id)
domo_role
await domo_role.get_grants(return_raw=False))[0:5] (
[DomoGrant(id='user.invite', display_group=None, title=None, depends_on_ls=None, description=None, role_membership_ls=None),
DomoGrant(id='user.edit', display_group=None, title=None, depends_on_ls=None, description=None, role_membership_ls=None)]
SetRoleGrants_MissingGrants
SetRoleGrants_MissingGrants (cls_instance, missing_grants:List[str])
base exception
sample implementation of set_grants
= await DomoRole.get_by_id(role_id = role_id, auth = auth)
domo_role
= [
role_grants "user.edit",
"user.invite",
# "user.session.edit",
# "versions.repository.admin",
]
await domo_role.set_grants(grants=role_grants, debug_api=False)
😕 weird API issue, but role should have been modified. setting is_success = True
[DomoGrant(id='user.invite', display_group=None, title=None, depends_on_ls=None, description=None, role_membership_ls=None),
DomoGrant(id='user.edit', display_group=None, title=None, depends_on_ls=None, description=None, role_membership_ls=None)]
CRUD Role
Handle Role Membership
sample implementation of get_membership
= DomoRole(id=role_id, auth=auth)
domo_role
await domo_role.get_membership(return_raw=False))[0:5] (
[DomoUser(id='1149821919', display_name='test 3 - updated 2024-10-28', email_address='delete_test3@test.com', role_id=108369421, department=None, title=None, avatar_key=None, phone_number=None, web_landing_page=None, web_mobile_landing_page=None, employee_id=None, employee_number=None, hire_date=None, reports_to=None, publisher_domain=None, subscriber_domain=None, virtual_user_id=None, created_dt=None, last_activity_dt=None, custom_attributes={}, role=None, domo_api_clients=None, domo_access_tokens=None)]
AddUser_Error
AddUser_Error (cls_instance, user_id, user_name=None)
base exception
sample implementation of add_user
= dmdu.DomoUser(id=user["id"], auth=auth)
domo_user = DomoRole(id=role_id, auth=auth)
domo_role
await domo_role.add_user(user=domo_user))[0:5] (
[DomoUser(id='1149821919', display_name='test 3 - updated 2024-10-28', email_address='delete_test3@test.com', role_id=108369421, department=None, title=None, avatar_key=None, phone_number=None, web_landing_page=None, web_mobile_landing_page=None, employee_id=None, employee_number=None, hire_date=None, reports_to=None, publisher_domain=None, subscriber_domain=None, virtual_user_id=None, created_dt=None, last_activity_dt=None, custom_attributes={}, role=None, domo_api_clients=None, domo_access_tokens=None)]
Handle Role Metadata
sample implementation of update_role_metadata
# retrieve the super_admin role
= await DomoRole.get_by_id(role_id=role_id, auth=auth)
dmr
await dmr.update(
=f"updated via domolibrary on {dt.date.today()}", debug_api=False
description )
😕 weird API issue, but role should have been modified. setting is_success = True
DomoRole(id=108369421, name='test_update_metadata', description='updated via domolibrary on 2024-11-22', is_system_role=0, is_default_role=None, grants=[], membership_ls=[])
handle CRUD Role
DeleteRole_Error
DeleteRole_Error (cls_instance)
base exception
sample implementation of delete_role
try:
await DomoRole.delete_role(role_id=role_id, auth=auth, debug_api=False)
except Exception as e:
print(e)
😕 weird API issue, but role should have been deleted. setting is_success = True
Domo Roles
DomoRoles
DomoRoles (auth:domolibrary.client.DomoAuth.DomoAuth, roles:List[__main__.DomoRole]=None, default_role:__main__.DomoRole=None)
SearchRole_NotFound
SearchRole_NotFound (cls_instance, role_id, message='not found')
base exception
Search and Get Roles
= DomoRoles(auth=auth)
domo_roles
await domo_roles.get_default_role()
domo_roles
DomoRoles(roles=None, default_role=DomoRole(id=2, name='Privileged', description='Full access except for editing users and settings owners', is_system_role=True, is_default_role=None, grants=[], membership_ls=[]))
await domo_roles.get())[0:5] (
[DomoRole(id=1, name='Admin', description='Full access to everything', is_system_role=True, is_default_role=False, grants=[], membership_ls=[]),
DomoRole(id=2, name='Privileged', description='Full access except for editing users and settings owners', is_system_role=True, is_default_role=True, grants=[], membership_ls=[]),
DomoRole(id=3, name='Editor', description='Can edit Cards, Pages, DataSets, and Dataflows', is_system_role=True, is_default_role=False, grants=[], membership_ls=[]),
DomoRole(id=4, name='Participant', description='Read only access to Cards and Pages', is_system_role=True, is_default_role=False, grants=[], membership_ls=[]),
DomoRole(id=5, name='Social', description='Access limited to social features', is_system_role=True, is_default_role=False, grants=[], membership_ls=[])]
await domo_roles.search_by_name(role_name="Admin")
DomoRole(id=1, name='Admin', description='Full access to everything', is_system_role=True, is_default_role=False, grants=[], membership_ls=[])
Handle CRUD Roles
sample implementation of create_role
= DomoRoles(auth =auth)
domo_role
try:
await domo_role.create(
="super_admin_v3",
name="created via DomoLibrary",
description
)except dmde.DomoError as e:
print(e)
🛑 Role_CRUD_Error 🛑 - function: get_traceback || status 400 || Bad Request at domo-community
sample implementation of upsert_role
= [
grant_ls "cloud.admin",
"versions.repository.admin",
"codeengine.package.manage",
"appstore.admin",
"datastore.admin",
"certifiedcontent.admin",
]
await domo_roles.upsert(
="super_admin_v3",
name="upsert via DomoLibrary",
description=grant_ls,
grants )
😕 weird API issue, but role should have been modified. setting is_success = True
😕 weird API issue, but role should have been modified. setting is_success = True
DomoRole(id=104295428, name='super_admin_v3', description='upsert via DomoLibrary', is_system_role=0, is_default_role=False, grants=[DomoGrant(id='cloud.admin', display_group=None, title=None, depends_on_ls=None, description=None, role_membership_ls=None), DomoGrant(id='versions.repository.admin', display_group=None, title=None, depends_on_ls=None, description=None, role_membership_ls=None), DomoGrant(id='codeengine.package.manage', display_group=None, title=None, depends_on_ls=None, description=None, role_membership_ls=None), DomoGrant(id='appstore.admin', display_group=None, title=None, depends_on_ls=None, description=None, role_membership_ls=None), DomoGrant(id='datastore.admin', display_group=None, title=None, depends_on_ls=None, description=None, role_membership_ls=None), DomoGrant(id='certifiedcontent.admin', display_group=None, title=None, depends_on_ls=None, description=None, role_membership_ls=None)], membership_ls=[])