Hi everyone, Do I understand it correctly, that fe...
# contribute-code
g
Hi everyone, Do I understand it correctly, that feature https://feature-requests.datahubproject.io/p/ability-to-add-edit-key-value-properties-for-glossary-terms-via-the-ui is not actively worked on at the moment considering the "Candidate" status? We'd like to have a look at implementing this feature if nobody else is currently involved in it...
l
Hi @gentle-portugal-21014! You are correct - we do not have anyone actively working on this one; we would love a contribution to this one!! If it’s something you’d like to take on, let me know - I can help rally the Core Team to provide guidance if you get blocked along the way!
g
Yes, we'd like to work on it together with my colleague @faint-byte-32939.
l
That sounds great! Do you have a timeline of when you would like to start development?
g
@little-megabyte-1074: Any idea who might answer my questions above?
l
Hi @gentle-portugal-21014! Apologies for the delay here - I’ve asked @bulky-soccer-26729 to jump in to give you some extra direction teamwork
b
hey there! so yeah these are great questions. for 1. you are correct that right now we don't allow the ability to specify types on custom properties, it's just a map of string: string. if you wanted to specify a data type it would require updating that model to store more specific information... and that would require a bigger discussion around how we want to deal with that as the nice thing about storing a generic string: string property map is it allows us to be very flexible around what's stored there. This CustomProperties model is shared between many different entities, so we'd have to decide if we want something like that for everyone or for just glossary terms - a great place to have this discussion is in #advice-metadata-modeling for 2. yeah I would have a similar answer as to the above, it would require a pretty big discussion around how we want to model these custom properties. if we want to set validation logic on what's allowed inside of a property, I think it's possible in the same way that setting validation on the type of value that's allowed for a property as well. It would probably look something like changing the generic
string: string
to more of a
string: {object with some optional validation fields and value field}
- but again, whether we want to update the existing CustomProperties model or make a new one for this sort of thing is up for debate!
as far as getting editing these properties through the UI going, I think that's totally doable with creating some new graphql endpoints/resolvers as long as we're still happy with keeping a
string: string
mapping for the time being!
g
Hello Chris, thanks for these hints. While I understand that it's possible from technical point of view to keep the current
string: string
nature of properties intact despite making editing them accessible in UI, I believe that it's completely impractical (up to the level of making the UI access to editing the properties useless 😞 ). Obviously, ensuring reasonable level of control on the property values isn't a big issue while populating them via ingestion, but the UI access is completely different - free text may be useful for something like simple description (but that is already available), whereas basically anything else needs a different approach. Yes, you may decide to "prescribe" that your DataHub users shall always put a value from a list written in some methodology to a particular property, but you can be sure to get a variety of completely different values there in reality and then searching and/or filtering the entities based on this property will not work. I'll follow your advice to continue this topic in #advice-metadata-modeling.
BTW, I assume that the underlying model of storing the properties as
string: string
might not change and the validation would be applied only in the UI. Obviously, we need to deal with invalid (non-complying) values possibly coming from ingestion / API, but that would probably be much less invasive than other solutions.