amundsen-io / amundsen

Amundsen is a metadata driven application for improving the productivity of data analysts, data scientists and engineers when interacting with data.
https://www.amundsen.io/amundsen/
Apache License 2.0
4.37k stars 953 forks source link

Refactor Neo4jProxy table owners query for easier customization #2182

Closed B-T-D closed 1 year ago

B-T-D commented 1 year ago

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 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