For each client, I want to create a dashboard containing the same set of looks but each look filtered on a different subset of the data. It is imperative that each dashboard can only ever access its own subset of the data.
Currently, I create a dashboard and include a default filter that filters the resulting data for the subset I need via listen fields. But there is a chance that something down the line goes wrong and the filter no longer works revealing all the data.
The other option seems to be to use a custom explore with an always_where type of clause. That would be an ok solution, if I could figure out how to minimize the copy paste. Currently I have an explore named messages with around 10 joins to it. How would I create an additional explore, called say messages_from_john, with an always_where clause that limits the data, but “extending” the original messages explore?
Create separate looks with filters applied at the look level. Understood this doesn’t fit your “no copy and paste” criteria.
Extending a model is possible. Lloyd’s comment on this post would be the correct approach. From there you could use an
always_whereon the extended explore.
access_filter_fields will allow you to restrict users to particular values for a field which means that whenever they access an explore/dash from that model they will be restricted to the pre-set criteria. Here’s a doc explaining how they work.
Option 2 sounds promising. thanks!