You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ranger.apache.org by Ramesh Mani <rm...@hortonworks.com> on 2024/09/30 03:59:21 UTC

Re: Review Request 75213: RANGER-4937: Enhance GDS resources API to support creation of datashare add resources and add to dataset as an option

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/75213/
-----------------------------------------------------------

(Updated Sept. 30, 2024, 3:59 a.m.)


Review request for ranger, Abhay Kulkarni, Madhan Neethiraj, and Radhika Kundam.


Changes
-------

Review comments addressed


Summary (updated)
-----------------

RANGER-4937: Enhance GDS resources API to support creation of datashare add resources and add to dataset as an option


Bugs: RANGER-4937
    https://issues.apache.org/jira/browse/RANGER-4937


Repository: ranger


Description (updated)
-------

RANGER-4937: Enhance GDS resources API to support creation of datashare add resources and add to dataset as an option


Diffs (updated)
-----

  security-admin/src/main/java/org/apache/ranger/rest/GdsREST.java 0b3d91001 


Diff: https://reviews.apache.org/r/75213/diff/2/

Changes: https://reviews.apache.org/r/75213/diff/1-2/


Testing (updated)
-------

Enhance GDS resources API to support creation of datashare, add resources and add to dataset as an option

- add a resource to a dataset using existing API "POST service/gds/resource", with following enhancements:
- receive optional parameters "serviceName" and "datasetId"
-  when dataShareId=-1 in the payload, this API should do the following:
       if a data share named "_dataset<datasetId>service<svcId>" does not exist, create it, associate it with the dataset with status=ACTIVE
add the given resource/resources to this datashare
       This would be useful to integrate external service which would use the GDS functionality to create DataShare in ranger with resources
 
 Testing done with local vm:
  - Create a DataSet with "POST service/gds/dataset".
  - Call the enhanced API  "POST service/gds/resources" as following.
  
  curl  -ikv -u <user:password> -X POST  -H "Content-Type: application/json" 'http://localhost:6080/service/gds/resources?serviceName=cm_hive&id=26' --data '[ { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"-1", "resource":{ "database":{ "values":["test_db"] }, "table":{ "values":["sal1","sal2","sal4"] }, "column": { "values": [ "id" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-17", "accessTypes":["all"] }, { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"-1", "resource":{ "database":{ "values":["default"] }, "table":{ "values":["sal2","emp","tb_1","sal1","sal3","tb_2"] }, "column": { "values": [ "*" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-18", "accessTypes":["all"] } ]'
  
   curl  -ikv -u admin:Admin123 -X POST  -H "Content-Type: application/json" 'http://localhost:6080/service/gds/resources' --data '[ { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"29", "resource":{ "database":{ "values":["test_db"] }, "table":{ "values":["sal1","sal2","sal4"] }, "column": { "values": [ "id" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-17", "accessTypes":["all"] }, { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"29", "resource":{ "database":{ "values":["default"] }, "table":{ "values":["sal2","emp","tb_1","sal1","sal3","tb_2"] }, "column": { "values": [ "*" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-18", "accessTypes":["all"] } ]'


Thanks,

Ramesh Mani


Re: Review Request 75213: RANGER-4937: Add a new GDS resource API for adding new resources to a new or existing DataShare and add it to the DataSet

Posted by Madhan Neethiraj <ma...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/75213/#review226967
-----------------------------------------------------------


Ship it!




Ship It!

- Madhan Neethiraj


