Fetch
Web Standard Fetch API source for walkerOS. Platform-agnostic (Request) => Response signature that runs on Cloudflare Workers, Vercel Edge, Deno, Bun, and Node.js 18+. Supports batch processing, configurable CORS, and pixel tracking via a 1x1 transparent GIF for GET requests.
The Fetch source is a server source in the walkerOS flow:
It receives events via the Fetch API and forwards them to your destinations. Works on any platform supporting Web Standards.
Installation
The path setting has been renamed to paths (array). The old path still works but is deprecated and will be removed in the next major version.
// Before (deprecated)
settings: { path: '/events' }
// After
settings: { paths: ['/events'] }
- Integrated
- Bundled
Configuration
This source uses the standard source config wrapper (consent, data, env, id, ...). For the shared fields see source configuration. Package-specific fields live under config.settings and are listed below.
Settings
| Property | Type | Description | More |
|---|---|---|---|
path | string | Deprecated: use paths instead | |
paths | Array<any> | Route paths to handle. String shorthand accepts GET+POST. RouteConfig allows per-route method control. | |
cors | boolean | object | CORS configuration: false = disabled, true = allow all (default), object = custom | |
maxRequestSize | integer | Maximum request body size in bytes | |
maxBatchSize | integer | Maximum events per batch request |
Mapping
This package does not define custom rule-level settings. For the standard rule fields (consent, condition, data, batch, name, policy) see mapping.
Examples
Batch POST
A fetch POST with a batch array produces one walker elb event per batched item preserving order.
Pixel GET
A fetch GET with query parameters in the URL is parsed into an elb event payload for pixel-style tracking.
POST event
A fetch POST request with a JSON body becomes a single walker elb event in a fetch-based server.
Ingest metadata
Extract request metadata and forward it through the pipeline.
Available ingest paths
| Path | Description |
|---|---|
url | Full request URL |
headers.get('name') | Via function: { fn: (req) => req.headers.get('name') } |
The Fetch API uses Request objects where headers are accessed via .get() method. Use mapping functions for header extraction.