d008a2ad8d
* [T1007-MG < T0997-MG] Authorization on paths (#501) * Added read authorization in paths operators * [T1007-MG < T1016-MG] Added authorization in create and delete operators (#513) * Added authorization in RemoveNodeCursor, RemoveExpandCursor, CreateNodeCursor, CreateExpandCursor,MergeCursor * [T1007-MG < T1014-MG] Add authorization to read operators (#520) Added label based access control to read operators (ScanAll). * [T1007-MG < T1015-MG] Add authorization to update operators (SetProperty, SetProperties, RemoveProperty) (#521) Added label based authorization to update operators Co-authored-by: niko4299 <51059248+niko4299@users.noreply.github.com> Co-authored-by: Josip Mrden <josip.mrden@memgraph.io>
75 lines
3.5 KiB
YAML
75 lines
3.5 KiB
YAML
bolt_port: &bolt_port "7687"
|
|
create_delete_filtering_cluster: &create_delete_filtering_cluster
|
|
cluster:
|
|
main:
|
|
args: ["--bolt-port", "7687", "--log-level=TRACE"]
|
|
log_file: "fine_grained_access.log"
|
|
setup_queries:
|
|
[
|
|
"CREATE USER admin IDENTIFIED BY 'test';",
|
|
"CREATE USER user IDENTIFIED BY 'test';",
|
|
"GRANT ALL PRIVILEGES TO admin;",
|
|
"GRANT ALL PRIVILEGES TO user;",
|
|
]
|
|
|
|
edge_type_filtering_cluster: &edge_type_filtering_cluster
|
|
cluster:
|
|
main:
|
|
args: ["--bolt-port", *bolt_port, "--log-level=TRACE"]
|
|
log_file: "fine_grained_access.log"
|
|
setup_queries:
|
|
[
|
|
"CREATE USER admin IDENTIFIED BY 'test';",
|
|
"CREATE USER user IDENTIFIED BY 'test';",
|
|
"GRANT ALL PRIVILEGES TO admin;",
|
|
"GRANT ALL PRIVILEGES TO user;",
|
|
"GRANT CREATE_DELETE ON LABELS * TO admin;",
|
|
"GRANT CREATE_DELETE ON EDGE_TYPES * TO admin;",
|
|
"MERGE (l1:label1 {name: 'test1'});",
|
|
"MERGE (l2:label2 {name: 'test2'});",
|
|
"MATCH (l1:label1),(l2:label2) WHERE l1.name = 'test1' AND l2.name = 'test2' CREATE (l1)-[r:edgeType1]->(l2);",
|
|
"MERGE (l3:label3 {name: 'test3'});",
|
|
"MATCH (l1:label1),(l3:label3) WHERE l1.name = 'test1' AND l3.name = 'test3' CREATE (l1)-[r:edgeType2]->(l3);",
|
|
"MERGE (mix:label3:label1 {name: 'test4'});",
|
|
"MATCH (l1:label1),(mix:label3) WHERE l1.name = 'test1' AND mix.name = 'test4' CREATE (l1)-[r:edgeType2]->(mix);",
|
|
]
|
|
validation_queries: []
|
|
|
|
path_filtering_cluster: &path_filtering_cluster
|
|
cluster:
|
|
main:
|
|
args: ["--bolt-port", "7687", "--log-level=TRACE"]
|
|
log_file: "fine_grained_access.log"
|
|
setup_queries:
|
|
[
|
|
"CREATE USER admin IDENTIFIED BY 'test';",
|
|
"CREATE USER user IDENTIFIED BY 'test';",
|
|
"GRANT ALL PRIVILEGES TO admin;",
|
|
"GRANT ALL PRIVILEGES TO user;",
|
|
"MERGE (a:label0 {id: 0}) MERGE (b:label1 {id: 1}) CREATE (a)-[:edge_type_1 {weight: 6}]->(b);",
|
|
"MERGE (a:label0 {id: 0}) MERGE (b:label2 {id: 2}) CREATE (a)-[:edge_type_1 {weight: 14}]->(b);",
|
|
"MERGE (a:label1 {id: 1}) MERGE (b:label2 {id: 2}) CREATE (a)-[:edge_type_2 {weight: 1}]->(b);",
|
|
"MERGE (a:label2 {id: 2}) MERGE (b:label3 {id: 4}) CREATE (a)-[:edge_type_2 {weight: 10}]->(b);",
|
|
"MERGE (a:label1 {id: 1}) MERGE (b:label3 {id: 3}) CREATE (a)-[:edge_type_3 {weight: 5}]->(b);",
|
|
"MERGE (a:label2 {id: 2}) MERGE (b:label3 {id: 3}) CREATE (a)-[:edge_type_3 {weight: 7}]->(b);",
|
|
"MERGE (a:label3 {id: 3}) MERGE (b:label3 {id: 4}) CREATE (a)-[:edge_type_4 {weight: 1}]->(b);",
|
|
"MERGE (a:label3 {id: 4}) MERGE (b:label3 {id: 3}) CREATE (a)-[:edge_type_4 {weight: 1}]->(b);",
|
|
"MERGE (a:label3 {id: 3}) MERGE (b:label4 {id: 5}) CREATE (a)-[:edge_type_4 {weight: 14}]->(b);",
|
|
"MERGE (a:label3 {id: 4}) MERGE (b:label4 {id: 5}) CREATE (a)-[:edge_type_4 {weight: 8}]->(b);",
|
|
]
|
|
|
|
workloads:
|
|
- name: "Create delete filtering"
|
|
binary: "tests/e2e/pytest_runner.sh"
|
|
args: ["fine_grained_access/create_delete_filtering_tests.py"]
|
|
<<: *create_delete_filtering_cluster
|
|
|
|
- name: "EdgeType filtering"
|
|
binary: "tests/e2e/pytest_runner.sh"
|
|
args: ["fine_grained_access/edge_type_filtering_tests.py"]
|
|
<<: *edge_type_filtering_cluster
|
|
- name: "Path filtering"
|
|
binary: "tests/e2e/pytest_runner.sh"
|
|
args: ["fine_grained_access/path_filtering_tests.py"]
|
|
<<: *path_filtering_cluster
|