# hide
import os
import nbdev
import domolibrary.classes.DomoUser as dmdu
SSO Routes
= dmda.DomoTokenAuth(
auth =os.environ["DOMO_INSTANCE"],
domo_instance=os.environ["DOMO_ACCESS_TOKEN"],
domo_access_token
)
await auth.print_is_token()
= dmda.DomoFullAuth(
full_auth =os.environ["DOMO_INSTANCE"],
domo_instance=os.environ["DOMO_USERNAME"],
domo_username=os.environ["DOMO_PASSWORD"],
domo_password )
🎉 token_auth token retrieved from domo-community ⚙️
Direct Signon
toggle_user_direct_signon_access
toggle_user_direct_signon_access (auth:domolibrary.client.DomoAuth.DomoA uth, user_id_ls:List[str], is_enable_direct_signon:bool=True, session:httpx.AsyncClient=None, debug_api:bool=False, parent_class=None, debug_num_stacks_to_drop=1)
SSO_AddUserDirectSignonError
SSO_AddUserDirectSignonError (res:domolibrary.client.ResponseGetData.Res ponseGetData, user_id_ls:List[str], message=None)
base exception
= await dmdu.DomoUsers.by_email(
domo_user = auth,
auth= ['jae@datacrew.space']
email_ls
)
await toggle_user_direct_signon_access(
= auth,
auth = [domo_user.id],
user_id_ls = False,
debug_api )
ResponseGetData(status=200, response='successfully added 1893952720 to direct signon list in domo-community', is_success=True, parent_class=None)
SSO
SSO_CRUD_Error
SSO_CRUD_Error (res:domolibrary.client.ResponseGetData.ResponseGetData, message=None)
base exception
SSO_GET_Error
SSO_GET_Error (res:domolibrary.client.ResponseGetData.ResponseGetData, message=None)
base exception
OIDC
get_sso_oidc_config
get_sso_oidc_config (auth:domolibrary.client.DomoAuth.DomoAuth, session:httpx.AsyncClient=None, debug_api:bool=False, parent_class:str=None, debug_num_stacks_to_drop=1)
Open ID Connect framework
await get_sso_oidc_config(auth=auth)).response (
{'loginEnabled': False,
'idpEnabled': False,
'importGroups': False,
'requireInvitation': False,
'enforceWhitelist': False,
'skipToIdp': False,
'authRequestEndpoint': '',
'tokenEndpoint': '',
'userInfoEndpoint': '',
'publicKey': '',
'redirectUrl': '',
'certificate': '',
'overrideSSO': False,
'overrideEmbed': False,
'wellKnownConfig': ''}
CRUD Operations
generate_sso_oidc_body
generate_sso_oidc_body (is_include_undefined:bool=False, login_enabled:bool=None, idp_enabled:bool=None, import_groups:bool=None, require_invitation:bool=None, enforce_allowlist:bool=None, skip_to_idp:bool=None, auth_request_endpoint:str=None, token_endpoint:str=None, user_info_endpoint:str=None, public_key:str=None, redirect_url:str=None, idp_certificate:str=None, override_sso:bool=None, override_embed:bool=None, well_known_config:str=None, assertion_endpoint:str=None, ingest_attributes:bool=None)
Type | Default | Details | |
---|---|---|---|
is_include_undefined | bool | False | |
login_enabled | bool | None | False |
idp_enabled | bool | None | False |
import_groups | bool | None | False |
require_invitation | bool | None | False |
enforce_allowlist | bool | None | False |
skip_to_idp | bool | None | False |
auth_request_endpoint | str | None | |
token_endpoint | str | None | |
user_info_endpoint | str | None | |
public_key | str | None | |
redirect_url | str | None | |
idp_certificate | str | None | |
override_sso | bool | None | False |
override_embed | bool | None | False |
well_known_config | str | None | “https://{domo_instance}}.domo.com/auth/oidc” |
assertion_endpoint | str | None | |
ingest_attributes | bool | None | False |
SSO_CRUD_Error
SSO_CRUD_Error (res:domolibrary.client.ResponseGetData.ResponseGetData, message=None)
base exception
update_sso_oidc_config
update_sso_oidc_config (auth:domolibrary.client.DomoAuth.DomoAuth, body_sso:dict, session:httpx.AsyncClient=None, debug_api:bool=False, parent_class:str=None, debug_num_stacks_to_drop=1)
to update saml config must update temp and then standard typically would hide under class functions, but b/c Domo won’t update w/o it, pushing down to Route
# import domolibrary.client.DomoAuth as dmda
= await get_sso_oidc_config(auth=auth)
res
= res.response
config_body =False))
config_body.update(generate_sso_oidc_body(require_invitation
# config_body = {'hello': 'failure'}
await update_sso_oidc_config(auth=auth, body_sso=config_body, debug_api=False)
ResponseGetData(status=200, response='successfully disabled SSO', is_success=True, parent_class=None)
SAML
get_sso_saml_config
get_sso_saml_config (auth:domolibrary.client.DomoAuth.DomoAuth, session:httpx.AsyncClient=None, debug_api:bool=False, parent_class:str=None, debug_num_stacks_to_drop=1)
Security Assertion Markup Language
await get_sso_saml_config(auth=auth)).response (
{'enabled': False,
'importGroups': False,
'requireInvitation': False,
'enforceWhitelist': False,
'redirectUrl': '',
'idpEnabled': 'false'}
get_sso_saml_certificate
get_sso_saml_certificate (auth:domolibrary.client.DomoAuth.DomoAuth, session:httpx.AsyncClient=None, debug_api:bool=False, parent_class:str=None, debug_num_stacks_to_drop=1)
await get_sso_saml_certificate(auth = auth)).response (
CRUD Operations
generate_sso_saml_body
generate_sso_saml_body (is_include_undefined:bool=False, is_enabled:bool=None, auth_request_endpoint:str=None, issuer:str=None, idp_certificate:str=None, import_groups:bool=None, require_invitation:bool=None, enforce_allowlist:bool=None, relay_state:bool=None, redirect_url:str=None, idp_enabled:bool=None, skip_to_idp:bool=None, login_enabled=None, token_endpoint=None, user_info_endpoint=None, public_key=None, override_sso=None, override_embed=None, well_known_config=None, assertion_endpoint=None, ingest_attributes=None, custom_attributes=None)
Type | Default | Details | |
---|---|---|---|
is_include_undefined | bool | False | leave it as False to prevent overriding values you don’t want to update |
is_enabled | bool | None | |
auth_request_endpoint | str | None | url |
issuer | str | None | url |
idp_certificate | str | None | |
import_groups | bool | None | |
require_invitation | bool | None | |
enforce_allowlist | bool | None | |
relay_state | bool | None | |
redirect_url | str | None | url |
idp_enabled | bool | None | |
skip_to_idp | bool | None | |
login_enabled | NoneType | None | |
token_endpoint | NoneType | None | |
user_info_endpoint | NoneType | None | |
public_key | NoneType | None | |
override_sso | NoneType | None | |
override_embed | NoneType | None | |
well_known_config | NoneType | None | |
assertion_endpoint | NoneType | None | |
ingest_attributes | NoneType | None | |
custom_attributes | NoneType | None |
= generate_sso_saml_body(
body_sso = False,
is_include_undefined
=True,
is_enabled= "",
auth_request_endpoint = "",
issuer = "",
idp_certificate = False,
import_groups = False,
require_invitation =True,
enforce_allowlist = False,
relay_state = "",
redirect_url = True,
idp_enabled = False,
skip_to_idp = False
custom_attributes
)
body_sso
{'enabled': True,
'authRequestEndpoint': '',
'issuer': '',
'idpCertificate': '',
'importGroups': False,
'requireInvitation': False,
'enforceWhitelist': True,
'relayState': False,
'idpEnabled': True,
'skipToIdp': 'false',
'customAttributes': False,
'redirectUrl': ''}
update_sso_saml_config
update_sso_saml_config (auth:domolibrary.client.DomoAuth.DomoAuth, body_sso:dict, session:httpx.AsyncClient=None, debug_api:bool=False, parent_class:str=None, debug_num_stacks_to_drop=1)
to update saml config must update temp and then standard typically would hide under class functions, but b/c Domo won’t update w/o it, pushing down to Route
# import domolibrary.client.DomoAuth as dmda
= await get_sso_saml_config(auth=auth)
res
= res.response
config_body =False))
config_body.update(generate_sso_saml_body(is_enabled
# config_body = {'hello': 'failure'}
await update_sso_saml_config(auth=auth, body_sso=config_body, debug_api=False)
ResponseGetData(status=200, response='successfully disabled SSO', is_success=True, parent_class=None)
set_sso_certificate
set_sso_certificate (auth:domolibrary.client.DomoAuth.DomoAuth, idp_certificate:str, session:httpx.AsyncClient=None, debug_api:bool=False, parent_class:str=None, debug_num_stacks_to_drop=1, return_raw:bool=False)
toggle_sso_custom_attributes
toggle_sso_custom_attributes (auth:domolibrary.client.DomoAuth.DomoAuth, is_custom_attributes:bool, session:httpx.AsyncClient=None, debug_api:bool=False, parent_class:str=None, debug_num_stacks_to_drop=1)
unsure what this API does
toggle_sso_skip_to_idp
toggle_sso_skip_to_idp (auth:domolibrary.client.DomoAuth.DomoAuth, is_skip_to_idp:bool, session:httpx.AsyncClient=None, debug_api:bool=False, parent_class:str=None, debug_num_stacks_to_drop=1)