On Oct. 6, 2024, 11:43 p.m., Ramesh Mani wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/75213/
> -----------------------------------------------------------
> 
> (Updated Oct. 6, 2024, 11:43 p.m.)
> 
> 
> Review request for ranger, Abhay Kulkarni, Madhan Neethiraj, and Radhika Kundam.
> 
> 
> Bugs: RANGER-4937
>     https://issues.apache.org/jira/browse/RANGER-4937
> 
> 
> Repository: ranger
> 
> 
> Description
> -------
> 
> RANGER-4937: Add a new GDS resource API for adding new resources to a new or existing DataShare and add it to the DataSet
> 
> 
> Diffs
> -----
> 
>   security-admin/src/main/java/org/apache/ranger/rest/GdsREST.java 0b3d91001 
> 
> 
> Diff: https://reviews.apache.org/r/75213/diff/4/
> 
> 
> Testing
> -------
> 
> Add a new GDS resource API for adding new resources to a new or existing DataShare and add it to the DataSet
> 
> - add a resource to a dataset using existing API "POST service/gds/resource", with following enhancements:
> 
>  Testing done with local vm:
>   - Create a DataSet with "POST service/gds/dataset".
>   - Call the enhanced API  "/dataset/{id}/resources/{serviceName}" as following.
>   
>   curl  -ikv -u admin:Admin123 -X POST  -H "Content-Type: application/json" 'http://localhost:6080/service/gds/dataset/30/resources/cm_hive' -d '[ { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"-1", "resource":{ "database":{ "values":["test_db"] }, "table":{ "values":["sal1","sal2","sal4"] }, "column": { "values": [ "id" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-17", "accessTypes":["all"] }, { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"-1", "resource":{ "database":{ "values":["default"] }, "table":{ "values":["sal2","emp","tb_1","sal1","sal3","tb_2"] }, "column": { "values": [ "*" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-18", "accessTypes":["all"] }]'
>   
>  curl  -ikv -u admin:Admin123 -X POST  -H "Content-Type: application/json" 'http://localhost:6080/service/gds/dataset/30/resources/cm_hive' -d '[ { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"-1", "resource":{ "database":{ "values":["test_db3"] }, "table":{ "values":["sal12","sal22","sal42"] }, "column": { "values": [ "id" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-172", "accessTypes":["all"] }]'
> 
> 
> Thanks,
> 
> Ramesh Mani
> 
>


Re: Review Request 75213: RANGER-4937: Add a new GDS resource API for adding new resources to a new or existing DataShare and add it to the DataSet

Posted by Ramesh Mani <rm...@hortonworks.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/75213/
-----------------------------------------------------------

(Updated Oct. 6, 2024, 11:43 p.m.)


Review request for ranger, Abhay Kulkarni, Madhan Neethiraj, and Radhika Kundam.


Changes
-------

Review comments addressed


Bugs: RANGER-4937
    https://issues.apache.org/jira/browse/RANGER-4937


Repository: ranger


Description
-------

RANGER-4937: Add a new GDS resource API for adding new resources to a new or existing DataShare and add it to the DataSet


Diffs (updated)
-----

  security-admin/src/main/java/org/apache/ranger/rest/GdsREST.java 0b3d91001 


Diff: https://reviews.apache.org/r/75213/diff/4/

Changes: https://reviews.apache.org/r/75213/diff/3-4/


Testing
-------

Add a new GDS resource API for adding new resources to a new or existing DataShare and add it to the DataSet

- add a resource to a dataset using existing API "POST service/gds/resource", with following enhancements:

 Testing done with local vm:
  - Create a DataSet with "POST service/gds/dataset".
  - Call the enhanced API  "/dataset/{id}/resources/{serviceName}" as following.
  
  curl  -ikv -u admin:Admin123 -X POST  -H "Content-Type: application/json" 'http://localhost:6080/service/gds/dataset/30/resources/cm_hive' -d '[ { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"-1", "resource":{ "database":{ "values":["test_db"] }, "table":{ "values":["sal1","sal2","sal4"] }, "column": { "values": [ "id" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-17", "accessTypes":["all"] }, { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"-1", "resource":{ "database":{ "values":["default"] }, "table":{ "values":["sal2","emp","tb_1","sal1","sal3","tb_2"] }, "column": { "values": [ "*" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-18", "accessTypes":["all"] }]'
  
 curl  -ikv -u admin:Admin123 -X POST  -H "Content-Type: application/json" 'http://localhost:6080/service/gds/dataset/30/resources/cm_hive' -d '[ { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"-1", "resource":{ "database":{ "values":["test_db3"] }, "table":{ "values":["sal12","sal22","sal42"] }, "column": { "values": [ "id" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-172", "accessTypes":["all"] }]'


Thanks,

Ramesh Mani


Re: Review Request 75213: RANGER-4937: Add a new GDS resource API for adding new resources to a new or existing DataShare and add it to the DataSet

Posted by Madhan Neethiraj <ma...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/75213/#review226966
-----------------------------------------------------------




security-admin/src/main/java/org/apache/ranger/rest/GdsREST.java
Lines 182 (patched)
<https://reviews.apache.org/r/75213/#comment315256>

    Consider replacing "1L" with RangerSecurityZone.RANGER_UNZONED_SECURITY_ZONE_ID.



