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

Madhan Neethiraj updated ATLAS-1521:
------------------------------------
    Fix Version/s: 0.8-incubating

> Update UI to eliminate REST calls to obtain schema data
> -------------------------------------------------------
>
>                 Key: ATLAS-1521
>                 URL: https://issues.apache.org/jira/browse/ATLAS-1521
>             Project: Atlas
>          Issue Type: Improvement
>          Components: atlas-webui
>    Affects Versions: 0.8-incubating
>            Reporter: Madhan Neethiraj
>            Assignee: Keval Bhatt
>            Priority: Major
>             Fix For: 0.8-incubating
>
>         Attachments: ATLAS-1521.1.patch, ATLAS-1521.2.patch, ATLAS-1521.patch
>
>
> When rendering entity details page, UI makes a REST API call to 
> /schema/{guid} to obtain the schema data. For entity types that don't support 
> the notion of schema, this REST API call returns an error. When such error is 
> returned, UI does not add 'Schema' tab to the details page. When the call 
> returns data, UI renders the data in 'Schema' tab.
> Given that only few entity-types (like hive_table) support schema, most calls 
> to retrieve schema return an error. Having additional schema related 
> information in the type can eliminate the need for unnecessary REST calls. 
> ATLAS-1517 introduces additional data in 'typeDefOptions' attribute of 
> entity-type definition. UI can use the following logic to render the schema 
> tab contents:
> # Does an entity-type support schema?
>   Is {{entityDef.typeDefOptions\[schemaElementsAttribute]}} set and its value 
> non empty? If yes, schema is supported else not-supported. For hive_table 
> type, this will be set to 'columns' - as shown below:
> {code}
>       "typeDefOptions": {
>         "schemaElementsAttribute": "columns"
>       }
> {code}
> # How does UI get the data to display in schema tab?
>   Value of {{entityDef.typeDefOptions\[schemaElementsAttribute]}} will be the 
> name of the attribute in the entity being rendered. This attribute should be 
> of type array. The value of this attribute will have the data needed to 
> render the schema tab
> # What are the columns to display in schema tab?
>   Each element of the array attribute value will hold an entity/struct 
> instance.For example, In case of hive_table, columns attribute will have an 
> array of hive_column objects. From each such element, UI should get value of 
> attributes listed in {{elementDef.typeDefOptions\[schemaAttributes]}} to 
> render the schema table. For example, hive_column will have the following:
> {code}
>       "typeDefOptions": {
>         "schemaAttributes": "[\"name\", \"description\", \"owner\", \"type\", 
> \"comment\", \"position\"]"
>       }
> {code}
> The value will be a json-ified string array.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to