Hello, I have a question regarding extending the m...
# troubleshoot
b
Hello, I have a question regarding extending the metadata model. Most of the Objects (DataSets, Glossary Terms, MlModel, etc.) have a properties tab in the GUI. This generic properties tab is very usefull to store various additional information as keyword-value pairs. However, we realized it would be helpful to have the same tab for Glossary Nodes, Domains, CorpUser, and CorpGroup. However, we have some trouble extending the datahub model accordingly. The main question: which aspect do we have to add to the model files (and where) to add the properties?
b
HI @brave-businessperson-3969 - Custom Properties are defined by a key-value map that's typically placed in the main "properties" aspect for an entity (which defines core attributes about an entity like its name. You can see the custom properties for Datasets included in this model: https://github.com/datahub-project/datahub/blob/master/metadata-models/src/main/pegasus/com/linkedin/dataset/DatasetProperties.pdl#L13 So for the other entities, introducing custom properties is a few step process: 1. Include CustomProperties in the appropriate aspect (Example) 2. Add customProperties to the GraphQL schema (Example) 3. Enrich GraphQL mappers to include custom properties (Example) 4. Render a properties tab in React (Example) Here are the aspects you'd need to change for each entity type: Glossary Nodes Domains CorpUser CorpGroup
b
Hi John, many thanks for the prompt reply. I will implement this tomorrow. Is this something which could be interesting for upstream? So, should I make a pull request when done?
b
Yes I am certain others would find this useful!
In fact we should have custom properties pretty much everywhere