+++ title = "Define Cloudflare Workers script resource — WASM artifact, D1 binding, environment variables" priority = 7 status = "todo" ticket_type = "task" dependencies = ["25c413", "2d1371", "d0da0b", "07cafb", "efee79"] +++ Infrastructure is managed with OpenTofu using the Cloudflare provider. Configuration lives in `infra/`. Resources include a Cloudflare Worker (API), Cloudflare D1 database (bound to the worker), and a Cloudflare Pages project (UI frontend). The Cloudflare Worker hosts the `quotesdb-api` binary compiled for the Workers runtime. It is bound to the D1 database and deployed via OpenTofu. Define the Cloudflare Workers script resource in `infra/worker.tf`: 1. `cloudflare_workers_script` resource (resolve TRIAGE ticket efee79 for correct resource name in current provider version) 2. Set the WASM artifact path (the compiled `api` binary) 3. Bind the D1 database (name must match what workers-rs expects — resolve TRIAGE ticket 07cafb) 4. Set required environment variables Every block must have a comment. - Resolve TRIAGE ticket efee79 (correct Workers resource name) before writing the resource. - Resolve TRIAGE ticket 07cafb (D1 chicken-and-egg) before wiring the D1 binding. - The D1 binding name in the Worker must match the binding name in the workers-rs code. Run from the `infra/` directory: ```sh tofu validate tofu plan ``` `feat(quotesdb): define Cloudflare Workers script resource in OpenTofu`