datahub/metadata-ingestion/examples/library/role_assign_actors.py

36 lines
1.0 KiB
Python

from datahub.emitter.mce_builder import make_group_urn, make_user_urn
from datahub.emitter.mcp import MetadataChangeProposalWrapper
from datahub.emitter.rest_emitter import DatahubRestEmitter
from datahub.metadata.schema_classes import (
ActorsClass,
RoleGroupClass,
RoleUserClass,
)
# Create the role URN
# Role URNs follow the pattern: urn:li:role:{role_id}
role_urn = "urn:li:role:snowflake_reader_role"
# Define the users and groups assigned to this role
actors = ActorsClass(
users=[
RoleUserClass(user=make_user_urn("john.doe")),
RoleUserClass(user=make_user_urn("jane.smith")),
],
groups=[
RoleGroupClass(group=make_group_urn("data-analysts")),
RoleGroupClass(group=make_group_urn("business-intelligence")),
],
)
# Create a metadata change proposal
mcp = MetadataChangeProposalWrapper(
entityUrn=role_urn,
aspect=actors,
)
# Emit the metadata change
emitter = DatahubRestEmitter(gms_server="http://localhost:8080")
emitter.emit(mcp)
print(f"Assigned users and groups to role: {role_urn}")