This week, we are glad to announce that our team has released a list of new APIs:
1. API to get / delete objects
With this API, you can massively get and/or delete several objects (e.g: data sources, data models, etc.) in app.
2. API to get object’s dependencies
If you are waiting for our Graph of object dependencies, we hope that this API will help partially solve your case.
Since our team has not had any plan to develop the dependencies graph in this year yet, we highly recommend you try our new API to get the dependency information.
3. API rate limiting:
To prevent DDoS attack, we enforced every API request to go through our rate limit layer. This layer will throttle the request if users exceed the request quota.
In particular, the dependencies one should be very useful. That being said, does it not list dashboard dependencies?
In the API response, I can see it lists data_model_ids, query_report_ids, query_metric_ids & data_import_ids , but not dashboards. Similarly, a dashboard ID isn’t a valid object input to the API.
Is there a reason this wasn’t included? What I was hoping to be able to do was extract a list of Dashboards for a given datasource. I know a dashboard can have more than one data source associated to it, but this would have been really useful.
Also, in my response for a datasource, it lists out the query_report_ids as I’d expect, but data_model_ids is blank - surely I can’t reports but no models? Is this a bug?
Thank you for your contributions. About your concerns, here are some points:
dashboard_ids in DataSource: our downstream dependencies API only provides direct dependants of an object. Can you explain how knowing a list of dashboards created from a data source can benefit you?
dashboards support for dependencies: we will discuss and update later if there is a plan to support it.
your response above data_model_ids is empty: for 4.0 tenant:
* data set is a direct dependent of the data source in normal context (like 3.0)
* data model is dependent on data set in AML context
so data source cannot know which data models depend on them, we can consider adding data set(AML) to data source dependencies.
Just to answer this for myself, if you can see which source table is used for a dashboard, when making a breaking change to that table/source you can programmatically let developers know to update/check all dashboards once the change is live (or in test).
I think this is a key point, you can get a dashboard or delete one, but you can’t list all dashboards that are on the system. This seems like a big missing API, without it makes the others kind of useless.
Thank you for sharing your thoughts. We really appreciate it
To make it clearer, we introduce the dependencies API as a temporary solution for the following, particular problem: “Users cannot delete an object because it has dependencies, but they don’t know how to retrieve this information in the app”. That’s why we only support returning dependants of an object, and skip the rest (relevant) APIs.
In case you want to have a list of dashboards, please help us upvote this topic: API to List Dashboards. We will prioritize considering suggestions that have the most vote.