Skip to content

Resource Kinds ​

Tamer-managed Cloudflare resources are declared on a worker under resources. Each kind expands to a Wrangler binding plus a state row keyed by derived name.

Supported kinds ​

KindConfig keyBinding type
D1d1d1_databases[]
R2r2r2_buckets[]
KVkvkv_namespaces[]
Queuesqueuesqueues.producers[]
Hyperdrivehyperdrivehyperdrive[]
Vectorizevectorizevectorize[]
AI GatewayaiGateway(no wrangler binding — account-scoped)
Pipelinespipelinespipelines[]
Workflowsworkflowsworkflows[]
Durable ObjectsdurableObjects (+ worker doMigrations)durable_objects.bindings[] + migrations[]
Secrets StoresecretsStores(store container — account-scoped)
DNS Records(stack root)(no wrangler binding)
Email Service(stack root email)Routing/Sending via API; worker resources.emailSend → send_email[]
Dispatch Namespace(stack root, wfp.namespaces)(no wrangler binding — derived name {stack}-{logical}-{env})
Worker Route(derived from tamerRoutes)(applied via API, not in wrangler.json)

See Email Service for multi-env Routing + Sending.

Adding a new resource kind ​

Every resource is wired through a single registry at src/core/registry/registry.ts. To add a new kind:

  1. Add config + state types to src/types.ts
  2. Implement the per-feature module under src/features/<kind>/
  3. Author <kind>.module.ts exporting a ResourceModule
  4. Append to resourceModules in src/core/registry/registry.ts

Every command picks the kind up automatically — no command edits needed.

See the README for per-kind configuration details and notes.

Released under the Tamer Evaluation License.