[ 
https://issues.apache.org/jira/browse/RANGER-3605?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Madhan Neethiraj updated RANGER-3605:
-------------------------------------
    Description: 
Enhancements in RANGER-3550, RANGER-3567, RANGER-3586 enable use of 
user/group/tag attributes in row-filter/condition expressions. To make it 
easier to refer to these attributes, it will help to be able to use macros 
instead of method calls, as shown below:

{{{}site in ( $\{{GET_UG_ATTR_CSV('site'){}}}}} )

instead of

{{{}site in ( $\{{ctx.ugAttrCsv('site'){}}}}} )

 

Following macros will be supported with this enhancement:
||Macro||Example Usage||Example Evaluated Value||
|{{GET_TAG_ATTR_CSV}}|{{{}siteCode in 
($\{{GET_TAG_ATTR_CSV('{}}}{{{}siteCode{}}}{{{}')}}){}}}|{{siteCode}}{{ in 
(10,20)}}|
|{{GET_TAG_ATTR_Q_CSV}}|{{siteId in 
(${\{GET_TAG_ATTR_Q_CSV('siteId')}})}}|{{siteId in ('site1','site2')}}|
|{{GET_UG_ATTR_CSV}}|{{{}groupId in 
($\{{GET_UG_ATTR_CSV('{}}}{{{}groupId{}}}{{{}')}}){}}}|{{{}groupId in 
({}}}{{{}10,20,30){}}}|
|{{GET_UG_ATTR_Q_CSV}}|{{manager in 
(${\{GET_UG_ATTR_Q_CSV('manager')}})}}|{{manager in ('jane','john','scott')}}|
|{{TAG_ATTR_NAMES_Q_CSV}}|{{attr_name in 
(${\{TAG_ATTR_NAMES_Q_CSV}})}}|{{{}attr_name in 
({}}}{{{}'siteId','siteCode'){}}}|
|{{TAG_NAMES_Q_CSV}}|{{tag_name in (${\{TAG_NAMES_Q_CSV}})}}|{{tag_name in 
('PII','PCI')}}|
|{{UG_ATTR_NAMES_Q_CSV}}|{{attr_name in 
(${\{UG_ATTR_NAMES_Q_CSV}})}}|{{{}attr_name in 
({}}}{{{}'groupId','manager'){}}}|
|{{UG_NAMES_Q_CSV}}|{{group_name in (${\{UG_NAMES_Q_CSV}})}}|{{{}group_name in 
({}}}{{{}'group1','group2'){}}}|
|{{UR_NAMES_Q_CSV}}|{{{}role_name in 
($\{{{}}}{{{}UR_NAMES_Q_CSV}}){}}}|{{{}role_name in 
({}}}{{{}'role1','role2'){}}}|
|{{USER_ATTR_NAMES_Q_CSV}}|{{{}attr_name in 
($\{{{}}}{{{}USER_ATTR_NAMES_Q_CSV}}){}}}|{{{}attr_name in 
({}}}{{{}'dept','state'){}}}|

 

  was:
Enhancements in RANGER-3550, RANGER-3567, RANGER-3586 enable use of 
user/group/tag attributes in row-filter/condition expressions. To make it 
easier to refer to these attributes, it will help to be able to use macros 
instead of method calls, as shown below:

{{{}site in ( $\{{GET_UG_ATTR_CSV('site'){}}}}} )

instead of

{{{}site in ( $\{{ctx.ugAttrCsv('site'){}}}}} )

 

Following macros will be supported with this enhancement:

 
||Macro||Sample Usage||Sample Evaluated Value||
|{{GET_TAG_ATTR_CSV}}|{{GET_TAG_ATTR_CSV('siteId')}}|{{site1,site2}}|
|{{GET_TAG_ATTR_Q_CSV}}|{{GET_TAG_ATTR_Q_CSV('siteId')}}|{{'site1','site2'}}|
|{{GET_UG_ATTR_CSV}}|{{GET_UG_ATTR_CSV('manager')}}|{{jane,john,scott}}|
|{{GET_UG_ATTR_Q_CSV}}|{{GET_UG_ATTR_Q_CSV('manager')}}|{{'jane','john','scott'}}|
|{{TAG_ATTR_NAMES_CSV}}|{{TAG_ATTR_NAMES_CSV}}|{{siteId,piiType}}|
|{{TAG_ATTR_NAMES_Q_CSV}}|{{TAG_ATTR_NAMES_Q_CSV}}|{{'siteId','piiType'}}|
|{{TAG_NAMES_CSV}}|{{TAG_NAMES_CSV}}|{{PII,PCI}}|
|{{TAG_NAMES_Q_CSV}}|{{TAG_NAMES_Q_CSV}}|{{'PII','PCI'}}|
|{{UG_ATTR_NAMES_CSV}}|{{UG_ATTR_NAMES_CSV}}|{{groupId,manager}}|
|{{UG_ATTR_NAMES_Q_CSV}}|{{UG_ATTR_NAMES_Q_CSV}}|{{'groupId','manager'}}|
|{{UG_NAMES_CSV}}|{{UG_NAMES_CSV}}|{{group1,group2}}|
|{{UG_NAMES_Q_CSV}}|{{UG_NAMES_Q_CSV}}|{{'group1','group2'}}|
|{{UR_NAMES_CSV}}|{{UR_NAMES_CSV}}|{{role1,role2}}|
|{{UR_NAMES_Q_CSV}}|{{UR_NAMES_Q_CSV}}|{{'role1','role2'}}|
|{{USER_ATTR_NAMES_CSV}}|{{USER_ATTR_NAMES_CSV}}|{{dept,state,country}}|
|{{USER_ATTR_NAMES_Q_CSV}}|{{USER_ATTR_NAMES_Q_CSV}}|{{'dept','state','country'}}|

 


> Support macros in row-filter/condition expressions
> --------------------------------------------------
>
>                 Key: RANGER-3605
>                 URL: https://issues.apache.org/jira/browse/RANGER-3605
>             Project: Ranger
>          Issue Type: Improvement
>          Components: plugins
>            Reporter: Madhan Neethiraj
>            Assignee: Madhan Neethiraj
>            Priority: Major
>             Fix For: 3.0.0, 2.3.0
>
>         Attachments: RANGER-3605.patch
>
>
> Enhancements in RANGER-3550, RANGER-3567, RANGER-3586 enable use of 
> user/group/tag attributes in row-filter/condition expressions. To make it 
> easier to refer to these attributes, it will help to be able to use macros 
> instead of method calls, as shown below:
> {{{}site in ( $\{{GET_UG_ATTR_CSV('site'){}}}}} )
> instead of
> {{{}site in ( $\{{ctx.ugAttrCsv('site'){}}}}} )
>  
> Following macros will be supported with this enhancement:
> ||Macro||Example Usage||Example Evaluated Value||
> |{{GET_TAG_ATTR_CSV}}|{{{}siteCode in 
> ($\{{GET_TAG_ATTR_CSV('{}}}{{{}siteCode{}}}{{{}')}}){}}}|{{siteCode}}{{ in 
> (10,20)}}|
> |{{GET_TAG_ATTR_Q_CSV}}|{{siteId in 
> (${\{GET_TAG_ATTR_Q_CSV('siteId')}})}}|{{siteId in ('site1','site2')}}|
> |{{GET_UG_ATTR_CSV}}|{{{}groupId in 
> ($\{{GET_UG_ATTR_CSV('{}}}{{{}groupId{}}}{{{}')}}){}}}|{{{}groupId in 
> ({}}}{{{}10,20,30){}}}|
> |{{GET_UG_ATTR_Q_CSV}}|{{manager in 
> (${\{GET_UG_ATTR_Q_CSV('manager')}})}}|{{manager in ('jane','john','scott')}}|
> |{{TAG_ATTR_NAMES_Q_CSV}}|{{attr_name in 
> (${\{TAG_ATTR_NAMES_Q_CSV}})}}|{{{}attr_name in 
> ({}}}{{{}'siteId','siteCode'){}}}|
> |{{TAG_NAMES_Q_CSV}}|{{tag_name in (${\{TAG_NAMES_Q_CSV}})}}|{{tag_name in 
> ('PII','PCI')}}|
> |{{UG_ATTR_NAMES_Q_CSV}}|{{attr_name in 
> (${\{UG_ATTR_NAMES_Q_CSV}})}}|{{{}attr_name in 
> ({}}}{{{}'groupId','manager'){}}}|
> |{{UG_NAMES_Q_CSV}}|{{group_name in (${\{UG_NAMES_Q_CSV}})}}|{{{}group_name 
> in ({}}}{{{}'group1','group2'){}}}|
> |{{UR_NAMES_Q_CSV}}|{{{}role_name in 
> ($\{{{}}}{{{}UR_NAMES_Q_CSV}}){}}}|{{{}role_name in 
> ({}}}{{{}'role1','role2'){}}}|
> |{{USER_ATTR_NAMES_Q_CSV}}|{{{}attr_name in 
> ($\{{{}}}{{{}USER_ATTR_NAMES_Q_CSV}}){}}}|{{{}attr_name in 
> ({}}}{{{}'dept','state'){}}}|
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to