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

Bolke de Bruin commented on ATLAS-3755:
---------------------------------------

[~madhan] I don't think that would work for the KafkaConsumer, or does it? 
Please note that also Glossary needs to be updated to contain all system 
attributes as it is missing at least "homeId". In addition I don't think the 
risk is that high that system attributes get updated inadvertent. The default 
authorization model denies access to these attributes. Next to that it would 
require the incoming message to include those system properties. In this case 
you could argue that it should not be consumed at all if not allowed as it is a 
bad behaving client. We would like to integrate Atlas with another metadata 
system, which would actually make the occurrence much more frequent in around 
50% of the updates. Given the fact that system attributes are part of the 
vertex there is not much additional cost as far as I can see in doing this 
during entity updates.

On your second point. I'm not strongly bound so I can merge them. I do think 
there might be cases that you would like to allow an update but disallow a 
create.

Authorization per attribute allows end-users to edit a particular attribute 
(say description) without allowing editing of all properties of the entities. 
This is actually a very common use case as you would like users to be able to 
enrich the metadata without adjusting some core attributes or system generated 
attributes. I understand your point about performance. What I could do is to 
submit an Array in string format (e.g. "attribute1;attribute2;attribute4") and 
create a RangerArrayResourceMatcher that allows matching on 1 item which should 
resolve the issue of CPU cycles and audit logs.

What do you think?

> Allow system attributes to be updated when policy allows
> --------------------------------------------------------
>
>                 Key: ATLAS-3755
>                 URL: https://issues.apache.org/jira/browse/ATLAS-3755
>             Project: Atlas
>          Issue Type: Improvement
>          Components:  atlas-core
>    Affects Versions: 2.0.0, 2.1.0
>            Reporter: Bolke de Bruin
>            Assignee: Bolke de Bruin
>            Priority: Critical
>         Attachments: 
> 0001-ATLAS-3755-Allow-system-attributes-to-be-updated-by-.patch, 
> 0001-ATLAS-3755-Allow-system-attributes-to-be-updated-by-.patch, 
> 0001-ATLAS-3755-Allow-system-attributes-to-be-updated-by-.patch
>
>
> Atlas does not operate in a isolated environment, this is one of the reasons 
> the "homeId" system attribute was introduced. Unfortunately system attributes 
> can only be updated when importing. This means any integration with other 
> services is significantly limited (Kafka, Rest API will not work). (See also 
> ATLAS-3754)
> To resolve this I propose to make it possible to update the system attributes 
> when policy allows it. This introduces new 
> AtlasPrivilege.ENTITY_UPDATE_SYSTEM_ATTRIBUTE and 
> AtlasPrivilege.ENTITY_CREATE_SYSTEM_ATTRIBUTE next to 
> AtlasPrivilege.ENTITY_UPDATE_ATTRIBUTE and 
> AtlasPrivilege.ENTITY_CREATE_ATTRIBUTE rather than just checking on the 
> entity level. In certain places we will then drop the requirement for an 
> import to be active as this can now happen through other channels as well.
> This allows operators to specify policies that allow granular controls over 
> attributes and system attributes.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to