Skip to main content

Command-line tool for Microsoft Fabric

Project description

Microsoft Fabric CLI

PyPi version Python versions Code style: black License: MIT

The Microsoft Fabric CLI (fab) is a powerful, file-system-inspired command-line interface for Microsoft Fabric. Explore, automate, and script your Fabric environment directly from your terminal with familiar commands like ls, cd, mkdir, cp, and more.

🚀 Quick Start

# Install the CLI
pip install ms-fabric-cli

# Authenticate
fab auth login

# Start exploring
fab ls                                                           # List workspaces
fab get <workspace-name>.Workspace/<item-name>.<item-type>       # Get item properties (e.g., ws1.Workspace/nb1.Notebook)

✨ Key Features

🗂️ File-System Navigation

Navigate Microsoft Fabric like your local file system with intuitive commands:

  • ls, cd, pwd - Navigate workspaces and items
  • mkdir, rm, mv, cp - Create, delete, move, and copy items
  • exists, open - Check existence and open items in the Fabric portal

🔄 Data & Item Management

  • Import/Export items with import and export commands
  • OneLake file operations - Upload, download, and manage files
  • Table operations - Load data, optimize tables, manage schemas
  • Shortcut management - Create and manage OneLake shortcuts

🤖 Automation Ready

  • Scripting mode - Perfect for CI/CD pipelines and automation
  • Interactive mode - Live shell experience for exploration
  • Job management - Run, schedule, and monitor Fabric jobs
  • API access - Direct REST API calls with authentication handled

🔐 Flexible Authentication

  • Interactive login - Browser-based authentication
  • Service Principal - Client secrets, certificates, and federated tokens
  • Managed Identity - System and user-assigned identities
  • Environment variables - Headless authentication for automation

🌐 Cross-Platform Support

  • Windows, macOS, Linux - Native support across all platforms
  • Multiple shells - PowerShell, Bash, Zsh, and more
  • Shell completion - Autocomplete for commands and arguments (in command-line mode)

📦 Installation

Prerequisites

  • Python 3.10, 3.11, 3.12, or 3.13
  • A Microsoft Fabric account with access to your tenant/workspaces.

Install via pip

pip install ms-fabric-cli

Upgrade existing installation

pip install --upgrade ms-fabric-cli

Verify installation

fab --version

🔐 Authentication

Interactive Login

fab auth login
# Select: "Interactive with a web browser"

Service Principal

fab auth login -u <client_id> -p <client_secret> --tenant <tenant_id>

The CLI supports additional authentication methods including certificates, managed identity, and environment variables. See the authentication documentation) for complete details.

🎯 Usage Examples

Basic Navigation

# List all workspaces
fab ls

# Navigate to a workspace
fab cd "Sales Analytics.workspace"

# List items in current workspace
fab ls -l

# Get current location
fab pwd

Working with Items

# Create a new notebook
fab mkdir MyNotebook.notebook

# Copy an item between workspaces
fab cp notebook1.notebook /TargetWorkspace.workspace/

# Export an item definition
fab export MyReport.report -o ./backup/

# Import an item
fab import NewNotebook.notebook -i ./definitions/notebook.json

OneLake File Operations

# Navigate to lakehouse files
fab cd MyLakehouse.lakehouse/Files

# Upload a file
fab cp ./local-data.csv ./remote-data.csv

# Download files
fab cp ./remote-data.csv ~/Downloads/

# List files with details
fab ls -l

Job Management

# Run a notebook synchronously
fab job run MyNotebook.notebook

# Schedule a pipeline
fab job run-sch MyPipeline.datapipeline --type daily --interval "09:00"

# Check job status
fab job run-status MyNotebook.notebook --id <job-id>

Table Operations

# Load CSV data into a table
fab table load Tables/SalesData --file Files/sales.csv --mode append

# Optimize a table
fab table optimize Tables/SalesData --vorder --zorder ProductID,Date

# View table schema
fab table schema Tables/SalesData

API Integration

# Make authenticated API calls
fab api workspaces

# Query with JMESPath
fab api workspaces -q "value[?name=='MyWorkspace']"

# POST request with data
fab api capacities -X POST -i capacity-config.json

🔧 Configuration

Interactive vs Command-Line Mode

# Switch to interactive mode
fab config set mode interactive
fab auth login  # Re-authenticate for interactive mode

# Switch back to command-line mode
fab config set mode command_line

Common Settings

# Enable debug logging
fab config set debug_enabled true

# Set default capacity
fab config set default_capacity "My Capacity"

# Configure output sorting
fab config set output_item_sort_criteria bytype

# View all settings
fab config ls

📚 Documentation

Resource Description
Command Reference Complete command documentation
Usage Examples Real-world scenarios and scripts
API Integration Direct REST API access patterns
CI/CD Integration GitHub Actions and Azure Pipelines
Settings CLI Configuration

🤝 Contributing

We welcome contributions from the community! Whether you're fixing bugs, adding features, improving documentation, or helping other users, your contributions are valuable.

Quick Start Contributing

  1. Check existing issues - Look for issues labeled help-wanted
  2. Read our guidelines - See CONTRIBUTING.md for detailed instructions
  3. Fork and clone - Set up your development environment
  4. Create a pull request - Link it to the related issue

Before contributing, please review our Contributing Guidelines and Code of Conduct.

🆘 Support & Community

Getting Help

Feature Requests

Enterprise Support

🔄 Release Notes

See the full Release Notes for detailed changelog.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🏢 Microsoft Open Source

This project is part of Microsoft's commitment to open source. We follow Microsoft's Open Source Code of Conduct.

For questions or concerns, contact opencode@microsoft.com.


Explore, Automate, and Build with Microsoft Fabric CLI

📖 Documentation🐛 Report Bug💬 Discuss💡 Request Feature

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ms_fabric_cli-1.5.0-py3-none-any.whl (330.2 kB view details)

Uploaded Python 3

File details

Details for the file ms_fabric_cli-1.5.0-py3-none-any.whl.

File metadata

  • Download URL: ms_fabric_cli-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 330.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: RestSharp/106.13.0.0

File hashes

Hashes for ms_fabric_cli-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 18b9377eb73c4477ba0cb94bb9b578b6efd7e903125f68e7fe9668116e69b3b3
MD5 43ac674def60c672c0201ac2f8115054
BLAKE2b-256 4e535628250b59c91e6746e4390bbf557adf29f0f2106326b852acbccb0cba69

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page