Frameworks
Nitro
Using Workflow Studio with Nitro
Overview
Workflow Studio supports Nitro applications with a config wrapper and server-side proxy helpers.
Configuration
import { defineNitroConfig } from 'nitropack/config';
import { withWorkflowStudioNitro } from 'workflow-studio/nitro';
export default await withWorkflowStudioNitro(
defineNitroConfig({}),
{
execution: { mode: 'remote' },
mode: 'proxy-trigger',
}
);Configuration is placed under runtimeConfig.workflowStudio for server-side access:
{
runtimeConfig: {
workflowStudio: {
WORKFLOW_COMPUTE_BASE_URL: "...",
WORKFLOW_TARGET_WORLD: "workflow-studio/world-remote",
}
}
}Server Helpers
Use these helpers in server routes:
import { proxyTriggerFromNitro } from 'workflow-studio/nitro';
export default defineEventHandler(async (event) => {
const body = await readBody(event);
const result = await proxyTriggerFromNitro({
payload: {
workflowName: 'send-email',
input: { userId: body.userId },
},
});
return result;
});Webhook Proxy
Forward webhooks to the remote worker:
import { proxyWebhookFromNitro } from 'workflow-studio/nitro';
export default defineEventHandler(async (event) => {
const provider = getRouterParam(event, 'provider');
const body = new Uint8Array(await readRawBody(event));
return await proxyWebhookFromNitro({
provider: provider!,
body,
headers: Object.fromEntries(event.headers.entries()),
});
});Production Checklist
- Set
WORKFLOW_TARGET_WORLD=workflow-studio/world-remotein deployment env - Configure
WORKFLOW_COMPUTE_BASE_URLfor worker URL - Configure
WORKFLOW_COMPUTE_API_KEYfor authentication - Run
validate-ownershipCLI check before first deployment