Dependency Analysis & CI/CD

TL;DR: How do we know if we introduce a breaking change in our warehouse?

Simple enough, right. We run DBT+BQ+GitLab+QuarterMaster so we have a decent handle on potential breaking changes in our code analytics warehouse development.

But, when it comes to metabase, we’re suddenly helpless kittens.

Great for a Christmas card or a Tinder profile. less so for, you know, professional data people.

Any ideas?

I’ll kick off one approach I’m tossing around
In our core repo, include a structure like this

Gitlabt/dbt/models/dataset1/table1.sql
Gitlabt/dbt/models/dataset1/table2.sql

Gitlab/metabase/models/questions/q1,sql
Gitlab/metabase/models/questions/q2,sql
Gitlab/metabase/models/dashboards/d1.sql

And in Q1.sql have select * from ../dataset1/t1
similarly D1.sql has

Union all select ‘q2’  from ../questions/q2

Which is pretty manual, but I don’t see a better approach other than trying to parse the MB object definitions directly.

Thoughts?

We could even extend it by having a 1:M