pi-cloudflare 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (410) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +67 -0
  3. package/bin/setup.mjs +103 -0
  4. package/dist/auth-flow.d.ts +15 -0
  5. package/dist/auth-flow.d.ts.map +1 -0
  6. package/dist/auth-flow.js +90 -0
  7. package/dist/auth-flow.js.map +1 -0
  8. package/dist/client.d.ts +18 -0
  9. package/dist/client.d.ts.map +1 -0
  10. package/dist/client.js +47 -0
  11. package/dist/client.js.map +1 -0
  12. package/dist/config.d.ts +13 -0
  13. package/dist/config.d.ts.map +1 -0
  14. package/dist/config.js +10 -0
  15. package/dist/config.js.map +1 -0
  16. package/dist/index.d.ts +24 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +109 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/oauth.d.ts +44 -0
  21. package/dist/oauth.d.ts.map +1 -0
  22. package/dist/oauth.js +135 -0
  23. package/dist/oauth.js.map +1 -0
  24. package/dist/proxy.d.ts +29 -0
  25. package/dist/proxy.d.ts.map +1 -0
  26. package/dist/proxy.js +39 -0
  27. package/dist/proxy.js.map +1 -0
  28. package/dist/servers.d.ts +19 -0
  29. package/dist/servers.d.ts.map +1 -0
  30. package/dist/servers.js +40 -0
  31. package/dist/servers.js.map +1 -0
  32. package/dist/token-store.d.ts +23 -0
  33. package/dist/token-store.d.ts.map +1 -0
  34. package/dist/token-store.js +47 -0
  35. package/dist/token-store.js.map +1 -0
  36. package/package.json +67 -0
  37. package/skills/agents-sdk/SKILL.md +221 -0
  38. package/skills/agents-sdk/references/browse-the-web.md +63 -0
  39. package/skills/agents-sdk/references/callable.md +92 -0
  40. package/skills/agents-sdk/references/client-sdk.md +110 -0
  41. package/skills/agents-sdk/references/codemode.md +110 -0
  42. package/skills/agents-sdk/references/configuration.md +72 -0
  43. package/skills/agents-sdk/references/durable-execution.md +51 -0
  44. package/skills/agents-sdk/references/email.md +146 -0
  45. package/skills/agents-sdk/references/human-in-the-loop.md +67 -0
  46. package/skills/agents-sdk/references/mcp.md +188 -0
  47. package/skills/agents-sdk/references/observability.md +44 -0
  48. package/skills/agents-sdk/references/queue-retries.md +79 -0
  49. package/skills/agents-sdk/references/routing.md +75 -0
  50. package/skills/agents-sdk/references/server-driven-messages.md +63 -0
  51. package/skills/agents-sdk/references/state-scheduling.md +171 -0
  52. package/skills/agents-sdk/references/streaming-chat.md +198 -0
  53. package/skills/agents-sdk/references/think.md +112 -0
  54. package/skills/agents-sdk/references/voice.md +68 -0
  55. package/skills/agents-sdk/references/webhooks-push.md +86 -0
  56. package/skills/agents-sdk/references/workflows.md +132 -0
  57. package/skills/cloudflare/SKILL.md +248 -0
  58. package/skills/cloudflare/references/agents-sdk/README.md +89 -0
  59. package/skills/cloudflare/references/agents-sdk/api.md +190 -0
  60. package/skills/cloudflare/references/agents-sdk/configuration.md +182 -0
  61. package/skills/cloudflare/references/agents-sdk/gotchas.md +158 -0
  62. package/skills/cloudflare/references/agents-sdk/patterns.md +192 -0
  63. package/skills/cloudflare/references/ai-gateway/README.md +175 -0
  64. package/skills/cloudflare/references/ai-gateway/configuration.md +111 -0
  65. package/skills/cloudflare/references/ai-gateway/dynamic-routing.md +82 -0
  66. package/skills/cloudflare/references/ai-gateway/features.md +96 -0
  67. package/skills/cloudflare/references/ai-gateway/sdk-integration.md +114 -0
  68. package/skills/cloudflare/references/ai-gateway/troubleshooting.md +88 -0
  69. package/skills/cloudflare/references/ai-search/README.md +138 -0
  70. package/skills/cloudflare/references/ai-search/api.md +87 -0
  71. package/skills/cloudflare/references/ai-search/configuration.md +88 -0
  72. package/skills/cloudflare/references/ai-search/gotchas.md +81 -0
  73. package/skills/cloudflare/references/ai-search/patterns.md +85 -0
  74. package/skills/cloudflare/references/analytics-engine/README.md +94 -0
  75. package/skills/cloudflare/references/analytics-engine/api.md +112 -0
  76. package/skills/cloudflare/references/analytics-engine/configuration.md +112 -0
  77. package/skills/cloudflare/references/analytics-engine/gotchas.md +85 -0
  78. package/skills/cloudflare/references/analytics-engine/patterns.md +83 -0
  79. package/skills/cloudflare/references/api/README.md +66 -0
  80. package/skills/cloudflare/references/api/api.md +204 -0
  81. package/skills/cloudflare/references/api/configuration.md +160 -0
  82. package/skills/cloudflare/references/api/gotchas.md +225 -0
  83. package/skills/cloudflare/references/api/patterns.md +204 -0
  84. package/skills/cloudflare/references/api-shield/README.md +44 -0
  85. package/skills/cloudflare/references/api-shield/api.md +141 -0
  86. package/skills/cloudflare/references/api-shield/configuration.md +192 -0
  87. package/skills/cloudflare/references/api-shield/gotchas.md +125 -0
  88. package/skills/cloudflare/references/api-shield/patterns.md +180 -0
  89. package/skills/cloudflare/references/argo-smart-routing/README.md +90 -0
  90. package/skills/cloudflare/references/argo-smart-routing/api.md +240 -0
  91. package/skills/cloudflare/references/argo-smart-routing/configuration.md +197 -0
  92. package/skills/cloudflare/references/argo-smart-routing/gotchas.md +111 -0
  93. package/skills/cloudflare/references/argo-smart-routing/patterns.md +104 -0
  94. package/skills/cloudflare/references/artifacts/README.md +79 -0
  95. package/skills/cloudflare/references/artifacts/api.md +128 -0
  96. package/skills/cloudflare/references/artifacts/configuration.md +92 -0
  97. package/skills/cloudflare/references/bindings/README.md +122 -0
  98. package/skills/cloudflare/references/bindings/api.md +203 -0
  99. package/skills/cloudflare/references/bindings/configuration.md +188 -0
  100. package/skills/cloudflare/references/bindings/gotchas.md +208 -0
  101. package/skills/cloudflare/references/bindings/patterns.md +200 -0
  102. package/skills/cloudflare/references/bot-management/README.md +94 -0
  103. package/skills/cloudflare/references/bot-management/api.md +169 -0
  104. package/skills/cloudflare/references/bot-management/configuration.md +163 -0
  105. package/skills/cloudflare/references/bot-management/gotchas.md +114 -0
  106. package/skills/cloudflare/references/bot-management/patterns.md +182 -0
  107. package/skills/cloudflare/references/browser-rendering/README.md +78 -0
  108. package/skills/cloudflare/references/browser-rendering/api.md +108 -0
  109. package/skills/cloudflare/references/browser-rendering/configuration.md +78 -0
  110. package/skills/cloudflare/references/browser-rendering/gotchas.md +88 -0
  111. package/skills/cloudflare/references/browser-rendering/patterns.md +91 -0
  112. package/skills/cloudflare/references/c3/README.md +111 -0
  113. package/skills/cloudflare/references/c3/api.md +71 -0
  114. package/skills/cloudflare/references/c3/configuration.md +81 -0
  115. package/skills/cloudflare/references/c3/gotchas.md +92 -0
  116. package/skills/cloudflare/references/c3/patterns.md +82 -0
  117. package/skills/cloudflare/references/cache-reserve/README.md +147 -0
  118. package/skills/cloudflare/references/cache-reserve/api.md +194 -0
  119. package/skills/cloudflare/references/cache-reserve/configuration.md +169 -0
  120. package/skills/cloudflare/references/cache-reserve/gotchas.md +132 -0
  121. package/skills/cloudflare/references/cache-reserve/patterns.md +197 -0
  122. package/skills/cloudflare/references/containers/README.md +85 -0
  123. package/skills/cloudflare/references/containers/api.md +187 -0
  124. package/skills/cloudflare/references/containers/configuration.md +188 -0
  125. package/skills/cloudflare/references/containers/gotchas.md +178 -0
  126. package/skills/cloudflare/references/containers/patterns.md +202 -0
  127. package/skills/cloudflare/references/cron-triggers/README.md +99 -0
  128. package/skills/cloudflare/references/cron-triggers/api.md +196 -0
  129. package/skills/cloudflare/references/cron-triggers/configuration.md +180 -0
  130. package/skills/cloudflare/references/cron-triggers/gotchas.md +199 -0
  131. package/skills/cloudflare/references/cron-triggers/patterns.md +190 -0
  132. package/skills/cloudflare/references/d1/README.md +133 -0
  133. package/skills/cloudflare/references/d1/api.md +196 -0
  134. package/skills/cloudflare/references/d1/configuration.md +191 -0
  135. package/skills/cloudflare/references/d1/gotchas.md +98 -0
  136. package/skills/cloudflare/references/d1/patterns.md +189 -0
  137. package/skills/cloudflare/references/ddos/README.md +41 -0
  138. package/skills/cloudflare/references/ddos/api.md +164 -0
  139. package/skills/cloudflare/references/ddos/configuration.md +93 -0
  140. package/skills/cloudflare/references/ddos/gotchas.md +107 -0
  141. package/skills/cloudflare/references/ddos/patterns.md +174 -0
  142. package/skills/cloudflare/references/do-storage/README.md +75 -0
  143. package/skills/cloudflare/references/do-storage/api.md +102 -0
  144. package/skills/cloudflare/references/do-storage/configuration.md +112 -0
  145. package/skills/cloudflare/references/do-storage/gotchas.md +150 -0
  146. package/skills/cloudflare/references/do-storage/patterns.md +194 -0
  147. package/skills/cloudflare/references/do-storage/testing.md +183 -0
  148. package/skills/cloudflare/references/durable-objects/README.md +185 -0
  149. package/skills/cloudflare/references/durable-objects/api.md +187 -0
  150. package/skills/cloudflare/references/durable-objects/configuration.md +160 -0
  151. package/skills/cloudflare/references/durable-objects/gotchas.md +197 -0
  152. package/skills/cloudflare/references/durable-objects/patterns.md +201 -0
  153. package/skills/cloudflare/references/email-routing/README.md +89 -0
  154. package/skills/cloudflare/references/email-routing/api.md +195 -0
  155. package/skills/cloudflare/references/email-routing/configuration.md +186 -0
  156. package/skills/cloudflare/references/email-routing/gotchas.md +196 -0
  157. package/skills/cloudflare/references/email-routing/patterns.md +229 -0
  158. package/skills/cloudflare/references/email-workers/README.md +151 -0
  159. package/skills/cloudflare/references/email-workers/api.md +237 -0
  160. package/skills/cloudflare/references/email-workers/configuration.md +112 -0
  161. package/skills/cloudflare/references/email-workers/gotchas.md +125 -0
  162. package/skills/cloudflare/references/email-workers/patterns.md +102 -0
  163. package/skills/cloudflare/references/flagship/README.md +59 -0
  164. package/skills/cloudflare/references/flagship/api.md +390 -0
  165. package/skills/cloudflare/references/flagship/configuration.md +202 -0
  166. package/skills/cloudflare/references/flagship/gotchas.md +178 -0
  167. package/skills/cloudflare/references/flagship/patterns.md +469 -0
  168. package/skills/cloudflare/references/graphql-api/README.md +147 -0
  169. package/skills/cloudflare/references/graphql-api/api.md +175 -0
  170. package/skills/cloudflare/references/graphql-api/configuration.md +118 -0
  171. package/skills/cloudflare/references/graphql-api/gotchas.md +110 -0
  172. package/skills/cloudflare/references/graphql-api/patterns.md +225 -0
  173. package/skills/cloudflare/references/hyperdrive/README.md +82 -0
  174. package/skills/cloudflare/references/hyperdrive/api.md +143 -0
  175. package/skills/cloudflare/references/hyperdrive/configuration.md +159 -0
  176. package/skills/cloudflare/references/hyperdrive/gotchas.md +77 -0
  177. package/skills/cloudflare/references/hyperdrive/patterns.md +190 -0
  178. package/skills/cloudflare/references/images/README.md +61 -0
  179. package/skills/cloudflare/references/images/api.md +96 -0
  180. package/skills/cloudflare/references/images/configuration.md +211 -0
  181. package/skills/cloudflare/references/images/gotchas.md +99 -0
  182. package/skills/cloudflare/references/images/patterns.md +115 -0
  183. package/skills/cloudflare/references/kv/README.md +89 -0
  184. package/skills/cloudflare/references/kv/api.md +160 -0
  185. package/skills/cloudflare/references/kv/configuration.md +144 -0
  186. package/skills/cloudflare/references/kv/gotchas.md +131 -0
  187. package/skills/cloudflare/references/kv/patterns.md +196 -0
  188. package/skills/cloudflare/references/miniflare/README.md +105 -0
  189. package/skills/cloudflare/references/miniflare/api.md +187 -0
  190. package/skills/cloudflare/references/miniflare/configuration.md +173 -0
  191. package/skills/cloudflare/references/miniflare/gotchas.md +160 -0
  192. package/skills/cloudflare/references/miniflare/patterns.md +181 -0
  193. package/skills/cloudflare/references/network-interconnect/README.md +99 -0
  194. package/skills/cloudflare/references/network-interconnect/api.md +199 -0
  195. package/skills/cloudflare/references/network-interconnect/configuration.md +114 -0
  196. package/skills/cloudflare/references/network-interconnect/gotchas.md +165 -0
  197. package/skills/cloudflare/references/network-interconnect/patterns.md +166 -0
  198. package/skills/cloudflare/references/observability/README.md +88 -0
  199. package/skills/cloudflare/references/observability/api.md +164 -0
  200. package/skills/cloudflare/references/observability/configuration.md +169 -0
  201. package/skills/cloudflare/references/observability/gotchas.md +115 -0
  202. package/skills/cloudflare/references/observability/patterns.md +105 -0
  203. package/skills/cloudflare/references/pages/README.md +88 -0
  204. package/skills/cloudflare/references/pages/api.md +204 -0
  205. package/skills/cloudflare/references/pages/configuration.md +201 -0
  206. package/skills/cloudflare/references/pages/gotchas.md +203 -0
  207. package/skills/cloudflare/references/pages/patterns.md +204 -0
  208. package/skills/cloudflare/references/pages-functions/README.md +98 -0
  209. package/skills/cloudflare/references/pages-functions/api.md +143 -0
  210. package/skills/cloudflare/references/pages-functions/configuration.md +122 -0
  211. package/skills/cloudflare/references/pages-functions/gotchas.md +94 -0
  212. package/skills/cloudflare/references/pages-functions/patterns.md +137 -0
  213. package/skills/cloudflare/references/pipelines/README.md +90 -0
  214. package/skills/cloudflare/references/pipelines/api.md +124 -0
  215. package/skills/cloudflare/references/pipelines/configuration.md +155 -0
  216. package/skills/cloudflare/references/pipelines/gotchas.md +58 -0
  217. package/skills/cloudflare/references/pipelines/patterns.md +130 -0
  218. package/skills/cloudflare/references/pulumi/README.md +100 -0
  219. package/skills/cloudflare/references/pulumi/api.md +200 -0
  220. package/skills/cloudflare/references/pulumi/configuration.md +198 -0
  221. package/skills/cloudflare/references/pulumi/gotchas.md +181 -0
  222. package/skills/cloudflare/references/pulumi/patterns.md +191 -0
  223. package/skills/cloudflare/references/queues/README.md +96 -0
  224. package/skills/cloudflare/references/queues/api.md +206 -0
  225. package/skills/cloudflare/references/queues/configuration.md +144 -0
  226. package/skills/cloudflare/references/queues/gotchas.md +206 -0
  227. package/skills/cloudflare/references/queues/patterns.md +220 -0
  228. package/skills/cloudflare/references/r2/README.md +95 -0
  229. package/skills/cloudflare/references/r2/api.md +200 -0
  230. package/skills/cloudflare/references/r2/configuration.md +165 -0
  231. package/skills/cloudflare/references/r2/gotchas.md +190 -0
  232. package/skills/cloudflare/references/r2/patterns.md +193 -0
  233. package/skills/cloudflare/references/r2-data-catalog/README.md +75 -0
  234. package/skills/cloudflare/references/r2-data-catalog/api.md +122 -0
  235. package/skills/cloudflare/references/r2-data-catalog/configuration.md +98 -0
  236. package/skills/cloudflare/references/r2-data-catalog/gotchas.md +55 -0
  237. package/skills/cloudflare/references/r2-data-catalog/patterns.md +122 -0
  238. package/skills/cloudflare/references/r2-sql/README.md +64 -0
  239. package/skills/cloudflare/references/r2-sql/api.md +121 -0
  240. package/skills/cloudflare/references/r2-sql/configuration.md +50 -0
  241. package/skills/cloudflare/references/r2-sql/gotchas.md +39 -0
  242. package/skills/cloudflare/references/r2-sql/patterns.md +118 -0
  243. package/skills/cloudflare/references/realtime-sfu/README.md +65 -0
  244. package/skills/cloudflare/references/realtime-sfu/api.md +158 -0
  245. package/skills/cloudflare/references/realtime-sfu/configuration.md +137 -0
  246. package/skills/cloudflare/references/realtime-sfu/gotchas.md +133 -0
  247. package/skills/cloudflare/references/realtime-sfu/patterns.md +174 -0
  248. package/skills/cloudflare/references/realtimekit/README.md +113 -0
  249. package/skills/cloudflare/references/realtimekit/api.md +212 -0
  250. package/skills/cloudflare/references/realtimekit/configuration.md +203 -0
  251. package/skills/cloudflare/references/realtimekit/gotchas.md +169 -0
  252. package/skills/cloudflare/references/realtimekit/patterns.md +223 -0
  253. package/skills/cloudflare/references/sandbox/README.md +96 -0
  254. package/skills/cloudflare/references/sandbox/api.md +198 -0
  255. package/skills/cloudflare/references/sandbox/configuration.md +143 -0
  256. package/skills/cloudflare/references/sandbox/gotchas.md +194 -0
  257. package/skills/cloudflare/references/sandbox/patterns.md +201 -0
  258. package/skills/cloudflare/references/secrets-store/README.md +74 -0
  259. package/skills/cloudflare/references/secrets-store/api.md +200 -0
  260. package/skills/cloudflare/references/secrets-store/configuration.md +185 -0
  261. package/skills/cloudflare/references/secrets-store/gotchas.md +97 -0
  262. package/skills/cloudflare/references/secrets-store/patterns.md +207 -0
  263. package/skills/cloudflare/references/smart-placement/README.md +138 -0
  264. package/skills/cloudflare/references/smart-placement/api.md +183 -0
  265. package/skills/cloudflare/references/smart-placement/configuration.md +196 -0
  266. package/skills/cloudflare/references/smart-placement/gotchas.md +174 -0
  267. package/skills/cloudflare/references/smart-placement/patterns.md +183 -0
  268. package/skills/cloudflare/references/snippets/README.md +68 -0
  269. package/skills/cloudflare/references/snippets/api.md +198 -0
  270. package/skills/cloudflare/references/snippets/configuration.md +227 -0
  271. package/skills/cloudflare/references/snippets/gotchas.md +86 -0
  272. package/skills/cloudflare/references/snippets/patterns.md +135 -0
  273. package/skills/cloudflare/references/spectrum/README.md +52 -0
  274. package/skills/cloudflare/references/spectrum/api.md +181 -0
  275. package/skills/cloudflare/references/spectrum/configuration.md +194 -0
  276. package/skills/cloudflare/references/spectrum/gotchas.md +145 -0
  277. package/skills/cloudflare/references/spectrum/patterns.md +196 -0
  278. package/skills/cloudflare/references/static-assets/README.md +65 -0
  279. package/skills/cloudflare/references/static-assets/api.md +199 -0
  280. package/skills/cloudflare/references/static-assets/configuration.md +186 -0
  281. package/skills/cloudflare/references/static-assets/gotchas.md +162 -0
  282. package/skills/cloudflare/references/static-assets/patterns.md +189 -0
  283. package/skills/cloudflare/references/stream/README.md +114 -0
  284. package/skills/cloudflare/references/stream/api-live.md +195 -0
  285. package/skills/cloudflare/references/stream/api.md +199 -0
  286. package/skills/cloudflare/references/stream/configuration.md +141 -0
  287. package/skills/cloudflare/references/stream/gotchas.md +130 -0
  288. package/skills/cloudflare/references/stream/patterns.md +184 -0
  289. package/skills/cloudflare/references/tail-workers/README.md +89 -0
  290. package/skills/cloudflare/references/tail-workers/api.md +200 -0
  291. package/skills/cloudflare/references/tail-workers/configuration.md +176 -0
  292. package/skills/cloudflare/references/tail-workers/gotchas.md +192 -0
  293. package/skills/cloudflare/references/tail-workers/patterns.md +180 -0
  294. package/skills/cloudflare/references/terraform/README.md +102 -0
  295. package/skills/cloudflare/references/terraform/api.md +178 -0
  296. package/skills/cloudflare/references/terraform/configuration.md +197 -0
  297. package/skills/cloudflare/references/terraform/gotchas.md +150 -0
  298. package/skills/cloudflare/references/terraform/patterns.md +174 -0
  299. package/skills/cloudflare/references/tunnel/README.md +129 -0
  300. package/skills/cloudflare/references/tunnel/api.md +193 -0
  301. package/skills/cloudflare/references/tunnel/configuration.md +157 -0
  302. package/skills/cloudflare/references/tunnel/gotchas.md +147 -0
  303. package/skills/cloudflare/references/tunnel/networking.md +168 -0
  304. package/skills/cloudflare/references/tunnel/patterns.md +192 -0
  305. package/skills/cloudflare/references/turn/README.md +82 -0
  306. package/skills/cloudflare/references/turn/api.md +239 -0
  307. package/skills/cloudflare/references/turn/configuration.md +179 -0
  308. package/skills/cloudflare/references/turn/gotchas.md +231 -0
  309. package/skills/cloudflare/references/turn/patterns.md +213 -0
  310. package/skills/cloudflare/references/turnstile/README.md +99 -0
  311. package/skills/cloudflare/references/turnstile/api.md +240 -0
  312. package/skills/cloudflare/references/turnstile/configuration.md +222 -0
  313. package/skills/cloudflare/references/turnstile/gotchas.md +218 -0
  314. package/skills/cloudflare/references/turnstile/patterns.md +193 -0
  315. package/skills/cloudflare/references/vectorize/README.md +133 -0
  316. package/skills/cloudflare/references/vectorize/api.md +88 -0
  317. package/skills/cloudflare/references/vectorize/configuration.md +88 -0
  318. package/skills/cloudflare/references/vectorize/gotchas.md +76 -0
  319. package/skills/cloudflare/references/vectorize/patterns.md +90 -0
  320. package/skills/cloudflare/references/waf/README.md +113 -0
  321. package/skills/cloudflare/references/waf/api.md +202 -0
  322. package/skills/cloudflare/references/waf/configuration.md +203 -0
  323. package/skills/cloudflare/references/waf/gotchas.md +204 -0
  324. package/skills/cloudflare/references/waf/patterns.md +197 -0
  325. package/skills/cloudflare/references/web-analytics/README.md +141 -0
  326. package/skills/cloudflare/references/web-analytics/configuration.md +76 -0
  327. package/skills/cloudflare/references/web-analytics/gotchas.md +82 -0
  328. package/skills/cloudflare/references/web-analytics/integration.md +60 -0
  329. package/skills/cloudflare/references/web-analytics/patterns.md +91 -0
  330. package/skills/cloudflare/references/workerd/README.md +78 -0
  331. package/skills/cloudflare/references/workerd/api.md +185 -0
  332. package/skills/cloudflare/references/workerd/configuration.md +183 -0
  333. package/skills/cloudflare/references/workerd/gotchas.md +139 -0
  334. package/skills/cloudflare/references/workerd/patterns.md +192 -0
  335. package/skills/cloudflare/references/workers/README.md +108 -0
  336. package/skills/cloudflare/references/workers/api.md +195 -0
  337. package/skills/cloudflare/references/workers/configuration.md +185 -0
  338. package/skills/cloudflare/references/workers/frameworks.md +197 -0
  339. package/skills/cloudflare/references/workers/gotchas.md +137 -0
  340. package/skills/cloudflare/references/workers/patterns.md +198 -0
  341. package/skills/cloudflare/references/workers-ai/README.md +197 -0
  342. package/skills/cloudflare/references/workers-ai/api.md +112 -0
  343. package/skills/cloudflare/references/workers-ai/configuration.md +97 -0
  344. package/skills/cloudflare/references/workers-ai/gotchas.md +114 -0
  345. package/skills/cloudflare/references/workers-ai/patterns.md +120 -0
  346. package/skills/cloudflare/references/workers-for-platforms/README.md +89 -0
  347. package/skills/cloudflare/references/workers-for-platforms/api.md +196 -0
  348. package/skills/cloudflare/references/workers-for-platforms/configuration.md +167 -0
  349. package/skills/cloudflare/references/workers-for-platforms/gotchas.md +134 -0
  350. package/skills/cloudflare/references/workers-for-platforms/patterns.md +188 -0
  351. package/skills/cloudflare/references/workers-playground/README.md +127 -0
  352. package/skills/cloudflare/references/workers-playground/api.md +101 -0
  353. package/skills/cloudflare/references/workers-playground/configuration.md +163 -0
  354. package/skills/cloudflare/references/workers-playground/gotchas.md +88 -0
  355. package/skills/cloudflare/references/workers-playground/patterns.md +132 -0
  356. package/skills/cloudflare/references/workers-vpc/README.md +127 -0
  357. package/skills/cloudflare/references/workers-vpc/api.md +202 -0
  358. package/skills/cloudflare/references/workers-vpc/configuration.md +147 -0
  359. package/skills/cloudflare/references/workers-vpc/gotchas.md +167 -0
  360. package/skills/cloudflare/references/workers-vpc/patterns.md +209 -0
  361. package/skills/cloudflare/references/workflows/README.md +77 -0
  362. package/skills/cloudflare/references/workflows/api.md +218 -0
  363. package/skills/cloudflare/references/workflows/configuration.md +152 -0
  364. package/skills/cloudflare/references/workflows/gotchas.md +90 -0
  365. package/skills/cloudflare/references/workflows/patterns.md +175 -0
  366. package/skills/cloudflare/references/wrangler/README.md +135 -0
  367. package/skills/cloudflare/references/wrangler/api.md +188 -0
  368. package/skills/cloudflare/references/wrangler/configuration.md +197 -0
  369. package/skills/cloudflare/references/wrangler/gotchas.md +197 -0
  370. package/skills/cloudflare/references/wrangler/patterns.md +209 -0
  371. package/skills/cloudflare/references/zaraz/IMPLEMENTATION_SUMMARY.md +121 -0
  372. package/skills/cloudflare/references/zaraz/README.md +111 -0
  373. package/skills/cloudflare/references/zaraz/api.md +112 -0
  374. package/skills/cloudflare/references/zaraz/configuration.md +90 -0
  375. package/skills/cloudflare/references/zaraz/gotchas.md +81 -0
  376. package/skills/cloudflare/references/zaraz/patterns.md +74 -0
  377. package/skills/cloudflare-email-service/SKILL.md +103 -0
  378. package/skills/cloudflare-email-service/references/cli-and-mcp.md +125 -0
  379. package/skills/cloudflare-email-service/references/deliverability.md +285 -0
  380. package/skills/cloudflare-email-service/references/rest-api.md +184 -0
  381. package/skills/cloudflare-email-service/references/routing.md +199 -0
  382. package/skills/cloudflare-email-service/references/sending.md +252 -0
  383. package/skills/cloudflare-one/SKILL.md +176 -0
  384. package/skills/cloudflare-one-migrations/SKILL.md +110 -0
  385. package/skills/durable-objects/SKILL.md +186 -0
  386. package/skills/durable-objects/references/rules.md +295 -0
  387. package/skills/durable-objects/references/testing.md +264 -0
  388. package/skills/durable-objects/references/workers.md +346 -0
  389. package/skills/sandbox-migrate-to-next/SKILL.md +185 -0
  390. package/skills/sandbox-next/SKILL.md +91 -0
  391. package/skills/sandbox-next/references/api-quick-ref.md +94 -0
  392. package/skills/sandbox-next/references/examples.md +15 -0
  393. package/skills/sandbox-stable/SKILL.md +110 -0
  394. package/skills/turnstile-spin/README.md +51 -0
  395. package/skills/turnstile-spin/SKILL.md +330 -0
  396. package/skills/turnstile-spin/references/astro.md +199 -0
  397. package/skills/turnstile-spin/references/hugo.md +114 -0
  398. package/skills/turnstile-spin/references/nextjs-app.md +261 -0
  399. package/skills/turnstile-spin/references/nextjs-pages.md +82 -0
  400. package/skills/turnstile-spin/references/sveltekit.md +191 -0
  401. package/skills/turnstile-spin/references/vanilla-html.md +157 -0
  402. package/skills/turnstile-spin/scripts/auth-probe.sh +285 -0
  403. package/skills/turnstile-spin/scripts/persist-skill.sh +114 -0
  404. package/skills/turnstile-spin/scripts/validate.sh +137 -0
  405. package/skills/turnstile-spin/scripts/widget-create.sh +121 -0
  406. package/skills/turnstile-spin/tests/validation.md +62 -0
  407. package/skills/workers-best-practices/SKILL.md +127 -0
  408. package/skills/workers-best-practices/references/review.md +174 -0
  409. package/skills/workers-best-practices/references/rules.md +467 -0
  410. package/skills/wrangler/SKILL.md +922 -0
