Frameworks

SvelteKit

Using Workflow Studio with SvelteKit

Overview

Workflow Studio supports SvelteKit applications with a config wrapper and server-side proxy helpers.

Configuration

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

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

Configuration is placed under kit.env.workflowStudio for server-side access:

{
  kit: {
    env: {
      workflowStudio: {
        WORKFLOW_COMPUTE_BASE_URL: "...",
        WORKFLOW_TARGET_WORLD: "workflow-studio/world-remote",
      }
    }
  }
}

Server Helpers

Use these helpers in server routes:

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);
}

Webhook Proxy

Forward webhooks to the remote worker:

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());
  
  const response = await proxyWebhookFromSvelteKit({
    provider: params.provider,
    body,
    headers: Object.fromEntries(request.headers.entries()),
  });
  
  return response;
}

Production Checklist

  • Set WORKFLOW_TARGET_WORLD=workflow-studio/world-remote in deployment env
  • Configure WORKFLOW_COMPUTE_BASE_URL for worker URL
  • Configure WORKFLOW_COMPUTE_API_KEY for authentication
  • Run validate-ownership CLI check before first deployment