# Pipeline Migration

Migrates Synapse Data Factory pipelines to Fabric Data Factory, turning linked services...

- Repository: https://github.com/microsoft/skills-for-fabric (1306 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-29
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add microsoft/skills-for-fabric --skill pipeline-migration -g -a claude-code -y`
Codex: `npx skills add microsoft/skills-for-fabric --skill pipeline-migration -g -a codex -y`
Cursor: `npx skills add microsoft/skills-for-fabric --skill pipeline-migration -g -a cursor -y`
Gemini CLI: `npx skills add microsoft/skills-for-fabric --skill pipeline-migration -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add microsoft/skills-for-fabric`

## Description

Migrates Synapse Data Factory pipelines to Fabric Data Factory, turning linked services into Fabric connections, inlining datasets into activities, converting global parameters to Variable Libraries, and mapping SynapseNotebook to TridentNotebook. Use for pipeline JSON. For Synapse Spark notebook code use synapse-migration.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

> **Telemetry, MANDATORY.** Every `api.fabric.microsoft.com` call must carry
> `x-ms-fabric-skill: pipeline-migration` (`az rest`: `--headers "x-ms-fabric-skill=pipeline-migration"`),
> including every LRO poll, `fabric_lro` and retry. Snippets omit it, add it anyway.

> **CRITICAL NOTES**
> 1. To find workspace details (including its ID) from a workspace name: list all workspaces, then use JMESPath filtering
> 2. To find item details (including its ID) from workspace ID, item type, and item name: list all items of that type in that workspace, then use JMESPath filtering
> 3. Fabric does NOT have a "Dataset" item type, all dataset properties are **inlined** into activity `typeProperties`
> 4. Linked Services map to Fabric **Connections**, in pipeline activity JSON, `referenceName` on the activity's `linkedService` block uses the Fabric connection **display name** (not the connection GUID); the connection GUID is used only on Fabric REST API calls
> 5. Notebook activities change from `SynapseNotebook` to `TridentNotebook` and reference notebooks by **GUID**, not by name
> 6. Synapse global parameters become a **Variable Library** item in Fabric, referenced as `@pipeline().libraryVariables.<name>`. Variable Library `Number` types are not consumable in pipelines, Synapse `Float`/`Double` are mapped to `String` for runtime compatibility
> 7. The `Validation` activity type does not exist in Fabric, it must be rewritten as `GetMetadata` + `IfCondition`
> 8. **Triggers are intentionally excluded** from this skill, recreate schedules manually in Fabric after migration
> 9. SSIS package execution, SHIR-exclusive connectors, and Databricks activities are **parked**, see [pipeline-gotchas.md](resources/pipeline-gotchas.md)

# Synapse Pipelines → Microsoft Fabric Data Factory Migration

## Prerequisite Knowledge

The rest: https://github.com/microsoft/skills-for-fabric/blob/HEAD/plugins/fabric-skills/skills/pipeline-migration/SKILL.md
