Skip to content

01 Getting Started

RemyDuijkeren edited this page Jul 4, 2026 · 19 revisions

Getting Started

Flowline runs on Windows, Mac, and Linux. Mac and Linux support is expected to work but not yet officially tested — if you hit a platform-specific issue, please open an issue.

Prerequisites

  • .NET SDK 10 or later
  • Git
  • PAC CLI: dotnet tool install --global Microsoft.PowerApps.CLI.Tool

On Windows, winget is also available for PAC CLI: winget install Microsoft.PowerAppsCLI

Prefer not to install PAC CLI? Flowline falls back to dnx automatically — just run the same commands prefixed with dnx microsoft.powerapps.cli.tool --yes.

Install Flowline

dotnet tool install --global Flowline

Authenticate

Authenticate PAC CLI against your Dataverse environment before using Flowline:

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

Flowline reuses the PAC CLI token cache — no separate auth step needed. See 02-Authentication for multi-environment setup and CI/CD service principal auth.


Existing solution workflow

Use this when a solution already exists in Dataverse and you want to bring it under source control.

# Create a Git repo
mkdir contoso-flowline
cd contoso-flowline
git init

# One-time: bootstrap the solution into the repo
flowline clone ContosoSales --prod https://contoso.crm4.dynamics.com

# Daily dev loop
flowline push          # push code assets to DEV
flowline sync          # pull Dataverse changes back to source
git commit -m "feat: add validation"

# Promote
flowline deploy test
flowline deploy prod

clone creates the full project structure, unpacks the solution XML per component, scaffolds the Plugins and WebResources projects, writes AGENTS.md, and generates the initial DATAVERSE_CONTEXT.md.

Greenfield workflow

Use this when starting a brand-new solution — no existing Dataverse solution yet.

Flowline does not yet have a flowline init command (planned). Until it does, create the publisher and solution manually in the maker portal first, then clone the empty solution.

Step 1 — Create a publisher

Go to make.powerapps.com → your environment → Solutions → Publishers → New publisher. Set a display name, name, and prefix (e.g. Contoso, contoso, prefix cs). Skip if a publisher already exists.

Step 2 — Create an empty solution

Solutions → New solution. Set the display name, select your publisher, and save. Leave the solution empty — Flowline scaffolds the local project structure during clone.

Step 3 — Clone the empty solution and start building

# Create a Git repo
mkdir contoso-flowline
cd contoso-flowline
git init

# Bootstrap — clone works even on an empty solution
flowline clone ContosoSales --prod https://contoso.crm4.dynamics.com

# Add plugin classes, web resources, and maker portal components
# then use the same daily loop
flowline push
flowline sync
git commit -m "feat: initial solution"

Project structure

.flowline                                 # environment URLs and solution config
└── solutions/
    └── ContosoSales/
        ├── DATAVERSE_CONTEXT.md          # schema snapshot for AI agents (auto-generated)
        ├── ContosoSales.sln
        ├── Package/                      # PAC-managed — do not edit manually
        │   ├── Package.cdsproj
        │   └── src/                      # unpacked solution XML
        ├── Plugins/                      # plugin assembly project
        │   ├── Plugins.csproj
        │   └── Models/                   # early-bound C# types (flowline generate)
        ├── WebResources/                 # web resource files
        │   └── dist/                     # synced to Dataverse by push
        └── artifacts/                    # deployment zips (generated by deploy)

Files under WebResources/dist/ are synced to Dataverse by flowline push.

Tip

Flowline commands work from any directory inside the project — no need to cd back to the root. Flowline walks up from your current directory until it finds .flowline and uses that as the project root.


Provisioning a DEV or TEST environment

Use provision once when setting up a new environment from PROD:

flowline provision dev --prod https://contoso.crm4.dynamics.com
flowline provision test --prod https://contoso.crm4.dynamics.com

Clone this wiki locally