Architecture Overview

February 27, 2026 · View on GitHub

This document gives a high-level view of how the Microsoft Fabric core VS Code extension and optional satellite extensions collaborate. Detailed extensibility guidance and code samples have moved to the Extensibility Overview.

Overview

The core Fabric extension contributes a workspace view that lets users browse and work with supported Fabric items. It implements generic, item‑agnostic capabilities (authentication, workspace selection, basic CRUD, import/export). Satellite extensions are optional add‑ons that light up richer, item‑specific development experiences. The core exposes an API surface so any number of satellites can contribute UI and behavior.

Capabilities

The Fabric for VS Code extension provides functionality to enable a user to interact with their Fabric workspace through VS Code. This includes but is not limited to:

  • Logging in to Microsoft Fabric
  • Selecting a Workspace for development
  • View, manage, and develop Microsoft Fabric items from VS Code

API Collaboration Model

At activation time the core exposes a service collection (account, workspace, artifact). A satellite registers itself (declaring the artifact types it enhances) and selectively provides:

  • Tree node providers to extend shared workspace/local project trees
  • Artifact handlers to customize lifecycle workflows (create/read/definition/update/delete/etc.)

Extension points are opt‑in; satellites only implement what they need. The core routes user actions through the appropriate satellite pieces when present, falling back to default generic behavior otherwise.

Architecture Graphic

flowchart TB
	%% Satellite workload extensions grouped (dashed outline like PNG)
	subgraph SatelliteGroup["Fabric extensions"]
		direction TB
		Synapse["Synapse workload extension"] --> Core["Fabric 'core' extension"]
		AppDev["App Dev workload extension"] --> Core
	end

	Core --> VSCode["VS Code"]

	%% Styling to mimic dashed rectangles in the source graphic
	classDef dashed stroke-dasharray: 5 5,stroke:#333,rx:4,ry:4;
	class SatelliteGroup,Core dashed;

	%% Slight spacing tweaks

Further Reading

For code samples, workflow hook details, and step‑by‑step registration instructions see the Extensibility Overview. For rules on evolving the API without breaking satellites, see API Compatibility. The public TypeScript interfaces live in the @microsoft/vscode-fabric-api package – browse the source at: ../api/.