bcgov / zeva

Zero Emission Vehicles Act
Apache License 2.0
5 stars 13 forks source link

CTHUB - Research Metabase Embedding #2155

Closed JulianForeman closed 7 months ago

JulianForeman commented 7 months ago

Describe the task:
We are going to compare two options for limiting data access to users, either utilizing materialized views or with embedding metabase into the application. This card is for the 'embedding' research only but the results should include any important information that could be used in making the decision.

Read documentation on what embedding options Metabase offers for both free and pro plans. Potentially spin up a prototype for testing.

Purpose:

The purpose of this task is to research whether we should create a second page in CTHUB for analytics where we can control the permissions of who can access what data on our side. Metabase will just provide the functionality for generating visuals.

Timebox: TBD

Additional Context:

kcabhar commented 7 months ago

Hey team! Please add your planning poker estimate with Zenhub @emi-hi @tim738745

JulianForeman commented 7 months ago

There are 3 types of embedding for Metabase:

Interactive Embedding: This requires a paid plan, but it is essentially the ability to create questions/queries from inside an embed. Meaning we could control access to data cultivation through our own portal instead of through Metabase. Eliminating the concern about each team technically having access to each others data.

Static Embedding: This is a free service Metabase offers. Basically it allows for us to embed questions/dashboards to our application but it doesn't allow for any data modification even if a user had permission to do so. It also doesn't seem like it updates automatically if a change is made on Metabase. Meaning that if a question were to get updated, a new url would need to be generated and placed into the application (This will need testing to see if that's really how it works).

Public Embedding: Essentially this is identical to static embedding but the url to the published data makes it public to anyone that has the URL. Probably not good to use this at all.

I think in order to make this usable and not a pain to use down the road. We would need a paid plan for Metabase to use interactive embedding combined with static embedding.