Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

platform-checks: Add privileges validation to owners check #18758

Merged
merged 4 commits into from
Apr 19, 2023
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 80 additions & 0 deletions misc/python/materialize/checks/owners.py
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,86 @@ def validate(self) -> Testdrive:

> SELECT mz_cluster_replicas.name, mz_roles.name FROM mz_cluster_replicas JOIN mz_roles ON mz_cluster_replicas.owner_id = mz_roles.id WHERE mz_cluster_replicas.name LIKE 'owner_cluster_r%'
owner_cluster_r1 owner_role_01

> SELECT name, unnest(privileges)::text FROM mz_databases WHERE name LIKE 'owner_db%'
owner_db1 owner_role_01=UC/owner_role_01
owner_db2 owner_role_01=UC/owner_role_01
owner_db3 owner_role_01=UC/owner_role_01
owner_db4 owner_role_02=UC/owner_role_02
owner_db5 owner_role_01=UC/owner_role_01
owner_db6 owner_role_02=UC/owner_role_02
owner_db7 owner_role_03=UC/owner_role_03

> SELECT name, unnest(privileges)::text FROM mz_schemas WHERE name LIKE 'owner_schema%'
owner_schema1 owner_role_01=UC/owner_role_01
owner_schema2 owner_role_01=UC/owner_role_01
owner_schema3 owner_role_01=UC/owner_role_01
owner_schema4 owner_role_02=UC/owner_role_02
owner_schema5 owner_role_01=UC/owner_role_01
owner_schema6 owner_role_02=UC/owner_role_02
owner_schema7 owner_role_03=UC/owner_role_03

> SELECT name, unnest(privileges)::text FROM mz_tables WHERE name LIKE 'owner_t%'
owner_t1 owner_role_01=arwd/owner_role_01
owner_t2 owner_role_01=arwd/owner_role_01
owner_t3 owner_role_01=arwd/owner_role_01
owner_t4 owner_role_02=arwd/owner_role_02
owner_t5 owner_role_01=arwd/owner_role_01
owner_t6 owner_role_02=arwd/owner_role_02
owner_t7 owner_role_03=arwd/owner_role_03

> SELECT name, unnest(privileges)::text FROM mz_views WHERE name LIKE 'owner_v%'
owner_v1 owner_role_01=r/owner_role_01
owner_v2 owner_role_01=r/owner_role_01
owner_v3 owner_role_01=r/owner_role_01
owner_v4 owner_role_02=r/owner_role_02
owner_v5 owner_role_01=r/owner_role_01
owner_v6 owner_role_02=r/owner_role_02
owner_v7 owner_role_03=r/owner_role_03

> SELECT name, unnest(privileges)::text FROM mz_materialized_views WHERE name LIKE 'owner_mv%'
owner_mv1 owner_role_01=r/owner_role_01
owner_mv2 owner_role_01=r/owner_role_01
owner_mv3 owner_role_01=r/owner_role_01
owner_mv4 owner_role_02=r/owner_role_02
owner_mv5 owner_role_01=r/owner_role_01
owner_mv6 owner_role_02=r/owner_role_02
owner_mv7 owner_role_03=r/owner_role_03

> SELECT name, unnest(privileges)::text FROM mz_types WHERE name LIKE 'owner_type%'
owner_type1 =U/owner_role_01
owner_type1 owner_role_01=U/owner_role_01
owner_type2 =U/owner_role_01
owner_type2 owner_role_01=U/owner_role_01
owner_type3 =U/owner_role_01
owner_type3 owner_role_01=U/owner_role_01
owner_type4 =U/owner_role_02
owner_type4 owner_role_02=U/owner_role_02
owner_type5 =U/owner_role_01
owner_type5 owner_role_01=U/owner_role_01
owner_type6 =U/owner_role_02
owner_type6 owner_role_02=U/owner_role_02
owner_type7 =U/owner_role_03
owner_type7 owner_role_03=U/owner_role_03

> SELECT name, unnest(privileges)::text FROM mz_secrets WHERE name LIKE 'owner_secret%'
owner_secret1 owner_role_01=U/owner_role_01
owner_secret2 owner_role_01=U/owner_role_01
owner_secret3 owner_role_01=U/owner_role_01
owner_secret4 owner_role_02=U/owner_role_02
owner_secret5 owner_role_01=U/owner_role_01
owner_secret6 owner_role_02=U/owner_role_02
owner_secret7 owner_role_03=U/owner_role_03

> SELECT name, unnest(privileges)::text FROM mz_sources WHERE name LIKE 'owner_source%' AND type = 'load-generator'
owner_source1 owner_role_01=r/owner_role_01

! SELECT name, unnest(privileges)::text FROM mz_sinks WHERE name LIKE 'owner_sink%'
contains: column "privileges" does not exist

> SELECT name, unnest(privileges)::text FROM mz_clusters WHERE name LIKE 'owner_cluster%'
owner_cluster1 owner_role_01=UC/owner_role_01

def- marked this conversation as resolved.
Show resolved Hide resolved
"""
)
+ self._drop_objects("owner_role_01", 5)
Expand Down