WorkflowController
NestJS controller that serves the workflow runtime routes.
NestJS controller that handles the well-known workflow endpoints under .well-known/workflow/v1. It dynamically imports the generated workflow bundles and converts between Express/Fastify requests and the Web API Request/Response objects the workflow runtime expects. Both the Express and Fastify HTTP adapters are supported.
WorkflowModule.forRoot() registers this controller automatically — you only register it yourself if you are not using WorkflowModule.
Usage
When registering the controller manually, call configureWorkflowController first so it can locate the generated bundles; its route handlers throw otherwise.
src/app.module.ts
import { join } from "node:path";
import { Module } from "@nestjs/common";
import {
configureWorkflowController,
WorkflowController,
} from "workflow/nest";
configureWorkflowController(join(process.cwd(), ".nestjs/workflow"));
@Module({
controllers: [WorkflowController],
})
export class AppModule {}Routes
| Route | Method | Description |
|---|---|---|
/.well-known/workflow/v1/flow | POST | Executes workflow and step work items via the combined handler in workflows.mjs (step registrations are imported from steps.mjs first). |
/.well-known/workflow/v1/webhook/:token | Any | Forwards webhook requests to the handler in webhook.mjs. |
/.well-known/workflow/v1/manifest.json | GET | Serves the workflow manifest. Responds with 404 unless the WORKFLOW_PUBLIC_MANIFEST=1 environment variable is set. |