For some users of Amundsen, it may prove helpful to customize logic for deciding who a table's "owners" are. This can be accomplished by breaking up the table metadata API's query to make a modular query for only the owners (as is already done when getting table readers, in Neo4jProxy._exec_usage_query).
The results of the new Neo4jProxy._exec_owners_query are then combined back into the return value of the Neo4jProxy.get_table method, preventing any disruption to the JSON shape expected by the frontend.
Motivation and Context
This solves the problem of companies that use Neo4j-based Amundsen being unable to customize what data is returned as a table's owners. For example if a company wanted to apply a custom sorting logic to multiple owners, or impute table ownership based on specialized business logic.
How Has This Been Tested?
I updated existing unit tests such that they still pass.
I also tested the service running locally and called it via an Amundsen frontend UI that was running locally.
Documentation
None
CheckList
[x] PR title addresses the issue accurately and concisely
Description
For some users of Amundsen, it may prove helpful to customize logic for deciding who a table's "owners" are. This can be accomplished by breaking up the table metadata API's query to make a modular query for only the owners (as is already done when getting table readers, in
Neo4jProxy._exec_usage_query
).The results of the new
Neo4jProxy._exec_owners_query
are then combined back into the return value of theNeo4jProxy.get_table method
, preventing any disruption to the JSON shape expected by the frontend.Motivation and Context
This solves the problem of companies that use Neo4j-based Amundsen being unable to customize what data is returned as a table's owners. For example if a company wanted to apply a custom sorting logic to multiple owners, or impute table ownership based on specialized business logic.
How Has This Been Tested?
I updated existing unit tests such that they still pass.
I also tested the service running locally and called it via an Amundsen frontend UI that was running locally.
Documentation
None
CheckList