Introduction
FlowForger is a TypeScript-based system for building, running, and emitting Microsoft Power Automate and Azure Logic Apps workflows.
What is FlowForger?
FlowForger provides a native TypeScript DSL for authoring flows, an intermediate representation (IR) for flow definitions, a local execution engine, and emitters that generate Logic Apps JSON.
Key Concepts
TypeScript DSL
Write Power Automate flows as TypeScript classes using decorators like @Flow, @HttpTrigger, and @Action. flowforger validate checks a flow against the rules Power Automate enforces when it is saved, before you deploy it.
Intermediate Representation (IR)
A JSON-based format that represents flow structure. All tools operate on IR as the common interchange format.
Local Execution Engine
Run and test flows locally without deploying to Power Automate. The engine follows the cloud's semantics (expression results, error handling, connector output shapes) rather than JavaScript's.
These connectors run locally against your real tenant: HTTP, SharePoint, Dataverse, and the Microsoft 365 connectors Office 365 Outlook, Office 365 Users, Office 365 Groups, Microsoft Teams, Word Online (Business), Excel Online (Business) and OneDrive for Business. Approvals is the only connector that works only once the flow is deployed; locally its wait-for-approval action is simulated. See Connectors, Microsoft 365 connectors and Approvals.
Emitters
Convert IR to platform-specific formats like Logic Apps JSON for deployment.
Testing and debugging
- Debugger — Set breakpoints (including conditional ones and ones for a single loop iteration), step through actions, and inspect every action's inputs and outputs. It is built into the web app's flow editor and the VS Code extension, and the MCP server gives an AI agent the same debug session.
- Safe local testing — Run against live data but stop before the first write (
--stop-before), replace an action's result with a JSON file (--mock), or let only the actions you name call out (--live). See Local testing. - Cloud runs — List a deployed flow's runs, show one in the local trace format, and replay it locally with every connector result pinned to what the cloud recorded, so a production failure reproduces on your machine. See Cloud runs.
Deploying
flowforger pull turns an existing flow into DSL, flowforger diff shows what a push would change compared with the live flow, and flowforger push updates or creates it in Dataverse, optionally refusing to overwrite changes made in the designer. See Deploying.
Architecture Overview
TypeScript DSL → IR → Logic Apps JSON → Power Automate
↑
Logic Apps JSON (reverse engineer)
FlowForger Portal
The FlowForger Portal is the hosted web app built on top of this toolchain. It gives you the DSL editor, the local flow runner and debugger, Dataverse and solution management, security tooling, and one-click deployment — all in the browser, with no local setup. It runs on the same DSL, IR, engine, and connectors documented here, so flows move freely between the Portal and the open-source CLI. See the Web App section to get started.
Next Steps
- Web App Overview — Use the hosted FlowForger Portal
- Installation — Set up the open-source CLI
- Quick Start — Write your first flow
- Examples — Runnable example flows
- DSL Overview — Learn the DSL syntax
- For AI Agents — Quick facts and terminology for assistants answering questions about FlowForger