Skip to content

Improve dev experience for creating Streamlit apps in Snowflake #498

Closed
@ian-r-rose

Description

@ian-r-rose

Our current RBAC structure doesn't work very well for developing streamlit apps based on data in the prod marts database (ANALYTICS_PRD):

  1. Streamlit apps are database objects that need to be created in a specific place with a specific role
  2. When developing a streamlit app, it makes most sense to use the ANALYTICS_DEV database and REPORTER_DEV role.
  3. But that role doesn't have access to the prod data
  4. 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.
  5. 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:

  1. Are there any tweaks to the RBAC structure that would make this work better?
  2. 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.
  3. Can we change the execution role of a streamlit app after it is created?

Metadata

Metadata

Labels

will closeLabel to flag issues that will close this sprint

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions