Recently I started a blog series on different topics that come into play when you want to transform a local (small scale) solution into a global (enterprise) solution. I started this series explaining some typical differences between local and global solutions as you can find in the introduction post of this series.
This week, the next highly important topic will be discussed, sharing your content! In this blog post I will further elaborate on different ways of sharing content, pros and cons and what I personally believe should be the best practice.
Different ways to share content in the Power BI Service
Let’s start with the most important feature of the Power BI Service, sharing content! At the same time, this can be one of the most challenging ones. Especially since there are many ways to share content in Power BI. In my experience in enterprise organizations, I have seen a various ways of sharing content. Below I explain the different options there are, leading to a conclusion of my personal best practice.
But why is the way how we share content so important in relation to large enterprise solutions? Well, I believe that all centrally managed solutions should match (organizational) best practices. The way how the content is made available to the users is one of these best practices. It will help end users to find the content they are looking for, always at the same consistent location.
Direct share from My Workspace
Every user in Power BI has his/her own personal workspace, “My Workspace”. This workspace is intended to only put your personal content. As the documentation states, you can look at it like a personal sandbox. Content in My Workspace can be shared though. Power BI offers a feature to share content directly with others. This share option works from both shared workspaces as well as My Workspace and allows you to share one artifact with a (group of) users. As a result, they will have the ability to consume the shared content.
Considering the fact that My Workspace is only accessible for the users the workspace belongs to, this will bring a risk to the table. If team, departmental or organizational reports are shared from My Workspace, there will only be one user being able to adjust and update the content. Imagine this is your colleague who is enjoying his well deserved holiday while the dataset stops refreshing due to unpredicted circumstances. As a fact nobody can access the content with sufficient privileges to resolve the refresh issue.
This risk for continuity can easily be avoided by working with shared workspaces, where multiple users can have access and sufficient privileges to adjust content. Other than that, with shared workspaces the Power BI service administrator in your organization will be able to take-over the workspace* or grant access to others if the situation asks for it.
* Workspace take-over is only possible with new-experience workspaces.
Share the entire workspace
Content in Power BI resides in a workspace which can be shared with many users having different permissions. The various workspace roles being admin, member, contributor and viewer, will result in different privileges. As discussed in the section about My Workspace, the shared workspaces also offer the option to directly share one artifact from a workspace with other users. The approach here is identical, though with a shared workspace you will have multiple users that can manage the content in the workspace.
There is an alternative if we talk about sharing the entire workspace. As one of the workspace roles is viewer, this role can be used to grant view-only access to all artifacts in a workspace. A viewer will be able to see everything from dataflows, datasets, reports, dashboards etc. This means that they can potentially see more than you want them to, as they can read your dataflows and further use them in their own solution. This has its benefits and can be a nice advantage of sharing the entire workspace. Though, at the same time you might want to share only a subset of the workspace content. By sharing the entire workspace and granting users permissions on workspace level, this is not possible.
Power BI Apps
From within a Power BI workspace, it is possible to share a (sub-)set of content with other users. There is no need that these users are added on the workspace level. This set of content is what we call a Power BI App, which combines related dashboards and reports, all in one place.
Apps are an easy way for users to share a set of content all in one time. As content owner, you can easily bundle related reports and dashboards together and have one place for the end user to access it all. Apps also offer customization of the experience by adding additional web elements to the app menu, changing the look and feel and more. A typical use case of adding web elements to your Power BI App can be to add a Microsoft Form to your app menu for example. With that, you can allow your users to provide feedback or submit questions about the content shared. Further details about apps can be found in the documentation about Power BI Apps.
A final thing that is important to understand is that the relationship between a workspace and an app, is always one to one. In other words, you can only publish one app from a single workspace. This is something you must keep in mind when you setup your workspaces and decide where to put which content. Bundle it wisely based on the audience that you want to share it to, as everything in that workspace can be shared via a single app to a group of users.
Other creative ways of sharing
Above I described the most common options to share content. But I have seen a few very interesting other ones which I will not describe in full detail, but only a brief elaboration. Below a short list of other options I have seen around.
- Share the Power BI Desktop file (pbix) on a file share or SharePoint. Please know that this is not compliant with Microsoft agreements and has a lot of down sides when it comes to security, versioning, performance etc.
- Building your own reporting portal and embedding all Power BI reports and dashboards in this portal. Typically this can be done with Secure Embed in Power BI, as well as Power BI Embedded.
Probably there are many more creative options that you might have seen yourself.
Looking at the different options described above, I truly believe that the first win is to stick to the Power BI Service. The goal of the Power BI Service is sharing and collaboration, so use it where it is intended for. All other creative solutions most likely are not compliant or will result in additional maintenance work, challenges like security and authentication etc.
Having that said, we still have three options left, being share content directly, granting workspace access or publishing a Power BI App. Personally, I’m a huge fan of the later. Especially as this allows me as a content owner to keep a clear view on who has access to what, as this is all listed together in the App configuration. Of course, direct sharing also provides an overview of who has permissions to your content via the Manage Permissions menu. Though, this menu is a bit blurry to me.
Other than managing permissions, there is another advantage of sharing through an App. Everything that has been directly shared, will end up in the Shared with me section of the Power BI Service. This lists down everything that a user has access to. The menu allows the end user to search for content and filter on different elements. Though, from my own experience this gets very blurry. As a typical end user, it is hard to come up with the name of the report that you are looking for. On another note, looking at my personal “Shared with me” section on one of my accounts, I have over 400 items that I collected in the past year.
By publishing an App, you potentially push the App to an end user, which will display the App in the users App menu in the Power BI Service. Administrators of the Power BI Service can limit or even disable pushing Apps, as I truly believe this also has its down sides. If the App is not pushed, it will show up in AppSource, where all content which an user has access to is nicely available in a library containing descriptions, owners and other additional information.
I believe that end users should own their own Power BI Service. By that I mean that users should have the ability to decide themselves what is relevant for them and what they want to be displayed in the App section of the Power BI Service. The same applies for the Shared with me section, which can become blurry when you have access to a lot of content, like I do. It may be clear that my personal best practice is to share content through an App in the Power BI Service, but not push this App to end users.