security-admin/src/main/java/org/apache/ranger/rest/GdsREST.java
Lines 1771 (patched)
<https://reviews.apache.org/r/75213/#comment315255>

    I suggest to mark following methods as private:
     - getOrCreateDataShare()
     - getServiceId()
     - getZoneId()
     - isValidService()
     - isValidZone()



security-admin/src/main/java/org/apache/ranger/rest/GdsREST.java
Lines 1795 (patched)
<https://reviews.apache.org/r/75213/#comment315257>

    "select" may not be a vaid access-type in the given service. I suggest to set defaultAccessTypes to an empty set.



security-admin/src/main/java/org/apache/ranger/rest/GdsREST.java
Lines 1823 (patched)
<https://reviews.apache.org/r/75213/#comment315254>

    isValidService() and isValidZone() throw exception when the given service or zone is invalid. I suggest these methods to return the ID or throw exception when not found. With this, getServiceId() and getZoneId() can be eliminated.
    
    - private Long validateAndGetServiceId(String svcName);
    - private Long validateAndGetZoneId(String zoneName);


- Madhan Neethiraj


On Oct. 6, 2024, 8:47 a.m., Ramesh Mani wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/75213/
> -----------------------------------------------------------
> 
> (Updated Oct. 6, 2024, 8:47 a.m.)
> 
> 
> Review request for ranger, Abhay Kulkarni, Madhan Neethiraj, and Radhika Kundam.
> 
> 
> Bugs: RANGER-4937
>     https://issues.apache.org/jira/browse/RANGER-4937
> 
> 
> Repository: ranger
> 
> 
> Description
> -------
> 
> RANGER-4937: Add a new GDS resource API for adding new resources to a new or existing DataShare and add it to the DataSet
> 
> 
> Diffs
> -----
> 
>   security-admin/src/main/java/org/apache/ranger/rest/GdsREST.java 0b3d91001 
> 
> 
> Diff: https://reviews.apache.org/r/75213/diff/3/
> 
> 
> Testing
> -------
> 
> Add a new GDS resource API for adding new resources to a new or existing DataShare and add it to the DataSet
> 
> - add a resource to a dataset using existing API "POST service/gds/resource", with following enhancements:
> 
>  Testing done with local vm:
>   - Create a DataSet with "POST service/gds/dataset".
>   - Call the enhanced API  "/dataset/{id}/resources/{serviceName}" as following.
>   
>   curl  -ikv -u admin:Admin123 -X POST  -H "Content-Type: application/json" 'http://localhost:6080/service/gds/dataset/30/resources/cm_hive' -d '[ { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"-1", "resource":{ "database":{ "values":["test_db"] }, "table":{ "values":["sal1","sal2","sal4"] }, "column": { "values": [ "id" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-17", "accessTypes":["all"] }, { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"-1", "resource":{ "database":{ "values":["default"] }, "table":{ "values":["sal2","emp","tb_1","sal1","sal3","tb_2"] }, "column": { "values": [ "*" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-18", "accessTypes":["all"] }]'
>   
>  curl  -ikv -u admin:Admin123 -X POST  -H "Content-Type: application/json" 'http://localhost:6080/service/gds/dataset/30/resources/cm_hive' -d '[ { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"-1", "resource":{ "database":{ "values":["test_db3"] }, "table":{ "values":["sal12","sal22","sal42"] }, "column": { "values": [ "id" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-172", "accessTypes":["all"] }]'
> 
> 
> Thanks,
> 
> Ramesh Mani
> 
>


Re: Review Request 75213: RANGER-4937: Add a new GDS resource API for adding new resources to a new or existing DataShare and add it to the DataSet

Posted by Ramesh Mani <rm...@hortonworks.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/75213/
-----------------------------------------------------------

(Updated Oct. 6, 2024, 8:47 a.m.)


Review request for ranger, Abhay Kulkarni, Madhan Neethiraj, and Radhika Kundam.


Summary (updated)
-----------------

RANGER-4937: Add a new GDS resource API for adding new resources to a new or existing DataShare and add it to the DataSet


Bugs: RANGER-4937
    https://issues.apache.org/jira/browse/RANGER-4937


Repository: ranger


Description
-------

RANGER-4937: Add a new GDS resource API for adding new resources to a new or existing DataShare and add it to the DataSet


