-
-
Notifications
You must be signed in to change notification settings - Fork 0
01 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.
On Windows, winget is also available for PAC CLI: winget install Microsoft.PowerAppsCLI
dotnet tool install --global FlowlineAuthenticate PAC CLI against your Dataverse environment before using Flowline:
pac auth create --environment https://your-org.crm4.dynamics.comFlowline reuses the PAC CLI token cache — no separate auth step needed. See 02-Authentication for multi-environment setup and CI/CD service principal auth.
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
# Get a dev environment to push to (skip if you already have one — pass its
# URL to clone via --dev instead, or to push directly with --dev on first use)
flowline provision dev # create https://contoso-dev.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 prodclone creates the full project structure, unpacks the solution XML per component, scaffolds the Plugins and WebResources projects, writes AGENTS.md and CLAUDE.md, and generates the initial DATAVERSE_CONTEXT.md.
provision copies prod into a new sandbox and saves its URL to .flowline — see 03-Command-Reference#provision for --copy/--suffix options.
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
# One-time: get a dev environment to push to (skip if you already have one)
flowline provision dev
# 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".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.
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