u/fabshire25

fabric-cicd v1.2.0 is here - new publish feature released!

Hello fabric-cicd community!

We’re excited to announce fabric-cicd v1.2.0 for June. This release brings new item type support, more flexible parameterization options, important reliability and security updates, and one of the larger enhancements we’ve introduced recently: bulk publish mode.

What’s new in v1.2.0?

New features

Bulk publish mode

Bulk publish mode is one of the larger features in this release, and we encourage users to try it. It allows fabric-cicd to publish multiple items in a single API call using the Fabric bulk import API, instead of publishing each item individually through the standard staged deployment path. This can make deployments more efficient.

Because dependencies are managed by the API during publish, bulk publish can reduce the rigidity of item-type-based staging and better support cross-item dependencies when logical ID references are used. It may also reduce the number of item-specific parameter values you need to configure.

This feature is currently experimental and requires feature flags, so we recommend trying it first in non-production environments while we continue gathering feedback. A few limitations apply: not every item type supported by the standard fabric-cicd deployment path is supported in bulk publish, and parameterization does not currently support dynamic variable resolution. For unsupported scenarios, fabric-cicd automatically falls back to the standard publish flow, so users can try bulk publish without manually switching deployment paths. If you test it in your CI/CD workflows, please share your experience through GitHub issues so we can continue refining it.

To learn more, read the bulk publish documentation here.

Expanded item type support

Map and Paginated Report items are now officially supported in fabric-cicd, expanding the range of Microsoft Fabric artifacts that can be automated through deployment pipelines and making it easier to include more reporting and visual artifacts in workspace deployment flows.

Parameter enhancements for find_value field

The find_value field in find_replace parameter received some useful updates in this release, including support for dynamic replacement variables and case-insensitive matching.

Now $workspace variables can be used to allow dynamic resolution for the values being searched for in the item definition files, reducing the amount of hard coding.

To use case-insensitive matching, add the ignore_case field within the parameter and set it to "true". This should make replacement rules easier to apply across environments where casing may not be perfectly consistent. Read here for more information.

Support for multiple connection IDs in semantic model binding parameter

The semantic_model_binding parameter now supports multiple connection IDs, making it easier to handle scenarios where a semantic model needs to bind across more than one connection in a target environment. Special thanks to u/alwortma2 for this valuable community contribution! See docs here.

Bug fixes

Fix management of Activator item dependencies

This release improves Activator item dependency handling by accounting for multiple Fabric item references that were previously missed as the Activator item type evolved. Thanks to the community for raising issues like this and helping us maintain a high-quality library experience. It also highlights where bulk publish can help by using a graph-based publish approach instead of fabric-cicd’s standard staged approach, bulk publish can adapt to dependency changes more seamlessly.

Other updates

Make log file creation opt-in

Log files can contain sensitive information, so file logging now requires an intentional opt-in through the FABRIC_CICD_FILE_LOGGING_ENABLED environment variable before any log file is created or written. This makes log creation a conscious decision and improves the default security posture by avoiding unnecessary local log files.

Enforce owner-only file permissions on sensitive files for POSIX systems

Sensitive files created by the library on POSIX systems now enforce owner-only permissions, improving the default security posture for generated files.

Documentation updates

The docs also received a few updates in this release, including a new devcontainer setup, a section about contributing to documentation, and a reorganization of item type documentation under the new Reference section for better clarity. Thank you u/cmaneu for contributing these awesome documentation improvements!

Upgrade Now

pip install --upgrade fabric-cicd

Relevant Links

reddit.com
u/fabshire25 — 5 days ago

fabric-cicd v1.1.0 is out — here’s what’s new

Hello fabric-cicd community!

We’re excited to announce fabric-cicd v1.1.0 for May. This release brings new item type support, important bug fixes, and a few practical enhancements to improve the CI/CD experience for Microsoft Fabric. While smaller than some of our previous releases, this version focused heavily on quality, reliability, and community-driven improvements. We’re especially grateful for the growing number of community contributions that helped shape this release.

What’s new in v1.1.0?

New features

1. Support for DataBuildToolJob item type

DataBuildToolJob (dbt job) is now officially supported in fabric-cicd. This item type was highly requested, and with recent API support now available, we were able to bring it into this release. Huge thanks to u/crazy-treyn for driving this contribution.

As always, item types can have unique behaviors, so if you notice anything unexpected, please open a GitHub issue so we can investigate and improve the experience.

2. Addition of $workspace.$name and $workspace.$name_encoded dynamic replacement variables to get the target workspace display name

Dynamic replacement variables have become a valuable part of parameterization in fabric-cicd, and this release adds two more to the toolbox: $workspace.$name and $workspace.$name_encoded. These let you reference the target workspace display name during deployment, either in its original form or in a URL-safe encoded version for names that include spaces. It’s a small addition, but one that makes multi-environment deployments more flexible and convenient.

3. New configure_fabric_fqdn() utility function to configure Fabric API URLs for private-link-enabled workspaces using per-workspace FQDN endpoints

Thanks to u/SumeshKashyap for introducing this feature, which simplifies deployments to workspaces configured with workspace-level private links.

Bug fixes

1. Fix incomplete Sparkcompute settings deployment by using the item definition API instead of the staging/sparkcompute API when deploying Environments

Thanks to u/lassevalentini for quickly addressing a major bug affecting Environment deployments. With this fix, changes to Spark compute settings and Environment configurations are now properly deployed and reflected in the target workspace.

2. Fix HTTP 400 errors when using items_to_include with post-publish operations (e.g. Lakehouse shortcut publishing)

3. Prevent empty items_to_include list from bypassing item filtering

These items_to_include issues surfaced after the selective deployment feature- get_changed_items() utility was introduced in the previous release. Thanks to community feedback, both issues have now been addressed. The feature should behave more reliably when deploying Lakehouses, and an empty list will now correctly result in no items being deployed.

Other updates

1. Removal of version check on import to reduce noise and eliminate unnecessary PyPI network call at startup

Since the early days of fabric-cicd, checking for the latest version on import was the default behavior. As the library has evolved, we decided to remove that behavior to reduce startup noise, improve performance, and avoid unnecessary network calls. Going forward, please keep an eye on release announcements through the GitHub repo, PyPI, and Reddit.

2. Improved authentication flow example documentation through the addition of GitHub Actions workflow examples

We’re also continuing to invest in documentation. The official fabric-cicd docs now include authentication examples for GitHub Actions in addition to Azure DevOps, making it easier to get started with secure automation across platforms.

As always, thanks to everyone in the community for the feedback and contributions that continue to shape fabric-cicd. Stay tuned for more.

Upgrade Now

pip install --upgrade fabric-cicd

Relevant Links

reddit.com
u/fabshire25 — 1 month ago