blob: 75eed6ddfb5dccef4e5f0d0c5ef7004f8e09910e [file] [log] [blame]
{
"serviceDef":{
"name": "hive",
"id": 3,
"resources": [
{ "name": "database", "level":1, "parent": "", "mandatory": true, "lookupSupported": true, "matcher": "org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher", "matcherOptions":{ "wildCard": true, "ignoreCase": true }, "label": "Hive Database", "description": "Hive Database" },
{ "name": "url", "level":1, "parent": "", "mandatory": true, "lookupSupported": false, "matcher": "org.apache.ranger.plugin.resourcematcher.RangerURLResourceMatcher", "matcherOptions":{ "wildCard": true, "ignoreCase": true }, "label": "URL", "description": "URL", "recursiveSupported": true },
{ "name": "hiveservice", "level":1, "parent": "", "mandatory": true, "lookupSupported": false, "matcher": "org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher", "matcherOptions":{ "wildCard": true, "ignoreCase": true }, "label": "HiveService", "description": "HiveService" },
{ "name": "table", "level":2, "parent": "database", "mandatory": true, "lookupSupported": true, "matcher": "org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher", "matcherOptions":{ "wildCard": true, "ignoreCase": true }, "label": "Hive Table", "description": "Hive Table" },
{ "name": "udf", "level":2, "parent": "database", "mandatory": true, "lookupSupported": true, "matcher": "org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher", "matcherOptions":{ "wildCard": true, "ignoreCase": true }, "label": "Hive UDF", "description": "Hive UDF" },
{ "name": "column", "level":3, "parent": "table", "mandatory": true, "lookupSupported": true, "matcher": "org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher", "matcherOptions":{ "wildCard": true, "ignoreCase": true }, "label": "Hive Column", "description": "Hive Column" }
],
"accessTypes":[
{ "name": "select", "label": "Select", "category": "READ" },
{ "name": "update", "label": "Update", "category": "UPDATE" },
{ "name": "create", "label": "Create", "category": "CREATE" },
{ "name": "drop", "label": "Drop", "category": "DELETE" },
{ "name": "alter", "label": "Alter", "category": "CREATE" },
{ "name": "index", "label": "Index", "category": "MANAGE" },
{ "name": "lock", "label": "Lock", "category": "MANAGE" },
{ "name": "read", "label": "Read", "category": "READ" },
{ "name": "write", "label": "Write", "category": "UPDATE" },
{ "name": "repladmin", "label": "ReplAdmin", "category": "MANAGE" },
{ "name": "serviceadmin", "label": "ServiceAdmin", "category": "MANAGE" },
{ "name": "all", "label": "All",
"impliedGrants": [ "select", "update", "create", "drop", "alter", "index", "lock", "read", "write", "repladmin", "serviceadmin" ]
}
]
},
"securityZones": {
"sales": { "zoneName": "sales", "resources": [ { "database": [ "sales" ] } ] },
"finance": { "zoneName": "finance", "resources": [ { "database": [ "finance" ] } ] },
"shipping": { "zoneName": "shipping", "resources": [ { "database": [ "shipping" ] } ] }
},
"gdsInfoFilename": "/plugin/hive_gds_info.json",
"tests": [
{
"name": "table: sales.prospects, user: ds-user, access: select",
"request": {
"resource": { "elements": { "database": "sales", "table": "prospects" } },
"accessType": "select", "user": "ds-user", "userGroups": []
},
"result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], "isAllowed": true, "isAudited": true, "policyId": 2001 }
},
{
"name": "table: sales.orders, user: ds-user, access: select",
"request": {
"resource": { "elements": { "database": "sales", "table": "orders" } },
"accessType": "select", "user": "ds-user", "userGroups": []
},
"result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], "isAllowed": true, "isAudited": true, "policyId": 2001 }
},
{
"name": "database: sales, user: ds-user, access: _any",
"request": {
"resource": { "elements": { "database": "sales" } },
"accessType": "", "user": "ds-user", "userGroups": []
},
"result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], "isAllowed": true, "isAudited": true, "policyId": 2001 }
},
{
"name": "table: finance.invoices, user: ds-user, access: select",
"request": {
"resource": { "elements": { "database": "finance", "table": "invoices" } },
"accessType": "select", "user": "ds-user", "userGroups": []
},
"result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ "project-1" ], "isAllowed": true, "isAudited": true, "policyId": 2001 }
},
{
"name": "table: finance.payments, user: ds-user, access: select",
"request": {
"resource": { "elements": { "database": "finance", "table": "payments" } },
"accessType": "select", "user": "ds-user", "userGroups": []
},
"result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ "project-1" ], "isAllowed": true, "isAudited": true, "policyId": 2001 }
},
{
"name": "database: finance, user: ds-user, access: _any",
"request": {
"resource": { "elements": { "database": "finance" } },
"accessType": "", "user": "ds-user", "userGroups": []
},
"result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ "project-1" ], "isAllowed": true, "isAudited": true, "policyId": 2001 }
},
{
"name": "table: shipping.shipments, user: ds-user, access: select",
"request": {
"resource": { "elements": { "database": "shipping", "table": "shipments" } },
"accessType": "select", "user": "ds-user", "userGroups": []
},
"result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], "isAllowed": true, "isAudited": true, "policyId": 2002 }
},
{
"name": "database: shipping, user: ds-user, access: _any",
"request": {
"resource": { "elements": { "database": "shipping" } },
"accessType": "", "user": "ds-user", "userGroups": []
},
"result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], "isAllowed": true, "isAudited": true, "policyId": 2002 }
},
{
"name": "table: customers.contact_info, user: ds-user, access: select",
"request": {
"resource": { "elements": { "database": "customers", "table": "contact_info" } },
"accessType": "select", "user": "ds-user", "userGroups": []
},
"result": { "datasets": [ "dataset-3" ], "projects": [ "project-2" ], "isAllowed": true, "isAudited": true, "policyId": 2003 }
},
{
"name": "database: customers, user: ds-user, access: _any",
"request": {
"resource": { "elements": { "database": "customers" } },
"accessType": "", "user": "ds-user", "userGroups": []
},
"result": { "datasets": [ "dataset-3" ], "projects": [ "project-2" ], "isAllowed": true, "isAudited": true, "policyId": 2003 }
},
{
"name": "table: operations.facilities, user: ds-user, access: select",
"request": {
"resource": { "elements": { "database": "operations", "table": "facilities" } },
"accessType": "select", "user": "ds-user", "userGroups": []
},
"result": { "datasets": [ "dataset-4" ], "projects": null, "isAllowed": true, "isAudited": true, "policyId": 2004 }
},
{
"name": "database: operations, user: ds-user, access: _any",
"request": {
"resource": { "elements": { "database": "operations" } },
"accessType": "", "user": "ds-user", "userGroups": []
},
"result": { "datasets": [ "dataset-4" ], "projects": null, "isAllowed": true, "isAudited": true, "policyId": 2004 }
},
{
"name": "table: sales.prospects, user: proj-user, access: select",
"request": {
"resource": { "elements": { "database": "sales", "table": "prospects" } },
"accessType": "select", "user": "proj-user", "userGroups": []
},
"result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], "isAllowed": true, "isAudited": true, "policyId": 3001 }
},
{
"name": "table: sales.orders, user: proj-user, access: select",
"request": {
"resource": { "elements": { "database": "sales", "table": "orders" } },
"accessType": "select", "user": "proj-user", "userGroups": []
},
"result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], "isAllowed": true, "isAudited": true, "policyId": 3001 }
},
{
"name": "table: finance.invoices, user: proj-user, access: select",
"request": {
"resource": { "elements": { "database": "finance", "table": "invoices" } },
"accessType": "select", "user": "proj-user", "userGroups": []
},
"result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ "project-1" ], "isAllowed": true, "isAudited": true, "policyId": 3001 }
},
{
"name": "table: finance.payments, user: proj-user, access: select",
"request": {
"resource": { "elements": { "database": "finance", "table": "payments" } },
"accessType": "select", "user": "proj-user", "userGroups": []
},
"result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ "project-1" ], "isAllowed": true, "isAudited": true, "policyId": 3001 }
},
{
"name": "table: shipping.shipments, user: proj-user, access: select",
"request": {
"resource": { "elements": { "database": "shipping", "table": "shipments" } },
"accessType": "select", "user": "proj-user", "userGroups": []
},
"result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], "isAllowed": true, "isAudited": true, "policyId": 3001 }
},
{
"name": "table: customers.contact_info, user: proj-user, access: select",
"request": {
"resource": { "elements": { "database": "customers", "table": "contact_info" } },
"accessType": "select", "user": "proj-user", "userGroups": []
},
"result": { "datasets": [ "dataset-3" ], "projects": [ "project-2" ], "isAllowed": true, "isAudited": true, "policyId": 3002 }
},
{
"name": "table: operations.facilities, user: proj-user, access: select",
"request": {
"resource": { "elements": { "database": "operations", "table": "facilities" } },
"accessType": "select", "user": "proj-user", "userGroups": []
},
"result": { "datasets": [ "dataset-4" ], "projects": null, "isAllowed": false, "isAudited": true, "policyId": -1 }
},
{
"name": "table: sales.prospects, user: scott, access: select",
"request": {
"resource": { "elements": { "database": "sales", "table": "prospects" } },
"accessType": "select", "user": "scott", "userGroups": []
},
"result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], "isAllowed": false, "isAudited": true, "policyId": -1 }
},
{
"name": "table: sales.orders, user: scott, access: select",
"request": {
"resource": { "elements": { "database": "sales", "table": "orders" } },
"accessType": "select", "user": "scott", "userGroups": []
},
"result": { "datasets": [ "dataset-1" ], "projects": [ "project-1" ], "isAllowed": false, "isAudited": true, "policyId": -1 }
},
{
"name": "table: finance.invoices, user: scott, access: select",
"request": {
"resource": { "elements": { "database": "finance", "table": "invoices" } },
"accessType": "select", "user": "scott", "userGroups": []
},
"result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ "project-1" ], "isAllowed": false, "isAudited": true, "policyId": -1 }
},
{
"name": "table: finance.payments, user: scott, access: select",
"request": {
"resource": { "elements": { "database": "finance", "table": "payments" } },
"accessType": "select", "user": "scott", "userGroups": []
},
"result": { "datasets": [ "dataset-1", "dataset-2" ], "projects": [ "project-1" ], "isAllowed": false, "isAudited": true, "policyId": -1 }
},
{
"name": "table: shipping.shipments, user: scott, access: select",
"request": {
"resource": { "elements": { "database": "shipping", "table": "shipments" } },
"accessType": "select", "user": "scott", "userGroups": []
},
"result": { "datasets": [ "dataset-2" ], "projects": [ "project-1" ], "isAllowed": false, "isAudited": true, "policyId": -1 }
},
{
"name": "table: customers.contact_info, user: scott, access: select",
"request": {
"resource": { "elements": { "database": "customers", "table": "contact_info" } },
"accessType": "select", "user": "scott", "userGroups": []
},
"result": { "datasets": [ "dataset-3" ], "projects": [ "project-2" ], "isAllowed": false, "isAudited": true, "policyId": -1 }
},
{
"name": "table: operations.facilities, user: scott, access: select",
"request": {
"resource": { "elements": { "database": "operations", "table": "facilities" } },
"accessType": "select", "user": "scott", "userGroups": []
},
"result": { "datasets": [ "dataset-4" ], "projects": null, "isAllowed": false, "isAudited": true, "policyId": -1 }
},
{
"name": "table: operations.facilities, user: scott, access: select",
"request": {
"resource": { "elements": { "database": "operations", "table": "facilities" } },
"accessType": "select", "user": "scott", "userGroups": []
},
"result": { "datasets": [ "dataset-4" ], "projects": null, "isAllowed": false, "isAudited": true, "policyId": -1 }
},
{
"name": "table: operations.facilities, user: ds-user, access: update",
"request": {
"resource": { "elements": { "database": "operations", "table": "facilities" } },
"accessType": "update", "user": "ds-user", "userGroups": []
},
"result": { "datasets": null, "projects": null, "isAllowed": false, "isAudited": false, "policyId": -1 }
},
{
"name": "ACLs: database: sales",
"request": { "resource": { "elements": { "database": "sales" } } },
"acls": { }
},
{
"name": "ACLs: table: sales.prospects",
"request": { "resource": { "elements": { "database": "sales", "table": "prospects" } } },
"acls": {
"userACLs": {
"ds-user": { "select": { "result": 1, "isFinal": true } },
"ds1-user": { "select": { "result": 1, "isFinal": true } },
"proj-user": { "select": { "result": 1, "isFinal": true } },
"proj1-user": { "select": { "result": 1, "isFinal": true } }
},
"datasets": [ "dataset-1" ],
"projects": [ "project-1" ]
}
},
{
"name": "ACLs: table: sales.orders",
"request": { "resource": { "elements": { "database": "sales", "table": "orders" } } },
"acls": {
"userACLs": {
"ds-user": { "select": { "result": 1, "isFinal": true } },
"ds1-user": { "select": { "result": 1, "isFinal": true } },
"proj-user": { "select": { "result": 1, "isFinal": true } },
"proj1-user": { "select": { "result": 1, "isFinal": true } }
},
"datasets": [ "dataset-1" ],
"projects": [ "project-1" ]
}
},
{
"name": "ACLs: table: sales.non_existent_table",
"request": { "resource": { "elements": { "database": "sales", "table": "non_existent_table" } } },
"acls": { }
},
{
"name": "ACLs: column: sales.orders.created_time",
"request": { "resource": { "elements": { "database": "sales", "table": "orders", "column": "created_time" } } },
"acls": {
"userACLs": {
"ds-user": { "select": { "result": 1, "isFinal": true } },
"ds1-user": { "select": { "result": 1, "isFinal": true } },
"proj-user": { "select": { "result": 1, "isFinal": true } },
"proj1-user": { "select": { "result": 1, "isFinal": true } }
},
"datasets": [ "dataset-1" ],
"projects": [ "project-1" ]
}
},
{
"name": "ACLs: database: finance",
"request": { "resource": { "elements": { "database": "finance" } } },
"acls": { }
},
{
"name": "ACLs: table: finance.invoices",
"request": { "resource": { "elements": { "database": "finance", "table": "invoices" } } },
"acls": {
"userACLs": {
"ds-user": { "select": { "result": 1, "isFinal": true } },
"ds1-user": { "select": { "result": 1, "isFinal": true } },
"ds2-user": { "select": { "result": 1, "isFinal": true } },
"proj-user": { "select": { "result": 1, "isFinal": true } },
"proj1-user": { "select": { "result": 1, "isFinal": true } }
},
"datasets": [ "dataset-1", "dataset-2" ],
"projects": [ "project-1" ]
}
},
{
"name": "ACLs: table: finance.payments",
"request": { "resource": { "elements": { "database": "finance", "table": "payments" } } },
"acls": {
"userACLs": {
"ds-user": { "select": { "result": 1, "isFinal": true } },
"ds1-user": { "select": { "result": 1, "isFinal": true } },
"ds2-user": { "select": { "result": 1, "isFinal": true } },
"proj-user": { "select": { "result": 1, "isFinal": true } },
"proj1-user": { "select": { "result": 1, "isFinal": true } }
},
"datasets": [ "dataset-1", "dataset-2" ],
"projects": [ "project-1" ]
}
},
{
"name": "ACLs: database: shipping",
"request": { "resource": { "elements": { "database": "shipping" } } },
"acls": { }
},
{
"name": "ACLs: table: shipping.shipments",
"request": { "resource": { "elements": { "database": "shipping", "table": "shipments" } } },
"acls": {
"userACLs": {
"ds-user": { "select": { "result": 1, "isFinal": true } },
"ds2-user": { "select": { "result": 1, "isFinal": true } },
"proj-user": { "select": { "result": 1, "isFinal": true } },
"proj1-user": { "select": { "result": 1, "isFinal": true } }
},
"datasets": [ "dataset-2" ],
"projects": [ "project-1" ]
}
},
{
"name": "ACLs: database: customers",
"request": { "resource": { "elements": { "database": "customers" } } },
"acls": { }
},
{
"name": "ACLs: table: customers.contact_info",
"request": { "resource": { "elements": { "database": "customers", "table": "contact_info" } } },
"acls": {
"userACLs": {
"ds-user": { "select": { "result": 1, "isFinal": true } },
"ds3-user": { "select": { "result": 1, "isFinal": true } },
"proj-user": { "select": { "result": 1, "isFinal": true } },
"proj2-user": { "select": { "result": 1, "isFinal": true } }
},
"datasets": [ "dataset-3" ],
"projects": [ "project-2" ]
}
},
{
"name": "ACLs: database: operations",
"request": { "resource": { "elements": { "database": "operations" } } },
"acls": { }
},
{
"name": "ACLs: table: operations.facilities",
"request": { "resource": { "elements": { "database": "operations", "table": "facilities" } } },
"acls": {
"userACLs": {
"ds-user": { "select": { "result": 1, "isFinal": true } },
"ds4-user": { "select": { "result": 1, "isFinal": true } }
},
"datasets": [ "dataset-4" ]
}
},
{
"name": "Datasets for principals: users[ ds-user ]",
"sharedWith": { "users": [ "ds-user" ] },
"datasets": [ 1, 2, 3, 4 ]
},
{
"name": "Datasets for principals: users[ ds1-user ]",
"sharedWith": { "users": [ "ds1-user" ] },
"datasets": [ 1 ]
},
{
"name": "Datasets for principals: users[ ds2-user ]",
"sharedWith": { "users": [ "ds2-user" ] },
"datasets": [ 2 ]
},
{
"name": "Datasets for principals: users[ ds3-user ]",
"sharedWith": { "users": [ "ds3-user" ] },
"datasets": [ 3 ]
},
{
"name": "Datasets for principals: users[ ds4-user ]",
"sharedWith": { "users": [ "ds4-user" ] },
"datasets": [ 4 ]
},
{
"name": "Datasets for principals: users[ ds1-user, ds4-user ]",
"sharedWith": { "users": [ "ds1-user","ds4-user" ] },
"datasets": [ 1, 4 ]
},
{
"name": "Projects for principals: users=[ proj-user ]",
"principals:": { "users": [ "proj-user" ] },
"projects": [ 1, 2 ]
},
{
"name": "Projects for principals: users[ proj1-user ]",
"sharedWith": { "users": [ "proj1-user" ] },
"projects": [ 1 ]
},
{
"name": "Projects for principals: users[ proj2-user ]",
"sharedWith": { "users": [ "proj2-user" ] },
"projects": [ 2 ]
},
{
"name": "Projects for principals: users[ proj1-user, proj2-user ]",
"sharedWith": { "users": [ "proj1-user", "proj2-user" ] },
"projects": [ 1, 2 ]
},
{
"name": "Resources for Dataset: id=1",
"datasetId": 1,
"resourceIds": [ 11, 12, 21, 22 ]
},
{
"name": "Resources for Dataset: id=2",
"datasetId": 2,
"resourceIds": [ 21, 22, 31 ]
},
{
"name": "Resources for Dataset: id=3",
"datasetId": 3,
"resourceIds": [ 41 ]
},
{
"name": "Resources for Dataset: id=4",
"datasetId": 4,
"resourceIds": [ 51 ]
},
{
"name": "Resources for Dataset: id=1234 (non_existent_dataset)",
"datasetId": 1234,
"resourceIds": [ ]
},
{
"name": "Resources for Project: id=1",
"projectId": 1,
"resourceIds": [ 11, 12, 21, 22, 31 ]
},
{
"name": "Resources for Project: id=2",
"projectId": 2,
"resourceIds": [ 41 ]
},
{
"name": "Resources for Project: id=1234 (non_existent_project)",
"projectId": 1234,
"resourceIds": [ ]
},
{
"name": "Resources for DataShare: id=1",
"dataShareId": 1,
"resourceIds": [ 11, 12 ]
},
{
"name": "Resources for DataShare: id=2",
"dataShareId": 2,
"resourceIds": [ 21, 22 ]
},
{
"name": "Resources for DataShare: id=3",
"dataShareId": 3,
"resourceIds": [ 31 ]
},
{
"name": "Resources for DataShare: id=4",
"dataShareId": 4,
"resourceIds": [ 41 ]
},
{
"name": "Resources for DataShare: id=5",
"dataShareId": 5,
"resourceIds": [ 51 ]
},
{
"name": "Resources for DataShare: id=1234 (non_existent_data_share)",
"dataShareId": 1234,
"resourceIds": [ ]
},
{
"name": "Resources for projects(1, 2)",
"projectIds": [ 1, 2 ],
"resourceIds": [ 11, 12, 21, 22, 31, 41 ]
},
{
"name": "Resources for datasets(1, 2)",
"datasetIds": [ 1, 2 ],
"resourceIds": [ 11, 12, 21, 22, 31 ]
},
{
"name": "Resources for datasets(3, 4)",
"datasetIds": [ 3, 4 ],
"resourceIds": [ 41, 51 ]
},
{
"name": "Resources for projects(1, 2), datasets(1, 2, 3, 4), dataShares(1, 2, 3, 4, 5)",
"projectIds": [ 1, 2 ],
"datasetIds": [ 1, 2, 3, 4 ],
"dataShareIds": [ 1, 2, 3, 4, 5 ],
"resourceIds": [ 11, 12, 21, 22, 31, 41, 51 ]
}
]
}