Microsoft Fabric: Extended Source Control Features

The source control features in Microsoft Fabric are evolving every day.

The PBIP feature included in Power BI allowed us to include source control on a SDLC process for Power BI, supporting reports and datasets linked directly from the portal to a repository.

The New Source Control Features

Recently, without much news, Microsoft extended the source control to support Notebooks, Lakehouses and the default dataset for the lakehouses.

The first detail we may notice is the change on the Git Status column on a Power BI workspace.

A screenshot of a computer

Description automatically generated

The Lakehouse and the Notebook appear with the uncommitted, meaning the source control supports them, but they are not inserted there yet.

Adding the New Objects to the Source Control Repository

The source control button will show the number of uncommitted objects we have. The image below is only an example.

Once we click the button, the Source Control window will show the objects we can commit to the repository: the lakehouse and notebook. We only need to click the Commit button.

A screenshot of a computer

Description automatically generated

A screenshot of a computer

Description automatically generated

The status of the objects will be changed to Synced, like on the images below.

A screenshot of a computer

Description automatically generated

The objects on DevOps

Let’s take one more step and look at the objects on Azure DevOps.

One folder will be created for each notebook and each lakehouse. The image below shows how the folders look like.

A screenshot of a computer

Description automatically generated

Both folders contain the files item.config.json and item.metadata.json . Power BI uses these two files to identify the folder as a single object in its environment.

The notebook is stored as a .py file. This may be a surprise, you may expect the format .ipynb.

A screenshot of a computer

Description automatically generated

The .py file contains metadata with the information about each code block in the notebook. In this way, Power BI can reconstruct all code blocks exactly as they were from the content of the .py file.

A screenshot of a computer

Description automatically generated

The SQL Endpoint Dylema

Every lakehouse has a SQL Endpoint. The SQL Endpoint is not supported yet on the Source Control, as you may notice on the image below.

A screenshot of a computer

Description automatically generated

Power BI allows us to change the current branch of the workspace using Workspace Settings -> GIT Integration.

A screenshot of a computer

Description automatically generated

However, if you try to change the branch to a branch where the lakehouse is not present, you will receive an error. This happens because the SQL Endpoint is not affected by the branch change and it would always be present, but you can’t break the relationship between the SQL Endpoint and the lakehouse.

A screenshot of a computer

Description automatically generated

The result: Once the lakehouse is inserted into the repository, it’s not possible to change to a different existing branch. Changing to any branch without the lakehouse will result on the above error.

Creating a new branch from the current one, on the other hand, is still possible. This happens because the lakehouse and SQL Endpoint will continue to be together.

A screenshot of a checkout branch

Description automatically generated

Summary

It’s great to see the source control in Microsoft Fabric evolving. It still has a long way to go. Meanwhile, it created a new limitation. But we are getting there.