Skip to content

Commit 4976656

Browse files
authored
fix(policies): more assertions, add missing policy for editor role (#13644)
1 parent 7cb26ed commit 4976656

File tree

2 files changed

+36
-9
lines changed

2 files changed

+36
-9
lines changed

.github/scripts/check_policies.py

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
root_user_all_privileges = set()
1818
admin_role_platform_privileges = set()
1919
admin_role_all_privileges = set()
20+
reader_role_all_privileges = set()
21+
editor_role_all_privileges = set()
2022
for policy in all_policies:
2123
urn = policy["urn"]
2224
if urn == "urn:li:dataHubPolicy:0":
@@ -33,6 +35,10 @@
3335
editor_platform_policy_privileges = policy["info"]["privileges"]
3436
elif urn == "urn:li:dataHubPolicy:7":
3537
all_user_platform_policy_privileges = policy["info"]["privileges"]
38+
elif urn.startswith("urn:li:dataHubPolicy:reader-"):
39+
reader_role_all_privileges.update(set(policy["info"]["privileges"]))
40+
elif urn.startswith("urn:li:dataHubPolicy:editor-"):
41+
editor_role_all_privileges.update(set(policy["info"]["privileges"]))
3642
try:
3743
doc_type = policy["info"]["type"]
3844
privileges = policy["info"]["privileges"]
@@ -61,20 +67,40 @@
6167
"""
6268
)
6369

70+
# Root user has all privileges
6471
diff_policies = set(platform_privileges).difference(
6572
set(root_user_platform_policy_privileges)
6673
)
6774
assert len(diff_policies) == 0, f"Missing privileges for root user are {diff_policies}"
6875

69-
diff_root_user_admin_role = set(
70-
root_user_platform_policy_privileges
71-
).difference(set(admin_role_platform_privileges))
72-
assert len(diff_root_user_admin_role) == 0, f"Missing privileges for admin role are {diff_root_user_admin_role}"
76+
# admin role and root user have same platform privileges
77+
diff_root_missing_from_admin = set(root_user_platform_policy_privileges).difference(set(admin_role_platform_privileges))
78+
diff_admin_missing_from_root = set(admin_role_platform_privileges).difference(set(root_user_platform_policy_privileges))
7379

74-
diff_root_user_admin_role_all = set(
75-
root_user_all_privileges
76-
).difference(set(admin_role_all_privileges))
77-
assert len(diff_root_user_admin_role_all) == 0, f"Missing privileges for admin role are {diff_root_user_admin_role_all}"
80+
assert len(diff_root_missing_from_admin) == 0, f"Admin role missing: {diff_root_missing_from_admin}"
81+
assert len(diff_admin_missing_from_root) == 0, f"Root user missing: {diff_admin_missing_from_root}"
82+
83+
# admin role and root user have same privileges
84+
diff_root_missing_from_admin_all = set(root_user_all_privileges).difference(set(admin_role_all_privileges))
85+
diff_admin_missing_from_root_all = set(admin_role_all_privileges).difference(set(root_user_all_privileges))
86+
## Admin user has EDIT_ENTITY privilege which is super privilege for editing entities
87+
diff_admin_missing_from_root_all_new = set()
88+
for privilege in diff_admin_missing_from_root_all:
89+
if privilege.startswith("EDIT_"):
90+
continue
91+
diff_admin_missing_from_root_all_new.add(privilege)
92+
diff_admin_missing_from_root_all = diff_admin_missing_from_root_all_new
93+
94+
assert len(diff_root_missing_from_admin_all) == 0, f"Admin role missing: {diff_root_missing_from_admin_all}"
95+
assert len(diff_admin_missing_from_root_all) == 0, f"Root user missing: {diff_admin_missing_from_root_all}"
96+
97+
# Editor role has all privielges of Reader
98+
diff_reader_missing_from_editor = set(reader_role_all_privileges).difference(set(editor_role_all_privileges))
99+
assert len(diff_reader_missing_from_editor) == 0, f"Editor role missing: {diff_reader_missing_from_editor}"
100+
101+
# Admin role has all privileges of editor
102+
diff_editor_missing_from_admin = set(editor_role_all_privileges).difference(set(admin_role_all_privileges))
103+
assert len(diff_editor_missing_from_admin) == 0, f"Admin role missing: {diff_editor_missing_from_admin}"
78104

79105
# All users privileges checks
80106
assert "MANAGE_POLICIES" not in all_user_platform_policy_privileges

metadata-service/war/src/main/resources/boot/policies.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,8 @@
337337
"PRODUCE_PLATFORM_EVENT_PRIVILEGE",
338338
"MANAGE_DATA_PRODUCTS",
339339
"ES_EXPLAIN_QUERY_PRIVILEGE",
340-
"EDIT_ENTITY_PROPERTIES"
340+
"EDIT_ENTITY_PROPERTIES",
341+
"VIEW_STRUCTURED_PROPERTIES_PAGE"
341342
],
342343
"displayName": "Editors - Metadata Policy",
343344
"description": "Editors have all metadata privileges.",

0 commit comments

Comments
 (0)