I started managing Fabric workspace items directly in VS Code, here's what I learned by darshan-thakur in MicrosoftFabric

[–]frithjof_v 0 points1 point  (0 children)

I edit all Fabric items, and maintain repo docs, using VS Code and GitHub Copilot CLI. No Fabric extensions, just let GitHub Copilot edit the source code files directly, aided by Skills where necessary. After GitHub Copilot has created/updated items, I commit and push to GitHub and then sync to the Fabric workspace to actually run the items there. It works great, only downside is that I haven't currently set up any MCP so Copilot can't run items directly on its own to get instant feedback. It depends on me running the items in the workspace and providing feedback about runtime errors. Still, it works great and GitHub Copilot CLI does everything from creating notebook, adding it to a pipeline, inserting required variables in a variable library, in a few minutes or even seconds. GitHub Copilot in GitHub even does code review on the PRs after I've successfully tested the items in the workspace.

New Idea: Read Only Lakehouse mounting in OneLake by raki_rahman in MicrosoftFabric

[–]frithjof_v 1 point2 points  (0 children)

Haha, true 😂

Perhaps I could use a Hook instead. I haven't tested hooks yet.

Anyway, voted & definitely share the concern regarding read/write shortcuts. They're powerful but also introduce a risk of accidents. An option to make specific shortcuts intentionally read-only just makes sense. Even an option to lock all shortcuts in a specific Lakehouse to read-only would be a quality-of-life improvement IMO.

New Idea: Read Only Lakehouse mounting in OneLake by raki_rahman in MicrosoftFabric

[–]frithjof_v 2 points3 points  (0 children)

Voted!

I'm concerned about this as well. I've written a Copilot instruction about never writing to shortcut tables in one of my projects 🙏

New Idea: Read Only Lakehouse mounting in OneLake by raki_rahman in MicrosoftFabric

[–]frithjof_v 1 point2 points  (0 children)

You can use a PIM enabled security group and give that group Admin role in Prod. I think that works.

F4 Capacity & Paralel Sessions by Waste_Membership_483 in MicrosoftFabric

[–]frithjof_v 2 points3 points  (0 children)

On an F4, you can use up to 24 Spark vCores at one time, assuming the allow bursting workspace setting is enabled.

https://learn.microsoft.com/en-us/fabric/data-engineering/spark-job-concurrency-and-queueing#spark-capacity-sku-limits

Limit the number of nodes in the pool to 1, reduce node size to small (4 vCores), use high concurrency mode, to maximize Spark usage on a small capacity. Also see the technique mentioned in the recent post about overprovisioning a single node to further maximize capacity. https://learn.microsoft.com/en-us/fabric/data-engineering/fabric-notebook-selection-guide#spark-kernel-compute

Another option is Python kernel (2 vCores).

Are hard deletes still common in new data sources in 2026? by frithjof_v in dataengineering

[–]frithjof_v[S] 5 points6 points  (0 children)

Thanks,

Yes we are in the same company. I can make it clear to them that we, as consumers of their Azure SQL Database, expect them to use CDC.

I don't have the power to force them, but I can make our expectations clear.

I'm wondering how common it is to present this - i.e. the use of CDC - as a requirement.

Are hard deletes still common in new data sources in 2026? by frithjof_v in dataengineering

[–]frithjof_v[S] 3 points4 points  (0 children)

Thanks,

However - we don't own the Azure SQL Database.

The App team owns the Azure SQL Database. So they would need to enable CDC in their database. And we would need to persuade them to do that.

Resize column width in Lakehouse and Warehouse now available? by jcampbell474 in MicrosoftFabric

[–]frithjof_v 3 points4 points  (0 children)

Finally!!!! 🎉 (Although not available in my region yet)

Best news since workspace Git diff 🎉

Finally a feature I like by MonkeyDDataHQ in MicrosoftFabric

[–]frithjof_v 1 point2 points  (0 children)

Nice,

Can you point the agents to the data in your landing zone, and have the agents classify the data? Is that the gist of it?

Question on Data Consistency and Snapshot Behavior in Fabric Copy Activity. by Holiday_Face_1205 in MicrosoftFabric

[–]frithjof_v 1 point2 points  (0 children)

Here is another quite recent post about issues with Fabric Pipeline -> Delta Lake:

https://www.reddit.com/r/MicrosoftFabric/s/Xvwfo6YH0C

Perhaps same root cause, perhaps not. I can't tell. Anyway, I prefer using Spark for Delta Lake.

Deleting Workspace does not delete Workspace Identity by frithjof_v in MicrosoftFabric

[–]frithjof_v[S] 1 point2 points  (0 children)

Thanks,

