Frameworks

SvelteKit

Configure Workflow Studio with SvelteKit

Overview

This guide configures Workflow Studio for SvelteKit applications.

Two settings control behavior:

  • execution.mode controls local vs remote execution.
  • adapter mode controls ingress behavior (passthrough or proxy-trigger).

Mode matrix

execution.modeadapter modeBehavior
remotepassthroughStandard start(...) routes remain unchanged; execution runs on remote compute worker with production reroute env.
remoteproxy-triggerRemote execution plus optional app-host proxy routes for trigger/webhook ingress.
localpassthroughLocal/default execution behavior.
localproxy-triggerLocal execution with optional proxy ingress routes.

Default remote setup

svelte.config.ts
import { withWorkflowStudioSvelteKit } from 'workflow-studio/sveltekit';

export default await withWorkflowStudioSvelteKit(
  { kit: {} },
  {
    execution: { mode: 'remote' },
    mode: 'passthrough',
  }
);

Set production reroute in deployment environment:

WORKFLOW_TARGET_WORLD=workflow-studio/world-remote

Optional proxy-trigger routes

svelte.config.ts
import { withWorkflowStudioSvelteKit } from 'workflow-studio/sveltekit';

export default await withWorkflowStudioSvelteKit(
  { kit: {} },
  {
    execution: { mode: 'remote' },
    mode: 'proxy-trigger',
  }
);
src/routes/api/workflow/+server.ts
import { proxyTriggerFromSvelteKit } from 'workflow-studio/sveltekit';
import { json } from '@sveltejs/kit';

export async function POST({ request }) {
  const body = await request.json();
  const result = await proxyTriggerFromSvelteKit({
    payload: {
      workflowName: 'send-email',
      input: { userId: body.userId },
    },
  });
  return json(result);
}
src/routes/api/webhooks/[provider]/+server.ts
import { proxyWebhookFromSvelteKit } from 'workflow-studio/sveltekit';

export async function POST({ request, params }) {
  const body = new Uint8Array(await request.arrayBuffer());
  return await proxyWebhookFromSvelteKit({
    provider: params.provider,
    body,
    headers: Object.fromEntries(request.headers.entries()),
  });
}

Required production settings

  • WORKFLOW_TARGET_WORLD=workflow-studio/world-remote
  • WORKFLOW_COMPUTE_BASE_URL
  • WORKFLOW_COMPUTE_API_KEY