[
https://issues.apache.org/jira/browse/ATLAS-4181?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Radhika Kundam updated ATLAS-4181:
----------------------------------
Description:
Currently, Atlas allows to add only optional attributes to existing entity type
and it doesn’t allow to add any mandatory attribute.
Atlas should allow users to add mandatory attributes to existing entity types.
To provide backward compatibility without breaking any contract between updated
entity definition and existing entities, once entity def gets updated with
mandatory attribute it should update all entities of same type and all subtypes
with mandatory attribute.
This feature should allow only if new mandatory attribute is primitive type,
non-unique and has non-empty default value.
Design diagram attached for reference.
With this feature, mandatory attributes can be added to existing typedef using
"ADD_MANDATORY_ATTRIBUTE" typedef patch action.
Below is the sample of data to be used to patch.
{
"id": "<TYPEDEF_PATCH_ID>",
"description": "<PATCH_DESCRIPTION>",
"action": "*ADD_MANDATORY_ATTRIBUTE*",
"typeName": "<ENTITY_TYPE>",
"applyToVersion": "1.1",
"updateToVersion": "1.2",
"params": null,
"attributeDefs": [
{
"name": "<MANDATORY_ATTRIBUTE_NAME>",
"typeName": "<PRIMITIVE_TYPE>",
"cardinality": "SINGLE",
"isIndexable": false,
"isOptional": false,
"isUnique": false,
"defaultValue": "<DEFAULT_VALUE_OF_ATTRIBUTE>"
}
]
}
was:
Currently, Atlas allows to add only optional attributes to existing entity type
and it doesn’t allow to add any mandatory attribute.
Atlas should allow users to add mandatory attributes to existing entity types.
To provide backward compatibility without breaking any contract between updated
entity definition and existing entities, once entity def gets updated with
mandatory attribute it should update all entities of same type and all subtypes
with mandatory attribute.
This feature should allow only if new mandatory attribute is primitive type and
has non-empty default value.
Design diagram attached for reference.
> Provide option to add mandatory attribute to existing entity definition
> -----------------------------------------------------------------------
>
> Key: ATLAS-4181
> URL: https://issues.apache.org/jira/browse/ATLAS-4181
> Project: Atlas
> Issue Type: Improvement
> Components: atlas-core
> Affects Versions: 2.1.0
> Reporter: Radhika Kundam
> Assignee: Radhika Kundam
> Priority: Major
> Fix For: 3.0.0, 2.2.0
>
> Attachments: Design_Diagram_For_Add_Mandatory_Attribute.png
>
>
> Currently, Atlas allows to add only optional attributes to existing entity
> type and it doesn’t allow to add any mandatory attribute.
> Atlas should allow users to add mandatory attributes to existing entity
> types. To provide backward compatibility without breaking any contract
> between updated entity definition and existing entities, once entity def gets
> updated with mandatory attribute it should update all entities of same type
> and all subtypes with mandatory attribute.
> This feature should allow only if new mandatory attribute is primitive type,
> non-unique and has non-empty default value.
> Design diagram attached for reference.
> With this feature, mandatory attributes can be added to existing typedef
> using "ADD_MANDATORY_ATTRIBUTE" typedef patch action.
> Below is the sample of data to be used to patch.
> {
> "id": "<TYPEDEF_PATCH_ID>",
> "description": "<PATCH_DESCRIPTION>",
> "action": "*ADD_MANDATORY_ATTRIBUTE*",
> "typeName": "<ENTITY_TYPE>",
> "applyToVersion": "1.1",
> "updateToVersion": "1.2",
> "params": null,
> "attributeDefs": [
> {
> "name": "<MANDATORY_ATTRIBUTE_NAME>",
> "typeName": "<PRIMITIVE_TYPE>",
> "cardinality": "SINGLE",
> "isIndexable": false,
> "isOptional": false,
> "isUnique": false,
> "defaultValue": "<DEFAULT_VALUE_OF_ATTRIBUTE>"
> }
> ]
> }
--
This message was sent by Atlassian Jira
(v8.3.4#803005)