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,240 @@
1
+ ## API Reference
2
+
3
+ **Note on Smart Shield:** Argo Smart Routing is being integrated into Cloudflare's Smart Shield product. API endpoints remain stable; existing integrations continue to work without changes.
4
+
5
+ ### Base Endpoint
6
+ ```
7
+ https://api.cloudflare.com/client/v4
8
+ ```
9
+
10
+ ### Authentication
11
+ Use API tokens with Zone:Argo Smart Routing:Edit permissions:
12
+
13
+ ```bash
14
+ # Headers required
15
+ X-Auth-Email: user@example.com
16
+ Authorization: Bearer YOUR_API_TOKEN
17
+ ```
18
+
19
+ ### Get Argo Smart Routing Status
20
+
21
+ **Endpoint:** `GET /zones/{zone_id}/argo/smart_routing`
22
+
23
+ **Description:** Retrieves current Argo Smart Routing enablement status.
24
+
25
+ **cURL Example:**
26
+ ```bash
27
+ curl -X GET "https://api.cloudflare.com/client/v4/zones/{zone_id}/argo/smart_routing" \
28
+ -H "Authorization: Bearer YOUR_API_TOKEN" \
29
+ -H "Content-Type: application/json"
30
+ ```
31
+
32
+ **Response:**
33
+ ```json
34
+ {
35
+ "result": {
36
+ "id": "smart_routing",
37
+ "value": "on",
38
+ "editable": true,
39
+ "modified_on": "2024-01-11T12:00:00Z"
40
+ },
41
+ "success": true,
42
+ "errors": [],
43
+ "messages": []
44
+ }
45
+ ```
46
+
47
+ **TypeScript SDK Example:**
48
+ ```typescript
49
+ import Cloudflare from 'cloudflare';
50
+
51
+ const client = new Cloudflare({
52
+ apiToken: process.env.CLOUDFLARE_API_TOKEN
53
+ });
54
+
55
+ const status = await client.argo.smartRouting.get({ zone_id: 'your-zone-id' });
56
+ console.log(`Argo status: ${status.value}, editable: ${status.editable}`);
57
+ ```
58
+
59
+ **Python SDK Example:**
60
+ ```python
61
+ from cloudflare import Cloudflare
62
+
63
+ client = Cloudflare(api_token=os.environ.get('CLOUDFLARE_API_TOKEN'))
64
+
65
+ status = client.argo.smart_routing.get(zone_id='your-zone-id')
66
+ print(f"Argo status: {status.value}, editable: {status.editable}")
67
+ ```
68
+
69
+ ### Update Argo Smart Routing Status
70
+
71
+ **Endpoint:** `PATCH /zones/{zone_id}/argo/smart_routing`
72
+
73
+ **Description:** Enable or disable Argo Smart Routing for a zone.
74
+
75
+ **Request Body:**
76
+ ```json
77
+ {
78
+ "value": "on" // or "off"
79
+ }
80
+ ```
81
+
82
+ **cURL Example:**
83
+ ```bash
84
+ curl -X PATCH "https://api.cloudflare.com/client/v4/zones/{zone_id}/argo/smart_routing" \
85
+ -H "Authorization: Bearer YOUR_API_TOKEN" \
86
+ -H "Content-Type: application/json" \
87
+ -d '{"value": "on"}'
88
+ ```
89
+
90
+ **TypeScript SDK Example:**
91
+ ```typescript
92
+ const result = await client.argo.smartRouting.edit({
93
+ zone_id: 'your-zone-id',
94
+ value: 'on',
95
+ });
96
+ console.log(`Updated: ${result.value} at ${result.modified_on}`);
97
+ ```
98
+
99
+ **Python SDK Example:**
100
+ ```python
101
+ result = client.argo.smart_routing.edit(
102
+ zone_id='your-zone-id',
103
+ value='on'
104
+ )
105
+ print(f"Updated: {result.value} at {result.modified_on}")
106
+ ```
107
+
108
+ ## Checking Editability Before Updates
109
+
110
+ **Critical:** Always check the `editable` field before attempting to enable/disable Argo. When `editable: false`, the zone has restrictions (billing not configured, insufficient permissions, or plan limitations).
111
+
112
+ **Pattern:**
113
+ ```typescript
114
+ async function safelyEnableArgo(client: Cloudflare, zoneId: string): Promise<boolean> {
115
+ const status = await client.argo.smartRouting.get({ zone_id: zoneId });
116
+
117
+ if (!status.editable) {
118
+ console.error('Cannot modify Argo: editable=false (check billing/permissions)');
119
+ return false;
120
+ }
121
+
122
+ if (status.value === 'on') {
123
+ console.log('Argo already enabled');
124
+ return true;
125
+ }
126
+
127
+ await client.argo.smartRouting.edit({ zone_id: zoneId, value: 'on' });
128
+ console.log('Argo enabled successfully');
129
+ return true;
130
+ }
131
+ ```
132
+
133
+ **Python Pattern:**
134
+ ```python
135
+ def safely_enable_argo(client: Cloudflare, zone_id: str) -> bool:
136
+ status = client.argo.smart_routing.get(zone_id=zone_id)
137
+
138
+ if not status.editable:
139
+ print('Cannot modify Argo: editable=false (check billing/permissions)')
140
+ return False
141
+
142
+ if status.value == 'on':
143
+ print('Argo already enabled')
144
+ return True
145
+
146
+ client.argo.smart_routing.edit(zone_id=zone_id, value='on')
147
+ print('Argo enabled successfully')
148
+ return True
149
+ ```
150
+
151
+ ## Error Handling
152
+
153
+ The TypeScript SDK provides typed error classes for robust error handling:
154
+
155
+ ```typescript
156
+ import Cloudflare from 'cloudflare';
157
+ import { APIError, APIConnectionError, RateLimitError } from 'cloudflare';
158
+
159
+ async function enableArgoWithErrorHandling(client: Cloudflare, zoneId: string) {
160
+ try {
161
+ const result = await client.argo.smartRouting.edit({
162
+ zone_id: zoneId,
163
+ value: 'on',
164
+ });
165
+ return result;
166
+ } catch (error) {
167
+ if (error instanceof RateLimitError) {
168
+ console.error('Rate limited. Retry after:', error.response?.headers.get('retry-after'));
169
+ // Implement exponential backoff
170
+ } else if (error instanceof APIError) {
171
+ console.error('API error:', error.status, error.message);
172
+ if (error.status === 403) {
173
+ console.error('Permission denied - check API token scopes');
174
+ } else if (error.status === 400) {
175
+ console.error('Bad request - verify zone_id and payload');
176
+ }
177
+ } else if (error instanceof APIConnectionError) {
178
+ console.error('Connection failed:', error.message);
179
+ // Retry with exponential backoff
180
+ } else {
181
+ console.error('Unexpected error:', error);
182
+ }
183
+ throw error;
184
+ }
185
+ }
186
+ ```
187
+
188
+ **Python Error Handling:**
189
+ ```python
190
+ from cloudflare import Cloudflare, APIError, RateLimitError
191
+
192
+ def enable_argo_with_error_handling(client: Cloudflare, zone_id: str):
193
+ try:
194
+ result = client.argo.smart_routing.edit(zone_id=zone_id, value='on')
195
+ return result
196
+ except RateLimitError as e:
197
+ print(f"Rate limited. Retry after: {e.response.headers.get('retry-after')}")
198
+ raise
199
+ except APIError as e:
200
+ print(f"API error: {e.status} - {e.message}")
201
+ if e.status == 403:
202
+ print('Permission denied - check API token scopes')
203
+ elif e.status == 400:
204
+ print('Bad request - verify zone_id and payload')
205
+ raise
206
+ except Exception as e:
207
+ print(f"Unexpected error: {e}")
208
+ raise
209
+ ```
210
+
211
+ ## Response Schema
212
+
213
+ All Argo Smart Routing API responses follow this structure:
214
+
215
+ ```typescript
216
+ interface ArgoSmartRoutingResponse {
217
+ result: {
218
+ id: 'smart_routing';
219
+ value: 'on' | 'off';
220
+ editable: boolean;
221
+ modified_on: string; // ISO 8601 timestamp
222
+ };
223
+ success: boolean;
224
+ errors: Array<{
225
+ code: number;
226
+ message: string;
227
+ }>;
228
+ messages: Array<string>;
229
+ }
230
+ ```
231
+
232
+ ## Key Response Fields
233
+
234
+ | Field | Type | Description |
235
+ |-------|------|-------------|
236
+ | `value` | `"on" \| "off"` | Current enablement status |
237
+ | `editable` | `boolean` | Whether changes are allowed (check before PATCH) |
238
+ | `modified_on` | `string` | ISO timestamp of last modification |
239
+ | `success` | `boolean` | Whether request succeeded |
240
+ | `errors` | `Array` | Error details if `success: false`
@@ -0,0 +1,197 @@
1
+ ## Configuration Management
2
+
3
+ **Note on Smart Shield Evolution:** Argo Smart Routing is being integrated into Smart Shield. Configuration methods below remain valid; Terraform and IaC patterns unchanged.
4
+
5
+ ### Infrastructure as Code (Terraform)
6
+
7
+ ```hcl
8
+ # terraform/argo.tf
9
+ # Note: Use Cloudflare Terraform provider
10
+
11
+ resource "cloudflare_argo" "example" {
12
+ zone_id = var.zone_id
13
+ smart_routing = "on"
14
+ tiered_caching = "on"
15
+ }
16
+
17
+ variable "zone_id" {
18
+ description = "Cloudflare Zone ID"
19
+ type = string
20
+ }
21
+
22
+ output "argo_enabled" {
23
+ value = cloudflare_argo.example.smart_routing
24
+ description = "Argo Smart Routing status"
25
+ }
26
+ ```
27
+
28
+ ### Environment-Based Configuration
29
+
30
+ ```typescript
31
+ // config/argo.ts
32
+ interface ArgoEnvironmentConfig {
33
+ enabled: boolean;
34
+ tieredCache: boolean;
35
+ monitoring: {
36
+ usageAlerts: boolean;
37
+ threshold: number;
38
+ };
39
+ }
40
+
41
+ const configs: Record<string, ArgoEnvironmentConfig> = {
42
+ production: {
43
+ enabled: true,
44
+ tieredCache: true,
45
+ monitoring: {
46
+ usageAlerts: true,
47
+ threshold: 1000, // GB
48
+ },
49
+ },
50
+ staging: {
51
+ enabled: true,
52
+ tieredCache: false,
53
+ monitoring: {
54
+ usageAlerts: false,
55
+ threshold: 100, // GB
56
+ },
57
+ },
58
+ development: {
59
+ enabled: false,
60
+ tieredCache: false,
61
+ monitoring: {
62
+ usageAlerts: false,
63
+ threshold: 0,
64
+ },
65
+ },
66
+ };
67
+
68
+ export function getArgoConfig(env: string): ArgoEnvironmentConfig {
69
+ return configs[env] || configs.development;
70
+ }
71
+ ```
72
+
73
+ ### Pulumi Configuration
74
+
75
+ ```typescript
76
+ // pulumi/argo.ts
77
+ import * as cloudflare from '@pulumi/cloudflare';
78
+
79
+ const zone = new cloudflare.Zone('example-zone', {
80
+ zone: 'example.com',
81
+ plan: 'enterprise',
82
+ });
83
+
84
+ const argoSettings = new cloudflare.Argo('argo-config', {
85
+ zoneId: zone.id,
86
+ smartRouting: 'on',
87
+ tieredCaching: 'on',
88
+ });
89
+
90
+ export const argoEnabled = argoSettings.smartRouting;
91
+ export const zoneId = zone.id;
92
+ ```
93
+
94
+ ## Billing Configuration
95
+
96
+ Before enabling Argo Smart Routing, ensure billing is configured for the account:
97
+
98
+ **Prerequisites:**
99
+ 1. Valid payment method on file
100
+ 2. Enterprise or higher plan
101
+ 3. Zone must have billing enabled
102
+
103
+ **Check Billing Status via Dashboard:**
104
+ 1. Navigate to Account → Billing
105
+ 2. Verify payment method configured
106
+ 3. Check zone subscription status
107
+
108
+ **Note:** Attempting to enable Argo without billing configured will result in `editable: false` in API responses.
109
+
110
+ ## Environment Variable Setup
111
+
112
+ **Required Environment Variables:**
113
+ ```bash
114
+ # .env
115
+ CLOUDFLARE_API_TOKEN=your_api_token_here
116
+ CLOUDFLARE_ZONE_ID=your_zone_id_here
117
+ CLOUDFLARE_ACCOUNT_ID=your_account_id_here
118
+
119
+ # Optional
120
+ ARGO_ENABLED=true
121
+ ARGO_TIERED_CACHE=true
122
+ ```
123
+
124
+ **TypeScript Configuration Loader:**
125
+ ```typescript
126
+ // config/env.ts
127
+ import { z } from 'zod';
128
+
129
+ const envSchema = z.object({
130
+ CLOUDFLARE_API_TOKEN: z.string().min(1),
131
+ CLOUDFLARE_ZONE_ID: z.string().min(1),
132
+ CLOUDFLARE_ACCOUNT_ID: z.string().min(1),
133
+ ARGO_ENABLED: z.string().optional().default('false'),
134
+ ARGO_TIERED_CACHE: z.string().optional().default('false'),
135
+ });
136
+
137
+ export const env = envSchema.parse(process.env);
138
+
139
+ export const argoConfig = {
140
+ enabled: env.ARGO_ENABLED === 'true',
141
+ tieredCache: env.ARGO_TIERED_CACHE === 'true',
142
+ };
143
+ ```
144
+
145
+ ## CI/CD Integration
146
+
147
+ **GitHub Actions Example:**
148
+ ```yaml
149
+ # .github/workflows/deploy-argo.yml
150
+ name: Deploy Argo Configuration
151
+
152
+ on:
153
+ push:
154
+ branches: [main]
155
+ paths:
156
+ - 'terraform/argo.tf'
157
+
158
+ jobs:
159
+ deploy:
160
+ runs-on: ubuntu-latest
161
+ steps:
162
+ - uses: actions/checkout@v3
163
+
164
+ - name: Setup Terraform
165
+ uses: hashicorp/setup-terraform@v2
166
+
167
+ - name: Terraform Init
168
+ run: terraform init
169
+ working-directory: ./terraform
170
+
171
+ - name: Terraform Apply
172
+ run: terraform apply -auto-approve
173
+ working-directory: ./terraform
174
+ env:
175
+ CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
176
+ TF_VAR_zone_id: ${{ secrets.CLOUDFLARE_ZONE_ID }}
177
+ ```
178
+
179
+ ## Enterprise Preview Program
180
+
181
+ For early access to Argo Smart Routing features and Smart Shield integration:
182
+
183
+ **Eligibility:**
184
+ - Enterprise plan customers
185
+ - Active Cloudflare support contract
186
+ - Production traffic >100GB/month
187
+
188
+ **How to Join:**
189
+ 1. Contact Cloudflare account team or support
190
+ 2. Request Argo/Smart Shield preview access
191
+ 3. Receive preview zone configuration
192
+
193
+ **Preview Features:**
194
+ - Enhanced analytics and reporting
195
+ - Smart Shield DDoS integration
196
+ - Advanced routing policies
197
+ - Priority support for routing issues
@@ -0,0 +1,111 @@
1
+ ## Best Practices Summary
2
+
3
+ **Smart Shield Note:** Argo Smart Routing evolving into Smart Shield. Best practices below remain applicable; monitor Cloudflare changelog for Smart Shield updates.
4
+
5
+ 1. **Always check editability** before attempting to enable/disable Argo
6
+ 2. **Set up billing notifications** to avoid unexpected costs
7
+ 3. **Combine with Tiered Cache** for maximum performance benefit
8
+ 4. **Use in production only** - disable for dev/staging to control costs
9
+ 5. **Monitor analytics** - require 500+ requests in 48h for detailed metrics
10
+ 6. **Handle errors gracefully** - check for billing, permissions, zone compatibility
11
+ 7. **Test configuration changes** in staging before production
12
+ 8. **Use TypeScript SDK** for type safety and better developer experience
13
+ 9. **Implement retry logic** for API calls in production systems
14
+ 10. **Document zone-specific settings** for team visibility
15
+
16
+ ## Common Errors
17
+
18
+ ### "Argo unavailable"
19
+
20
+ **Problem:** API returns error "Argo Smart Routing is unavailable for this zone"
21
+
22
+ **Cause:** Zone not eligible or billing not set up
23
+
24
+ **Solution:**
25
+ 1. Verify zone has Enterprise or higher plan
26
+ 2. Check billing is configured in Account → Billing
27
+ 3. Ensure payment method is valid and current
28
+ 4. Contact Cloudflare support if eligibility unclear
29
+
30
+ ### "Cannot enable/disable"
31
+
32
+ **Problem:** API call succeeds but status remains unchanged, or `editable: false` in GET response
33
+
34
+ **Cause:** Insufficient permissions or zone restrictions
35
+
36
+ **Solution:**
37
+ 1. Check API token has `Zone:Argo Smart Routing:Edit` permission
38
+ 2. Verify `editable: true` in GET response before attempting PATCH
39
+ 3. If `editable: false`, check:
40
+ - Billing configured for account
41
+ - Zone plan includes Argo (Enterprise+)
42
+ - No active zone holds or suspensions
43
+ - API token has correct scopes
44
+
45
+ ### `editable: false` Error
46
+
47
+ **Problem:** GET request returns `"editable": false`, preventing enable/disable
48
+
49
+ **Cause:** Zone-level restrictions from billing, plan, or permissions
50
+
51
+ **Solution Pattern:**
52
+ ```typescript
53
+ const status = await client.argo.smartRouting.get({ zone_id: zoneId });
54
+
55
+ if (!status.editable) {
56
+ // Don't attempt to modify - will fail
57
+ console.error('Cannot modify Argo settings:');
58
+ console.error('- Check billing is configured');
59
+ console.error('- Verify zone has Enterprise+ plan');
60
+ console.error('- Confirm API token has Edit permission');
61
+ throw new Error('Argo is not editable for this zone');
62
+ }
63
+
64
+ // Safe to proceed with enable/disable
65
+ await client.argo.smartRouting.edit({ zone_id: zoneId, value: 'on' });
66
+ ```
67
+
68
+ ### Rate Limiting
69
+
70
+ **Problem:** `429 Too Many Requests` error from API
71
+
72
+ **Cause:** Exceeded API rate limits (typically 1200 requests per 5 minutes)
73
+
74
+ **Solution:**
75
+ ```typescript
76
+ import { RateLimitError } from 'cloudflare';
77
+
78
+ try {
79
+ await client.argo.smartRouting.edit({ zone_id: zoneId, value: 'on' });
80
+ } catch (error) {
81
+ if (error instanceof RateLimitError) {
82
+ const retryAfter = error.response?.headers.get('retry-after');
83
+ console.log(`Rate limited. Retry after ${retryAfter} seconds`);
84
+
85
+ // Implement exponential backoff
86
+ await new Promise(resolve => setTimeout(resolve, (retryAfter || 60) * 1000));
87
+ // Retry request
88
+ }
89
+ }
90
+ ```
91
+
92
+ ## Limits
93
+
94
+ | Resource/Limit | Value | Notes |
95
+ |----------------|-------|-------|
96
+ | Min requests for analytics | 500 in 48h | For detailed metrics via GraphQL |
97
+ | Zones supported | Enterprise+ | Check zone plan in dashboard |
98
+ | Billing requirement | Must be configured | Before enabling; verify payment method |
99
+ | API rate limit | 1200 req / 5 min | Per API token across all endpoints |
100
+ | Spectrum apps | No hard limit | Each app can enable Argo independently |
101
+ | Traffic counting | Proxied only | Only orange-clouded DNS records count |
102
+ | DDoS/WAF exemption | Yes | Mitigated traffic excluded from billing |
103
+ | Analytics latency | 1-5 minutes | Real-time metrics not available |
104
+
105
+ ## Additional Resources
106
+
107
+ - [Official Argo Smart Routing Docs](https://developers.cloudflare.com/argo-smart-routing/)
108
+ - [Cloudflare Smart Shield](https://developers.cloudflare.com/smart-shield/)
109
+ - [API Authentication](https://developers.cloudflare.com/fundamentals/api/get-started/create-token/)
110
+ - [Cloudflare TypeScript SDK](https://github.com/cloudflare/cloudflare-typescript)
111
+ - [Cloudflare Python SDK](https://github.com/cloudflare/cloudflare-python)
@@ -0,0 +1,104 @@
1
+ # Integration Patterns
2
+
3
+ ## Enable Argo + Tiered Cache
4
+
5
+ ```typescript
6
+ async function enableOptimalPerformance(client: Cloudflare, zoneId: string) {
7
+ await Promise.all([
8
+ client.argo.smartRouting.edit({ zone_id: zoneId, value: 'on' }),
9
+ client.argo.tieredCaching.edit({ zone_id: zoneId, value: 'on' }),
10
+ ]);
11
+ }
12
+ ```
13
+
14
+ **Flow:** Visitor → Edge (Lower-Tier) → [Cache Miss] → Upper-Tier → [Cache Miss + Argo] → Origin
15
+
16
+ **Impact:** Argo ~30% latency reduction + Tiered Cache 50-80% origin offload
17
+
18
+ ## Usage Analytics (GraphQL)
19
+
20
+ ```graphql
21
+ query ArgoAnalytics($zoneTag: string!) {
22
+ viewer {
23
+ zones(filter: { zoneTag: $zoneTag }) {
24
+ httpRequestsAdaptiveGroups(limit: 1000) {
25
+ sum { argoBytes, bytes }
26
+ }
27
+ }
28
+ }
29
+ }
30
+ ```
31
+
32
+ **Billing:** ~$0.10/GB. DDoS-mitigated and WAF-blocked traffic NOT charged.
33
+
34
+ ## Spectrum TCP Integration
35
+
36
+ Enable Argo for non-HTTP traffic (databases, game servers, IoT):
37
+
38
+ ```typescript
39
+ // Update existing app
40
+ await client.spectrum.apps.update(appId, { zone_id: zoneId, argo_smart_routing: true });
41
+
42
+ // Create new app with Argo
43
+ await client.spectrum.apps.create({
44
+ zone_id: zoneId,
45
+ dns: { type: 'CNAME', name: 'tcp.example.com' },
46
+ origin_direct: ['tcp://origin.example.com:3306'],
47
+ protocol: 'tcp/3306',
48
+ argo_smart_routing: true,
49
+ });
50
+ ```
51
+
52
+ **Use cases:** MySQL/PostgreSQL (3306/5432), game servers, MQTT (1883), SSH (22)
53
+
54
+ ## Pre-Flight Validation
55
+
56
+ ```typescript
57
+ async function validateArgoEligibility(client: Cloudflare, zoneId: string) {
58
+ const status = await client.argo.smartRouting.get({ zone_id: zoneId });
59
+ const zone = await client.zones.get({ zone_id: zoneId });
60
+
61
+ const issues: string[] = [];
62
+ if (!status.editable) issues.push('Zone not editable');
63
+ if (['free', 'pro'].includes(zone.plan.legacy_id)) issues.push('Requires Business+ plan');
64
+ if (zone.status !== 'active') issues.push('Zone not active');
65
+
66
+ return { canEnable: issues.length === 0, issues };
67
+ }
68
+ ```
69
+
70
+ ## Post-Enable Verification
71
+
72
+ ```typescript
73
+ async function verifyArgoEnabled(client: Cloudflare, zoneId: string): Promise<boolean> {
74
+ await new Promise(r => setTimeout(r, 2000)); // Wait for propagation
75
+ const status = await client.argo.smartRouting.get({ zone_id: zoneId });
76
+ return status.value === 'on';
77
+ }
78
+ ```
79
+
80
+ ## Full Setup Pattern
81
+
82
+ ```typescript
83
+ async function setupArgo(client: Cloudflare, zoneId: string) {
84
+ // 1. Validate
85
+ const { canEnable, issues } = await validateArgoEligibility(client, zoneId);
86
+ if (!canEnable) throw new Error(issues.join(', '));
87
+
88
+ // 2. Enable both features
89
+ await Promise.all([
90
+ client.argo.smartRouting.edit({ zone_id: zoneId, value: 'on' }),
91
+ client.argo.tieredCaching.edit({ zone_id: zoneId, value: 'on' }),
92
+ ]);
93
+
94
+ // 3. Verify
95
+ const [argo, cache] = await Promise.all([
96
+ client.argo.smartRouting.get({ zone_id: zoneId }),
97
+ client.argo.tieredCaching.get({ zone_id: zoneId }),
98
+ ]);
99
+
100
+ return { argo: argo.value === 'on', tieredCache: cache.value === 'on' };
101
+ }
102
+ ```
103
+
104
+ **When to combine:** High-traffic sites (>1TB/mo), global users, cacheable content.