deploy
Deploy item definitions from a local directory to a workspace
Authentication scope: fabric
Preview what would be deployed (create/update/delete/skip)
fabio deploy plan| Flag | Type | Required | Description |
|---|---|---|---|
--source |
string |
No | Source directory with .platform item definitions (local path or cloned git repo) |
--workspace |
string |
No | Target workspace ID or name |
--item-types |
array |
No | Only deploy specific item types (comma-separated) |
--delete-orphans |
bool |
No | Include delete actions for items not in source |
--allow-unresolved |
bool |
No | Don’t error on unresolved logical ID references |
--force-all |
bool |
No | Skip content-hash comparison, show all items as needing update |
--out |
string |
No | Save plan to a file for later apply |
--parameters |
string |
No | Parameter file for environment-aware substitution (JSON) |
--env |
string |
No | Target environment name for parameter substitution (e.g., “prod”, “staging”) |
--config |
string |
No | Deploy config file (JSON or YAML) with per-environment settings |
--git-diff |
string |
No | Only deploy items changed since this git ref (e.g., HEAD~1, main) |
--exclude-regex |
string |
No | Exclude items whose display name matches this regex |
--include-items |
array |
No | Only include specific items (format: “Name.Type”, comma-separated) |
--include-folders |
array |
No | Only include items in these folder paths (comma-separated, e.g., “/ETL,/Reports”) |
--exclude-folders |
array |
No | Exclude items in these folder paths (comma-separated) |
--allow-delete-types |
array |
No | Item types permitted for deletion (comma-separated; protects Lakehouse, Warehouse, etc.) |
--no-folders |
bool |
No | Skip workspace folder management (create/move/delete folders) |
--no-workspace-id-replace |
bool |
No | Skip automatic workspace ID replacement (00000000-… → target workspace) |
Examples
fabio deploy plan --source ./fabric-items/ --workspace "Staging"fabio deploy plan --source ./fabric-items/ --workspace "Staging" --out plan.jsonOutput fields: workspace_id, changes, warnings, errors, summary
Read-only · Returns object
Execute deployment (create/update/delete items)
fabio deploy apply| Flag | Type | Required | Description |
|---|---|---|---|
--source |
string |
No | Source directory with .platform item definitions (local path or cloned git repo) |
--workspace |
string |
No | Target workspace ID or name |
--plan |
string |
No | Apply a previously saved plan file |
--item-types |
array |
No | Only deploy specific item types (comma-separated) |
--delete-orphans |
bool |
No | Delete items not in source |
--allow-unresolved |
bool |
No | Proceed despite unresolved references |
--fail-fast |
bool |
No | Stop on first failure (default: continue remaining items) |
--force-all |
bool |
No | Skip content-hash comparison, redeploy all items |
--concurrency |
integer |
No | Max parallel operations per type batch Default: 8. |
--parameters |
string |
No | Parameter file for environment-aware substitution (JSON) |
--env |
string |
No | Target environment name for parameter substitution (e.g., “prod”, “staging”) |
--no-post-hooks |
bool |
No | Skip post-deploy hooks (semantic model refresh, environment publish) |
--config |
string |
No | Deploy config file (JSON or YAML) with per-environment settings |
--git-diff |
string |
No | Only deploy items changed since this git ref (e.g., HEAD~1, main) |
--exclude-regex |
string |
No | Exclude items whose display name matches this regex |
--include-items |
array |
No | Only include specific items (format: “Name.Type”, comma-separated) |
--include-folders |
array |
No | Only include items in these folder paths (comma-separated) |
--exclude-folders |
array |
No | Exclude items in these folder paths (comma-separated) |
--allow-delete-types |
array |
No | Item types permitted for deletion (comma-separated) |
--no-folders |
bool |
No | Skip workspace folder management |
--no-workspace-id-replace |
bool |
No | Skip automatic workspace ID replacement |
--shortcut-exclude-regex |
string |
No | Exclude shortcuts matching this regex during reconciliation |
--post-run-item |
string |
No | Run a pipeline or notebook after deployment completes (data orchestration) |
--strategy |
enum |
No | Deployment execution strategy One of: default, bulk, sequential. |
--verify |
bool |
No | After applying, re-fetch the applied items and confirm they converged to the source (content-hash for definition items, existence for platform-only items). Adds a verification block to the output. Report-only: never changes the exit code |
Examples
fabio deploy apply --source ./fabric-items/ --workspace "Staging"fabio deploy apply --source ./fabric-items/ --workspace "Staging" --dry-runfabio deploy apply --source ./fabric-items/ --workspace "Production" --parameters params.json --env prodfabio deploy apply --source ./fabric-items/ --workspace "Staging" --delete-orphansOutput fields: status, succeeded, failed, skipped, duration_ms, failures, post_hooks
Mutates state · Returns object
export
Section titled “export”Export workspace item definitions to a local directory
fabio deploy export --workspace <value> --dir <value>| Flag | Type | Required | Description |
|---|---|---|---|
--workspace |
string |
Yes | Source workspace ID or name |
--dir |
string |
Yes | Output directory to write .platform items |
--item-types |
array |
No | Only export specific item types (comma-separated) |
--overwrite |
bool |
No | Overwrite existing files in output directory |
--concurrency |
integer |
No | Max parallel getDefinition requests |
Examples
fabio deploy export --workspace "Production" --dir ./fabric-items/ --overwriteOutput fields: status, workspace_id, output_dir, total_items, exported, skipped
Read-only · Returns object
init-params
Section titled “init-params”Generate a parameters.json scaffold by scanning or diffing exported definitions
fabio deploy init-params --source <value>| Flag | Type | Required | Description |
|---|---|---|---|
--source |
string |
Yes | Source directory containing exported .platform items (e.g., dev workspace) |
--compare |
string |
No | Comparison directory to diff against (e.g., prod workspace export) |
--source-env |
string |
No | Environment name for the source directory (used in diff mode) |
--compare-env |
string |
No | Environment name for the comparison directory (used in diff mode) |
--out |
string |
No | Output file path for generated parameters.json |
--resolve-connections |
bool |
No | Auto-resolve connection GUIDs by looking up connections in the tenant |
Examples
fabio deploy init-params --source ./fabric-items/ --out params.jsonfabio deploy init-params --source ./dev-items/ --compare ./prod-items/ --source-env dev --compare-env prod --out params.jsonOutput fields: status, mode, source_items, rules_generated, guids_found
Read-only · Returns object
validate
Section titled “validate”Validate source directory locally (no API calls). Checks .platform files, item types, duplicate names/logical IDs, cross-references, and parameters
fabio deploy validate --source <value>| Flag | Type | Required | Description |
|---|---|---|---|
--source |
string |
Yes | Source directory containing Fabric item definitions with .platform files |
--parameters |
string |
No | Parameter file to validate (JSON) |
--env |
string |
No | Environment name to validate parameter lookups against |
--pr-ready |
bool |
No | Run environment-hygiene / PR-readiness checks (offline): assert definitions are bound to –expect-env and contain no other environment’s IDs, and no stray variable-library value-set files remain. Replaces a hand-written “check-pr-ready” CI script |
--expect-env |
string |
No | (with –pr-ready) The environment the repo is expected to be bound to (e.g., “dev”). Every rule’s value for this env must be present; every OTHER env’s value must be absent |
--allow-value-set |
array |
No | (with –pr-ready) Variable-library value-set file stems allowed to remain (comma-separated, e.g., “Test,Prod”). Any other valueSets/*.json is flagged |
Examples
fabio deploy validate --source ./fabric-items/Read-only · Returns object
rebind
Section titled “rebind”Rewrite environment-specific IDs in local definition files, in place (offline)
fabio deploy rebind --source <value> --parameters <value> --from-env <value> --to-env <value>| Flag | Type | Required | Description |
|---|---|---|---|
--source |
string |
Yes | Source directory containing Fabric item definitions with .platform files |
--parameters |
string |
Yes | Parameter file with environment-keyed values (same format as deploy apply) |
--from-env |
string |
Yes | Environment the files are currently bound to (whose values are replaced) |
--to-env |
string |
Yes | Environment to rebind the files to (whose values are written in) |
Mutates state · Returns object
