from conductor.client.configuration.configuration import Configuration
from conductor.client.orkes.orkes_authorization_client import OrkesAuthorizationClient
configuration = Configuration()
authorization_client = OrkesAuthorizationClient(configuration)Creates an application and returns a ConductorApplication object.
from conductor.client.http.models.create_or_update_application_request import CreateOrUpdateApplicationRequest
from conductor.client.orkes.orkes_authorization_client import OrkesAuthorizationClient
from conductor.client.configuration.configuration import Configuration
configuration = Configuration()
authorization_client = OrkesAuthorizationClient(configuration)
request = CreateOrUpdateApplicationRequest(name="APPLICATION_NAME")
app = authorization_client.create_application(request)
application_id = app.idapp = authorization_client.get_application(application_id)apps = authorization_client.list_applications()Updates an application and returns a ConductorApplication object.
request = CreateOrUpdateApplicationRequest("APPLICATION_NAME")
updated_app = authorization_client.update_application(request, application_id)authorization_client.delete_application(application_id)Add one of the roles out of ["USER", "ADMIN", "METADATA_MANAGER", "WORKFLOW_MANAGER", "USER_READ_ONLY"] to an application user.
authorization_client.add_role_to_application_user(application_id, "USER")authorization_client.remove_role_from_application_user(application_id, "USER")from conductor.client.orkes.models.metadata_tag import MetadataTag
tags = [
MetadataTag("auth_tag", "val"), MetadataTag("auth_tag_2", "val2")
]
authorization_client.get_application_tags(tags, application_id)tags = authorization_client.get_application_tags(application_id)tags = [
MetadataTag("auth_tag", "val"), MetadataTag("auth_tag_2", "val2")
]
authorization_client.delete_application_tags(tags, application_id)Creates an access key for the specified application and returns a CreatedAccessKey object. The SECRET for this access key is available in the returned object. This is the only time when the secret for this newly created access key can be retrieved and saved.
from conductor.client.orkes.models.created_access_key import CreatedAccessKey
created_access_key = authorization_client.create_access_key(application_id)Retrieves all access keys for the specified application as List[AccessKey].
from conductor.client.orkes.models.access_key import AccessKey
access_keys = authorization_client.get_access_keys(application_id)Toggle access key status between ACTIVE and INACTIVE.
access_key = authorization_client.toggle_access_key_status(application_id, created_access_key.id)authorization_client.delete_access_key(application_id, created_access_key.id)Creates or updates a user and returns a ConductorUser object.
from conductor.client.http.models.upsert_user_request import UpsertUserRequest
from conductor.client.http.models.conductor_user import ConductorUser
user_id = 'test.user@company.com'
user_name = "Test User"
roles = ["USER"]
req = UpsertUserRequest(user_name, roles)
user = authorization_client.upsert_user(req, user_id)user = authorization_client.get_user(user_id)users = authorization_client.list_users()authorization_client.delete_user(user_id)Creates or updates a user group and returns a Group object.
from conductor.client.http.models.upsert_group_request import UpsertGroupRequest
from conductor.client.http.models.group import Group
group_id = 'test_group'
group_name = "Test Group"
group_user_roles = ["USER"]
req = UpsertGroupRequest("Integration Test Group", group_user_roles)
group = authorization_client.upsert_group(req, group_id)group = authorization_client.get_group(group_id)Retrives all groups as a List[Group]
users = authorization_client.list_groups()authorization_client.delete_group(group_id) authorization_client.add_user_to_group(group_id, user_id)Retrives all users in a group as List[ConductorUser]
users = self.authorization_client.get_users_in_group(group_id)authorization_client.remove_user_from_group(group_id, user_id)Grants a set of accesses to the specified Subject for a given Target.
from conductor.client.http.models.target_ref import TargetRef
from conductor.shared.http.enums.target_type import TargetType
from conductor.client.http.models.subject_ref import SubjectRef
from conductor.shared.http.enums.subject_type import SubjectType
from conductor.client.orkes.models.access_type import AccessType
target = TargetRef(TargetType.WORKFLOW_DEF, "TEST_WORKFLOW")
subject_group = SubjectRef(SubjectType.GROUP, group_id)
access_group = [AccessType.EXECUTE]
subject_user = SubjectRef(SubjectType.USER, user_id)
access_user = [AccessType.EXECUTE, AccessType.READ]
authorization_client.grant_permissions(subject_group, target, access_group)
authorization_client.grant_permissions(subject_user, target, access_user)Given the target, returns all permissions associated with it as a Dict[str, List[SubjectRef]]. In the returned dictionary, key is AccessType and value is a list of subjects.
from conductor.client.http.models.target_ref import TargetRef
from conductor.shared.http.enums.target_type import TargetType
target = TargetRef(TargetType.WORKFLOW_DEF, WORKFLOW_NAME)
target_permissions = authorization_client.get_permissions(target)Given a group id, returns all the permissions granted to a group as List[GrantedPermission].
from conductor.client.orkes.models.granted_permission import GrantedPermission
group_permissions = authorization_client.get_granted_permissions_for_group(group_id)Given a user id, returns all the permissions granted to a user as List[GrantedPermission].
from conductor.client.orkes.models.granted_permission import GrantedPermission
user_permissions = authorization_client.get_granted_permissions_for_user(user_id)Removes a set of accesses from a specified Subject for a given Target.
from conductor.client.http.models.target_ref import TargetRef
from conductor.shared.http.enums.target_type import TargetType
from conductor.client.http.models.subject_ref import SubjectRef
from conductor.shared.http.enums.subject_type import SubjectType
from conductor.client.orkes.models.access_type import AccessType
target = TargetRef(TargetType.WORKFLOW_DEF, "TEST_WORKFLOW")
subject_group = SubjectRef(SubjectType.GROUP, group_id)
access_group = [AccessType.EXECUTE]
subject_user = SubjectRef(SubjectType.USER, user_id)
access_user = [AccessType.EXECUTE, AccessType.READ]
authorization_client.remove_permissions(subject_group, target, access_group)
authorization_client.remove_permissions(subject_user, target, access_user)