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.
- package/LICENSE +674 -0
- package/README.md +67 -0
- package/bin/setup.mjs +103 -0
- package/dist/auth-flow.d.ts +15 -0
- package/dist/auth-flow.d.ts.map +1 -0
- package/dist/auth-flow.js +90 -0
- package/dist/auth-flow.js.map +1 -0
- package/dist/client.d.ts +18 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +47 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +13 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +10 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +109 -0
- package/dist/index.js.map +1 -0
- package/dist/oauth.d.ts +44 -0
- package/dist/oauth.d.ts.map +1 -0
- package/dist/oauth.js +135 -0
- package/dist/oauth.js.map +1 -0
- package/dist/proxy.d.ts +29 -0
- package/dist/proxy.d.ts.map +1 -0
- package/dist/proxy.js +39 -0
- package/dist/proxy.js.map +1 -0
- package/dist/servers.d.ts +19 -0
- package/dist/servers.d.ts.map +1 -0
- package/dist/servers.js +40 -0
- package/dist/servers.js.map +1 -0
- package/dist/token-store.d.ts +23 -0
- package/dist/token-store.d.ts.map +1 -0
- package/dist/token-store.js +47 -0
- package/dist/token-store.js.map +1 -0
- package/package.json +67 -0
- package/skills/agents-sdk/SKILL.md +221 -0
- package/skills/agents-sdk/references/browse-the-web.md +63 -0
- package/skills/agents-sdk/references/callable.md +92 -0
- package/skills/agents-sdk/references/client-sdk.md +110 -0
- package/skills/agents-sdk/references/codemode.md +110 -0
- package/skills/agents-sdk/references/configuration.md +72 -0
- package/skills/agents-sdk/references/durable-execution.md +51 -0
- package/skills/agents-sdk/references/email.md +146 -0
- package/skills/agents-sdk/references/human-in-the-loop.md +67 -0
- package/skills/agents-sdk/references/mcp.md +188 -0
- package/skills/agents-sdk/references/observability.md +44 -0
- package/skills/agents-sdk/references/queue-retries.md +79 -0
- package/skills/agents-sdk/references/routing.md +75 -0
- package/skills/agents-sdk/references/server-driven-messages.md +63 -0
- package/skills/agents-sdk/references/state-scheduling.md +171 -0
- package/skills/agents-sdk/references/streaming-chat.md +198 -0
- package/skills/agents-sdk/references/think.md +112 -0
- package/skills/agents-sdk/references/voice.md +68 -0
- package/skills/agents-sdk/references/webhooks-push.md +86 -0
- package/skills/agents-sdk/references/workflows.md +132 -0
- package/skills/cloudflare/SKILL.md +248 -0
- package/skills/cloudflare/references/agents-sdk/README.md +89 -0
- package/skills/cloudflare/references/agents-sdk/api.md +190 -0
- package/skills/cloudflare/references/agents-sdk/configuration.md +182 -0
- package/skills/cloudflare/references/agents-sdk/gotchas.md +158 -0
- package/skills/cloudflare/references/agents-sdk/patterns.md +192 -0
- package/skills/cloudflare/references/ai-gateway/README.md +175 -0
- package/skills/cloudflare/references/ai-gateway/configuration.md +111 -0
- package/skills/cloudflare/references/ai-gateway/dynamic-routing.md +82 -0
- package/skills/cloudflare/references/ai-gateway/features.md +96 -0
- package/skills/cloudflare/references/ai-gateway/sdk-integration.md +114 -0
- package/skills/cloudflare/references/ai-gateway/troubleshooting.md +88 -0
- package/skills/cloudflare/references/ai-search/README.md +138 -0
- package/skills/cloudflare/references/ai-search/api.md +87 -0
- package/skills/cloudflare/references/ai-search/configuration.md +88 -0
- package/skills/cloudflare/references/ai-search/gotchas.md +81 -0
- package/skills/cloudflare/references/ai-search/patterns.md +85 -0
- package/skills/cloudflare/references/analytics-engine/README.md +94 -0
- package/skills/cloudflare/references/analytics-engine/api.md +112 -0
- package/skills/cloudflare/references/analytics-engine/configuration.md +112 -0
- package/skills/cloudflare/references/analytics-engine/gotchas.md +85 -0
- package/skills/cloudflare/references/analytics-engine/patterns.md +83 -0
- package/skills/cloudflare/references/api/README.md +66 -0
- package/skills/cloudflare/references/api/api.md +204 -0
- package/skills/cloudflare/references/api/configuration.md +160 -0
- package/skills/cloudflare/references/api/gotchas.md +225 -0
- package/skills/cloudflare/references/api/patterns.md +204 -0
- package/skills/cloudflare/references/api-shield/README.md +44 -0
- package/skills/cloudflare/references/api-shield/api.md +141 -0
- package/skills/cloudflare/references/api-shield/configuration.md +192 -0
- package/skills/cloudflare/references/api-shield/gotchas.md +125 -0
- package/skills/cloudflare/references/api-shield/patterns.md +180 -0
- package/skills/cloudflare/references/argo-smart-routing/README.md +90 -0
- package/skills/cloudflare/references/argo-smart-routing/api.md +240 -0
- package/skills/cloudflare/references/argo-smart-routing/configuration.md +197 -0
- package/skills/cloudflare/references/argo-smart-routing/gotchas.md +111 -0
- package/skills/cloudflare/references/argo-smart-routing/patterns.md +104 -0
- package/skills/cloudflare/references/artifacts/README.md +79 -0
- package/skills/cloudflare/references/artifacts/api.md +128 -0
- package/skills/cloudflare/references/artifacts/configuration.md +92 -0
- package/skills/cloudflare/references/bindings/README.md +122 -0
- package/skills/cloudflare/references/bindings/api.md +203 -0
- package/skills/cloudflare/references/bindings/configuration.md +188 -0
- package/skills/cloudflare/references/bindings/gotchas.md +208 -0
- package/skills/cloudflare/references/bindings/patterns.md +200 -0
- package/skills/cloudflare/references/bot-management/README.md +94 -0
- package/skills/cloudflare/references/bot-management/api.md +169 -0
- package/skills/cloudflare/references/bot-management/configuration.md +163 -0
- package/skills/cloudflare/references/bot-management/gotchas.md +114 -0
- package/skills/cloudflare/references/bot-management/patterns.md +182 -0
- package/skills/cloudflare/references/browser-rendering/README.md +78 -0
- package/skills/cloudflare/references/browser-rendering/api.md +108 -0
- package/skills/cloudflare/references/browser-rendering/configuration.md +78 -0
- package/skills/cloudflare/references/browser-rendering/gotchas.md +88 -0
- package/skills/cloudflare/references/browser-rendering/patterns.md +91 -0
- package/skills/cloudflare/references/c3/README.md +111 -0
- package/skills/cloudflare/references/c3/api.md +71 -0
- package/skills/cloudflare/references/c3/configuration.md +81 -0
- package/skills/cloudflare/references/c3/gotchas.md +92 -0
- package/skills/cloudflare/references/c3/patterns.md +82 -0
- package/skills/cloudflare/references/cache-reserve/README.md +147 -0
- package/skills/cloudflare/references/cache-reserve/api.md +194 -0
- package/skills/cloudflare/references/cache-reserve/configuration.md +169 -0
- package/skills/cloudflare/references/cache-reserve/gotchas.md +132 -0
- package/skills/cloudflare/references/cache-reserve/patterns.md +197 -0
- package/skills/cloudflare/references/containers/README.md +85 -0
- package/skills/cloudflare/references/containers/api.md +187 -0
- package/skills/cloudflare/references/containers/configuration.md +188 -0
- package/skills/cloudflare/references/containers/gotchas.md +178 -0
- package/skills/cloudflare/references/containers/patterns.md +202 -0
- package/skills/cloudflare/references/cron-triggers/README.md +99 -0
- package/skills/cloudflare/references/cron-triggers/api.md +196 -0
- package/skills/cloudflare/references/cron-triggers/configuration.md +180 -0
- package/skills/cloudflare/references/cron-triggers/gotchas.md +199 -0
- package/skills/cloudflare/references/cron-triggers/patterns.md +190 -0
- package/skills/cloudflare/references/d1/README.md +133 -0
- package/skills/cloudflare/references/d1/api.md +196 -0
- package/skills/cloudflare/references/d1/configuration.md +191 -0
- package/skills/cloudflare/references/d1/gotchas.md +98 -0
- package/skills/cloudflare/references/d1/patterns.md +189 -0
- package/skills/cloudflare/references/ddos/README.md +41 -0
- package/skills/cloudflare/references/ddos/api.md +164 -0
- package/skills/cloudflare/references/ddos/configuration.md +93 -0
- package/skills/cloudflare/references/ddos/gotchas.md +107 -0
- package/skills/cloudflare/references/ddos/patterns.md +174 -0
- package/skills/cloudflare/references/do-storage/README.md +75 -0
- package/skills/cloudflare/references/do-storage/api.md +102 -0
- package/skills/cloudflare/references/do-storage/configuration.md +112 -0
- package/skills/cloudflare/references/do-storage/gotchas.md +150 -0
- package/skills/cloudflare/references/do-storage/patterns.md +194 -0
- package/skills/cloudflare/references/do-storage/testing.md +183 -0
- package/skills/cloudflare/references/durable-objects/README.md +185 -0
- package/skills/cloudflare/references/durable-objects/api.md +187 -0
- package/skills/cloudflare/references/durable-objects/configuration.md +160 -0
- package/skills/cloudflare/references/durable-objects/gotchas.md +197 -0
- package/skills/cloudflare/references/durable-objects/patterns.md +201 -0
- package/skills/cloudflare/references/email-routing/README.md +89 -0
- package/skills/cloudflare/references/email-routing/api.md +195 -0
- package/skills/cloudflare/references/email-routing/configuration.md +186 -0
- package/skills/cloudflare/references/email-routing/gotchas.md +196 -0
- package/skills/cloudflare/references/email-routing/patterns.md +229 -0
- package/skills/cloudflare/references/email-workers/README.md +151 -0
- package/skills/cloudflare/references/email-workers/api.md +237 -0
- package/skills/cloudflare/references/email-workers/configuration.md +112 -0
- package/skills/cloudflare/references/email-workers/gotchas.md +125 -0
- package/skills/cloudflare/references/email-workers/patterns.md +102 -0
- package/skills/cloudflare/references/flagship/README.md +59 -0
- package/skills/cloudflare/references/flagship/api.md +390 -0
- package/skills/cloudflare/references/flagship/configuration.md +202 -0
- package/skills/cloudflare/references/flagship/gotchas.md +178 -0
- package/skills/cloudflare/references/flagship/patterns.md +469 -0
- package/skills/cloudflare/references/graphql-api/README.md +147 -0
- package/skills/cloudflare/references/graphql-api/api.md +175 -0
- package/skills/cloudflare/references/graphql-api/configuration.md +118 -0
- package/skills/cloudflare/references/graphql-api/gotchas.md +110 -0
- package/skills/cloudflare/references/graphql-api/patterns.md +225 -0
- package/skills/cloudflare/references/hyperdrive/README.md +82 -0
- package/skills/cloudflare/references/hyperdrive/api.md +143 -0
- package/skills/cloudflare/references/hyperdrive/configuration.md +159 -0
- package/skills/cloudflare/references/hyperdrive/gotchas.md +77 -0
- package/skills/cloudflare/references/hyperdrive/patterns.md +190 -0
- package/skills/cloudflare/references/images/README.md +61 -0
- package/skills/cloudflare/references/images/api.md +96 -0
- package/skills/cloudflare/references/images/configuration.md +211 -0
- package/skills/cloudflare/references/images/gotchas.md +99 -0
- package/skills/cloudflare/references/images/patterns.md +115 -0
- package/skills/cloudflare/references/kv/README.md +89 -0
- package/skills/cloudflare/references/kv/api.md +160 -0
- package/skills/cloudflare/references/kv/configuration.md +144 -0
- package/skills/cloudflare/references/kv/gotchas.md +131 -0
- package/skills/cloudflare/references/kv/patterns.md +196 -0
- package/skills/cloudflare/references/miniflare/README.md +105 -0
- package/skills/cloudflare/references/miniflare/api.md +187 -0
- package/skills/cloudflare/references/miniflare/configuration.md +173 -0
- package/skills/cloudflare/references/miniflare/gotchas.md +160 -0
- package/skills/cloudflare/references/miniflare/patterns.md +181 -0
- package/skills/cloudflare/references/network-interconnect/README.md +99 -0
- package/skills/cloudflare/references/network-interconnect/api.md +199 -0
- package/skills/cloudflare/references/network-interconnect/configuration.md +114 -0
- package/skills/cloudflare/references/network-interconnect/gotchas.md +165 -0
- package/skills/cloudflare/references/network-interconnect/patterns.md +166 -0
- package/skills/cloudflare/references/observability/README.md +88 -0
- package/skills/cloudflare/references/observability/api.md +164 -0
- package/skills/cloudflare/references/observability/configuration.md +169 -0
- package/skills/cloudflare/references/observability/gotchas.md +115 -0
- package/skills/cloudflare/references/observability/patterns.md +105 -0
- package/skills/cloudflare/references/pages/README.md +88 -0
- package/skills/cloudflare/references/pages/api.md +204 -0
- package/skills/cloudflare/references/pages/configuration.md +201 -0
- package/skills/cloudflare/references/pages/gotchas.md +203 -0
- package/skills/cloudflare/references/pages/patterns.md +204 -0
- package/skills/cloudflare/references/pages-functions/README.md +98 -0
- package/skills/cloudflare/references/pages-functions/api.md +143 -0
- package/skills/cloudflare/references/pages-functions/configuration.md +122 -0
- package/skills/cloudflare/references/pages-functions/gotchas.md +94 -0
- package/skills/cloudflare/references/pages-functions/patterns.md +137 -0
- package/skills/cloudflare/references/pipelines/README.md +90 -0
- package/skills/cloudflare/references/pipelines/api.md +124 -0
- package/skills/cloudflare/references/pipelines/configuration.md +155 -0
- package/skills/cloudflare/references/pipelines/gotchas.md +58 -0
- package/skills/cloudflare/references/pipelines/patterns.md +130 -0
- package/skills/cloudflare/references/pulumi/README.md +100 -0
- package/skills/cloudflare/references/pulumi/api.md +200 -0
- package/skills/cloudflare/references/pulumi/configuration.md +198 -0
- package/skills/cloudflare/references/pulumi/gotchas.md +181 -0
- package/skills/cloudflare/references/pulumi/patterns.md +191 -0
- package/skills/cloudflare/references/queues/README.md +96 -0
- package/skills/cloudflare/references/queues/api.md +206 -0
- package/skills/cloudflare/references/queues/configuration.md +144 -0
- package/skills/cloudflare/references/queues/gotchas.md +206 -0
- package/skills/cloudflare/references/queues/patterns.md +220 -0
- package/skills/cloudflare/references/r2/README.md +95 -0
- package/skills/cloudflare/references/r2/api.md +200 -0
- package/skills/cloudflare/references/r2/configuration.md +165 -0
- package/skills/cloudflare/references/r2/gotchas.md +190 -0
- package/skills/cloudflare/references/r2/patterns.md +193 -0
- package/skills/cloudflare/references/r2-data-catalog/README.md +75 -0
- package/skills/cloudflare/references/r2-data-catalog/api.md +122 -0
- package/skills/cloudflare/references/r2-data-catalog/configuration.md +98 -0
- package/skills/cloudflare/references/r2-data-catalog/gotchas.md +55 -0
- package/skills/cloudflare/references/r2-data-catalog/patterns.md +122 -0
- package/skills/cloudflare/references/r2-sql/README.md +64 -0
- package/skills/cloudflare/references/r2-sql/api.md +121 -0
- package/skills/cloudflare/references/r2-sql/configuration.md +50 -0
- package/skills/cloudflare/references/r2-sql/gotchas.md +39 -0
- package/skills/cloudflare/references/r2-sql/patterns.md +118 -0
- package/skills/cloudflare/references/realtime-sfu/README.md +65 -0
- package/skills/cloudflare/references/realtime-sfu/api.md +158 -0
- package/skills/cloudflare/references/realtime-sfu/configuration.md +137 -0
- package/skills/cloudflare/references/realtime-sfu/gotchas.md +133 -0
- package/skills/cloudflare/references/realtime-sfu/patterns.md +174 -0
- package/skills/cloudflare/references/realtimekit/README.md +113 -0
- package/skills/cloudflare/references/realtimekit/api.md +212 -0
- package/skills/cloudflare/references/realtimekit/configuration.md +203 -0
- package/skills/cloudflare/references/realtimekit/gotchas.md +169 -0
- package/skills/cloudflare/references/realtimekit/patterns.md +223 -0
- package/skills/cloudflare/references/sandbox/README.md +96 -0
- package/skills/cloudflare/references/sandbox/api.md +198 -0
- package/skills/cloudflare/references/sandbox/configuration.md +143 -0
- package/skills/cloudflare/references/sandbox/gotchas.md +194 -0
- package/skills/cloudflare/references/sandbox/patterns.md +201 -0
- package/skills/cloudflare/references/secrets-store/README.md +74 -0
- package/skills/cloudflare/references/secrets-store/api.md +200 -0
- package/skills/cloudflare/references/secrets-store/configuration.md +185 -0
- package/skills/cloudflare/references/secrets-store/gotchas.md +97 -0
- package/skills/cloudflare/references/secrets-store/patterns.md +207 -0
- package/skills/cloudflare/references/smart-placement/README.md +138 -0
- package/skills/cloudflare/references/smart-placement/api.md +183 -0
- package/skills/cloudflare/references/smart-placement/configuration.md +196 -0
- package/skills/cloudflare/references/smart-placement/gotchas.md +174 -0
- package/skills/cloudflare/references/smart-placement/patterns.md +183 -0
- package/skills/cloudflare/references/snippets/README.md +68 -0
- package/skills/cloudflare/references/snippets/api.md +198 -0
- package/skills/cloudflare/references/snippets/configuration.md +227 -0
- package/skills/cloudflare/references/snippets/gotchas.md +86 -0
- package/skills/cloudflare/references/snippets/patterns.md +135 -0
- package/skills/cloudflare/references/spectrum/README.md +52 -0
- package/skills/cloudflare/references/spectrum/api.md +181 -0
- package/skills/cloudflare/references/spectrum/configuration.md +194 -0
- package/skills/cloudflare/references/spectrum/gotchas.md +145 -0
- package/skills/cloudflare/references/spectrum/patterns.md +196 -0
- package/skills/cloudflare/references/static-assets/README.md +65 -0
- package/skills/cloudflare/references/static-assets/api.md +199 -0
- package/skills/cloudflare/references/static-assets/configuration.md +186 -0
- package/skills/cloudflare/references/static-assets/gotchas.md +162 -0
- package/skills/cloudflare/references/static-assets/patterns.md +189 -0
- package/skills/cloudflare/references/stream/README.md +114 -0
- package/skills/cloudflare/references/stream/api-live.md +195 -0
- package/skills/cloudflare/references/stream/api.md +199 -0
- package/skills/cloudflare/references/stream/configuration.md +141 -0
- package/skills/cloudflare/references/stream/gotchas.md +130 -0
- package/skills/cloudflare/references/stream/patterns.md +184 -0
- package/skills/cloudflare/references/tail-workers/README.md +89 -0
- package/skills/cloudflare/references/tail-workers/api.md +200 -0
- package/skills/cloudflare/references/tail-workers/configuration.md +176 -0
- package/skills/cloudflare/references/tail-workers/gotchas.md +192 -0
- package/skills/cloudflare/references/tail-workers/patterns.md +180 -0
- package/skills/cloudflare/references/terraform/README.md +102 -0
- package/skills/cloudflare/references/terraform/api.md +178 -0
- package/skills/cloudflare/references/terraform/configuration.md +197 -0
- package/skills/cloudflare/references/terraform/gotchas.md +150 -0
- package/skills/cloudflare/references/terraform/patterns.md +174 -0
- package/skills/cloudflare/references/tunnel/README.md +129 -0
- package/skills/cloudflare/references/tunnel/api.md +193 -0
- package/skills/cloudflare/references/tunnel/configuration.md +157 -0
- package/skills/cloudflare/references/tunnel/gotchas.md +147 -0
- package/skills/cloudflare/references/tunnel/networking.md +168 -0
- package/skills/cloudflare/references/tunnel/patterns.md +192 -0
- package/skills/cloudflare/references/turn/README.md +82 -0
- package/skills/cloudflare/references/turn/api.md +239 -0
- package/skills/cloudflare/references/turn/configuration.md +179 -0
- package/skills/cloudflare/references/turn/gotchas.md +231 -0
- package/skills/cloudflare/references/turn/patterns.md +213 -0
- package/skills/cloudflare/references/turnstile/README.md +99 -0
- package/skills/cloudflare/references/turnstile/api.md +240 -0
- package/skills/cloudflare/references/turnstile/configuration.md +222 -0
- package/skills/cloudflare/references/turnstile/gotchas.md +218 -0
- package/skills/cloudflare/references/turnstile/patterns.md +193 -0
- package/skills/cloudflare/references/vectorize/README.md +133 -0
- package/skills/cloudflare/references/vectorize/api.md +88 -0
- package/skills/cloudflare/references/vectorize/configuration.md +88 -0
- package/skills/cloudflare/references/vectorize/gotchas.md +76 -0
- package/skills/cloudflare/references/vectorize/patterns.md +90 -0
- package/skills/cloudflare/references/waf/README.md +113 -0
- package/skills/cloudflare/references/waf/api.md +202 -0
- package/skills/cloudflare/references/waf/configuration.md +203 -0
- package/skills/cloudflare/references/waf/gotchas.md +204 -0
- package/skills/cloudflare/references/waf/patterns.md +197 -0
- package/skills/cloudflare/references/web-analytics/README.md +141 -0
- package/skills/cloudflare/references/web-analytics/configuration.md +76 -0
- package/skills/cloudflare/references/web-analytics/gotchas.md +82 -0
- package/skills/cloudflare/references/web-analytics/integration.md +60 -0
- package/skills/cloudflare/references/web-analytics/patterns.md +91 -0
- package/skills/cloudflare/references/workerd/README.md +78 -0
- package/skills/cloudflare/references/workerd/api.md +185 -0
- package/skills/cloudflare/references/workerd/configuration.md +183 -0
- package/skills/cloudflare/references/workerd/gotchas.md +139 -0
- package/skills/cloudflare/references/workerd/patterns.md +192 -0
- package/skills/cloudflare/references/workers/README.md +108 -0
- package/skills/cloudflare/references/workers/api.md +195 -0
- package/skills/cloudflare/references/workers/configuration.md +185 -0
- package/skills/cloudflare/references/workers/frameworks.md +197 -0
- package/skills/cloudflare/references/workers/gotchas.md +137 -0
- package/skills/cloudflare/references/workers/patterns.md +198 -0
- package/skills/cloudflare/references/workers-ai/README.md +197 -0
- package/skills/cloudflare/references/workers-ai/api.md +112 -0
- package/skills/cloudflare/references/workers-ai/configuration.md +97 -0
- package/skills/cloudflare/references/workers-ai/gotchas.md +114 -0
- package/skills/cloudflare/references/workers-ai/patterns.md +120 -0
- package/skills/cloudflare/references/workers-for-platforms/README.md +89 -0
- package/skills/cloudflare/references/workers-for-platforms/api.md +196 -0
- package/skills/cloudflare/references/workers-for-platforms/configuration.md +167 -0
- package/skills/cloudflare/references/workers-for-platforms/gotchas.md +134 -0
- package/skills/cloudflare/references/workers-for-platforms/patterns.md +188 -0
- package/skills/cloudflare/references/workers-playground/README.md +127 -0
- package/skills/cloudflare/references/workers-playground/api.md +101 -0
- package/skills/cloudflare/references/workers-playground/configuration.md +163 -0
- package/skills/cloudflare/references/workers-playground/gotchas.md +88 -0
- package/skills/cloudflare/references/workers-playground/patterns.md +132 -0
- package/skills/cloudflare/references/workers-vpc/README.md +127 -0
- package/skills/cloudflare/references/workers-vpc/api.md +202 -0
- package/skills/cloudflare/references/workers-vpc/configuration.md +147 -0
- package/skills/cloudflare/references/workers-vpc/gotchas.md +167 -0
- package/skills/cloudflare/references/workers-vpc/patterns.md +209 -0
- package/skills/cloudflare/references/workflows/README.md +77 -0
- package/skills/cloudflare/references/workflows/api.md +218 -0
- package/skills/cloudflare/references/workflows/configuration.md +152 -0
- package/skills/cloudflare/references/workflows/gotchas.md +90 -0
- package/skills/cloudflare/references/workflows/patterns.md +175 -0
- package/skills/cloudflare/references/wrangler/README.md +135 -0
- package/skills/cloudflare/references/wrangler/api.md +188 -0
- package/skills/cloudflare/references/wrangler/configuration.md +197 -0
- package/skills/cloudflare/references/wrangler/gotchas.md +197 -0
- package/skills/cloudflare/references/wrangler/patterns.md +209 -0
- package/skills/cloudflare/references/zaraz/IMPLEMENTATION_SUMMARY.md +121 -0
- package/skills/cloudflare/references/zaraz/README.md +111 -0
- package/skills/cloudflare/references/zaraz/api.md +112 -0
- package/skills/cloudflare/references/zaraz/configuration.md +90 -0
- package/skills/cloudflare/references/zaraz/gotchas.md +81 -0
- package/skills/cloudflare/references/zaraz/patterns.md +74 -0
- package/skills/cloudflare-email-service/SKILL.md +103 -0
- package/skills/cloudflare-email-service/references/cli-and-mcp.md +125 -0
- package/skills/cloudflare-email-service/references/deliverability.md +285 -0
- package/skills/cloudflare-email-service/references/rest-api.md +184 -0
- package/skills/cloudflare-email-service/references/routing.md +199 -0
- package/skills/cloudflare-email-service/references/sending.md +252 -0
- package/skills/cloudflare-one/SKILL.md +176 -0
- package/skills/cloudflare-one-migrations/SKILL.md +110 -0
- package/skills/durable-objects/SKILL.md +186 -0
- package/skills/durable-objects/references/rules.md +295 -0
- package/skills/durable-objects/references/testing.md +264 -0
- package/skills/durable-objects/references/workers.md +346 -0
- package/skills/sandbox-migrate-to-next/SKILL.md +185 -0
- package/skills/sandbox-next/SKILL.md +91 -0
- package/skills/sandbox-next/references/api-quick-ref.md +94 -0
- package/skills/sandbox-next/references/examples.md +15 -0
- package/skills/sandbox-stable/SKILL.md +110 -0
- package/skills/turnstile-spin/README.md +51 -0
- package/skills/turnstile-spin/SKILL.md +330 -0
- package/skills/turnstile-spin/references/astro.md +199 -0
- package/skills/turnstile-spin/references/hugo.md +114 -0
- package/skills/turnstile-spin/references/nextjs-app.md +261 -0
- package/skills/turnstile-spin/references/nextjs-pages.md +82 -0
- package/skills/turnstile-spin/references/sveltekit.md +191 -0
- package/skills/turnstile-spin/references/vanilla-html.md +157 -0
- package/skills/turnstile-spin/scripts/auth-probe.sh +285 -0
- package/skills/turnstile-spin/scripts/persist-skill.sh +114 -0
- package/skills/turnstile-spin/scripts/validate.sh +137 -0
- package/skills/turnstile-spin/scripts/widget-create.sh +121 -0
- package/skills/turnstile-spin/tests/validation.md +62 -0
- package/skills/workers-best-practices/SKILL.md +127 -0
- package/skills/workers-best-practices/references/review.md +174 -0
- package/skills/workers-best-practices/references/rules.md +467 -0
- package/skills/wrangler/SKILL.md +922 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Analytics Engine Gotchas
|
|
2
|
+
|
|
3
|
+
## Critical Issues
|
|
4
|
+
|
|
5
|
+
### Sampling at High Volumes
|
|
6
|
+
|
|
7
|
+
**Problem:** Queries return fewer points than written at >1M writes/min.
|
|
8
|
+
|
|
9
|
+
**Solution:**
|
|
10
|
+
```typescript
|
|
11
|
+
// Pre-aggregate before writing
|
|
12
|
+
let buffer = { count: 0, total: 0 };
|
|
13
|
+
buffer.count++; buffer.total += value;
|
|
14
|
+
|
|
15
|
+
// Write once per second instead of per request
|
|
16
|
+
if (Date.now() % 1000 === 0) {
|
|
17
|
+
env.ANALYTICS.writeDataPoint({ doubles: [buffer.count, buffer.total] });
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Detection:** `npx wrangler tail` → look for "sampling enabled"
|
|
22
|
+
|
|
23
|
+
### writeDataPoint Returns void
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
// ❌ Pointless await
|
|
27
|
+
await env.ANALYTICS.writeDataPoint({...});
|
|
28
|
+
|
|
29
|
+
// ✅ Fire-and-forget
|
|
30
|
+
env.ANALYTICS.writeDataPoint({...});
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Writes can fail silently. Check tail logs.
|
|
34
|
+
|
|
35
|
+
### Index vs Blob
|
|
36
|
+
|
|
37
|
+
| Cardinality | Use | Example |
|
|
38
|
+
|-------------|-----|---------|
|
|
39
|
+
| Millions | **Index** | user_id, api_key |
|
|
40
|
+
| Hundreds | **Blob** | endpoint, status_code, country |
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
// ✅ Correct
|
|
44
|
+
{ blobs: [method, path, status], indexes: [userId] }
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Can't Query from Workers
|
|
48
|
+
|
|
49
|
+
Query API requires HTTP auth. Use external service or cache in KV/D1.
|
|
50
|
+
|
|
51
|
+
### No Custom Timestamps
|
|
52
|
+
|
|
53
|
+
Auto-generated at write time. Store original in blob if needed.
|
|
54
|
+
|
|
55
|
+
## Common Errors
|
|
56
|
+
|
|
57
|
+
| Error | Fix |
|
|
58
|
+
|-------|-----|
|
|
59
|
+
| Binding not found | Check wrangler.jsonc, redeploy |
|
|
60
|
+
| No data in query | Wait 30s; check dataset name; check time range |
|
|
61
|
+
| Query timeout | Add time filter; use index for filtering |
|
|
62
|
+
|
|
63
|
+
## Limits
|
|
64
|
+
|
|
65
|
+
| Resource | Limit |
|
|
66
|
+
|----------|-------|
|
|
67
|
+
| Blobs per point | 20 |
|
|
68
|
+
| Doubles per point | 20 |
|
|
69
|
+
| Indexes per point | 1 |
|
|
70
|
+
| Blob/Index size | 16KB |
|
|
71
|
+
| Write rate (no sampling) | ~1M/min |
|
|
72
|
+
| Retention | 90 days |
|
|
73
|
+
| Query timeout | 30s |
|
|
74
|
+
|
|
75
|
+
## Best Practices
|
|
76
|
+
|
|
77
|
+
✅ Pre-aggregate at high volumes
|
|
78
|
+
✅ Use index for high-cardinality (millions)
|
|
79
|
+
✅ Always include time filter in queries
|
|
80
|
+
✅ Design schema before coding
|
|
81
|
+
|
|
82
|
+
❌ Don't await writeDataPoint
|
|
83
|
+
❌ Don't use index for low-cardinality
|
|
84
|
+
❌ Don't query without time range
|
|
85
|
+
❌ Don't assume all writes succeed
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Analytics Engine Patterns
|
|
2
|
+
|
|
3
|
+
## Use Cases
|
|
4
|
+
|
|
5
|
+
| Use Case | Key Metrics | Index On |
|
|
6
|
+
|----------|-------------|----------|
|
|
7
|
+
| API Metering | requests, bytes, compute_units | api_key |
|
|
8
|
+
| Feature Usage | feature, action, duration | user_id |
|
|
9
|
+
| Error Tracking | error_type, endpoint, count | customer_id |
|
|
10
|
+
| Performance | latency_ms, cache_status | endpoint |
|
|
11
|
+
| A/B Testing | variant, conversions | user_id |
|
|
12
|
+
|
|
13
|
+
## API Metering (Billing)
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
env.ANALYTICS.writeDataPoint({
|
|
17
|
+
blobs: [pathname, method, status, tier],
|
|
18
|
+
doubles: [1, computeUnits, bytes, latencyMs],
|
|
19
|
+
indexes: [apiKey]
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
// Query: Monthly usage by customer
|
|
23
|
+
// SELECT index1 AS api_key, SUM(double2) AS compute_units
|
|
24
|
+
// FROM usage WHERE timestamp >= DATE_TRUNC('month', NOW()) GROUP BY index1
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Error Tracking
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
env.ANALYTICS.writeDataPoint({
|
|
31
|
+
blobs: [endpoint, method, errorName, errorMessage.slice(0, 1000)],
|
|
32
|
+
doubles: [1, timeToErrorMs],
|
|
33
|
+
indexes: [customerId]
|
|
34
|
+
});
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Performance Monitoring
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
env.ANALYTICS.writeDataPoint({
|
|
41
|
+
blobs: [pathname, method, cacheStatus, status],
|
|
42
|
+
doubles: [latencyMs, 1],
|
|
43
|
+
indexes: [userId]
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
// Query: P95 latency by endpoint
|
|
47
|
+
// SELECT blob1, quantile(0.95)(double1) AS p95_ms FROM perf GROUP BY blob1
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Anti-Patterns
|
|
51
|
+
|
|
52
|
+
| ❌ Wrong | ✅ Correct |
|
|
53
|
+
|----------|-----------|
|
|
54
|
+
| `await writeDataPoint()` | `writeDataPoint()` (fire-and-forget) |
|
|
55
|
+
| `indexes: [method]` (low cardinality) | `blobs: [method]`, `indexes: [userId]` |
|
|
56
|
+
| `blobs: [JSON.stringify(obj)]` | Store ID in blob, full object in D1/KV |
|
|
57
|
+
| Write every request at 10M/min | Pre-aggregate per second |
|
|
58
|
+
| Query from Worker | Query from external service/API |
|
|
59
|
+
|
|
60
|
+
## Best Practices
|
|
61
|
+
|
|
62
|
+
1. **Design schema upfront** - Document blob/double/index assignments
|
|
63
|
+
2. **Always include count metric** - `doubles: [latency, 1]` for AVG calculations
|
|
64
|
+
3. **Use enums for blobs** - Consistent values like `Status.SUCCESS`
|
|
65
|
+
4. **Handle sampling** - Use ratios (avg_latency = SUM(latency)/SUM(count))
|
|
66
|
+
5. **Test queries early** - Validate schema before heavy writes
|
|
67
|
+
|
|
68
|
+
## Schema Template
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
/**
|
|
72
|
+
* Dataset: my_metrics
|
|
73
|
+
*
|
|
74
|
+
* Blobs:
|
|
75
|
+
* blob1: endpoint, blob2: method, blob3: status
|
|
76
|
+
*
|
|
77
|
+
* Doubles:
|
|
78
|
+
* double1: latency_ms, double2: count (always 1)
|
|
79
|
+
*
|
|
80
|
+
* Indexes:
|
|
81
|
+
* index1: customer_id (high cardinality)
|
|
82
|
+
*/
|
|
83
|
+
```
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Cloudflare API Integration
|
|
2
|
+
|
|
3
|
+
Guide for working with Cloudflare's REST API - authentication, SDK usage, common patterns, and troubleshooting.
|
|
4
|
+
|
|
5
|
+
## Quick Decision Tree
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
How are you calling the Cloudflare API?
|
|
9
|
+
├─ From Workers runtime → Use bindings, not REST API (see ../bindings/)
|
|
10
|
+
├─ Server-side (Node/Python/Go) → Official SDK (see api.md)
|
|
11
|
+
├─ CLI/scripts → Wrangler or curl (see configuration.md)
|
|
12
|
+
├─ Infrastructure-as-code → See ../pulumi/ or ../terraform/
|
|
13
|
+
└─ One-off requests → curl examples (see api.md)
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## SDK Selection
|
|
17
|
+
|
|
18
|
+
| Language | Package | Best For | Default Retries |
|
|
19
|
+
|----------|---------|----------|-----------------|
|
|
20
|
+
| TypeScript | `cloudflare` | Node.js, Bun, Next.js, Workers | 2 |
|
|
21
|
+
| Python | `cloudflare` | FastAPI, Django, scripts | 2 |
|
|
22
|
+
| Go | `cloudflare-go/v4` | CLI tools, microservices | 10 |
|
|
23
|
+
|
|
24
|
+
All SDKs are Stainless-generated from OpenAPI spec (consistent APIs).
|
|
25
|
+
|
|
26
|
+
## Authentication Methods
|
|
27
|
+
|
|
28
|
+
| Method | Security | Use Case | Scope |
|
|
29
|
+
|--------|----------|----------|-------|
|
|
30
|
+
| **API Token** ✓ | Scoped, rotatable | Production | Per-zone or account |
|
|
31
|
+
| API Key + Email | Full account access | Legacy only | Everything |
|
|
32
|
+
| User Service Key | Limited | Origin CA certs only | Origin CA |
|
|
33
|
+
|
|
34
|
+
**Always use API tokens** for new projects.
|
|
35
|
+
|
|
36
|
+
## Rate Limits
|
|
37
|
+
|
|
38
|
+
| Limit | Value |
|
|
39
|
+
|-------|-------|
|
|
40
|
+
| Per user/token | 1200 requests / 5 minutes |
|
|
41
|
+
| Per IP | 200 requests / second |
|
|
42
|
+
| GraphQL | 320 / 5 minutes (cost-based) |
|
|
43
|
+
|
|
44
|
+
## Reading Order
|
|
45
|
+
|
|
46
|
+
| Task | Files to Read |
|
|
47
|
+
|------|---------------|
|
|
48
|
+
| Initialize SDK client | api.md |
|
|
49
|
+
| Configure auth/timeout/retry | configuration.md |
|
|
50
|
+
| Find usage patterns | patterns.md |
|
|
51
|
+
| Debug errors/rate limits | gotchas.md |
|
|
52
|
+
| Product-specific APIs | ../workers/, ../r2/, ../kv/, etc. |
|
|
53
|
+
|
|
54
|
+
## In This Reference
|
|
55
|
+
|
|
56
|
+
- **[api.md](api.md)** - SDK client initialization, pagination, error handling, examples
|
|
57
|
+
- **[configuration.md](configuration.md)** - Environment variables, SDK config, Wrangler setup
|
|
58
|
+
- **[patterns.md](patterns.md)** - Real-world patterns, batch operations, workflows
|
|
59
|
+
- **[gotchas.md](gotchas.md)** - Rate limits, SDK-specific issues, troubleshooting
|
|
60
|
+
|
|
61
|
+
## See Also
|
|
62
|
+
|
|
63
|
+
- [Cloudflare API Docs](https://developers.cloudflare.com/api/)
|
|
64
|
+
- [Bindings Reference](../bindings/) - Workers runtime bindings (preferred over REST API)
|
|
65
|
+
- [Wrangler Reference](../wrangler/) - CLI tool for Cloudflare development
|
|
66
|
+
- [GraphQL Analytics API Reference](../graphql-api/) - Analytics data via GraphQL (separate endpoint from REST API)
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# API Reference
|
|
2
|
+
|
|
3
|
+
## Client Initialization
|
|
4
|
+
|
|
5
|
+
### TypeScript
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
import Cloudflare from 'cloudflare';
|
|
9
|
+
|
|
10
|
+
const client = new Cloudflare({
|
|
11
|
+
apiToken: process.env.CLOUDFLARE_API_TOKEN,
|
|
12
|
+
});
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### Python
|
|
16
|
+
|
|
17
|
+
```python
|
|
18
|
+
from cloudflare import Cloudflare
|
|
19
|
+
|
|
20
|
+
client = Cloudflare(api_token=os.environ.get("CLOUDFLARE_API_TOKEN"))
|
|
21
|
+
|
|
22
|
+
# For async:
|
|
23
|
+
from cloudflare import AsyncCloudflare
|
|
24
|
+
client = AsyncCloudflare(api_token=os.environ["CLOUDFLARE_API_TOKEN"])
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Go
|
|
28
|
+
|
|
29
|
+
```go
|
|
30
|
+
import (
|
|
31
|
+
"github.com/cloudflare/cloudflare-go/v4"
|
|
32
|
+
"github.com/cloudflare/cloudflare-go/v4/option"
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
client := cloudflare.NewClient(
|
|
36
|
+
option.WithAPIToken(os.Getenv("CLOUDFLARE_API_TOKEN")),
|
|
37
|
+
)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Authentication
|
|
41
|
+
|
|
42
|
+
### API Token (Recommended)
|
|
43
|
+
|
|
44
|
+
**Create token**: Dashboard → My Profile → API Tokens → Create Token
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
export CLOUDFLARE_API_TOKEN='your-token-here'
|
|
48
|
+
|
|
49
|
+
curl "https://api.cloudflare.com/client/v4/zones" \
|
|
50
|
+
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Token scopes**: Always use minimal permissions (zone-specific, time-limited).
|
|
54
|
+
|
|
55
|
+
### API Key (Legacy)
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
curl "https://api.cloudflare.com/client/v4/zones" \
|
|
59
|
+
--header "X-Auth-Email: user@example.com" \
|
|
60
|
+
--header "X-Auth-Key: $CLOUDFLARE_API_KEY"
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Not recommended:** Full account access, cannot scope permissions.
|
|
64
|
+
|
|
65
|
+
## Auto-Pagination
|
|
66
|
+
|
|
67
|
+
All SDKs support automatic pagination for list operations.
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
// TypeScript: for await...of
|
|
71
|
+
for await (const zone of client.zones.list()) {
|
|
72
|
+
console.log(zone.id);
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
```python
|
|
77
|
+
# Python: iterator protocol
|
|
78
|
+
for zone in client.zones.list():
|
|
79
|
+
print(zone.id)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
```go
|
|
83
|
+
// Go: ListAutoPaging
|
|
84
|
+
iter := client.Zones.ListAutoPaging(ctx, cloudflare.ZoneListParams{})
|
|
85
|
+
for iter.Next() {
|
|
86
|
+
zone := iter.Current()
|
|
87
|
+
fmt.Println(zone.ID)
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Error Handling
|
|
92
|
+
|
|
93
|
+
```typescript
|
|
94
|
+
try {
|
|
95
|
+
const zone = await client.zones.get({ zone_id: 'xxx' });
|
|
96
|
+
} catch (err) {
|
|
97
|
+
if (err instanceof Cloudflare.NotFoundError) {
|
|
98
|
+
// 404
|
|
99
|
+
} else if (err instanceof Cloudflare.RateLimitError) {
|
|
100
|
+
// 429 - SDK auto-retries with backoff
|
|
101
|
+
} else if (err instanceof Cloudflare.APIError) {
|
|
102
|
+
console.log(err.status, err.message);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**Common Error Types:**
|
|
108
|
+
- `AuthenticationError` (401) - Invalid token
|
|
109
|
+
- `PermissionDeniedError` (403) - Insufficient scope
|
|
110
|
+
- `NotFoundError` (404) - Resource not found
|
|
111
|
+
- `RateLimitError` (429) - Rate limit exceeded
|
|
112
|
+
- `InternalServerError` (≥500) - Cloudflare error
|
|
113
|
+
|
|
114
|
+
## Zone Management
|
|
115
|
+
|
|
116
|
+
```typescript
|
|
117
|
+
// List zones
|
|
118
|
+
const zones = await client.zones.list({
|
|
119
|
+
account: { id: 'account-id' },
|
|
120
|
+
status: 'active',
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
// Create zone
|
|
124
|
+
const zone = await client.zones.create({
|
|
125
|
+
account: { id: 'account-id' },
|
|
126
|
+
name: 'example.com',
|
|
127
|
+
type: 'full', // or 'partial'
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
// Update zone
|
|
131
|
+
await client.zones.edit('zone-id', {
|
|
132
|
+
paused: false,
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
// Delete zone
|
|
136
|
+
await client.zones.delete('zone-id');
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
```go
|
|
140
|
+
// Go: requires cloudflare.F() wrapper
|
|
141
|
+
zone, err := client.Zones.New(ctx, cloudflare.ZoneNewParams{
|
|
142
|
+
Account: cloudflare.F(cloudflare.ZoneNewParamsAccount{
|
|
143
|
+
ID: cloudflare.F("account-id"),
|
|
144
|
+
}),
|
|
145
|
+
Name: cloudflare.F("example.com"),
|
|
146
|
+
Type: cloudflare.F(cloudflare.ZoneNewParamsTypeFull),
|
|
147
|
+
})
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## DNS Management
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
// Create DNS record
|
|
154
|
+
await client.dns.records.create({
|
|
155
|
+
zone_id: 'zone-id',
|
|
156
|
+
type: 'A',
|
|
157
|
+
name: 'subdomain.example.com',
|
|
158
|
+
content: '192.0.2.1',
|
|
159
|
+
ttl: 1, // auto
|
|
160
|
+
proxied: true, // Orange cloud
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
// List DNS records (with auto-pagination)
|
|
164
|
+
for await (const record of client.dns.records.list({
|
|
165
|
+
zone_id: 'zone-id',
|
|
166
|
+
type: 'A',
|
|
167
|
+
})) {
|
|
168
|
+
console.log(record.name, record.content);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// Update DNS record
|
|
172
|
+
await client.dns.records.update({
|
|
173
|
+
zone_id: 'zone-id',
|
|
174
|
+
dns_record_id: 'record-id',
|
|
175
|
+
type: 'A',
|
|
176
|
+
name: 'subdomain.example.com',
|
|
177
|
+
content: '203.0.113.1',
|
|
178
|
+
proxied: true,
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
// Delete DNS record
|
|
182
|
+
await client.dns.records.delete({
|
|
183
|
+
zone_id: 'zone-id',
|
|
184
|
+
dns_record_id: 'record-id',
|
|
185
|
+
});
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
```python
|
|
189
|
+
# Python example
|
|
190
|
+
client.dns.records.create(
|
|
191
|
+
zone_id="zone-id",
|
|
192
|
+
type="A",
|
|
193
|
+
name="subdomain.example.com",
|
|
194
|
+
content="192.0.2.1",
|
|
195
|
+
ttl=1,
|
|
196
|
+
proxied=True,
|
|
197
|
+
)
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
## See Also
|
|
201
|
+
|
|
202
|
+
- [configuration.md](./configuration.md) - SDK configuration, environment variables
|
|
203
|
+
- [patterns.md](./patterns.md) - Real-world patterns and workflows
|
|
204
|
+
- [gotchas.md](./gotchas.md) - Rate limits, troubleshooting
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# Configuration
|
|
2
|
+
|
|
3
|
+
## Environment Variables
|
|
4
|
+
|
|
5
|
+
### Set Variables
|
|
6
|
+
|
|
7
|
+
| Platform | Command |
|
|
8
|
+
|----------|---------|
|
|
9
|
+
| Linux/macOS | `export CLOUDFLARE_API_TOKEN='token'` |
|
|
10
|
+
| PowerShell | `$env:CLOUDFLARE_API_TOKEN = 'token'` |
|
|
11
|
+
| Windows CMD | `set CLOUDFLARE_API_TOKEN=token` |
|
|
12
|
+
|
|
13
|
+
**Security:** Never commit tokens. Use `.env` files (gitignored) or secret managers.
|
|
14
|
+
|
|
15
|
+
### .env File Pattern
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# .env (add to .gitignore)
|
|
19
|
+
CLOUDFLARE_API_TOKEN=your-token-here
|
|
20
|
+
CLOUDFLARE_ACCOUNT_ID=your-account-id
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
// TypeScript
|
|
25
|
+
import 'dotenv/config';
|
|
26
|
+
|
|
27
|
+
const client = new Cloudflare({
|
|
28
|
+
apiToken: process.env.CLOUDFLARE_API_TOKEN,
|
|
29
|
+
});
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
# Python
|
|
34
|
+
from dotenv import load_dotenv
|
|
35
|
+
load_dotenv()
|
|
36
|
+
|
|
37
|
+
client = Cloudflare(api_token=os.environ["CLOUDFLARE_API_TOKEN"])
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## SDK Configuration
|
|
41
|
+
|
|
42
|
+
### TypeScript
|
|
43
|
+
|
|
44
|
+
```typescript
|
|
45
|
+
const client = new Cloudflare({
|
|
46
|
+
apiToken: process.env.CLOUDFLARE_API_TOKEN,
|
|
47
|
+
timeout: 120000, // 2 min (default 60s), in milliseconds
|
|
48
|
+
maxRetries: 5, // default 2
|
|
49
|
+
baseURL: 'https://...', // proxy (rare)
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
// Per-request overrides
|
|
53
|
+
await client.zones.get(
|
|
54
|
+
{ zone_id: 'zone-id' },
|
|
55
|
+
{ timeout: 5000, maxRetries: 0 }
|
|
56
|
+
);
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Python
|
|
60
|
+
|
|
61
|
+
```python
|
|
62
|
+
client = Cloudflare(
|
|
63
|
+
api_token=os.environ["CLOUDFLARE_API_TOKEN"],
|
|
64
|
+
timeout=120, # seconds (default 60)
|
|
65
|
+
max_retries=5, # default 2
|
|
66
|
+
base_url="https://...", # proxy (rare)
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
# Per-request overrides
|
|
70
|
+
client.with_options(timeout=5, max_retries=0).zones.get(zone_id="zone-id")
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Go
|
|
74
|
+
|
|
75
|
+
```go
|
|
76
|
+
client := cloudflare.NewClient(
|
|
77
|
+
option.WithAPIToken(os.Getenv("CLOUDFLARE_API_TOKEN")),
|
|
78
|
+
option.WithMaxRetries(5), // default 10 (higher than TS/Python)
|
|
79
|
+
option.WithRequestTimeout(2 * time.Minute), // default 60s
|
|
80
|
+
option.WithBaseURL("https://..."), // proxy (rare)
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
// Per-request overrides
|
|
84
|
+
client.Zones.Get(ctx, "zone-id", option.WithMaxRetries(0))
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Configuration Options
|
|
88
|
+
|
|
89
|
+
| Option | TypeScript | Python | Go | Default |
|
|
90
|
+
|--------|-----------|--------|-----|---------|
|
|
91
|
+
| Timeout | `timeout` (ms) | `timeout` (s) | `WithRequestTimeout` | 60s |
|
|
92
|
+
| Retries | `maxRetries` | `max_retries` | `WithMaxRetries` | 2 (Go: 10) |
|
|
93
|
+
| Base URL | `baseURL` | `base_url` | `WithBaseURL` | api.cloudflare.com |
|
|
94
|
+
|
|
95
|
+
**Note:** Go SDK has higher default retries (10) than TypeScript/Python (2).
|
|
96
|
+
|
|
97
|
+
## Timeout Configuration
|
|
98
|
+
|
|
99
|
+
**When to increase:**
|
|
100
|
+
- Large zone transfers
|
|
101
|
+
- Bulk DNS operations
|
|
102
|
+
- Worker script uploads
|
|
103
|
+
|
|
104
|
+
```typescript
|
|
105
|
+
const client = new Cloudflare({
|
|
106
|
+
timeout: 300000, // 5 minutes
|
|
107
|
+
});
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Retry Configuration
|
|
111
|
+
|
|
112
|
+
**When to increase:** Rate-limit-heavy workflows, flaky network
|
|
113
|
+
|
|
114
|
+
**When to decrease:** Fast-fail requirements, user-facing requests
|
|
115
|
+
|
|
116
|
+
```typescript
|
|
117
|
+
// Increase retries for batch operations
|
|
118
|
+
const client = new Cloudflare({ maxRetries: 10 });
|
|
119
|
+
|
|
120
|
+
// Disable retries for fast-fail
|
|
121
|
+
const fastClient = new Cloudflare({ maxRetries: 0 });
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Wrangler CLI Integration
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
# Configure authentication
|
|
128
|
+
wrangler login
|
|
129
|
+
# Or
|
|
130
|
+
export CLOUDFLARE_API_TOKEN='token'
|
|
131
|
+
|
|
132
|
+
# Common commands that use API
|
|
133
|
+
wrangler deploy # Uploads worker via API
|
|
134
|
+
wrangler kv:key put # KV operations
|
|
135
|
+
wrangler r2 bucket create # R2 operations
|
|
136
|
+
wrangler d1 execute # D1 operations
|
|
137
|
+
wrangler pages deploy # Pages operations
|
|
138
|
+
|
|
139
|
+
# Get API configuration
|
|
140
|
+
wrangler whoami # Shows authenticated user
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### wrangler.toml
|
|
144
|
+
|
|
145
|
+
```toml
|
|
146
|
+
name = "my-worker"
|
|
147
|
+
main = "src/index.ts"
|
|
148
|
+
compatibility_date = "2024-01-01"
|
|
149
|
+
account_id = "your-account-id"
|
|
150
|
+
|
|
151
|
+
# Can also use env vars:
|
|
152
|
+
# CLOUDFLARE_ACCOUNT_ID
|
|
153
|
+
# CLOUDFLARE_API_TOKEN
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## See Also
|
|
157
|
+
|
|
158
|
+
- [api.md](./api.md) - Client initialization, authentication
|
|
159
|
+
- [gotchas.md](./gotchas.md) - Rate limits, timeout errors
|
|
160
|
+
- [Wrangler Reference](../wrangler/) - CLI tool details
|