Skip to content

v0.22.0

Choose a tag to compare

@iemejia iemejia released this 11 Jun 07:28
· 201 commits to main since this release

Full fabric-cicd Compatibility

This release makes fabio deploy a strict superset of Microsoft's fabric-cicd Python library. Source directories exported by fabric-cicd or Fabric's git integration work identically with fabio — while fabio adds plan/apply separation, content-hash skip detection, rename tracking, and dry-run that fabric-cicd lacks.

New Deploy Features

  • Config file support (--config <file> --env <name>) — JSON or YAML with per-environment workspace mapping, filtering, and option defaults
  • Git-diff selective deploy (--git-diff <ref>) — only deploy items changed since a git reference
  • Selective filtering--exclude-regex, --include-items, --include-folders, --exclude-folders
  • Workspace folder management — infers folder hierarchy from source directory, creates/moves/deletes folders automatically
  • Workspace ID auto-replacement — replaces 00000000-... placeholder with target workspace UUID (regex-based, context-aware)
  • Protected type deletion guards — Lakehouse, Warehouse, SQLDatabase, Eventhouse, KQLDatabase require --allow-delete-types to be deleted
  • Dataflow dependency ordering — topological sort for cross-dataflow references (same as DataPipeline)

fabric-cicd Behavioral Compatibility

All per-item-type behaviors from fabric-cicd are now matched:

  • .children/ KQL Database discovery under Eventhouses
  • .pbi/ directory exclusion from definitions
  • Notebook part ordering (.py before .json)
  • Report byPathbyConnection automatic transformation
  • creationPayload from .platform metadata (fallback)
  • SparkJobDefinitionV2 format auto-detection
  • ItemDisplayNameNotAvailableYet retry (up to 5 minutes)
  • Lakehouse enableSchemas inference from lakehouse.metadata.json
  • Shortcut self-reference resolution (lakehouse GUID, not workspace ID)
  • .platform included in definition parts but excluded from content hash (preserves idempotency)
  • Binary file graceful handling in parameter substitution

Documentation

  • New "Why fabio?" section in README comparing against Fabric CLI and fabric-cicd
  • Updated AGENTS.md with all new deploy behaviors and decisions
  • Added serde_yaml dependency for YAML config file support

Testing

  • 690 unit tests (9 new for deploy compatibility)
  • 11 E2E tests validating against fabric-cicd's sample workspace
  • Verified against live tenant: deployed items from microsoft/fabric-toolbox scenarios

Stats

  • 13 commits, 3 new modules (config.rs, folders.rs, git_diff.rs)
  • ~2,500 lines added across deploy module
  • 12 new CLI flags on deploy plan/apply

Full Changelog: v0.21.0...v0.22.0

Full Changelog: v0.21.0...v0.22.0