Skip to content
open-computeopen-computeopen-compute

Bindings (`env`)

env contains only names declared on the deployment. Version Metadata is a platform-injected read-only object: id, tag, timestamp.

export default {
async fetch(request: Request, env: Env): Promise<Response> {
const version = env.VERSION.id;
return env.AUTH.fetch(request);
},
} satisfies ExportedHandler<Env>;
{
"name": "front",
"main": "src/index.ts",
"services": [{ "binding": "AUTH", "service": "auth-worker" }],
"version_metadata": { "binding": "VERSION", "tag": "release-1" }
}

Service Bindings: default/named fetch and RPC. The target must be a uniquely resolvable Worker name in the same account; deploy time freezes a target ID. entrypoint is optional.

Member signatures for KV / R2 / D1 / DO / Queue / Workflow / Assets / Images belong on those product pages. Config grammar: configuration · bindings.

Topic Cloudflare open-compute
env.BINDING types Yes — Bindings and Service bindings Yes
Version Metadata fields Yes — version metadata id, tag, timestamp
Service Bindings Cross-region placement / global service discovery Same-platform only; default/named fetch and RPC; target admission, deployment pins, capability lifetime, and recovery are local and fail closed
Dynamic Workers / Worker Loader Loader API Native load/get, modules, entrypoint/RPC, user tails and dynamic DO facets; explicit limits and experimental controls remain unavailable
Workers for Platforms dispatcher Yes Not provided
mTLS / Rate Limit / Secrets Store / AI binding Yes Not provided

Declare worker_loaders: [{ binding: "LOADER" }] to expose the native WorkerLoader API as env.LOADER. The same get(id, callback) ID must describe immutable code; do not depend on cache hits or callback counts. Namespaces are isolated by account, Script and binding. Version rollback retains the namespace; deleting and recreating a Script gives it a new namespace. A Worker invocation permits 4 distinct children in flight, and a DO context permits 10; concurrent calls to the same child count once.

Explicit limits, including {}, are rejected. CPU, memory and subrequest budget enforcement remains unimplemented; nonempty streaming tails are rejected and experimental capabilities cannot be enabled. See behavior differences. For the certified 2026-09-08 date, the pinned Pyodide bundle is embedded in ocd, verified, and loaded from the instance’s private runtime cache. Other official child date/flag combinations retain workerd’s native version selection. Script deletion returns 409 while an executed Version retains generation background references; deletion can proceed after that generation ends. Automatic local collection of child logs is a platform feature, not Cloudflare’s default parent Workers Logs behavior.