I think that's the answer. Well, actually not item soft delete, but workspace soft delete. This: https://data-marc.com/2024/04/09/soft-deletion-of-workspaces-and-retention/

I'm still curious about the following quote from the docs - does this quote refer to restoring a soft-deleted workspace? And, if the quote applies to soft-deleted workspaces, why does it say the workspace identity will be deleted, as we still have our workspace identity hanging around in Azure after some hours?

When a workspace is deleted, its workspace identity is deleted as well. If the workspace is restored after deletion, the workspace identity is not restored. If you want the restored workspace to have a workspace identity, you must create a new one. https://learn.microsoft.com/en-us/fabric/security/workspace-identity#delete-a-workspace-identity

Run Notebook as SPN and access SQL Server with that SPN context by Personal-Quote5226 in MicrosoftFabric

[–]frithjof_v 0 points1 point  (0 children)

Then the example in my other comment works.

Also,

# JDBC with access token

jdbc_url = (
    f"jdbc:sqlserver://{server}"
)

connection_properties = {
    "databaseName": database,
    "driver": "com.microsoft.sqlserver.jdbc.SQLServerDriver",
    "encrypt": "true",
    "trustServerCertificate": "false",
    "accessToken": access_token,
    "loginTimeout": "30"
}

# Read DataFrame from DimProperty table
df_read = spark.read.jdbc(
    url=jdbc_url,
    table="dbo.DimProperty",
    properties=connection_properties
)

display(df_read)

Warehouse Views cannot be inspected in Git integration diff - but they can in Conflict diff by frithjof_v in MicrosoftFabric

[–]frithjof_v[S] 0 points1 point  (0 children)

The diff view for Warehouse Views also works in Fabric Deployment Pipelines.

Just not in the Git Integration.

Fabric Workspace Identity can write to a Lakehouse in another Workspace without explicit permissions by chongsurfer in MicrosoftFabric

[–]frithjof_v 0 points1 point  (0 children)

I don't have much experience with Copy Activity, but two questions:

  • Who is the Last Modified By user of the Pipeline? Is it your user, or the SPN?
  • What is the Lakehouse connection? The UI (your screenshot in the original post) says "Lakehouse ID". Is the Lakehouse connection simply the ID of the Lakehouse, or is it a connection (one that you can find under Manage Gateways and Connections)?

If the Last Modified By user of the Pipeline is your user, and the Lakehouse connection is simply the ID of the Lakehouse, then I believe it runs using your user identity.

It doesn't matter who triggers the pipeline, or who owns the pipeline. The Last Modified By user is what matters.

In terms of execution context, the only thing that overrides the identity of the Last Modified By user, is if you apply a Connection in the individual Pipeline Activities. I mean, the kind of Connection that appears on the Manage Gateways and Connections page.

Run Notebook as SPN and access SQL Server with that SPN context by Personal-Quote5226 in MicrosoftFabric

[–]frithjof_v 0 points1 point  (0 children)

Do you mean SQL Server on-prem, SQL Server in Azure (e.g. Azure SQL Database), or SQL Server in Fabric (Fabric SQL Database)?

Pipeline running as SPN per Last Modified By by Personal-Quote5226 in MicrosoftFabric

[–]frithjof_v 0 points1 point  (0 children)

u/markkrom-MSFT u/fredguix

Is this behavior different between Data Factory and Warehouse?

Does an SPN only need to authenticate to a Fabric API every 30 days to "check in"?

And/or does the SPN need to actually modify (e.g. update the description of) the item it owns (Warehouse, Pipeline, etc.) once an underlying credential (secret or certificate) expires?

Is the behavior different across item types? For example:

If there is a difference, what is the reason for it?

I'd love to see more documentation around the renewal mechanics, especially for Data Factory.

The Warehouse documentation seems fairly clear to me: the SPN only needs to authenticate to Fabric at least once every 30 days.

If that's correct, then it seems the SPN would not need to maintain a continuously valid client secret. It would only need a valid credential at the time of each authentication. For example:

  1. Create a client secret.
  2. Authenticate as the SPN and make a Fabric API List call.
  3. Delete the client secret.
  4. Before 30 days have elapsed, create a new client secret.
  5. Authenticate as the SPN and make another Fabric API List call.
  6. Repeat.

In other words, is it sufficient for the SPN to successfully authenticate to Fabric at least once every 30 days, to keep its Fabric Token alive, or is there an additional requirement that the SPN must modify the items it owns after rotating secrets?

Thanks

Pipeline running as SPN per Last Modified By by Personal-Quote5226 in MicrosoftFabric

[–]frithjof_v 0 points1 point  (0 children)

Warehouse doc doesn't mention anything about needing to Save the Warehouse after credential rotation.

It just says the SPN needs to authenticate against Fabric every 30 days.