[ 
https://issues.apache.org/jira/browse/RANGER-5194?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18063895#comment-18063895
 ] 

Abyss-lord commented on RANGER-5194:
------------------------------------

Hi  [~umeshpadashetty] XXX, I'm interested in working on this. Would you mind 
assigning it to me?

> Incorrect documentation of attributeDefs in Ranger REST API Swagger 
> Documentation 
> ----------------------------------------------------------------------------------
>
>                 Key: RANGER-5194
>                 URL: https://issues.apache.org/jira/browse/RANGER-5194
>             Project: Ranger
>          Issue Type: Bug
>          Components: tagsync
>            Reporter: Umesh Padashetty
>            Priority: Major
>
> In Ranger Swagger REST API, 
> [https://ranger.apache.org/apidocs/ui/index.html], attributeDefs is 
> documented as return value in most of the Tag REST APIs. But in reality, only 
> a subset of these APIs return it based on whether the attribute has a value 
> in Atlas
> For instance, GET /tags/tagdef/name/\{name} returns the following where the 
> attributes values are not assigned in Atlas. This is mostly expected since 
> Ranger can ignore tag attributes for whom there is no set value in Atlas 
> {code:java}
> {
>   "id": 699,
>   "guid": "1d0f7955-466e-4a04-96a4-77b9ee3478cb",
>   "isEnabled": true,
>   "createdBy": "rangertagsync",
>   "updatedBy": "rangertagsync",
>   "createTime": 1744727619342,
>   "updateTime": 1744727619343,
>   "version": 1,
>   "name": "attr_expiry_test_0_jnh34e",
>   "source": "Atlas"
> } {code}
> But the same API should return the attributeDefs whenever it is assigned a 
> value in atlas. But it is observed that it still returns the same response. 
> The API documentation in Swagger says it returns the following 
> {code:java}
> {
>   "attributeDefs": [
>     {
>       "type": "...",
>       "name": "..."
>     },
>     {
>       "type": "...",
>       "name": "..."
>     }
>   ],
>   "source": "...",
>   "name": "...",
>   "createdBy": "...",
>   "updateTime": 12345,
>   "updatedBy": "...",
>   "createTime": 12345,
>   "version": 12345,
>   "guid": "...",
>   "isEnabled": true,
>   "id": 12345
> } {code}
> As seen above, attributeDefs is nowhere to be seen. We should either fix the 
> incorrect Swagger documentation, or address the return values of our APIs. I 
> feel we should fix the API responses. I have observed a similar incorrect 
> behavior with many other Tag REST APIs.
> I have also observed a case where the attributeDefs is returned, but only for 
> a few of the tags. I created another tag with attributes, and assigned it to 
> an entity in atlas with values, and this tag is returned to have 
> attributeDefs by Ranger APIs like seen below
> {code:java}
> {
>     "id": 155,
>     "guid": "6b8e2431-31e3-44d7-aef6-4f97555d7e02",
>     "isEnabled": true,
>     "createdBy": "rangertagsync",
>     "updatedBy": "rangertagsync",
>     "createTime": 1744215891278,
>     "updateTime": 1744215891280,
>     "version": 1,
>     "name": "test_tag_7bf80d08_1744215889",
>     "source": "Atlas",
>     "attributeDefs": [
>       {
>         "name": "date_attr",
>         "type": "string"
>       },
>       {
>         "name": "int_attr",
>         "type": "string"
>       },
>       {
>         "name": "bool_attr",
>         "type": "string"
>       },
>       {
>         "name": "string_attr",
>         "type": "string"
>       },
>       {
>         "name": "float_attr",
>         "type": "string"
>       }
>     ]
> } {code}
> On the other hand, GET /tags/tags returns the attributes correctly, whenever 
> it has a value in Atlas 
> {code:java}
> {
>     "id": 939,
>     "guid": "00f18aa7-de2d-4066-a71e-1c9d485447eb",
>     "isEnabled": true,
>     "createdBy": "rangertagsync",
>     "updatedBy": "rangertagsync",
>     "createTime": 1744775805078,
>     "updateTime": 1744775805079,
>     "type": "attr_expiry_test_0_jnh34e",
>     "owner": 0,
>     "attributes": {
>       "createdAt": "today",
>       "expiryType": "tomorrow"
>     }
> } {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to