Anand Nadar created RANGER-4749: ----------------------------------- Summary: Tag: Create an api to check if a resource is already available in database by resource input. And send tag list along with the resource list in response of GET /service/tags/resources/paginated API Key: RANGER-4749 URL: https://issues.apache.org/jira/browse/RANGER-4749 Project: Ranger Issue Type: Task Components: admin Reporter: Anand Nadar
*1. Need an api to get the resource by resource if it exists in database.* Case: Suppose there already exists below tag and resource association. PII_NAME tag is associated with (database:HR-DB, table:EMPLOYEE, column:NAME) Now we dont know about the above resource already existing, so we are now trying to create a new tag resource association as below PII_EMP_NAME associated with (database:HR-DB, table:EMPLOYEE, column:NAME) This is done using PUT /service/tags/importservicetags -> op: add_or_update So this will result in the deletion of PII_NAME association with the resource, and creation of PII_EMP_NAME tag associated with the resource. So if we have this GET service/tags/resource/service/\{serviceName}/resource api which will have the payload as {code:java} { "database": { "values": [ "HR-DB" ], "isRecursive": true }, "table": { "values": [ "EMPLOYEE" ], "isRecursive": true }, "column": { "values": [ "NAME" ], "isRecursive": true } } {code} we can check if this resource already exists or not. If the resource exists, we can get all the tags associated with that resource(in our case PII_NAME), and include the new tag PII_EMP_NAME as well and send this in PUT /service/tags/importservicetags -> op: add_or_update then both PII_NAME and PII_EMP_NAME will be associated with the resource. *2. Need the list of associated tag names for a resource in /service/tags/resources/paginated api.* This will get the service resources with all its associated tags in a single api which is also paginated. -- This message was sent by Atlassian Jira (v8.20.10#820010)