FabricTools

0.34.0

A module to be able to do more with Microsoft Fabric.
   It lets you pause and resume Fabric capacities.
   Adds functionality previously only available with the REST API as PowerShell functions.
   There are also functions to make it easier to monitor usage metrics and refreshes.

Minimum PowerShell version

5.1

Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name FabricTools

Copy and Paste the following command to install this package using Microsoft.PowerShell.PSResourceGet More Info

Install-PSResource -Name FabricTools

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More

Owners

Copyright

Copyright (c) 2025 by FabricTools Team

Package Details

Author(s)

  • The FabricTools Team

Functions

Get-FabricCapacities Get-FabricCapacity Get-FabricCapacityRefreshables Get-FabricCapacitySkus Get-FabricCapacityState Get-FabricCapacityTenantOverrides Get-FabricCapacityWorkload Resume-FabricCapacity Suspend-FabricCapacity Update-FabricCapacity Get-FabricConfig Get-FabricCopyJob Get-FabricCopyJobDefinition New-FabricCopyJob Remove-FabricCopyJob Update-FabricCopyJob Update-FabricCopyJobDefinition Get-FabricDashboard Get-FabricDataPipeline New-FabricDataPipeline Remove-FabricDataPipeline Start-FabricDataPipeline Update-FabricDataPipeline Get-FabricDatamart Get-FabricDataset Get-FabricDatasetRefreshHistory Invoke-FabricDatasetRefresh Add-FabricWorkspaceToStage Get-FabricDeploymentPipeline Get-FabricDeploymentPipelineOperation Get-FabricDeploymentPipelineRoleAssignments Get-FabricDeploymentPipelineStage Get-FabricDeploymentPipelineStageItem New-FabricDeploymentPipeline Remove-FabricDeploymentPipeline Remove-FabricWorkspaceFromStage Start-FabricDeploymentPipelineStage Add-FabricDomainWorkspaceAssignmentByCapacity Add-FabricDomainWorkspaceAssignmentById Add-FabricDomainWorkspaceAssignmentByPrincipal Add-FabricDomainWorkspaceRoleAssignment Get-FabricDomain Get-FabricDomainWorkspace New-FabricDomain Remove-FabricDomain Remove-FabricDomainWorkspaceAssignment Remove-FabricDomainWorkspaceRoleAssignment Update-FabricDomain Get-FabricEnvironment Get-FabricEnvironmentLibrary Get-FabricEnvironmentSparkCompute Get-FabricEnvironmentStagingLibrary Get-FabricEnvironmentStagingSparkCompute Import-FabricEnvironmentStagingLibrary New-FabricEnvironment Publish-FabricEnvironment Remove-FabricEnvironment Remove-FabricEnvironmentStagingLibrary Stop-FabricEnvironmentPublish Update-FabricEnvironment Update-FabricEnvironmentStagingSparkCompute Get-FabricEventhouse Get-FabricEventhouseDefinition New-FabricEventhouse Remove-FabricEventhouse Update-FabricEventhouse Update-FabricEventhouseDefinition Get-FabricEventstream Get-FabricEventstreamDefinition New-FabricEventstream Remove-FabricEventstream Update-FabricEventstream Update-FabricEventstreamDefinition Get-FabricExternalDataShares Revoke-FabricExternalDataShares Connect-FabricGit Disconnect-FabricGit Get-FabricGitConnection Get-FabricGitCredential Get-FabricGitStatus Initialize-FabricGitConnection Invoke-FabricGitCommit Invoke-FabricGitUpdate Update-FabricGitCredential Export-FabricItem Get-FabricItem Get-FabricItemJobInstance Get-FabricItemSchedule Import-FabricItem New-FabricItemSchedule Remove-FabricItem Remove-FabricItemSchedule Update-FabricItemSchedule Get-FabricKQLDashboard Get-FabricKQLDashboardDefinition New-FabricKQLDashboard Remove-FabricKQLDashboard Update-FabricKQLDashboard Update-FabricKQLDashboardDefinition Get-FabricKQLDatabase Get-FabricKQLDatabaseDefinition New-FabricKQLDatabase Remove-FabricKQLDatabase Update-FabricKQLDatabase Update-FabricKQLDatabaseDefinition Get-FabricKQLQueryset Get-FabricKQLQuerysetDefinition Invoke-FabricKQLCommand New-FabricKQLQueryset Remove-FabricKQLQueryset Update-FabricKQLQueryset Update-FabricKQLQuerysetDefinition Get-FabricLakehouse Get-FabricLakehouseTable New-FabricLakehouse Remove-FabricLakehouse Start-FabricLakehouseTableMaintenance Update-FabricLakehouse Write-FabricLakehouseTableData Get-FabricMirroredDatabase Get-FabricMirroredDatabaseDefinition Get-FabricMirroredDatabaseStatus Get-FabricMirroredDatabaseTableStatus New-FabricMirroredDatabase Remove-FabricMirroredDatabase Start-FabricMirroredDatabaseMirroring Stop-FabricMirroredDatabaseMirroring Update-FabricMirroredDatabase Update-FabricMirroredDatabaseDefinition Get-FabricMirroredWarehouse Get-FabricMLExperiment New-FabricMLExperiment Remove-FabricMLExperiment Update-FabricMLExperiment Get-FabricMLModel New-FabricMLModel Remove-FabricMLModel Update-FabricMLModel Get-FabricNotebook Get-FabricNotebookDefinition New-FabricNotebook Remove-FabricNotebook Start-FabricNotebook Update-FabricNotebook Update-FabricNotebookDefinition Get-FabricPaginatedReport Update-FabricPaginatedReport Get-FabricReflex Get-FabricReflexDefinition New-FabricReflex Remove-FabricReflex Update-FabricReflex Update-FabricReflexDefinition Get-FabricReport Get-FabricReportDefinition New-FabricReport Remove-FabricReport Update-FabricReport Update-FabricReportDefinition Get-FabricSemanticModel Get-FabricSemanticModelDefinition New-FabricSemanticModel Remove-FabricSemanticModel Update-FabricSemanticModel Update-FabricSemanticModelDefinition Get-FabricSparkCustomPool Get-FabricSparkSettings New-FabricSparkCustomPool Remove-FabricSparkCustomPool Update-FabricSparkCustomPool Update-FabricSparkSettings Get-FabricSparkJobDefinition Get-FabricSparkJobDefinitionDefinition New-FabricSparkJobDefinition Remove-FabricSparkJobDefinition Start-FabricSparkJobDefinitionOnDemand Update-FabricSparkJobDefinition Update-FabricSparkJobDefinitionDefinition Get-FabricSQLDatabase New-FabricSQLDatabase Remove-FabricSQLDatabase Get-FabricSQLEndpoint Refresh-FabricSQLEndpoint Get-FabricCapacityTenantSettingOverrides Get-FabricDomainTenantSettingOverrides Get-FabricTenantSetting Get-FabricWorkspaceTenantSettingOverrides Revoke-FabricCapacityTenantSettingOverrides Update-FabricCapacityTenantSettingOverrides Update-FabricTenantSetting Get-FabricUserListAccessEntities Convert-FromBase64 Convert-ToBase64 Get-FabricLongRunningOperation Get-FabricLongRunningOperationResult Get-FabricWarehouse New-FabricWarehouse Remove-FabricWarehouse Update-FabricWarehouse Add-FabricWorkspaceCapacity Add-FabricWorkspaceIdentity Add-FabricWorkspaceRoleAssignment Get-FabricWorkspace Get-FabricWorkspaceRoleAssignment Get-FabricWorkspaceUsageMetricsData Get-FabricWorkspaceUser New-FabricWorkspace New-FabricWorkspaceUsageMetricsReport Remove-FabricWorkspace Remove-FabricWorkspaceCapacity Remove-FabricWorkspaceIdentity Remove-FabricWorkspaceRoleAssignment Update-FabricWorkspace Update-FabricWorkspaceRoleAssignment Connect-FabricAccount Get-FabricAPIClusterURI Get-FabricAuthToken Get-FabricConnection Get-FabricDebugInfo Get-FabricUsageMetricsQuery Invoke-FabricRestMethod New-FabricConnection Remove-FabricConnection Update-FabricConnection

