Flowline 0.9.0

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global Flowline --version 0.9.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local Flowline --version 0.9.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Flowline&version=0.9.0
                    
nuke :add-package Flowline --version 0.9.0
                    

Flowline

<table> <tr> <td>

Flowline is a Dataverse ALM CLI — structured workflow, Git-tracked solutions, and a fast push to DEV without the enterprise overhead.

Docs CI NuGet NuGet downloads

</td> <td width="120" align="right" valign="top">

Flowline CLI

</td> </tr> </table>


PAC CLI gives you the primitives — Flowline gives you the workflow.

A professional Git-based workflow for plugin developers and solution architects, without the overhead of Power Platform Pipelines or managed solutions. clone → push → sync → deploy, from the inner dev loop to production, in one tool.

Where PAC CLI already handles it, Flowline wraps — it doesn't re-implement. Where PAC has no answer, Flowline fills the gap.

Familiar with spkl? Flowline is its actively maintained successor (last meaningful commit 2021).

What sets Flowline apart:

  • Attribute-driven plugin registration — decorate your IPlugin classes with [Step], [Filter], [CustomApi]; Flowline reads the assembly and handles every Dataverse registration. No Plugin Registration Tool, no spkl.json, no boilerplate.
  • Web resource dependencies auto-wired — RESX files linked to parent JS by base name; // flowline:depends for JS-to-JS; registered on every push. No Maker Portal visits, no manual dependency trees.
  • Orphan cleanup built in — steps, step images, and web resources missing from source are deleted from Dataverse on every push. deploy cleans up removed solution components too. No stale registrations, no ghost records. Use --no-delete to opt out.
  • AI-native schema contextsync writes DATAVERSE_CONTEXT.md with your full schema (entities, attributes, option sets, forms, views, plugin steps); Claude Code, Copilot, and Codex load it automatically via AGENTS.md. Your AI assistant knows your field names without live queries.
  • Human-readable sync summarysync translates the XML diff into plain language: what changed, what was added, what was removed — attribute-level detail included. You know exactly what happened before you commit.
  • Scaffolded WebResources projectclone creates a TypeScript + Rollup project wired to push from day one. No boilerplate, no manual configuration. Swap in any bundler you prefer.
  • Dry-run before you touch anything--dry-run shows exactly what would change before a single Dataverse record is touched. Run it as a CI safety gate or any time you want confidence. No other Dataverse ALM tool offers this.
  • Zero-friction auth — reuses the PAC CLI profiles you already have. Switch environments by switching profiles. Works in CI with service principals out of the box.
  • One-command environment provisioningprovision copies PROD to a fresh DEV or TEST environment. No admin center clicks, no configuration drift.

flowline sync summary

Pipelines are buried steel — permits, compressors, years to commission. A flowline goes where the pipeline can't.


Install

dotnet tool install --global Flowline

Prerequisites: .NET SDK 10 or later, Git, and PAC CLI:

Authenticate using PAC CLI before using Flowline:

pac auth create --environment https://your-org.crm4.dynamics.com

Quick start

# Bootstrap an existing solution into the repo
flowline clone ContosoSales --prod https://contoso.crm4.dynamics.com

# Daily dev loop
flowline push
flowline sync
git commit -m "feat: add validation"

# Promote
flowline deploy test
flowline deploy prod

For full setup, auth, and project workflow: Getting Started


Commands

Command What it does
clone <solution> Bootstrap an existing solution from Dataverse into the repo
push [solution] Build and sync code assets to DEV; or push standalone with --pluginFile / --webresources
sync [solution] Pull the current solution state from DEV into source control
deploy <target> Pack from the repo and import into test, uat, prod, or a URL
provision [dev\|test\|uat] Provision a DEV, TEST or UAT environment by copying from production
generate [solution] Generate early-bound C# types into Plugins/Models/ (configurable with --output)
status Show environment info, Flowline version, and PAC CLI status

Plugin attributes

Attribute-driven registration is core to Flowline, not an add-on. Add Flowline.Attributes to your plugin project and decorate IPlugin classes with [Step], [Filter], [PreImage], [PostImage], or [CustomApi]. flowline push reads the assembly and handles every registration — steps, images, and Custom APIs — no Plugin Registration Tool, no spkl.json.

<PackageReference Include="Flowline.Attributes" Version="1.0.0" PrivateAssets="all" />

Source-only package: the attributes compile straight into your plugin assembly, so nothing extra ships to the Dataverse sandbox.

Flowline.Attributes reference · Plugin Registration wiki


Documentation

Full docs live on the Wiki.

Coming from another tool? Migration from spkl · Migration from Daxif · Migration from PACX

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
0.18.0 101 8/26/2026
0.17.0 192 8/16/2026
0.16.0 104 8/7/2026
0.15.0 115 8/3/2026
0.14.0 115 7/31/2026
0.13.0 108 7/24/2026
0.12.0 116 7/17/2026
0.11.0 122 7/15/2026
0.10.0 129 7/12/2026
0.9.0 129 7/5/2026
0.8.0 129 6/29/2026
0.7.0 136 6/21/2026
0.6.0 143 6/5/2026
0.5.0 134 5/29/2026
0.4.0 147 5/7/2026
0.3.0 119 5/5/2026
0.2.0 146 4/19/2026
0.1.0 216 6/28/2025