----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/74941/#review226346 -----------------------------------------------------------
Ship it! Ship It! - Madhan Neethiraj On March 23, 2024, 5:07 a.m., Anand Nadar wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/74941/ > ----------------------------------------------------------- > > (Updated March 23, 2024, 5:07 a.m.) > > > Review request for ranger, Asit Vadhavkar, Madhan Neethiraj, Monika > Kachhadiya, Siddhesh Phatak, and Subhrat Chaudhary. > > > Bugs: RANGER-4749 > https://issues.apache.org/jira/browse/RANGER-4749 > > > Repository: ranger > > > Description > ------- > > Created new tag api which will get the service resource by comparing the > resouse signature of the resource from request. (GET - > service/tags/resource/service/{serviceName}/resource?resource:database=db1&resource:database.isExcludes=false&resource:database.isRecursive=false) > > Added list of tags to the service/tags/resource/paginated api which will > return all the tags which are associated with the resource. > > Added freetext search on resource, and multiple search of tagNames in > service/tags/resources/paginated api - > 1 - > service/tags/resources/paginated?tagServiceName=hive&resourceElements=Cust_ > 2 - > service/tags/resources/paginated?tagServiceName=hive&tagNames=SSN&tagNames=PII_NAME > > > Diffs > ----- > > > agents-common/src/main/java/org/apache/ranger/authorization/utils/JsonUtils.java > 716a1a9ea > > agents-common/src/main/java/org/apache/ranger/plugin/model/RangerServiceResourceWithTags.java > PRE-CREATION > agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java > b0fad0aea > security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java > a472fe131 > security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java > c816ad229 > security-admin/src/main/java/org/apache/ranger/rest/TagREST.java 09d771565 > > security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceWithTagsService.java > PRE-CREATION > > security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceWithTagsServiceBase.java > PRE-CREATION > > security-admin/src/main/java/org/apache/ranger/view/RangerServiceResourceWithTagsList.java > PRE-CREATION > security-admin/src/test/java/org/apache/ranger/biz/TestTagDBStore.java > d6ebbc54d > security-admin/src/test/java/org/apache/ranger/rest/TestTagREST.java > 98d87bc0a > > > Diff: https://reviews.apache.org/r/74941/diff/8/ > > > Testing > ------- > > Validated GET - service/tags/resource/service/{serviceName}/resource with > postive and negative case. > Sample URL - > /service/tags/resource/service/hive8/resource?resource:column=NAME&resource:column.isExcludes=false&resource:column.isRecursive=true&resource:database=HR-DB-1&resource:database.isExcludes=false&resource:database.isRecursive=true&resource:table=EMPLOYEE&resource:table.isExcludes=false&resource:table.isRecursive=true&resource:database=HR-DB-2 > > Response: > { > "id": 21, > "guid": "1acaa4c9-1f1a-4328-b265-bde77c94f98f", > "isEnabled": true, > "createdBy": "Admin", > "updatedBy": "Admin", > "createTime": 1710999025297, > "updateTime": 1710999025362, > "version": 4, > "serviceName": "hive8", > "resourceElements": { > "column": { > "values": [ > "NAME" > ], > "isExcludes": false, > "isRecursive": true > }, > "database": { > "values": [ > "HR-DB-2", > "HR-DB-1" > ], > "isExcludes": false, > "isRecursive": true > }, > "table": { > "values": [ > "EMPLOYEE" > ], > "isExcludes": false, > "isRecursive": true > } > }, > "resourceSignature": > "24a4a0329c4c62f6a76d19231f5f748ef2e49de0301ebe9af2991a19e5b198a9" > } > > The values of resource can be multiple - > resource:database=db1&resource:database=db2 > For isExcludes and isRecursive there will be a subkey - > resource:database.isExcludes=false&resource:databasase.isRecursive=true > > Validated response of service/tags/resources/paginated?tagServiceName=hive > api > Sample response > { > "startIndex": 0, > "pageSize": 5, > "totalCount": 1, > "resultSize": 1, > "sortType": "asc", > "sortBy": "resourceId", > "queryTimeMS": 1710869881240, > "resourceList": [ > { > "id": 2, > "guid": "3bc097ea-0685-48ea-84c2-ca02518f7738", > "isEnabled": true, > "createdBy": "Admin", > "updatedBy": "Admin", > "createTime": 1707986829922, > "updateTime": 1708247930089, > "version": 3, > "serviceName": "hive", > "resourceElements": { > "database": { > "values": [ > "db1" > ], > "isExcludes": false, > "isRecursive": false > }, > "column": { > "values": [ > "*" > ], > "isExcludes": false, > "isRecursive": false > }, > "table": { > "values": [ > "tbl1" > ], > "isExcludes": false, > "isRecursive": false > } > }, > "associatedTags": [ > { > "id": 2, > "guid": "a1d21642-3f4c-4557-9226-372d3dce5a64", > "isEnabled": true, > "createdBy": "Admin", > "updatedBy": "Admin", > "createTime": 1707986831329, > "updateTime": 1707986831556, > "type": "PII_NAME", > "owner": 0, > "attributes": { > "lastname": "stark" > } > } > ] > } > ] > } > > Validated service/tags/resources/paginated api with resourceElements and > tagNames for freestext resource search and multiple tagNames search > respectively. > > Case 1: Freetext search on resource in service/tags/resources/paginated api > URL - > /service/tags/resources/paginated?pageSize=5&startIndex=0&tagServiceName=hive&resourceElements=Cust_ > > Response > { > "startIndex": 0, > "pageSize": 5, > "totalCount": 1, > "resultSize": 1, > "sortType": "asc", > "sortBy": "resourceId", > "queryTimeMS": 1710997850035, > "resourceList": [ > { > "id": 20, > "guid": "0ad5fe2a-ae82-42ac-8079-7f6a90186f75", > "isEnabled": true, > "createdBy": "Admin", > "updatedBy": "Admin", > "createTime": 1710997840878, > "updateTime": 1710997840890, > "version": 2, > "serviceName": "hive", > "resourceElements": { > "column": { > "values": [ > "name" > ], > "isExcludes": false, > "isRecursive": true > }, > "database": { > "values": [ > "Customer" > ], > "isExcludes": false, > "isRecursive": true > }, > "table": { > "values": [ > "Cust_Personal_Details" > ], > "isExcludes": false, > "isRecursive": true > } > }, > "associatedTags": [ > { > "id": 30, > "guid": "7c2a3070-5046-4352-b427-b38e3973a305", > "isEnabled": true, > "createdBy": "Admin", > "updatedBy": "Admin", > "createTime": 1710997840881, > "updateTime": 1710997840883, > "type": "PII_NAME", > "owner": 0 > } > ] > } > ] > } > > Case 2: Multiple tagNames search on GET service/tags/resources/paginated api > URL - > /service/tags/resources/paginated?pageSize=5&startIndex=0&tagServiceName=hive&tagNames=PII_NAME&tagNames=SSN > > Response: > { > "startIndex": 0, > "pageSize": 5, > "totalCount": 2, > "resultSize": 2, > "sortType": "asc", > "sortBy": "resourceId", > "queryTimeMS": 1710997939080, > "resourceList": [ > { > "id": 19, > "guid": "8d9f4f28-a443-4ff7-bfca-dde2af764eab", > "isEnabled": true, > "createdBy": "Admin", > "updatedBy": "Admin", > "createTime": 1710997450099, > "updateTime": 1710997450146, > "version": 3, > "serviceName": "hive", > "resourceElements": { > "column": { > "values": [ > "name" > ], > "isExcludes": false, > "isRecursive": true > }, > "database": { > "values": [ > "db1" > ], > "isExcludes": false, > "isRecursive": true > }, > "table": { > "values": [ > "employee" > ], > "isExcludes": false, > "isRecursive": true > } > }, > "associatedTags": [ > { > "id": 28, > "guid": "229c733c-71c1-45a9-a18a-c6a62dd6b95b", > "isEnabled": true, > "createdBy": "Admin", > "updatedBy": "Admin", > "createTime": 1710997450106, > "updateTime": 1710997450109, > "type": "PII_NAME", > "owner": 0 > }, > { > "id": 29, > "guid": "8027085b-4fe5-45bb-9be2-a8e134218bb9", > "isEnabled": true, > "createdBy": "Admin", > "updatedBy": "Admin", > "createTime": 1710997450138, > "updateTime": 1710997450140, > "type": "SSN", > "owner": 0 > } > ] > }, > { > "id": 20, > "guid": "0ad5fe2a-ae82-42ac-8079-7f6a90186f75", > "isEnabled": true, > "createdBy": "Admin", > "updatedBy": "Admin", > "createTime": 1710997840878, > "updateTime": 1710997840890, > "version": 2, > "serviceName": "hive", > "resourceElements": { > "column": { > "values": [ > "name" > ], > "isExcludes": false, > "isRecursive": true > }, > "database": { > "values": [ > "Customer" > ], > "isExcludes": false, > "isRecursive": true > }, > "table": { > "values": [ > "Cust_Personal_Details" > ], > "isExcludes": false, > "isRecursive": true > } > }, > "associatedTags": [ > { > "id": 30, > "guid": "7c2a3070-5046-4352-b427-b38e3973a305", > "isEnabled": true, > "createdBy": "Admin", > "updatedBy": "Admin", > "createTime": 1710997840881, > "updateTime": 1710997840883, > "type": "PII_NAME", > "owner": 0 > } > ] > } > ] > } > > Case 3: With Freetext search and mutiple search on tagNames > > URL - > /service/tags/resources/paginated?pageSize=5&startIndex=0&tagServiceName=hive&resourceElements=Cust_&tagNames=PII_NAME&tagNames=SSN > > Response: > { > "startIndex": 0, > "pageSize": 5, > "totalCount": 1, > "resultSize": 1, > "sortType": "asc", > "sortBy": "resourceId", > "queryTimeMS": 1710998019080, > "resourceList": [ > { > "id": 20, > "guid": "0ad5fe2a-ae82-42ac-8079-7f6a90186f75", > "isEnabled": true, > "createdBy": "Admin", > "updatedBy": "Admin", > "createTime": 1710997840878, > "updateTime": 1710997840890, > "version": 2, > "serviceName": "hive", > "resourceElements": { > "column": { > "values": [ > "name" > ], > "isExcludes": false, > "isRecursive": true > }, > "database": { > "values": [ > "Customer" > ], > "isExcludes": false, > "isRecursive": true > }, > "table": { > "values": [ > "Cust_Personal_Details" > ], > "isExcludes": false, > "isRecursive": true > } > }, > "associatedTags": [ > { > "id": 30, > "guid": "7c2a3070-5046-4352-b427-b38e3973a305", > "isEnabled": true, > "createdBy": "Admin", > "updatedBy": "Admin", > "createTime": 1710997840881, > "updateTime": 1710997840883, > "type": "PII_NAME", > "owner": 0 > } > ] > } > ] > } > > > Thanks, > > Anand Nadar > >
