You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ranger.apache.org by Anand Nadar <na...@gmail.com> on 2024/03/18 14:23:20 UTC
Review Request 74941: RANGER-4749: Tag api to get serviceResource by resource. Getting list of associated tags in resources/paginated api's response.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/74941/
-----------------------------------------------------------
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. (POST - service/tags/resource/service/{serviceName}/resource)
Added list of tagNames to the resource/paginated api which will return all the tagNames 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/plugin/model/RangerServiceResourceWithTags.java PRE-CREATION
agents-common/src/main/java/org/apache/ranger/plugin/store/TagStore.java f9f80c9ac
agents-common/src/main/java/org/apache/ranger/plugin/util/JsonUtilsV2.java ca61131dd
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/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/1/
Testing
-------
Validated POST - service/tags/resource/service/{serviceName}/resource with postive and negative case.
Validated response of service/tags/resources/paginated api
Sample response
{
"startIndex": 0,
"pageSize": 5,
"totalCount": 1,
"resultSize": 1,
"sortType": "asc",
"sortBy": "resourceId",
"queryTimeMS": 1710771145888,
"list": [
{
"id": 4,
"guid": "8f18d7b3-f885-4687-9438-ededdf340b18",
"isEnabled": true,
"createdBy": "Admin",
"updatedBy": "Admin",
"createTime": 1710429722000,
"updateTime": 1710431917000,
"version": 8,
"serviceName": "hive",
"resourceElements": {
"column": {
"values": [
"name"
],
"isExcludes": false,
"isRecursive": true
},
"database": {
"values": [
"hrDb1"
],
"isExcludes": false,
"isRecursive": true
},
"table": {
"values": [
"employee"
],
"isExcludes": false,
"isRecursive": true
}
},
"resourceSignature": "483ce23070c3243ffd6e9ebc4a2bc2c90553cbab0ed810bcae22ff6d76e9ca33",
"associatedTags": [
"PII_NAME",
"SSN"
]
}
],
"listSize": 1
}
Validated service/tags/resources/paginated api with resourceElements and tagNames for freestext resource search and multiple tagNames search respectively.
Thanks,
Anand Nadar
Re: Review Request 74941: RANGER-4749: Tag api to get serviceResource by resource. Getting list of associated tags in resources/paginated api's response.
Posted by Anand Nadar <na...@gmail.com>.
> On March 18, 2024, 9:08 p.m., Madhan Neethiraj wrote:
> > agents-common/src/main/java/org/apache/ranger/plugin/model/RangerServiceResourceWithTags.java
> > Lines 39 (patched)
> > <https://reviews.apache.org/r/74941/diff/1/?file=2285968#file2285968line39>
> >
> > - I suggest changing datatype for associatedTags from List<String> to List<RangerTag>
> > - I suggest removing resourceSignature as this is not necessary in the model class. This field is necessary only in entity class
> > - any specific usecase for additionalInfo field?
Done
- Anand
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/74941/#review226331
-----------------------------------------------------------
On March 19, 2024, 6:35 p.m., Anand Nadar wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/74941/
> -----------------------------------------------------------
>
> (Updated March 19, 2024, 6:35 p.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)
> Added list of tagNames to the resource/paginated api which will return all the tagNames 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/store/TagStore.java f9f80c9ac
> 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/2/
>
>
> Testing
> -------
>
> Validated GET - service/tags/resource/service/{serviceName}/resource with postive and negative case.
> Sample URL - /service/tags/resource/service/hive8/resource?resource:column.values=NAME&resource:column.isExcludes=false&resource:column.isRecursive=aa&resource:database.values=HR-DB&resource:database.isExcludes=false&resource:database.isRecursive=true&resource:table.values=EMPLOYEE&resource:table.isExcludes=false&resource:table.isRecursive=true
>
> Validated response of service/tags/resources/paginated 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.
>
>
> Thanks,
>
> Anand Nadar
>
>
Re: Review Request 74941: RANGER-4749: Tag api to get serviceResource by resource. Getting list of associated tags in resources/paginated api's response.
Posted by Madhan Neethiraj <ma...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/74941/#review226331
-----------------------------------------------------------
agents-common/src/main/java/org/apache/ranger/plugin/model/RangerServiceResourceWithTags.java
Lines 39 (patched)
<https://reviews.apache.org/r/74941/#comment314572>
- I suggest changing datatype for associatedTags from List<String> to List<RangerTag>
- I suggest removing resourceSignature as this is not necessary in the model class. This field is necessary only in entity class
- any specific usecase for additionalInfo field?
agents-common/src/main/java/org/apache/ranger/plugin/store/TagStore.java
Line 105 (original), 105 (patched)
<https://reviews.apache.org/r/74941/#comment314573>
Instead of updating the existing method, consider introducing a new method: getPaginatedServiceResourcesWithTags()
security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java
Lines 375 (patched)
<https://reviews.apache.org/r/74941/#comment314574>
isMultiValue will be true here, given the if at #372. Please review and remove the else clause at #379.
security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java
Lines 528 (patched)
<https://reviews.apache.org/r/74941/#comment314575>
isMultiValue will be true here, given the if at #525. Please review and remove the else clause at #532.
security-admin/src/main/java/org/apache/ranger/rest/TagREST.java
Lines 1022 (patched)
<https://reviews.apache.org/r/74941/#comment314576>
POST for getServiceResource() doesn't seem right. I suggest changing this to GET and get the resourceElements via query params - like: service/hive/resource?resource:database=db1&resource:table=tbl1&resource:column=col1
Note that isExcludes is always false in RangerServiceResource, and isRecursive is always true for resources that support recusion.
- Madhan Neethiraj
On March 18, 2024, 2:23 p.m., Anand Nadar wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/74941/
> -----------------------------------------------------------
>
> (Updated March 18, 2024, 2:23 p.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. (POST - service/tags/resource/service/{serviceName}/resource)
> Added list of tagNames to the resource/paginated api which will return all the tagNames 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/plugin/model/RangerServiceResourceWithTags.java PRE-CREATION
> agents-common/src/main/java/org/apache/ranger/plugin/store/TagStore.java f9f80c9ac
> agents-common/src/main/java/org/apache/ranger/plugin/util/JsonUtilsV2.java ca61131dd
> 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/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/1/
>
>
> Testing
> -------
>
> Validated POST - service/tags/resource/service/{serviceName}/resource with postive and negative case.
> Validated response of service/tags/resources/paginated api
> Sample response
> {
> "startIndex": 0,
> "pageSize": 5,
> "totalCount": 1,
> "resultSize": 1,
> "sortType": "asc",
> "sortBy": "resourceId",
> "queryTimeMS": 1710771145888,
> "list": [
> {
> "id": 4,
> "guid": "8f18d7b3-f885-4687-9438-ededdf340b18",
> "isEnabled": true,
> "createdBy": "Admin",
> "updatedBy": "Admin",
> "createTime": 1710429722000,
> "updateTime": 1710431917000,
> "version": 8,
> "serviceName": "hive",
> "resourceElements": {
> "column": {
> "values": [
> "name"
> ],
> "isExcludes": false,
> "isRecursive": true
> },
> "database": {
> "values": [
> "hrDb1"
> ],
> "isExcludes": false,
> "isRecursive": true
> },
> "table": {
> "values": [
> "employee"
> ],
> "isExcludes": false,
> "isRecursive": true
> }
> },
> "resourceSignature": "483ce23070c3243ffd6e9ebc4a2bc2c90553cbab0ed810bcae22ff6d76e9ca33",
> "associatedTags": [
> "PII_NAME",
> "SSN"
> ]
> }
>
> ],
> "listSize": 1
> }
>
> Validated service/tags/resources/paginated api with resourceElements and tagNames for freestext resource search and multiple tagNames search respectively.
>
>
> Thanks,
>
> Anand Nadar
>
>
Re: Review Request 74941: RANGER-4749: Tag api to get serviceResource by resource. Getting list of associated tags in resources/paginated api's response.
Posted by Anand Nadar <na...@gmail.com>.
> On March 20, 2024, 3:50 p.m., Madhan Neethiraj wrote:
> > agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java
> > Lines 79 (patched)
> > <https://reviews.apache.org/r/74941/diff/5/?file=2286028#file2286028line79>
> >
> > - please update 'Testing Done' section in this review with an example of search by tagNames, especially with multiple names.
> > - REST endpoints in 'Description' and 'Testing Done' are different. Please review and update.
Done
> On March 20, 2024, 3:50 p.m., Madhan Neethiraj wrote:
> > agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java
> > Lines 92 (patched)
> > <https://reviews.apache.org/r/74941/diff/5/?file=2286028#file2286028line92>
> >
> > Is query-param 'resourceElements' used after the recent update to this patch, given resources are specified in query-params using prefix "resource:"?
resourceElements query param is used for freetext search on resources in GET service/tags/resources/paginated api. This is not done using "resource:" prefix.
"resource:" prefix is used in GET service/tags/resource/service/{serviceName}/resource api
> On March 20, 2024, 3:50 p.m., Madhan Neethiraj wrote:
> > security-admin/src/main/java/org/apache/ranger/view/RangerServiceResourceWithTagsList.java
> > Lines 34 (patched)
> > <https://reviews.apache.org/r/74941/diff/5/?file=2286034#file2286034line34>
> >
> > Is it necessary to initialize with "new ArrayList<>"? How about setting to null here?
Initialised it to null
- Anand
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/74941/#review226340
-----------------------------------------------------------
On March 21, 2024, 5:36 a.m., Anand Nadar wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/74941/
> -----------------------------------------------------------
>
> (Updated March 21, 2024, 5:36 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/7/
>
>
> 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
>
>
Re: Review Request 74941: RANGER-4749: Tag api to get serviceResource by resource. Getting list of associated tags in resources/paginated api's response.
Posted by Madhan Neethiraj <ma...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/74941/#review226340
-----------------------------------------------------------
agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java
Lines 79 (patched)
<https://reviews.apache.org/r/74941/#comment314582>
- please update 'Testing Done' section in this review with an example of search by tagNames, especially with multiple names.
- REST endpoints in 'Description' and 'Testing Done' are different. Please review and update.
agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java
Lines 92 (patched)
<https://reviews.apache.org/r/74941/#comment314581>
Is query-param 'resourceElements' used after the recent update to this patch, given resources are specified in query-params using prefix "resource:"?
security-admin/src/main/java/org/apache/ranger/view/RangerServiceResourceWithTagsList.java
Lines 34 (patched)
<https://reviews.apache.org/r/74941/#comment314583>
Is it necessary to initialize with "new ArrayList<>"? How about setting to null here?
security-admin/src/main/java/org/apache/ranger/view/RangerServiceResourceWithTagsList.java
Lines 62 (patched)
<https://reviews.apache.org/r/74941/#comment314584>
List<?> => List<RangerServiceResourceWithTags>
- Madhan Neethiraj
On March 20, 2024, 8:34 a.m., Anand Nadar wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/74941/
> -----------------------------------------------------------
>
> (Updated March 20, 2024, 8:34 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)
> Added list of tagNames to the resource/paginated api which will return all the tagNames 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/5/
>
>
> 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&resource:database.isExcludes=false&resource:database.isRecursive=true&resource:table=EMPLOYEE&resource:table.isExcludes=false&resource:table.isRecursive=true&resource:database=HR-DB2
>
> 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 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.
>
>
> Thanks,
>
> Anand Nadar
>
>
Re: Review Request 74941: RANGER-4749: Tag api to get serviceResource by resource. Getting list of associated tags in resources/paginated api's response.
Posted by Madhan Neethiraj <ma...@apache.org>.
-----------------------------------------------------------
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
>
>
Re: Review Request 74941: RANGER-4749: Tag api to get serviceResource by resource. Getting list of associated tags in resources/paginated api's response.
Posted by Anand Nadar <na...@gmail.com>.
-----------------------------------------------------------
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 (updated)
-----
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/
Changes: https://reviews.apache.org/r/74941/diff/7-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
Re: Review Request 74941: RANGER-4749: Tag api to get serviceResource by resource. Getting list of associated tags in resources/paginated api's response.
Posted by Anand Nadar <na...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/74941/
-----------------------------------------------------------
(Updated March 21, 2024, 5:36 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 (updated)
-----
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/7/
Changes: https://reviews.apache.org/r/74941/diff/6-7/
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
Re: Review Request 74941: RANGER-4749: Tag api to get serviceResource by resource. Getting list of associated tags in resources/paginated api's response.
Posted by Anand Nadar <na...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/74941/
-----------------------------------------------------------
(Updated March 21, 2024, 5:36 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 (updated)
-------
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 (updated)
-----
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/6/
Changes: https://reviews.apache.org/r/74941/diff/5-6/
Testing (updated)
-------
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
Re: Review Request 74941: RANGER-4749: Tag api to get serviceResource by resource. Getting list of associated tags in resources/paginated api's response.
Posted by Anand Nadar <na...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/74941/
-----------------------------------------------------------
(Updated March 20, 2024, 8:34 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)
Added list of tagNames to the resource/paginated api which will return all the tagNames 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 (updated)
-----
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/5/
Changes: https://reviews.apache.org/r/74941/diff/4-5/
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&resource:database.isExcludes=false&resource:database.isRecursive=true&resource:table=EMPLOYEE&resource:table.isExcludes=false&resource:table.isRecursive=true&resource:database=HR-DB2
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 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.
Thanks,
Anand Nadar
Re: Review Request 74941: RANGER-4749: Tag api to get serviceResource by resource. Getting list of associated tags in resources/paginated api's response.
Posted by Anand Nadar <na...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/74941/
-----------------------------------------------------------
(Updated March 20, 2024, 8:31 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)
Added list of tagNames to the resource/paginated api which will return all the tagNames 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 (updated)
-----
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/4/
Changes: https://reviews.apache.org/r/74941/diff/3-4/
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&resource:database.isExcludes=false&resource:database.isRecursive=true&resource:table=EMPLOYEE&resource:table.isExcludes=false&resource:table.isRecursive=true&resource:database=HR-DB2
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 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.
Thanks,
Anand Nadar
Re: Review Request 74941: RANGER-4749: Tag api to get serviceResource by resource. Getting list of associated tags in resources/paginated api's response.
Posted by Anand Nadar <na...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/74941/
-----------------------------------------------------------
(Updated March 20, 2024, 8:14 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)
Added list of tagNames to the resource/paginated api which will return all the tagNames 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 (updated)
-----
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/store/TagStore.java f9f80c9ac
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/3/
Changes: https://reviews.apache.org/r/74941/diff/2-3/
Testing (updated)
-------
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&resource:database.isExcludes=false&resource:database.isRecursive=true&resource:table=EMPLOYEE&resource:table.isExcludes=false&resource:table.isRecursive=true&resource:database=HR-DB2
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 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.
Thanks,
Anand Nadar
Re: Review Request 74941: RANGER-4749: Tag api to get serviceResource by resource. Getting list of associated tags in resources/paginated api's response.
Posted by Anand Nadar <na...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/74941/
-----------------------------------------------------------
(Updated March 19, 2024, 6:35 p.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 (updated)
-------
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)
Added list of tagNames to the resource/paginated api which will return all the tagNames 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 (updated)
-----
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/store/TagStore.java f9f80c9ac
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/2/
Changes: https://reviews.apache.org/r/74941/diff/1-2/
Testing (updated)
-------
Validated GET - service/tags/resource/service/{serviceName}/resource with postive and negative case.
Sample URL - /service/tags/resource/service/hive8/resource?resource:column.values=NAME&resource:column.isExcludes=false&resource:column.isRecursive=aa&resource:database.values=HR-DB&resource:database.isExcludes=false&resource:database.isRecursive=true&resource:table.values=EMPLOYEE&resource:table.isExcludes=false&resource:table.isRecursive=true
Validated response of service/tags/resources/paginated 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.
Thanks,
Anand Nadar