Dependencies

Release Notes

## [0.34.0] - 2026-11-10

### Added

### Changed

### Fixed

### Deprecated

### Removed

### Security

## 0.34.0 - 2026-11-10

### Added

- Added connection management cmdlets, pipeline execution and job-instance lookup, and item schedule cmdlets for Cron, Daily, and Weekly configurations.
- Added consistent parameter aliases for the resource a cmdlet acts on (#83): `<Noun>Id` parameters accept `-Id` and `<Noun>Name` parameters accept `-Name` and `-DisplayName` (e.g. `Get-FabricLakehouse -WorkspaceId $ws -Name 'Sales'`). Existing parameter names are unchanged. Parent-resource parameters such as `-WorkspaceId` on item cmdlets are not aliased. Note: abbreviated parameter names that become ambiguous (e.g. `-I`, `-N`) must be spelled out further.
- Added a QA test (tag `ParameterAliases`) enforcing the resource parameter alias convention for all exported cmdlets.
- Added the Cmdlet Maturity Model (#183): every public cmdlet gets a level from 0 (Experimental) to 5 (Production Ready). The levels and criteria are documented in `docs/maturity-model.md`, and the current level of each cmdlet is listed in `docs/MATURITY.md`. Levels 1-4 are computed from the source (help, coding conventions, unit and integration tests); Experimental, Production Ready sign-off and check exemptions are recorded in `.build/Maturity.psd1`. Regenerate the report with `./build.ps1 -Tasks generate_maturity_report`.

### Changed

- `Invoke-FabricKQLCommand` aligned with the module's patterns (#163): uses `Invoke-FabricRestMethod` for a single API call, requires either `-KQLDatabaseName` or `-KQLDatabaseId` (mutually exclusive parameter sets), and logs via `Write-Message`. The `-ReturnRawResult` switch is renamed to `-Raw`; `-ReturnRawResult` still works as an alias.
- Added `-ApiType` (`Fabric` (default), `PowerBI`, `Kusto`, `Azure`) to `Invoke-FabricRestMethod`, which selects the base URL and access token of the target API from configuration (#163). The Kusto token is acquired on first use and cached in the new `FabricTools.KustoSession.*` configuration; `Connect-FabricAccount` clears it on sign-in. The configuration key `FabricTools.KustoApi.BaseUrl` is renamed to `FabricTools.KustoApi.ResourceUrl`.
- The `-PowerBIApi` switch of `Invoke-FabricRestMethod` is now hidden and maps to `-ApiType PowerBI`; it is kept for backward compatibility. Module cmdlets use `-ApiType PowerBI`.

### Fixed

- Fixed `Invoke-FabricKQLCommand` failing with "Invalid URI: The hostname could not be parsed" (#163): the query service URI is now read from the KQL Database `properties`, and requests are authenticated with a Kusto API token (`-ApiType Kusto`) instead of an undefined header variable. Query results with zero rows no longer fail.
- Fixed `Get-FabricCapacity`, `Get-FabricDataPipeline`, `Get-FabricWorkspaceUser`, `Get-FabricCapacityRefreshables`, `Get-FabricCapacityWorkload`, `Get-FabricConnection`, `Get-FabricItem` and `Export-FabricItem` returning no items (#226): they read `.value` from output that `Invoke-FabricRestMethod` had already unwrapped. They now use `ExtractValue = 'True'`. `Get-FabricItem -itemID` and `Get-FabricConnection -connectionId` now return the requested object (previously nothing).
- Fixed `Invoke-FabricRestMethod` looping forever on paginated list responses (#228): the continuation token was never sent, so the first page was requested again and again. The token is now appended to the request, with `&` when the `Uri` already has a query string. Affects every list cmdlet whose results span more than one page.

### Deprecated

### Removed

- Removed the unused `MicrosoftPowerBIMgmt.Profile` dependency (#224). No FabricTools cmdlet uses it: authentication relies on Az.Accounts, and Power BI REST calls go through `Invoke-FabricRestMethod -ApiType PowerBI`. **Possible breaking change:** importing FabricTools no longer loads `MicrosoftPowerBIMgmt.Profile`, so scripts that used its cmdlets (e.g. `Connect-PowerBIServiceAccount`, `Invoke-PowerBIRestMethod`) without importing it must now run `Import-Module MicrosoftPowerBIMgmt.Profile` themselves. `Install-Module FabricTools` no longer installs it.
- Removed outdated wording about "Fabric-friendly aliases for PowerBI functions" from the module description and README; those aliases were already removed (#47).

### Security

## 0.33.0 - 2026-11-08

### Added

- Added Git integration cmdlets (#48): `Connect-FabricGit` (with `-Initialize` to connect and initialize in one call), `Disconnect-FabricGit`, `Get-FabricGitConnection`, `Initialize-FabricGitConnection`, `Get-FabricGitStatus` (with `-ChangesOnly` / `-ConflictsOnly`), `Invoke-FabricGitCommit` (all or selected items, accepts pipeline input from `Get-FabricGitStatus`), `Invoke-FabricGitUpdate`, `Get-FabricGitCredential` and `Update-FabricGitCredential`. Commit and update look up the workspace head and remote commit hash automatically unless `-NoAutoResolve` is used.
- Added Activator aliases for all Reflex cmdlets.
- Added `Refresh-FabricSQLEndpoint` to refresh SQL analytics endpoint metadata.
- Added `-SQLDatabaseName` (alias `Name`) to `Remove-FabricSQLDatabase`, requiring a unique exact name match within the specified workspace before deletion (#210).
- Added `WorkspaceName` (alias `Name`) to `Remove-FabricWorkspace` to delete a workspace by its exact display name, refusing deletion when no workspace or multiple workspaces match (issue #157).
- Added `Start-FabricNotebook` to run a notebook by ID or unique workspace-scoped name, wait for its job status by default, or return promptly with `-NoWait`. Supports `-WhatIf`, Retry-After polling, and execution failure details (#194).
- Added `-UseDeviceAuthentication` switch to `Connect-FabricAccount` to force device code authentication instead of the interactive broker/browser flow
- Added a documentation website generated from `docs/en-US` (`site/Build-DocsSite.ps1`), with search by command name, item type and verb, and a page per command. It is deployed to GitHub Pages from `main` (#3).
- Help files in `docs/en-US` now carry an `itemType` frontmatter key (the `src/Public` folder of the cmdlet, or `Core`), written by the `generate_docs` and `Generate_help_from_built_module` build tasks.

### Changed

- `Remove-FabricWorkspace` reports the workspace name after successful deletion, resolving it from the ID when necessary (#50).
- `Get-FabricWorkspaceUser` now includes the workspace name and ID on each returned user.
- `Get-FabricDatasetRefreshHistory` supports workspace-wide mode when `-DatasetId` is omitted and `-WorkspaceId` is supplied.
- `Remove-FabricItem` confirms each item individually instead of once for the whole batch, so `-WhatIf` lists the items by name and ID and `-Confirm` prompts per item rather than authorising the entire batch with a single answer
- `Remove-FabricItem` reports item counts through `Write-Message` rather than `Write-Output`, so the count is no longer emitted into the pipeline as output

### Fixed

- Fixed long-running operation handling when response headers contain enumerable values, and surfaced `New-FabricSQLDatabase` failures as PowerShell errors (#209).
- `Connect-FabricAccount` now automatically falls back to device code authentication when interactive/broker (WAM) sign-in fails, e.g. in terminal hosts such as Warp on Windows where the account picker cannot render
- Fixed `Get-FabricWorkspace | Get-FabricKQLDatabase` by allowing `WorkspaceId` pipeline input and processing each workspace (issue #162).

### Deprecated

### Removed

- Removed `Get-FabricDatasetRefreshes`, `Get-FabricWorkspaceDatasetRefreshes`, and the alias `Get-FabWorkspaceDatasetRefreshes`. Use `Get-FabricDatasetRefreshHistory` instead.
- Removed stale help files for `Add-FabricWorkspaceCapacityAssignment` and `Remove-FabricWorkspaceCapacityAssignment`, which are not part of the module.

### Security

## 0.32.0 - 2026-05-06

### Added

- Added `Get-FabricDataset` cmdlet to retrieve Power BI datasets from My Workspace or a specific workspace, with optional filtering by `DatasetId` or `DatasetName` (`WorkspaceId` parameter, alias `GroupId`)
- Added `Get-FabricDatasetRefreshHistory` cmdlet to retrieve the refresh history of a Power BI dataset, with optional `WorkspaceId` (alias `GroupId`) and `Top` parameters
- Added `Invoke-FabricDatasetRefresh` cmdlet (in `Dataset` folder) to trigger on-demand dataset refreshes, supporting both standard and enhanced refresh parameters (`Type`, `CommitMode`, `MaxParallelism`, `RetryCount`, `Timeout`, `EffectiveDate`, `ApplyRefreshPolicy`, `Objects`)
- Updated unit tests for `Invoke-FabricDatasetRefresh` to cover the new parameter set, alias, ShouldProcess, body construction, and error handling

### Changed

- Renamed `Add-FabricWorkspaceCapacityAssignment` to `Add-FabricWorkspaceCapacity` (issue #42)
- Renamed `Remove-FabricWorkspaceCapacityAssignment` to `Remove-FabricWorkspaceCapacity` (issue #42)
- Refactored `Invoke-FabricRestMethod` call in bunch of cmdlets to use hash splatting instead of backtick line continuation (issue #87)
- Refactored cmdlets to use `HandleResponse = $true` on `Invoke-FabricRestMethod`, removing manual status-code switches, LRO polling, and pagination loops from each cmdlet
- `Invoke-FabricRestMethod` handles response by default

### Fixed

- `Connect-FabricAccount` now automatically re-authenticates when MFA or conditional access has expired, without requiring the `-Reset` switch
- Made `ReportPathDefinition` parameter optional in `New-FabricReport` (issue #43)
- Fixed PowerShell 5.1 compatibility by replacing ternary operators with if-else statements (issue #166)
- Added PSFramework as a required module dependency to prevent "not recognized" errors on fresh environments (issue #167)
- Added `Id` parameter alias to Workspace functions that take `WorkspaceId` to support compatibility with API field names and issue #158.
- The module is compatible with PS 5.1 (issue #166)

### Deprecated

### Removed

- Removed `Invoke-FabricAPIRequest_duplic

FileList

Version History

Version Downloads Last updated
0.34.0 (current version) 51 11/10/2026
0.34.0-main0001 3 11/10/2026
0.33.0 21 11/8/2026
0.32.0 1,776 5/6/2026
0.32.0-alpha... 9 5/6/2026
0.31.0 1,433 12/15/2025
0.30.0 953 7/30/2025
0.30.0-alpha... 8 7/30/2025
0.30.0-alpha... 17 7/19/2025
0.30.0-alpha... 7 7/18/2025
0.30.0-alpha... 8 7/16/2025
0.30.0-alpha... 8 7/11/2025
0.30.0-alpha... 7 7/11/2025
0.30.0-alpha... 7 7/10/2025
0.30.0-alpha... 16 6/25/2025
0.30.0-alpha... 7 6/17/2025
0.30.0-alpha... 7 6/17/2025
0.30.0-alpha... 5 6/16/2025
0.30.0-alpha... 9 6/13/2025
0.30.0-alpha... 8 6/11/2025
0.29.0 126 6/10/2025
0.29.0-alpha... 5 6/10/2025
0.28.0 7 6/10/2025
0.28.0-alpha... 5 6/10/2025
0.27.0 9 6/10/2025
0.27.0-alpha... 5 6/10/2025
0.26.0 8 6/10/2025
0.26.0-alpha... 5 6/10/2025
0.25.0 106 6/10/2025
0.25.0-alpha... 5 6/10/2025
0.24.0 10 6/10/2025
0.24.0-alpha... 5 6/10/2025
0.23.0 8 6/9/2025
0.23.0-alpha... 6 6/9/2025
0.23.0-alpha... 5 6/9/2025
0.22.0 10 6/9/2025
0.21.0 44 5/26/2025
0.21.0-alpha... 5 6/9/2025
0.21.0-alpha... 5 6/9/2025
0.21.0-alpha... 7 6/2/2025
0.21.0-alpha... 12 5/27/2025
0.21.0-alpha... 5 5/27/2025
0.21.0-alpha... 5 5/26/2025
0.21.0-alpha... 5 5/26/2025
0.21.0-alpha... 5 5/26/2025
0.21.0-alpha... 6 5/26/2025
0.21.0-alpha... 12 5/23/2025
0.21.0-alpha... 9 5/22/2025
0.20.0 35 5/14/2025
0.9.0.0 12 3/6/2025
0.1.0.0 8 2/27/2025
0.0.1 6 5/6/2026
Show more