Skip to content

Everything up to this point happens on one machine, in Desktop. The service is where a report becomes something other people depend on: scheduled refresh through a gateway, row-level security that decides who sees which rows, workspaces that separate build from publish, and capacity that determines whether the thing stays fast at 9am on a Monday.

Begin with the service-versus-desktop overview and incremental refresh, then read row-level security — including the dynamic version, since a static role rarely survives contact with real users. Dataflows and deployment pipelines come next, and only after that the capacity and licensing decisions, which are much easier to make once you know how the model will actually be refreshed and shared.

The two assumptions that cause the most trouble are that a .pbix file can be shared like a spreadsheet, and that a refresh that works in Desktop will work in the service. Neither survives the first week. Credentials, gateway placement and the source's own timeouts live outside the file, and they are the reasons most scheduled refreshes fail.