You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Our current RBAC structure doesn't work very well for developing streamlit apps based on data in the prod marts database (ANALYTICS_PRD):
Streamlit apps are database objects that need to be created in a specific place with a specific role
When developing a streamlit app, it makes most sense to use the ANALYTICS_DEV database and REPORTER_DEV role.
But that role doesn't have access to the prod data
Normally when using external BI tools, people can connect using the REPORTER_PRD role. This is pretty safe, since it only has read-only permissions on that data.
But if they enable the TRANSFORMER_PRD role, they have to create the streamlit app in the ANALYTICS_PRD database. This isn't particularly satisfying as a developer to create test objects in prod.
There are a few things we might want to consider:
Are there any tweaks to the RBAC structure that would make this work better?
Can we solve this with documentation? Perhaps the best way is to just have the user build the appropriate marts in ANALYTICS_DEV and develop against that. With appropriate dbt deferral, it needn't be super onerous to do that.
Can we change the execution role of a streamlit app after it is created?
The text was updated successfully, but these errors were encountered:
It seems like the ideal scenario is they develop in the dev environment/role, then switch to the prod environment/role once the app is production-ready. I did a quick scan of the documentation here and don't see a way to change the associated role once the app is created. But I'm wondering if the developer could simply copy the SQL used by the app and create a new version with the production role/environment when they are done with development?
Yeah, I might discuss this with Gabe the next time we meet. What I'm worried about is that in order to create the app, we would need the transformer role (the reporter role can't create objects). But then the transformer role is used when running the app, and I'd rather have a role with read-only permissions used for running the app.
Our current RBAC structure doesn't work very well for developing streamlit apps based on data in the prod marts database (
ANALYTICS_PRD
):ANALYTICS_DEV
database andREPORTER_DEV
role.REPORTER_PRD
role. This is pretty safe, since it only has read-only permissions on that data.TRANSFORMER_PRD
role, they have to create the streamlit app in theANALYTICS_PRD
database. This isn't particularly satisfying as a developer to create test objects in prod.There are a few things we might want to consider:
ANALYTICS_DEV
and develop against that. With appropriate dbt deferral, it needn't be super onerous to do that.The text was updated successfully, but these errors were encountered: