Roles#


StreamSets Platform provides several different role types that allow you to customize or restrict the level of access that users in your organization have.

For more details on the types of roles available and the access they grant, please refer to the StreamSets Platform Documentation.

Selecting a User’s Roles at Creation Time#

As shown in the Inviting Users section, a User’s roles can be selected at creation time in the SDK by setting the the roles attribute equal to a list of roles for that user. You can then pass the streamsets.sdk.sch_models.User instance to the streamsets.sdk.ControlHub.invite_user() method:

user_builder = sch.get_user_builder()
user = user_builder.build(email_address='johndeer@test.com')
user.roles = ['Connection Editor', 'Connection User', 'Topology Editor', 'Topology User']
response = sch.invite_user(user)

The SDK utilizes the same naming conventions for the roles as the Platform UI. A list of the available roles can be found in the Platform Documentation.

Updating an Existing User’s Roles#

As shown in the Updating An Existing User section, you can also update the roles of an existing user in the SDK. Similar to selecting roles at user creation time, you can update an existing user’s roles by setting the the roles attribute equal to a list of roles the user should have and passing the updated streamsets.sdk.sch_models.User instance to the streamsets.sdk.ControlHub.update_user() method:

user = sch.users.get(email_address='kramer@streamsets.com')
# Set the user's roles to be the following
user.roles = ['Engine Administrator', 'Job Operator', 'Pipeline Editor', 'Deployment Manager']
response = sch.update_user(user)

Selecting a Group’s Roles at Creation Time#

As seen in the Creating Groups section, the roles assigned to a group can be specified at creation time. Utilize the streamsets.sdk.sch_models.Roles.append() and streamsets.sdk.sch_models.Roles.remove() methods to add and remove roles from the group, and then pass the streamsets.sdk.sch_models.Group instance to the streamsets.sdk.ControlHub.add_group() method:

group_builder = sch.get_group_builder()
group = group_builder.build(display_name='example-group', group_id='example_group')
# Add the 'Pipeline User' role and remove the 'Engine Administrator' role
group.roles.append('Pipeline User')
group.roles.remove('Engine Administrator')
response = sch.add_group(group)

Updating an Existing Group’s Roles#

You can also update the roles of an existing group, as shown in the Updating Groups section. Similarly to setting a group’s roles during creation, utilize the streamsets.sdk.sch_models.Roles.append() and streamsets.sdk.sch_models.Roles.remove() methods to add and remove roles from the group after retrieving the group in question from Platform. Once the updates have been made, pass the streamsets.sdk.sch_models.Group instance to the streamsets.sdk.ControlHub.update_group() method:

group = sch.groups.get(display_name='example-group')
group.roles.remove('Deployment Manager')
response = sch.update_group(group)

Note

Being able to add or remove only one role at a time is a known limitation for the streamsets.sdk.sch_models.Group class. It will be improved and expanded in a future release.