@@ -0,0 +1,113 @@
1
+ # Cloudflare WAF Expert Skill Reference
2
+
3
+ **Expertise**: Cloudflare Web Application Firewall (WAF) configuration, custom rules, managed rulesets, rate limiting, attack detection, and API integration
4
+
5
+ ## Overview
6
+
7
+ Cloudflare WAF protects web applications from attacks through managed rulesets and custom rules.
8
+
9
+ **Detection (Managed Rulesets)**
10
+ - Pre-configured rules maintained by Cloudflare
11
+ - CVE-based rules, OWASP Top 10 coverage
12
+ - Three main rulesets: Cloudflare Managed, OWASP CRS, Exposed Credentials
13
+ - Actions: log, block, challenge, js_challenge, managed_challenge
14
+
15
+ **Mitigation (Custom Rules & Rate Limiting)**
16
+ - Custom expressions using Wirefilter syntax
17
+ - Attack score-based blocking (`cf.waf.score`)
18
+ - Rate limiting with per-IP, per-user, or custom characteristics
19
+ - Actions: block, challenge, js_challenge, managed_challenge, log, skip
20
+
21
+ ## Quick Start
22
+
23
+ ### Deploy Cloudflare Managed Ruleset
24
+ ```typescript
25
+ import Cloudflare from 'cloudflare';
26
+
27
+ const client = new Cloudflare({ apiToken: process.env.CF_API_TOKEN });
28
+
29
+ // Deploy managed ruleset to zone
30
+ await client.rulesets.create({
31
+ zone_id: 'zone_id',
32
+ kind: 'zone',
33
+ phase: 'http_request_firewall_managed',
34
+ name: 'Deploy Cloudflare Managed Ruleset',
35
+ rules: [{
36
+ action: 'execute',
37
+ action_parameters: {
38
+ id: 'efb7b8c949ac4650a09736fc376e9aee', // Cloudflare Managed Ruleset
39
+ },
40
+ expression: 'true',
41
+ enabled: true,
42
+ }],
43
+ });
44
+ ```
45
+
46
+ ### Create Custom Rule
47
+ ```typescript
48
+ // Block requests with attack score >= 40
49
+ await client.rulesets.create({
50
+ zone_id: 'zone_id',
51
+ kind: 'zone',
52
+ phase: 'http_request_firewall_custom',
53
+ name: 'Custom WAF Rules',
54
+ rules: [{
55
+ action: 'block',
56
+ expression: 'cf.waf.score gt 40',
57
+ description: 'Block high attack scores',
58
+ enabled: true,
59
+ }],
60
+ });
61
+ ```
62
+
63
+ ### Create Rate Limit
64
+ ```typescript
65
+ await client.rulesets.create({
66
+ zone_id: 'zone_id',
67
+ kind: 'zone',
68
+ phase: 'http_ratelimit',
69
+ name: 'API Rate Limits',
70
+ rules: [{
71
+ action: 'block',
72
+ expression: 'http.request.uri.path eq "/api/login"',
73
+ action_parameters: {
74
+ ratelimit: {
75
+ characteristics: ['cf.colo.id', 'ip.src'],
76
+ period: 60,
77
+ requests_per_period: 10,
78
+ mitigation_timeout: 600,
79
+ },
80
+ },
81
+ enabled: true,
82
+ }],
83
+ });
84
+ ```
85
+
86
+ ## Managed Ruleset Quick Reference
87
+
88
+ | Ruleset Name | ID | Coverage |
89
+ |--------------|----|---------|
90
+ | Cloudflare Managed | `efb7b8c949ac4650a09736fc376e9aee` | OWASP Top 10, CVEs |
91
+ | OWASP Core Ruleset | `4814384a9e5d4991b9815dcfc25d2f1f` | OWASP ModSecurity CRS |
92
+ | Exposed Credentials Check | `c2e184081120413c86c3ab7e14069605` | Credential stuffing |
93
+
94
+ ## Phases
95
+
96
+ WAF rules execute in specific phases:
97
+ - `http_request_firewall_managed` - Managed rulesets
98
+ - `http_request_firewall_custom` - Custom rules
99
+ - `http_ratelimit` - Rate limiting rules
100
+ - `http_request_sbfm` - Super Bot Fight Mode (Pro+)
101
+
102
+ ## Reading Order
103
+
104
+ 1. **[api.md](api.md)** - SDK methods, expressions, actions, parameters
105
+ 2. **[configuration.md](configuration.md)** - Setup with Wrangler, Terraform, Pulumi
106
+ 3. **[patterns.md](patterns.md)** - Common patterns: deploy managed, rate limiting, skip, override
107
+ 4. **[gotchas.md](gotchas.md)** - Execution order, limits, expression errors
108
+
109
+ ## See Also
110
+
111
+ - [Cloudflare WAF Docs](https://developers.cloudflare.com/waf/)
112
+ - [Ruleset Engine](https://developers.cloudflare.com/ruleset-engine/)
113
+ - [Expression Reference](https://developers.cloudflare.com/ruleset-engine/rules-language/)
@@ -0,0 +1,202 @@
1
+ # API Reference
2
+
3
+ ## SDK Setup
4
+
5
+ ```typescript
6
+ import Cloudflare from 'cloudflare';
7
+
8
+ const client = new Cloudflare({
9
+ apiToken: process.env.CF_API_TOKEN,
10
+ });
11
+ ```
12
+
13
+ ## Core Methods
14
+
15
+ ```typescript
16
+ // List rulesets
17
+ await client.rulesets.list({ zone_id: 'zone_id', phase: 'http_request_firewall_managed' });
18
+
19
+ // Get ruleset
20
+ await client.rulesets.get({ zone_id: 'zone_id', ruleset_id: 'ruleset_id' });
21
+
22
+ // Create ruleset
23
+ await client.rulesets.create({
24
+ zone_id: 'zone_id',
25
+ kind: 'zone',
26
+ phase: 'http_request_firewall_custom',
27
+ name: 'Custom WAF Rules',
28
+ rules: [{ action: 'block', expression: 'cf.waf.score gt 40', enabled: true }],
29
+ });
30
+
31
+ // Update ruleset (include rule id to keep existing, omit id for new rules)
32
+ await client.rulesets.update({
33
+ zone_id: 'zone_id',
34
+ ruleset_id: 'ruleset_id',
35
+ rules: [
36
+ { id: 'rule_id', action: 'block', expression: 'cf.waf.score gt 40', enabled: true },
37
+ { action: 'challenge', expression: 'http.request.uri.path contains "/admin"', enabled: true },
38
+ ],
39
+ });
40
+
41
+ // Delete ruleset
42
+ await client.rulesets.delete({ zone_id: 'zone_id', ruleset_id: 'ruleset_id' });
43
+ ```
44
+
45
+ ## Actions & Phases
46
+
47
+ ### Actions by Phase
48
+
49
+ | Action | Custom | Managed | Rate Limit | Description |
50
+ |--------|--------|---------|------------|-------------|
51
+ | `block` | ✅ | ❌ | ✅ | Block request with 403 |
52
+ | `challenge` | ✅ | ❌ | ✅ | Show CAPTCHA challenge |
53
+ | `js_challenge` | ✅ | ❌ | ✅ | JS-based challenge |
54
+ | `managed_challenge` | ✅ | ❌ | ✅ | Smart challenge (recommended) |
55
+ | `log` | ✅ | ❌ | ✅ | Log only, don't block |
56
+ | `skip` | ✅ | ❌ | ❌ | Skip rule evaluation |
57
+ | `execute` | ❌ | ✅ | ❌ | Deploy managed ruleset |
58
+
59
+ ### Phases (Execution Order)
60
+
61
+ 1. `http_request_firewall_custom` - Custom rules (first line of defense)
62
+ 2. `http_request_firewall_managed` - Managed rulesets (pre-configured protection)
63
+ 3. `http_ratelimit` - Rate limiting (request throttling)
64
+ 4. `http_request_sbfm` - Super Bot Fight Mode (Pro+ only)
65
+
66
+ ## Expression Syntax
67
+
68
+ ### Fields
69
+
70
+ ```typescript
71
+ // Request properties
72
+ http.request.method // GET, POST, etc.
73
+ http.request.uri.path // /api/users
74
+ http.host // example.com
75
+
76
+ // IP and Geolocation
77
+ ip.src // 192.0.2.1
78
+ ip.geoip.country // US, GB, etc.
79
+ ip.geoip.continent // NA, EU, etc.
80
+
81
+ // Attack detection
82
+ cf.waf.score // 0-100 attack score
83
+ cf.waf.score.sqli // SQL injection score
84
+ cf.waf.score.xss // XSS score
85
+
86
+ // Headers & Cookies
87
+ http.request.headers["authorization"][0]
88
+ http.request.cookies["session"][0]
89
+ lower(http.user_agent) // Lowercase user agent
90
+ ```
91
+
92
+ ### Operators
93
+
94
+ ```typescript
95
+ // Comparison
96
+ eq // Equal
97
+ ne // Not equal
98
+ lt // Less than
99
+ le // Less than or equal
100
+ gt // Greater than
101
+ ge // Greater than or equal
102
+
103
+ // String matching
104
+ contains // Substring match
105
+ matches // Regex match (use carefully)
106
+ starts_with // Prefix match
107
+ ends_with // Suffix match
108
+
109
+ // List operations
110
+ in // Value in list
111
+ not // Logical NOT
112
+ and // Logical AND
113
+ or // Logical OR
114
+ ```
115
+
116
+ ### Expression Examples
117
+
118
+ ```typescript
119
+ 'cf.waf.score gt 40' // Attack score
120
+ 'http.request.uri.path eq "/api/login" and http.request.method eq "POST"' // Path + method
121
+ 'ip.src in {192.0.2.0/24 203.0.113.0/24}' // IP blocking
122
+ 'ip.geoip.country in {"CN" "RU" "KP"}' // Country blocking
123
+ 'http.user_agent contains "bot"' // User agent
124
+ 'not http.request.headers["authorization"][0]' // Header check
125
+ '(cf.waf.score.sqli gt 20 or cf.waf.score.xss gt 20) and http.request.uri.path starts_with "/api"' // Complex
126
+ ```
127
+
128
+ ## Rate Limiting Configuration
129
+
130
+ ```typescript
131
+ {
132
+ action: 'block',
133
+ expression: 'http.request.uri.path starts_with "/api"',
134
+ action_parameters: {
135
+ ratelimit: {
136
+ // Characteristics define uniqueness: 'ip.src', 'cf.colo.id',
137
+ // 'http.request.headers["key"][0]', 'http.request.cookies["session"][0]'
138
+ characteristics: ['cf.colo.id', 'ip.src'], // Recommended: per-IP per-datacenter
139
+ period: 60, // Time window in seconds
140
+ requests_per_period: 100, // Max requests in period
141
+ mitigation_timeout: 600, // Block duration in seconds
142
+ counting_expression: 'http.request.method ne "GET"', // Optional: filter counted requests
143
+ requests_to_origin: false, // Count all requests (not just origin hits)
144
+ },
145
+ },
146
+ enabled: true,
147
+ }
148
+ ```
149
+
150
+ ## Managed Ruleset Deployment
151
+
152
+ ```typescript
153
+ {
154
+ action: 'execute',
155
+ action_parameters: {
156
+ id: 'efb7b8c949ac4650a09736fc376e9aee', // Cloudflare Managed
157
+ overrides: {
158
+ // Override specific rules
159
+ rules: [
160
+ { id: '5de7edfa648c4d6891dc3e7f84534ffa', action: 'log', enabled: true },
161
+ ],
162
+ // Override categories: 'wordpress', 'sqli', 'xss', 'rce', etc.
163
+ categories: [
164
+ { category: 'wordpress', enabled: false },
165
+ { category: 'sqli', action: 'log' },
166
+ ],
167
+ },
168
+ },
169
+ expression: 'true',
170
+ enabled: true,
171
+ }
172
+ ```
173
+
174
+ ## Skip Rules
175
+
176
+ Skip rules bypass subsequent rule evaluation. Two skip types:
177
+
178
+ **Skip current ruleset**: Skip remaining rules in current phase only
179
+ ```typescript
180
+ {
181
+ action: 'skip',
182
+ action_parameters: {
183
+ ruleset: 'current', // Skip rest of current ruleset
184
+ },
185
+ expression: 'http.request.uri.path ends_with ".jpg" or http.request.uri.path ends_with ".css"',
186
+ enabled: true,
187
+ }
188
+ ```
189
+
190
+ **Skip entire phases**: Skip one or more phases completely
191
+ ```typescript
192
+ {
193
+ action: 'skip',
194
+ action_parameters: {
195
+ phases: ['http_request_firewall_managed', 'http_ratelimit'], // Skip multiple phases
196
+ },
197
+ expression: 'ip.src in {192.0.2.0/24 203.0.113.0/24}',
198
+ enabled: true,
199
+ }
200
+ ```
201
+
202
+ **Note**: Skip rules in custom phase can skip managed/ratelimit phases, but not vice versa (execution order).
@@ -0,0 +1,203 @@
1
+ # Configuration
2
+
3
+ ## Prerequisites
4
+
5
+ **API Token**: Create at https://dash.cloudflare.com/profile/api-tokens
6
+ - Permission: `Zone.WAF Edit` or `Zone.Firewall Services Edit`
7
+ - Zone Resources: Include specific zones or all zones
8
+
9
+ **Zone ID**: Found in dashboard > Overview > API section (right sidebar)
10
+
11
+ ```bash
12
+ # Set environment variables
13
+ export CF_API_TOKEN="your_api_token_here"
14
+ export ZONE_ID="your_zone_id_here"
15
+ ```
16
+
17
+ ## TypeScript SDK Usage
18
+
19
+ ```bash
20
+ npm install cloudflare
21
+ ```
22
+
23
+ ```typescript
24
+ import Cloudflare from 'cloudflare';
25
+
26
+ const client = new Cloudflare({ apiToken: process.env.CF_API_TOKEN });
27
+
28
+ // Custom rules
29
+ await client.rulesets.create({
30
+ zone_id: process.env.ZONE_ID,
31
+ kind: 'zone',
32
+ phase: 'http_request_firewall_custom',
33
+ name: 'Custom WAF',
34
+ rules: [
35
+ { action: 'block', expression: 'cf.waf.score gt 50', enabled: true },
36
+ { action: 'challenge', expression: 'http.request.uri.path eq "/admin"', enabled: true },
37
+ ],
38
+ });
39
+
40
+ // Managed ruleset
41
+ await client.rulesets.create({
42
+ zone_id: process.env.ZONE_ID,
43
+ phase: 'http_request_firewall_managed',
44
+ rules: [{
45
+ action: 'execute',
46
+ action_parameters: { id: 'efb7b8c949ac4650a09736fc376e9aee' },
47
+ expression: 'true',
48
+ }],
49
+ });
50
+
51
+ // Rate limiting
52
+ await client.rulesets.create({
53
+ zone_id: process.env.ZONE_ID,
54
+ phase: 'http_ratelimit',
55
+ rules: [{
56
+ action: 'block',
57
+ expression: 'http.request.uri.path starts_with "/api"',
58
+ action_parameters: {
59
+ ratelimit: {
60
+ characteristics: ['cf.colo.id', 'ip.src'],
61
+ period: 60,
62
+ requests_per_period: 100,
63
+ mitigation_timeout: 600,
64
+ },
65
+ },
66
+ }],
67
+ });
68
+ ```
69
+
70
+ ## Terraform Configuration
71
+
72
+ ```hcl
73
+ provider "cloudflare" {
74
+ api_token = var.cloudflare_api_token
75
+ }
76
+
77
+ resource "cloudflare_ruleset" "waf_custom" {
78
+ zone_id = var.zone_id
79
+ kind = "zone"
80
+ phase = "http_request_firewall_custom"
81
+
82
+ rules {
83
+ action = "block"
84
+ expression = "cf.waf.score gt 50"
85
+ }
86
+ }
87
+ ```
88
+
89
+ **Managed Ruleset & Rate Limiting**:
90
+ ```hcl
91
+ resource "cloudflare_ruleset" "waf_managed" {
92
+ zone_id = var.zone_id
93
+ name = "Managed Ruleset"
94
+ kind = "zone"
95
+ phase = "http_request_firewall_managed"
96
+
97
+ rules {
98
+ action = "execute"
99
+ action_parameters {
100
+ id = "efb7b8c949ac4650a09736fc376e9aee"
101
+ overrides {
102
+ rules {
103
+ id = "5de7edfa648c4d6891dc3e7f84534ffa"
104
+ action = "log"
105
+ }
106
+ }
107
+ }
108
+ expression = "true"
109
+ }
110
+ }
111
+
112
+ resource "cloudflare_ruleset" "rate_limiting" {
113
+ zone_id = var.zone_id
114
+ phase = "http_ratelimit"
115
+
116
+ rules {
117
+ action = "block"
118
+ expression = "http.request.uri.path starts_with \"/api\""
119
+ ratelimit {
120
+ characteristics = ["cf.colo.id", "ip.src"]
121
+ period = 60
122
+ requests_per_period = 100
123
+ mitigation_timeout = 600
124
+ }
125
+ }
126
+ }
127
+ ```
128
+
129
+ ## Pulumi Configuration
130
+
131
+ ```typescript
132
+ import * as cloudflare from '@pulumi/cloudflare';
133
+
134
+ const zoneId = 'zone_id';
135
+
136
+ // Custom rules
137
+ const wafCustom = new cloudflare.Ruleset('waf-custom', {
138
+ zoneId,
139
+ phase: 'http_request_firewall_custom',
140
+ rules: [
141
+ { action: 'block', expression: 'cf.waf.score gt 50', enabled: true },
142
+ { action: 'challenge', expression: 'http.request.uri.path eq "/admin"', enabled: true },
143
+ ],
144
+ });
145
+
146
+ // Managed ruleset
147
+ const wafManaged = new cloudflare.Ruleset('waf-managed', {
148
+ zoneId,
149
+ phase: 'http_request_firewall_managed',
150
+ rules: [{
151
+ action: 'execute',
152
+ actionParameters: { id: 'efb7b8c949ac4650a09736fc376e9aee' },
153
+ expression: 'true',
154
+ }],
155
+ });
156
+
157
+ // Rate limiting
158
+ const rateLimiting = new cloudflare.Ruleset('rate-limiting', {
159
+ zoneId,
160
+ phase: 'http_ratelimit',
161
+ rules: [{
162
+ action: 'block',
163
+ expression: 'http.request.uri.path starts_with "/api"',
164
+ ratelimit: {
165
+ characteristics: ['cf.colo.id', 'ip.src'],
166
+ period: 60,
167
+ requestsPerPeriod: 100,
168
+ mitigationTimeout: 600,
169
+ },
170
+ }],
171
+ });
172
+ ```
173
+
174
+ ## Dashboard Configuration
175
+
176
+ 1. Navigate to: **Security** > **WAF**
177
+ 2. Select tab:
178
+ - **Managed rules** - Deploy/configure managed rulesets
179
+ - **Custom rules** - Create custom rules
180
+ - **Rate limiting rules** - Configure rate limits
181
+ 3. Click **Deploy** or **Create rule**
182
+
183
+ **Testing**: Use Security Events to test expressions before deploying.
184
+
185
+ ## Wrangler Integration
186
+
187
+ WAF configuration is zone-level (not Worker-specific). Configuration methods:
188
+ - Dashboard UI
189
+ - Cloudflare API via SDK
190
+ - Terraform/Pulumi (IaC)
191
+
192
+ **Workers benefit from WAF automatically** - no Worker code changes needed.
193
+
194
+ **Example: Query WAF API from Worker**:
195
+ ```typescript
196
+ export default {
197
+ async fetch(request: Request, env: Env): Promise<Response> {
198
+ return fetch(`https://api.cloudflare.com/client/v4/zones/${env.ZONE_ID}/rulesets`, {
199
+ headers: { 'Authorization': `Bearer ${env.CF_API_TOKEN}` },
200
+ });
201
+ },
202
+ };
203
+ ```