Skip to content

Commit 1c7ada0

Browse files
Merge pull request #39 from synergycodes/main
Release v2.1.0
2 parents d0b3ee4 + 620f9b7 commit 1c7ada0

57 files changed

Lines changed: 2741 additions & 345 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/release-sdk.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,9 @@ jobs:
104104
# so the GitHub Release body matches what consumers see on npm.
105105
run: |
106106
VERSION=$(node -p "require('./packages/sdk/package.json').version")
107-
NOTES=$(awk "/^## ${VERSION}\$/{flag=1;next}/^## /{flag=0}flag" packages/sdk/CHANGELOG.md)
107+
# Matches either a bracketed Keep-a-Changelog heading
108+
# (`## [X.Y.Z] - 2026-06-16`) or a bare Changesets heading (`## X.Y.Z`).
109+
NOTES=$(awk -v v="$VERSION" '$0 ~ ("^## \\[?" v "\\]?([ -]|$)"){flag=1;next}/^## /{flag=0}flag' packages/sdk/CHANGELOG.md)
108110
{
109111
echo "notes<<EOF"
110112
echo "$NOTES"

CLAUDE.md

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,25 @@ Visual workflow editor SDK (React) with a reference backend and Temporal-based e
44

55
## Quick Reference
66

7-
Three onboarding paths (A, B local-run; C docs-only). README "Get started" is the canonical guide for A and B. Path C ("Embed the SDK") lives in the [docs site](https://www.workflowbuilder.io/docs/get-started/quick-start/wb-as-react-component/) and has no local-stack commands.
7+
Three onboarding paths (A installs from npm; B, C run the repo locally). README "Get started" covers all three. Path A ("Embed the SDK") installs `@workflowbuilder/sdk` from npm; the README has install + a minimal snippet, and the full guide lives in the [docs site](https://www.workflowbuilder.io/docs/get-started/quick-start/wb-as-react-component/).
88

99
| Command | Path | What it does |
1010
| ---------------------------- | ---- | --------------------------------------------------------------------------- |
11-
| `pnpm preflight` | both | Verify Node / pnpm / Docker / ports / `.env` files. Add `--json` for agents |
12-
| `pnpm dev` / `pnpm dev:demo` | A | Demo (UI only, port 4200). No backend, no Docker |
13-
| `pnpm infra:up` | B | Start Postgres + Temporal in Docker. Required before backend/worker |
14-
| `pnpm -F backend db:migrate` | B | Apply Drizzle migrations. First run, or after schema changes |
15-
| `pnpm dev:ai-studio` | B | Full stack: infra + backend (3001) + worker + AI Studio frontend (4201) |
16-
| `pnpm dev:backend` | B | Backend only (debug). Needs infra up |
17-
| `pnpm dev:worker` | B | Execution worker only (debug). Needs infra up |
18-
| `pnpm infra:down` | B | Stop the Docker stack |
11+
| `pnpm preflight` | B/C | Verify Node / pnpm / Docker / ports / `.env` files. Add `--json` for agents |
12+
| `pnpm dev` / `pnpm dev:demo` | B | Demo (UI only, port 4200). No backend, no Docker |
13+
| `pnpm infra:up` | C | Start Postgres + Temporal in Docker. Required before backend/worker |
14+
| `pnpm -F backend db:migrate` | C | Apply Drizzle migrations. First run, or after schema changes |
15+
| `pnpm dev:ai-studio` | C | Full stack: infra + backend (3001) + worker + AI Studio frontend (4201) |
16+
| `pnpm dev:backend` | C | Backend only (debug). Needs infra up |
17+
| `pnpm dev:worker` | C | Execution worker only (debug). Needs infra up |
18+
| `pnpm infra:down` | C | Stop the Docker stack |
1919
| `pnpm dev:docs` | - | Docs site (Astro + Starlight) |
2020
| `pnpm build:lib` | - | Build the SDK package (`packages/sdk`) |
2121
| `pnpm build` | - | Build the demo app |
2222
| `pnpm test` | - | Run tests in `packages/sdk` and `packages/execution-core` |
2323
| `pnpm check` | - | Lint + typecheck + format + knip |
2424

25-
Path A is UI-only and does not need Docker. Path B requires `pnpm infra:up` before backend/worker can start, and `db:migrate` on the first run.
25+
Path B is UI-only and does not need Docker. Path C requires `pnpm infra:up` before backend/worker can start, and `db:migrate` on the first run.
2626

2727
### Agent signals
2828

@@ -123,7 +123,7 @@ If you're new to this repo and want to build your own consumer app or POC, follo
123123
| `/wb.create-plugin <name>` | Scaffold a new SDK plugin — asks for target app (default `demo`) |
124124
| `/wb.create-template <name>` | Scaffold a new diagram template — asks for target app (default `demo`) |
125125
| `/wb.add-execution-handler <type>` | Wire a node type into execution-core + worker registry (global pipeline, no target) |
126-
| `/wb.run-locally` | Bring up the stack — Path A (`pnpm dev:demo`) or Path B (infra + backend + worker + AI Studio frontend) |
126+
| `/wb.run-locally` | Bring up the stack — Path B (`pnpm dev:demo`) or Path C (infra + backend + worker + AI Studio frontend) |
127127
| `/wb.task` | Fetch assigned ClickUp tasks via MCP and recommend one to pick up |
128128
| `/wb.task WB-42` | Pick up a specific task with an inline plan |
129129
| `/wb.changeset <bump> "<summary>"` | Add a changeset for SDK changes (`patch` / `minor` / `major`) — required before merging consumer-visible changes to `packages/sdk/**` |
@@ -145,9 +145,11 @@ The SDK is the only npm-published workspace; everything else under `apps/` and `
145145
```
146146
4. Open PR to `main`. The changeset file is part of the PR diff — reviewer sees the declared bump alongside the change.
147147

148+
**`<WorkflowBuilder.Root>` props live on three surfaces.** The type in `packages/sdk/src/workflow-builder-root/workflow-builder-root.types.ts` is the source of truth; the `/api/core/workflowbuilderrootprops/` reference is generated from its JSDoc and never drifts. Two hand-written tables mirror it: `packages/sdk/README.md` (npm landing) and `apps/docs/src/content/docs/guides/configuring-the-editor.md` (docs guide). When you add, rename, or remove a prop, update both tables in the same change. Descriptions may differ per surface (the README leans on gotchas, the guide on how / when); the set of prop names must match.
149+
148150
**Release moment** (maintainer, not Claude):
149151

150-
1. Open PR `release/vX.Y.Z``release`. In the branch, run `pnpm changeset version` — bumps `packages/sdk/package.json`, regenerates `packages/sdk/CHANGELOG.md`, deletes consumed `.changeset/*.md`.
152+
1. Open PR `release/vX.Y.Z``release`. In the branch, run `pnpm changeset version` — bumps `packages/sdk/package.json`, regenerates `packages/sdk/CHANGELOG.md` (then reformat it into Keep a Changelog style before committing, see [`packages/sdk/RELEASE.md`](packages/sdk/RELEASE.md) § "Reformat the generated CHANGELOG section"), deletes consumed `.changeset/*.md`.
151153
2. Review the diff, merge the PR into `release`.
152154
3. Tag the merge commit on `release`: `git tag vX.Y.Z && git push origin vX.Y.Z`.
153155
4. GitHub Action triggered by the tag runs lint + typecheck + test + `pnpm publish --provenance` (authenticated via npm Trusted Publisher / OIDC, no `NPM_TOKEN` stored anywhere) + creates a GitHub Release.

README.md

Lines changed: 45 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22

33
<a href="https://www.workflowbuilder.io/"><img alt="Workflow Builder" src="https://cdn.synergycodes.com/workflow-builder-logo-solid.svg" width="201" height="40"></a>
44

5-
[Live Demo](https://app.workflowbuilder.io/) &nbsp;|&nbsp; [Documentation](https://www.workflowbuilder.io/docs/overview/) &nbsp;|&nbsp; [Website](https://www.workflowbuilder.io/)
5+
[Live Demo](https://app.workflowbuilder.io/) &nbsp;|&nbsp; [Documentation](https://www.workflowbuilder.io/docs/overview/) &nbsp;|&nbsp; [npm](https://www.npmjs.com/package/@workflowbuilder/sdk) &nbsp;|&nbsp; [Website](https://www.workflowbuilder.io/)
66

7-
**Frontend SDK for embedding production-ready workflow editors.**
7+
**Workflow Builder**
88

9-
Workflow Builder is an open-source SDK that gives you a ready-made workflow editor UI - canvas, nodes, edges, layout, and configuration panels - so you don't have to build workflow UX from scratch. It focuses exclusively on the frontend editor layer; execution, orchestration, and business logic stay fully under your control. The SDK outputs workflow definitions as JSON that your own backend executes.
9+
**Apache 2.0 React SDK for embedding visual workflow editors.**
10+
11+
Drag-and-drop workflow builder UI with a reference back-end and an execution engine swappable by design, proven with Temporal. Back-end agnostic. Built on React Flow and Temporal. Reference stack for AI workflows and automations in digital products.
1012

1113
---
1214

@@ -36,16 +38,47 @@ Three onboarding paths. Pick one based on what you want to evaluate.
3638

3739
| Goal | Path | Setup time | Docker |
3840
| ------------------------------------------------------ | ------------------------------------------------------------- | ---------- | ------ |
39-
| See the editor running in your browser | [A. Try the demo](#path-a-try-the-demo) | ~2 min | no |
40-
| Run the full reference stack (editor + execution + AI) | [B. Run the full stack demo](#path-b-run-the-full-stack-demo) | ~10 min | yes |
41-
| Use the SDK inside your own React app | [C. Embed the SDK](#path-c-embed-the-sdk) | see docs | no |
41+
| Use the SDK inside your own React app | [A. Embed the SDK](#path-a-embed-the-sdk) | ~1 min | no |
42+
| See the editor running in your browser | [B. Try the demo](#path-b-try-the-demo) | ~2 min | no |
43+
| Run the full reference stack (editor + execution + AI) | [C. Run the full stack demo](#path-c-run-the-full-stack-demo) | ~10 min | yes |
44+
45+
Don't want to install or clone anything yet? [Try the live demo](https://app.workflowbuilder.io) in your browser first.
46+
47+
### Path A. Embed the SDK
48+
49+
Use Workflow Builder inside your own React app. No clone, no Docker. Install the SDK and its peer dependencies from npm:
50+
51+
```bash
52+
npm install @workflowbuilder/sdk \
53+
react react-dom \
54+
@xyflow/react \
55+
@jsonforms/core @jsonforms/react \
56+
i18next react-i18next i18next-browser-languagedetector \
57+
immer zustand
58+
```
59+
60+
Render the editor:
4261

43-
Want to skip the clone entirely? [Try the live demo](https://app.workflowbuilder.io) first.
62+
```tsx
63+
import { WorkflowBuilder } from '@workflowbuilder/sdk';
64+
65+
import '@workflowbuilder/sdk/style.css';
66+
67+
export function App() {
68+
return <WorkflowBuilder.Root name="my-workflow" />;
69+
}
70+
```
71+
72+
It mounts the default layout (top bar, palette, canvas, properties panel) and persists to `localStorage` out of the box. The palette is empty until you pass `nodeTypes`.
73+
74+
Full guide (props, persistence strategies, theming, plugins, and the API reference): [React Component on the docs site](https://www.workflowbuilder.io/docs/get-started/quick-start/wb-as-react-component/).
75+
76+
The two paths below run this repository locally (demo and full stack). They share the requirements and preflight check that follow. Path A needs neither.
4477

4578
### Requirements
4679

4780
- Node `22.12.0` and pnpm `10.9.0`. Both pinned in `package.json`. Use `nvm`, `fnm`, or `corepack` to match.
48-
- Docker Desktop. Only required for Path B.
81+
- Docker Desktop. Only required for Path C.
4982

5083
Works the same on macOS, Linux, and Windows. No platform-specific steps.
5184

@@ -79,11 +112,11 @@ Workflow Builder preflight
79112
Ready to go. Pick a path in README.md "Get started".
80113
```
81114

82-
The two `.env` warnings are expected on a fresh clone. They are only required for Path B and get created by `pnpm setup:env` in step 1 of that path. After that they switch to `✅ present`.
115+
The two `.env` warnings are expected on a fresh clone. They are only required for Path C and get created by `pnpm setup:env` in step 1 of that path. After that they switch to `✅ present`.
83116

84117
Fix any red (``) items before continuing. The script also has a `--json` mode for tooling: `pnpm preflight --json`.
85118

86-
### Path A. Try the demo
119+
### Path B. Try the demo
87120

88121
UI only. No backend, no Docker. The fastest way to see the editor in action.
89122

@@ -102,7 +135,7 @@ Expected output:
102135

103136
Open `http://localhost:4200`. The editor loads with the default plugin set and a starter template. That's it.
104137

105-
### Path B. Run the full stack demo
138+
### Path C. Run the full stack demo
106139

107140
Full reference product: editor, Hono backend, Temporal worker, Postgres. The frontend on port 4201 is the **AI Studio** reference product (`apps/ai-studio`). Demonstrates end-to-end workflow execution.
108141

@@ -178,10 +211,6 @@ AI_MODEL=anthropic/claude-3.5-haiku
178211

179212
If the key is missing the worker fails to start with `OPENROUTER_API_KEY is required`. If the model id is wrong the first AI node fails at runtime and the error surfaces in the UI log panel.
180213

181-
### Path C. Embed the SDK
182-
183-
To build your own React app on top of `@workflowbuilder/sdk`, follow the [React Component guide on the docs site](https://www.workflowbuilder.io/docs/get-started/quick-start/wb-as-react-component/). It covers installation, peer deduplication (for local-path builds until npm publish), usage, persistence strategies, theming, and the full API reference.
184-
185214
### Troubleshooting
186215

187216
| Symptom | Cause | Fix |
@@ -266,7 +295,7 @@ Workflow Builder is available in two editions:
266295

267296
For companies that need end-to-end implementations or any other support, we offer professional consulting services.
268297

269-
Our team has delivered **170+ custom workflow tools** across 20+ industries and brings **15+ years** of experience building enterprise-class diagramming and automation tools. We can help with:
298+
Our team has delivered **200+ custom workflow tools** across 20+ industries and brings **15+ years** of experience building enterprise-class diagramming and automation tools. We can help with:
270299

271300
- backend execution engines
272301
- custom integrations

apps/ai-studio/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Reference frontend for the Workflow Builder AI Studio product. Consumes `@workfl
44

55
> ⚠️ Local development only. Depends on the reference backend, which has no auth/authz. See [apps/backend/README.md](../backend/README.md).
66
7-
> **Note:** setup is in [root README "Path B. Run the full stack demo"](../../README.md#path-b-run-the-full-stack-demo).
7+
> **Note:** setup is in [root README "Path C. Run the full stack demo"](../../README.md#path-c-run-the-full-stack-demo).
88
99
## What this is
1010

apps/backend/README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22

33
> ⚠️ **Reference implementation, local development only.**
44
> No real authentication. The bundled `AllowAllAuthPort` permits every caller and every action (see `src/auth/`), and the constructor refuses to start without the explicit `WB_AUTH_PORT=allow-all` opt-in so a forgotten env var fails loudly. No tenant isolation. The HTTP server and the docker-compose services bind to `127.0.0.1` by default. Do not expose to the internet or shared networks without first plugging in a real `AuthPort`, see [`auth-port.decision-log.md`](./auth-port.decision-log.md) for the seam, default, and a JWT adapter sketch.
5+
>
6+
> Seams for consumers to plug in: [`AuthPort`](./auth-port.decision-log.md) for authn/authz, [`TenantContextPort`](./tenant-context-port.decision-log.md) for multi-tenant identity propagation (wiring guide: [`multi-tenancy.md`](./multi-tenancy.md)).
57
6-
> **Note:** setup is in [root README "Path B. Run the full stack demo"](../../README.md#path-b-run-the-full-stack-demo). This file documents the backend's internals, not how to start it.
8+
> **Note:** setup is in [root README "Path C. Run the full stack demo"](../../README.md#path-c-run-the-full-stack-demo). This file documents the backend's internals, not how to start it.
79
810
Backend execution layer for Workflow Builder AI Studio plugin. Runs AI workflows defined on the canvas via Temporal + OpenRouter.
911

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
ALTER TABLE "execution_events" ADD COLUMN "tenant_id" text;--> statement-breakpoint
2+
ALTER TABLE "executions" ADD COLUMN "tenant_id" text;--> statement-breakpoint
3+
CREATE INDEX "execution_events_tenant_id_idx" ON "execution_events" USING btree ("tenant_id");--> statement-breakpoint
4+
CREATE INDEX "executions_tenant_id_idx" ON "executions" USING btree ("tenant_id");

0 commit comments

Comments
 (0)