mirror of
https://github.com/datahub-project/datahub.git
synced 2025-11-13 17:59:48 +00:00
36 lines
1.0 KiB
Python
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}")
|