Refactor Neo4jProxy table owners query for easier customization #2182
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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