Diffs
-----

  security-admin/src/main/java/org/apache/ranger/rest/GdsREST.java 0b3d91001 


Diff: https://reviews.apache.org/r/75213/diff/3/


Testing
-------

Add a new GDS resource API for adding new resources to a new or existing DataShare and add it to the DataSet

- add a resource to a dataset using existing API "POST service/gds/resource", with following enhancements:

 Testing done with local vm:
  - Create a DataSet with "POST service/gds/dataset".
  - Call the enhanced API  "/dataset/{id}/resources/{serviceName}" as following.
  
  curl  -ikv -u admin:Admin123 -X POST  -H "Content-Type: application/json" 'http://localhost:6080/service/gds/dataset/30/resources/cm_hive' -d '[ { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"-1", "resource":{ "database":{ "values":["test_db"] }, "table":{ "values":["sal1","sal2","sal4"] }, "column": { "values": [ "id" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-17", "accessTypes":["all"] }, { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"-1", "resource":{ "database":{ "values":["default"] }, "table":{ "values":["sal2","emp","tb_1","sal1","sal3","tb_2"] }, "column": { "values": [ "*" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-18", "accessTypes":["all"] }]'
  
 curl  -ikv -u admin:Admin123 -X POST  -H "Content-Type: application/json" 'http://localhost:6080/service/gds/dataset/30/resources/cm_hive' -d '[ { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"-1", "resource":{ "database":{ "values":["test_db3"] }, "table":{ "values":["sal12","sal22","sal42"] }, "column": { "values": [ "id" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-172", "accessTypes":["all"] }]'


Thanks,

Ramesh Mani


Re: Review Request 75213: RANGER-4937: Enhance GDS resources API to support creation of datashare add resources and add to dataset as an option

Posted by Ramesh Mani <rm...@hortonworks.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/75213/
-----------------------------------------------------------

(Updated Oct. 6, 2024, 8:45 a.m.)


Review request for ranger, Abhay Kulkarni, Madhan Neethiraj, and Radhika Kundam.


Changes
-------

Review comments fixed


Bugs: RANGER-4937
    https://issues.apache.org/jira/browse/RANGER-4937


Repository: ranger


Description (updated)
-------

RANGER-4937: Add a new GDS resource API for adding new resources to a new or existing DataShare and add it to the DataSet


Diffs (updated)
-----

  security-admin/src/main/java/org/apache/ranger/rest/GdsREST.java 0b3d91001 


Diff: https://reviews.apache.org/r/75213/diff/3/

Changes: https://reviews.apache.org/r/75213/diff/2-3/


Testing (updated)
-------

Add a new GDS resource API for adding new resources to a new or existing DataShare and add it to the DataSet

- add a resource to a dataset using existing API "POST service/gds/resource", with following enhancements:

 Testing done with local vm:
  - Create a DataSet with "POST service/gds/dataset".
  - Call the enhanced API  "/dataset/{id}/resources/{serviceName}" as following.
  
  curl  -ikv -u admin:Admin123 -X POST  -H "Content-Type: application/json" 'http://localhost:6080/service/gds/dataset/30/resources/cm_hive' -d '[ { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"-1", "resource":{ "database":{ "values":["test_db"] }, "table":{ "values":["sal1","sal2","sal4"] }, "column": { "values": [ "id" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-17", "accessTypes":["all"] }, { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"-1", "resource":{ "database":{ "values":["default"] }, "table":{ "values":["sal2","emp","tb_1","sal1","sal3","tb_2"] }, "column": { "values": [ "*" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-18", "accessTypes":["all"] }]'
  
 curl  -ikv -u admin:Admin123 -X POST  -H "Content-Type: application/json" 'http://localhost:6080/service/gds/dataset/30/resources/cm_hive' -d '[ { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"-1", "resource":{ "database":{ "values":["test_db3"] }, "table":{ "values":["sal12","sal22","sal42"] }, "column": { "values": [ "id" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-172", "accessTypes":["all"] }]'


Thanks,

Ramesh Mani


Re: Review Request 75213: RANGER-4937: Enhance GDS resources API to support creation of datashare add resources and add to dataset as an option

Posted by Madhan Neethiraj <ma...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/75213/#review226963
-----------------------------------------------------------




