bulk-export Command¶
Export a workspace or folder in bulk while preserving folder structure and item bindings.
The bulk-export command exports all supported items from a workspace or folder in a single bulk API request, preserving the folder hierarchy and item bindings (logical IDs) in the exported definitions.
When exporting items, the item definitions are exported without their sensitivity labels
Permissions
- Workspace export: Only items that the caller has both read and write permissions for are exported.
- Folder export: The caller must have read and write permissions for all folder items.
Beta API
This command relies on the Fabric bulk export item definitions API, which is currently in beta.
Differences from export
- Folder structure:
bulk-exportpreserves the workspace folder hierarchy in the output.exportexports items flat. - Item bindings:
bulk-exportpreserves item logical IDs, enabling round-trip import/update.exportuses nil UUIDs. - Format:
bulk-exportdoes not support the--formatflag. Items are exported in their default format only. - Target scope:
bulk-exportoperates on workspaces and folders.exportoperates on individual items or workspaces.
Supported Targets:
.Workspace— exports all supported items in the workspace.Folder— exports all supported items in the folder and its sub-folders
Supported Item Types:
CopyJob, CosmosDBDatabase, Dataflow, DataPipeline, DigitalTwinBuilder, DigitalTwinBuilderFlow, Environment, Eventhouse, Eventstream, GraphQLApi, GraphQuerySet, KQLDashboard, KQLDatabase, KQLQueryset, Lakehouse, Map, MirroredDatabase, MLExperiment, MLModel, MountedDataFactory, Notebook, Reflex, Report, SemanticModel, SparkJobDefinition, SQLDatabase, UserDataFunction, VariableLibrary
Unsupported item types are automatically skipped and reported in the output summary.
Usage:
Parameters:
| Parameter | Description |
|---|---|
<path> |
Path to the workspace or folder to export. |
-o, --output <output_path> |
Output directory path. Required. |
--recursive |
Recursively export folder contents. Required for workspace and folder targets. |
-f, --force |
Skip confirmation prompts. Exports without sensitivity label confirmation and proceeds when the output folder is not empty. Optional. |
Examples:
# Bulk-export an entire workspace to a local directory
fab bulk-export ws1.Workspace -o /tmp --recursive --force
# Bulk-export a specific folder
fab bulk-export ws1.Workspace/folder1.Folder -o /tmp --recursive --force
Output:
On success, the command prints a summary with the number of exported and skipped items:
When using --output_format json, the output includes structured data:
{
"exported": 15,
"exported_types": {
"SemanticModel": 5,
"Report": 4,
"Notebook": 3,
"DataPipeline": 3
},
"skipped": 1,
"skipped_types": {
"Dashboard": 1
},
"output": "/tmp"
}
Output Directory Structure:
The exported output mirrors the workspace folder structure:
<output_path>/
├── notebook1.Notebook/
│ ├── .platform
│ └── notebook-content.ipynb
├── Folder1/
│ ├── notebook2.Notebook/
│ │ ├── .platform
│ │ └── notebook-content.ipynb
│ └── report1.Report/
│ ├── .platform
│ ├── definition.pbir
│ └── StaticResources/
│ └── ...
└── Folder2/
└── model1.SemanticModel/
├── .platform
└── definition/
├── model.tmdl
└── ...