security-admin/src/main/java/org/apache/ranger/rest/GdsREST.java
Line 1079 (original), 1089 (patched)
<https://reviews.apache.org/r/75213/#comment315253>

    Given the purpose of the updated API is to add resources to a dataset, I suggest to introduce a new API that takes datasetId and serviceName in path parameters - as given below:
    
    @POST
    @Path("/dataset/{id}/resources/{serviceName}")
    @Consumes({ "application/json" })
    @Produces({ "application/json" })
    @PreAuthorize("@rangerPreAuthSecurityHandler.isAPIAccessible(\"" + RangerAPIList.ADD_SHARED_RESOURCES + "\")")
    public List<RangerSharedResource> addDatasetResources(@PathParam("id") Long datasetId,
                                                          @PathParam("serviceName") String serviceName,
                                                          @QueryParam("zoneName") @DefaultValue("") String zoneName,
                                                          List<RangerSharedResource> resources) {
      Long   serviceId     = getServiceId(serviceName);
      Long   zoneId        = getZoneId(zoneName);
      
      // validate serviceId and zoneId
    
      String dataShareName = "__dataset_" + datasetId + "__service_" + serviceId + "__zone_" + zoneId;
      
      Long dataShareId = getOrCreateDataShare(dataShareName);
      
      resources.forEach(resource -> resource.setDataShareId(dataShareId));
      
      return addSharedResources(resources);
    }


- Madhan Neethiraj


On Sept. 30, 2024, 3:59 a.m., Ramesh Mani wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/75213/
> -----------------------------------------------------------
> 
> (Updated Sept. 30, 2024, 3:59 a.m.)
> 
> 
> Review request for ranger, Abhay Kulkarni, Madhan Neethiraj, and Radhika Kundam.
> 
> 
> Bugs: RANGER-4937
>     https://issues.apache.org/jira/browse/RANGER-4937
> 
> 
> Repository: ranger
> 
> 
> Description
> -------
> 
> RANGER-4937: Enhance GDS resources API to support creation of datashare add resources and add to dataset as an option
> 
> 
> Diffs
> -----
> 
>   security-admin/src/main/java/org/apache/ranger/rest/GdsREST.java 0b3d91001 
> 
> 
> Diff: https://reviews.apache.org/r/75213/diff/2/
> 
> 
> Testing
> -------
> 
> Enhance GDS resources API to support creation of datashare, add resources and add to dataset as an option
> 
> - add a resource to a dataset using existing API "POST service/gds/resource", with following enhancements:
> - receive optional parameters "serviceName" and "datasetId"
> -  when dataShareId=-1 in the payload, this API should do the following:
>        if a data share named "_dataset<datasetId>service<svcId>" does not exist, create it, associate it with the dataset with status=ACTIVE
> add the given resource/resources to this datashare
>        This would be useful to integrate external service which would use the GDS functionality to create DataShare in ranger with resources
>  
>  Testing done with local vm:
>   - Create a DataSet with "POST service/gds/dataset".
>   - Call the enhanced API  "POST service/gds/resources" as following.
>   
>   curl  -ikv -u <user:password> -X POST  -H "Content-Type: application/json" 'http://localhost:6080/service/gds/resources?serviceName=cm_hive&id=26' --data '[ { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"-1", "resource":{ "database":{ "values":["test_db"] }, "table":{ "values":["sal1","sal2","sal4"] }, "column": { "values": [ "id" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-17", "accessTypes":["all"] }, { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"-1", "resource":{ "database":{ "values":["default"] }, "table":{ "values":["sal2","emp","tb_1","sal1","sal3","tb_2"] }, "column": { "values": [ "*" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-18", "accessTypes":["all"] } ]'
>   
>    curl  -ikv -u admin:Admin123 -X POST  -H "Content-Type: application/json" 'http://localhost:6080/service/gds/resources' --data '[ { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"29", "resource":{ "database":{ "values":["test_db"] }, "table":{ "values":["sal1","sal2","sal4"] }, "column": { "values": [ "id" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-17", "accessTypes":["all"] }, { "createdBy": "Admin", "isEnabled": "true", "version": 1, "dataShareId":"29", "resource":{ "database":{ "values":["default"] }, "table":{ "values":["sal2","emp","tb_1","sal1","sal3","tb_2"] }, "column": { "values": [ "*" ], "isExcludes": false, "isRecursive": false } }, "name":"test-resource-18", "accessTypes":["all"] } ]'
> 
> 
> Thanks,
> 
> Ramesh Mani
> 
>