memory-journal-mcp 7.7.1 → 8.0.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/README.md +126 -56
- package/dist/chunk-6OHRCNYW.js +3231 -0
- package/dist/chunk-JFMITANR.js +5168 -0
- package/dist/{chunk-6LPTBIB6.js → chunk-MWNLAEHR.js} +309 -4332
- package/dist/{chunk-ARLYSFSI.js → chunk-UHSO65A4.js} +4242 -6092
- package/dist/cli.js +21 -3
- package/dist/index.d.ts +16 -13
- package/dist/index.js +4 -2
- package/dist/resources-IJVKDFGS.js +2 -0
- package/dist/tools-44DGXE3V.js +2 -0
- package/dist/worker-script.js +201 -20
- package/package.json +6 -4
- package/skills/README.md +62 -25
- package/skills/adversarial-performance/SKILL.md +139 -0
- package/skills/adversarial-performance/references/audit-categories.md +462 -0
- package/skills/adversarial-performance/references/copilot-performance-prompts.md +44 -0
- package/skills/adversarial-performance/references/copilot-usage.md +16 -0
- package/skills/adversarial-performance/references/feedback-loop.md +177 -0
- package/skills/adversarial-performance/references/multi-pass-performance-protocol.md +398 -0
- package/skills/adversarial-planner/SKILL.md +23 -54
- package/skills/adversarial-planner/references/copilot-integration.md +25 -40
- package/skills/adversarial-planner/references/copilot-usage.md +16 -0
- package/skills/adversarial-planner/references/multi-pass-protocol.md +4 -0
- package/skills/adversarial-security/SKILL.md +149 -0
- package/skills/adversarial-security/references/adversarial-base-protocol.md +44 -0
- package/skills/adversarial-security/references/audit-categories.md +723 -0
- package/skills/adversarial-security/references/copilot-security-prompts.md +142 -0
- package/skills/adversarial-security/references/copilot-usage.md +16 -0
- package/skills/adversarial-security/references/feedback-loop.md +206 -0
- package/skills/adversarial-security/references/journal-opt-out.md +7 -0
- package/skills/adversarial-security/references/multi-pass-security-protocol.md +403 -0
- package/skills/adversarial-skill-audit/SKILL.md +118 -0
- package/skills/adversarial-skill-audit/references/audit-categories.md +308 -0
- package/skills/adversarial-skill-audit/references/copilot-skill-prompts.md +68 -0
- package/skills/adversarial-skill-audit/references/copilot-usage.md +16 -0
- package/skills/adversarial-skill-audit/references/feedback-loop.md +155 -0
- package/skills/adversarial-skill-audit/references/multi-pass-skill-protocol.md +367 -0
- package/skills/adversarial-skill-audit/scripts/check-skills.ps1 +48 -0
- package/skills/adversarial-skill-audit/scripts/run-copilot.ps1 +52 -0
- package/skills/adversarial-workflow-audit/SKILL.md +82 -0
- package/skills/adversarial-workflow-audit/references/audit-categories.md +28 -0
- package/skills/adversarial-workflow-audit/references/copilot-usage.md +16 -0
- package/skills/adversarial-workflow-audit/scripts/check-workflows.ps1 +24 -0
- package/skills/agents-sdk/SKILL.md +220 -0
- package/skills/agents-sdk/references/callable.md +92 -0
- package/skills/agents-sdk/references/codemode.md +209 -0
- package/skills/agents-sdk/references/email.md +144 -0
- package/skills/agents-sdk/references/mcp/SKILL.md +65 -0
- package/skills/agents-sdk/references/mcp/code-mode-reference.md +245 -0
- package/skills/agents-sdk/references/mcp/oauth-reference.md +359 -0
- package/skills/agents-sdk/references/mcp/references/architecture-reference.md +208 -0
- package/skills/agents-sdk/references/mcp/references/cloudflare-quickstart.md +156 -0
- package/skills/agents-sdk/references/mcp/references/error-handling.md +343 -0
- package/skills/agents-sdk/references/mcp/references/http-security.md +164 -0
- package/skills/agents-sdk/references/mcp/references/implementation-guide.md +507 -0
- package/skills/agents-sdk/references/mcp/references/testing-reference.md +171 -0
- package/skills/agents-sdk/references/mcp.md +157 -0
- package/skills/agents-sdk/references/state-scheduling.md +164 -0
- package/skills/agents-sdk/references/streaming-chat.md +168 -0
- package/skills/agents-sdk/references/workflows.md +136 -0
- package/skills/auth-identity/SKILL.md +48 -0
- package/skills/autonomous-dev/SKILL.md +46 -23
- package/skills/autonomous-dev/references/workflow_orchestration.md +22 -0
- package/skills/aws/SKILL.md +39 -0
- package/skills/azure/SKILL.md +38 -0
- package/skills/bin/sync.js +7 -1
- package/skills/biome/SKILL.md +59 -0
- package/skills/bun/SKILL.md +8 -2
- package/skills/cloudflare/SKILL.md +37 -0
- package/skills/cloudflare/references/agents-sdk/README.md +95 -0
- package/skills/cloudflare/references/agents-sdk/api.md +195 -0
- package/skills/cloudflare/references/agents-sdk/configuration.md +178 -0
- package/skills/cloudflare/references/agents-sdk/gotchas.md +173 -0
- package/skills/cloudflare/references/agents-sdk/patterns.md +215 -0
- package/skills/cloudflare/references/ai-gateway/README.md +176 -0
- package/skills/cloudflare/references/ai-gateway/configuration.md +117 -0
- package/skills/cloudflare/references/ai-gateway/dynamic-routing.md +88 -0
- package/skills/cloudflare/references/ai-gateway/features.md +96 -0
- package/skills/cloudflare/references/ai-gateway/sdk-integration.md +110 -0
- package/skills/cloudflare/references/ai-gateway/troubleshooting.md +90 -0
- package/skills/cloudflare/references/ai-search/README.md +145 -0
- package/skills/cloudflare/references/ai-search/api.md +87 -0
- package/skills/cloudflare/references/ai-search/configuration.md +91 -0
- package/skills/cloudflare/references/ai-search/gotchas.md +92 -0
- package/skills/cloudflare/references/ai-search/patterns.md +87 -0
- package/skills/cloudflare/references/analytics-engine/README.md +96 -0
- package/skills/cloudflare/references/analytics-engine/api.md +112 -0
- package/skills/cloudflare/references/analytics-engine/configuration.md +107 -0
- package/skills/cloudflare/references/analytics-engine/gotchas.md +87 -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 +205 -0
- package/skills/cloudflare/references/api/configuration.md +158 -0
- package/skills/cloudflare/references/api/gotchas.md +231 -0
- package/skills/cloudflare/references/api/patterns.md +208 -0
- package/skills/cloudflare/references/api-shield/README.md +44 -0
- package/skills/cloudflare/references/api-shield/api.md +153 -0
- package/skills/cloudflare/references/api-shield/configuration.md +210 -0
- package/skills/cloudflare/references/api-shield/gotchas.md +132 -0
- package/skills/cloudflare/references/api-shield/patterns.md +185 -0
- package/skills/cloudflare/references/argo-smart-routing/README.md +96 -0
- package/skills/cloudflare/references/argo-smart-routing/api.md +253 -0
- package/skills/cloudflare/references/argo-smart-routing/configuration.md +205 -0
- package/skills/cloudflare/references/argo-smart-routing/gotchas.md +115 -0
- package/skills/cloudflare/references/argo-smart-routing/patterns.md +107 -0
- package/skills/cloudflare/references/bindings/README.md +127 -0
- package/skills/cloudflare/references/bindings/api.md +214 -0
- package/skills/cloudflare/references/bindings/configuration.md +200 -0
- package/skills/cloudflare/references/bindings/gotchas.md +210 -0
- package/skills/cloudflare/references/bindings/patterns.md +205 -0
- package/skills/cloudflare/references/bot-management/README.md +95 -0
- package/skills/cloudflare/references/bot-management/api.md +175 -0
- package/skills/cloudflare/references/bot-management/configuration.md +175 -0
- package/skills/cloudflare/references/bot-management/gotchas.md +116 -0
- package/skills/cloudflare/references/bot-management/patterns.md +181 -0
- package/skills/cloudflare/references/browser-rendering/README.md +84 -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 +91 -0
- package/skills/cloudflare/references/browser-rendering/patterns.md +93 -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 +85 -0
- package/skills/cloudflare/references/c3/gotchas.md +97 -0
- package/skills/cloudflare/references/c3/patterns.md +84 -0
- package/skills/cloudflare/references/cache-reserve/README.md +150 -0
- package/skills/cloudflare/references/cache-reserve/api.md +184 -0
- package/skills/cloudflare/references/cache-reserve/configuration.md +170 -0
- package/skills/cloudflare/references/cache-reserve/gotchas.md +136 -0
- package/skills/cloudflare/references/cache-reserve/patterns.md +197 -0
- package/skills/cloudflare/references/containers/README.md +87 -0
- package/skills/cloudflare/references/containers/api.md +197 -0
- package/skills/cloudflare/references/containers/configuration.md +191 -0
- package/skills/cloudflare/references/containers/gotchas.md +182 -0
- package/skills/cloudflare/references/containers/patterns.md +204 -0
- package/skills/cloudflare/references/cron-triggers/README.md +101 -0
- package/skills/cloudflare/references/cron-triggers/api.md +224 -0
- package/skills/cloudflare/references/cron-triggers/configuration.md +190 -0
- package/skills/cloudflare/references/cron-triggers/gotchas.md +207 -0
- package/skills/cloudflare/references/cron-triggers/patterns.md +274 -0
- package/skills/cloudflare/references/d1/README.md +137 -0
- package/skills/cloudflare/references/d1/api.md +213 -0
- package/skills/cloudflare/references/d1/configuration.md +198 -0
- package/skills/cloudflare/references/d1/gotchas.md +98 -0
- package/skills/cloudflare/references/d1/patterns.md +240 -0
- package/skills/cloudflare/references/ddos/README.md +42 -0
- package/skills/cloudflare/references/ddos/api.md +158 -0
- package/skills/cloudflare/references/ddos/configuration.md +94 -0
- package/skills/cloudflare/references/ddos/gotchas.md +114 -0
- package/skills/cloudflare/references/ddos/patterns.md +220 -0
- package/skills/cloudflare/references/decision-trees.md +95 -0
- package/skills/cloudflare/references/do-storage/README.md +79 -0
- package/skills/cloudflare/references/do-storage/api.md +107 -0
- package/skills/cloudflare/references/do-storage/configuration.md +114 -0
- package/skills/cloudflare/references/do-storage/gotchas.md +153 -0
- package/skills/cloudflare/references/do-storage/patterns.md +210 -0
- package/skills/cloudflare/references/do-storage/testing.md +186 -0
- package/skills/cloudflare/references/durable-objects/README.md +194 -0
- package/skills/cloudflare/references/durable-objects/api.md +205 -0
- package/skills/cloudflare/references/durable-objects/configuration.md +160 -0
- package/skills/cloudflare/references/durable-objects/gotchas.md +200 -0
- package/skills/cloudflare/references/durable-objects/patterns.md +205 -0
- package/skills/cloudflare/references/email-routing/README.md +89 -0
- package/skills/cloudflare/references/email-routing/api.md +192 -0
- package/skills/cloudflare/references/email-routing/configuration.md +187 -0
- package/skills/cloudflare/references/email-routing/gotchas.md +203 -0
- package/skills/cloudflare/references/email-routing/patterns.md +241 -0
- package/skills/cloudflare/references/email-workers/README.md +153 -0
- package/skills/cloudflare/references/email-workers/api.md +227 -0
- package/skills/cloudflare/references/email-workers/configuration.md +115 -0
- package/skills/cloudflare/references/email-workers/gotchas.md +133 -0
- package/skills/cloudflare/references/email-workers/patterns.md +108 -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 +151 -0
- package/skills/cloudflare/references/graphql-api/gotchas.md +111 -0
- package/skills/cloudflare/references/graphql-api/patterns.md +276 -0
- package/skills/cloudflare/references/hyperdrive/README.md +84 -0
- package/skills/cloudflare/references/hyperdrive/api.md +149 -0
- package/skills/cloudflare/references/hyperdrive/configuration.md +166 -0
- package/skills/cloudflare/references/hyperdrive/gotchas.md +77 -0
- package/skills/cloudflare/references/hyperdrive/patterns.md +203 -0
- package/skills/cloudflare/references/images/README.md +65 -0
- package/skills/cloudflare/references/images/api.md +101 -0
- package/skills/cloudflare/references/images/configuration.md +206 -0
- package/skills/cloudflare/references/images/gotchas.md +106 -0
- package/skills/cloudflare/references/images/patterns.md +126 -0
- package/skills/cloudflare/references/kv/README.md +90 -0
- package/skills/cloudflare/references/kv/api.md +163 -0
- package/skills/cloudflare/references/kv/configuration.md +148 -0
- package/skills/cloudflare/references/kv/gotchas.md +133 -0
- package/skills/cloudflare/references/kv/patterns.md +195 -0
- package/skills/cloudflare/references/miniflare/README.md +113 -0
- package/skills/cloudflare/references/miniflare/api.md +204 -0
- package/skills/cloudflare/references/miniflare/configuration.md +174 -0
- package/skills/cloudflare/references/miniflare/gotchas.md +179 -0
- package/skills/cloudflare/references/miniflare/patterns.md +187 -0
- package/skills/cloudflare/references/network-interconnect/README.md +104 -0
- package/skills/cloudflare/references/network-interconnect/api.md +220 -0
- package/skills/cloudflare/references/network-interconnect/configuration.md +123 -0
- package/skills/cloudflare/references/network-interconnect/gotchas.md +175 -0
- package/skills/cloudflare/references/network-interconnect/patterns.md +174 -0
- package/skills/cloudflare/references/observability/README.md +93 -0
- package/skills/cloudflare/references/observability/api.md +168 -0
- package/skills/cloudflare/references/observability/configuration.md +178 -0
- package/skills/cloudflare/references/observability/gotchas.md +125 -0
- package/skills/cloudflare/references/observability/patterns.md +105 -0
- package/skills/cloudflare/references/pages/README.md +92 -0
- package/skills/cloudflare/references/pages/api.md +205 -0
- package/skills/cloudflare/references/pages/configuration.md +216 -0
- package/skills/cloudflare/references/pages/gotchas.md +218 -0
- package/skills/cloudflare/references/pages/patterns.md +215 -0
- package/skills/cloudflare/references/pages-functions/README.md +104 -0
- package/skills/cloudflare/references/pages-functions/api.md +159 -0
- package/skills/cloudflare/references/pages-functions/configuration.md +130 -0
- package/skills/cloudflare/references/pages-functions/gotchas.md +102 -0
- package/skills/cloudflare/references/pages-functions/patterns.md +148 -0
- package/skills/cloudflare/references/pipelines/README.md +109 -0
- package/skills/cloudflare/references/pipelines/api.md +214 -0
- package/skills/cloudflare/references/pipelines/configuration.md +98 -0
- package/skills/cloudflare/references/pipelines/gotchas.md +84 -0
- package/skills/cloudflare/references/pipelines/patterns.md +87 -0
- package/skills/cloudflare/references/product-index.md +112 -0
- package/skills/cloudflare/references/pulumi/README.md +113 -0
- package/skills/cloudflare/references/pulumi/api.md +230 -0
- package/skills/cloudflare/references/pulumi/configuration.md +213 -0
- package/skills/cloudflare/references/pulumi/gotchas.md +205 -0
- package/skills/cloudflare/references/pulumi/patterns.md +260 -0
- package/skills/cloudflare/references/queues/README.md +99 -0
- package/skills/cloudflare/references/queues/api.md +211 -0
- package/skills/cloudflare/references/queues/configuration.md +151 -0
- package/skills/cloudflare/references/queues/gotchas.md +210 -0
- package/skills/cloudflare/references/queues/patterns.md +220 -0
- package/skills/cloudflare/references/r2/README.md +97 -0
- package/skills/cloudflare/references/r2/api.md +235 -0
- package/skills/cloudflare/references/r2/configuration.md +176 -0
- package/skills/cloudflare/references/r2/gotchas.md +190 -0
- package/skills/cloudflare/references/r2/patterns.md +203 -0
- package/skills/cloudflare/references/r2-data-catalog/README.md +157 -0
- package/skills/cloudflare/references/r2-data-catalog/api.md +199 -0
- package/skills/cloudflare/references/r2-data-catalog/configuration.md +205 -0
- package/skills/cloudflare/references/r2-data-catalog/gotchas.md +170 -0
- package/skills/cloudflare/references/r2-data-catalog/patterns.md +191 -0
- package/skills/cloudflare/references/r2-sql/README.md +138 -0
- package/skills/cloudflare/references/r2-sql/SKILL.md.backup +512 -0
- package/skills/cloudflare/references/r2-sql/api.md +159 -0
- package/skills/cloudflare/references/r2-sql/configuration.md +152 -0
- package/skills/cloudflare/references/r2-sql/gotchas.md +228 -0
- package/skills/cloudflare/references/r2-sql/patterns.md +230 -0
- package/skills/cloudflare/references/realtime-sfu/README.md +66 -0
- package/skills/cloudflare/references/realtime-sfu/api.md +164 -0
- package/skills/cloudflare/references/realtime-sfu/configuration.md +141 -0
- package/skills/cloudflare/references/realtime-sfu/gotchas.md +138 -0
- package/skills/cloudflare/references/realtime-sfu/patterns.md +187 -0
- package/skills/cloudflare/references/realtimekit/README.md +118 -0
- package/skills/cloudflare/references/realtimekit/api.md +234 -0
- package/skills/cloudflare/references/realtimekit/configuration.md +226 -0
- package/skills/cloudflare/references/realtimekit/gotchas.md +206 -0
- package/skills/cloudflare/references/realtimekit/patterns.md +240 -0
- package/skills/cloudflare/references/sandbox/README.md +104 -0
- package/skills/cloudflare/references/sandbox/api.md +200 -0
- package/skills/cloudflare/references/sandbox/configuration.md +154 -0
- package/skills/cloudflare/references/sandbox/gotchas.md +201 -0
- package/skills/cloudflare/references/sandbox/patterns.md +195 -0
- package/skills/cloudflare/references/secrets-store/README.md +77 -0
- package/skills/cloudflare/references/secrets-store/api.md +199 -0
- package/skills/cloudflare/references/secrets-store/configuration.md +187 -0
- package/skills/cloudflare/references/secrets-store/gotchas.md +97 -0
- package/skills/cloudflare/references/secrets-store/patterns.md +218 -0
- package/skills/cloudflare/references/smart-placement/README.md +143 -0
- package/skills/cloudflare/references/smart-placement/api.md +192 -0
- package/skills/cloudflare/references/smart-placement/configuration.md +202 -0
- package/skills/cloudflare/references/smart-placement/gotchas.md +180 -0
- package/skills/cloudflare/references/smart-placement/patterns.md +190 -0
- package/skills/cloudflare/references/snippets/README.md +74 -0
- package/skills/cloudflare/references/snippets/api.md +214 -0
- package/skills/cloudflare/references/snippets/configuration.md +239 -0
- package/skills/cloudflare/references/snippets/gotchas.md +104 -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 +184 -0
- package/skills/cloudflare/references/spectrum/configuration.md +203 -0
- package/skills/cloudflare/references/spectrum/gotchas.md +155 -0
- package/skills/cloudflare/references/spectrum/patterns.md +206 -0
- package/skills/cloudflare/references/static-assets/README.md +65 -0
- package/skills/cloudflare/references/static-assets/api.md +201 -0
- package/skills/cloudflare/references/static-assets/configuration.md +186 -0
- package/skills/cloudflare/references/static-assets/gotchas.md +164 -0
- package/skills/cloudflare/references/static-assets/patterns.md +189 -0
- package/skills/cloudflare/references/stream/README.md +123 -0
- package/skills/cloudflare/references/stream/api-live.md +202 -0
- package/skills/cloudflare/references/stream/api.md +206 -0
- package/skills/cloudflare/references/stream/configuration.md +151 -0
- package/skills/cloudflare/references/stream/gotchas.md +139 -0
- package/skills/cloudflare/references/stream/patterns.md +217 -0
- package/skills/cloudflare/references/tail-workers/README.md +92 -0
- package/skills/cloudflare/references/tail-workers/api.md +203 -0
- package/skills/cloudflare/references/tail-workers/configuration.md +178 -0
- package/skills/cloudflare/references/tail-workers/gotchas.md +206 -0
- package/skills/cloudflare/references/tail-workers/patterns.md +190 -0
- package/skills/cloudflare/references/terraform/README.md +100 -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 +137 -0
- package/skills/cloudflare/references/tunnel/api.md +205 -0
- package/skills/cloudflare/references/tunnel/configuration.md +163 -0
- package/skills/cloudflare/references/tunnel/gotchas.md +159 -0
- package/skills/cloudflare/references/tunnel/networking.md +174 -0
- package/skills/cloudflare/references/tunnel/patterns.md +199 -0
- package/skills/cloudflare/references/turn/README.md +86 -0
- package/skills/cloudflare/references/turn/api.md +236 -0
- package/skills/cloudflare/references/turn/configuration.md +181 -0
- package/skills/cloudflare/references/turn/gotchas.md +236 -0
- package/skills/cloudflare/references/turn/patterns.md +228 -0
- package/skills/cloudflare/references/turnstile/README.md +102 -0
- package/skills/cloudflare/references/turnstile/api.md +253 -0
- package/skills/cloudflare/references/turnstile/configuration.md +242 -0
- package/skills/cloudflare/references/turnstile/gotchas.md +253 -0
- package/skills/cloudflare/references/turnstile/patterns.md +195 -0
- package/skills/cloudflare/references/vectorize/README.md +133 -0
- package/skills/cloudflare/references/vectorize/api.md +89 -0
- package/skills/cloudflare/references/vectorize/configuration.md +91 -0
- package/skills/cloudflare/references/vectorize/gotchas.md +83 -0
- package/skills/cloudflare/references/vectorize/patterns.md +92 -0
- package/skills/cloudflare/references/waf/README.md +125 -0
- package/skills/cloudflare/references/waf/api.md +203 -0
- package/skills/cloudflare/references/waf/configuration.md +215 -0
- package/skills/cloudflare/references/waf/gotchas.md +208 -0
- package/skills/cloudflare/references/waf/patterns.md +236 -0
- package/skills/cloudflare/references/web-analytics/README.md +149 -0
- package/skills/cloudflare/references/web-analytics/configuration.md +81 -0
- package/skills/cloudflare/references/web-analytics/gotchas.md +86 -0
- package/skills/cloudflare/references/web-analytics/integration.md +63 -0
- package/skills/cloudflare/references/web-analytics/patterns.md +98 -0
- package/skills/cloudflare/references/workerd/README.md +85 -0
- package/skills/cloudflare/references/workerd/api.md +219 -0
- package/skills/cloudflare/references/workerd/configuration.md +200 -0
- package/skills/cloudflare/references/workerd/gotchas.md +151 -0
- package/skills/cloudflare/references/workerd/patterns.md +205 -0
- package/skills/cloudflare/references/workers/README.md +110 -0
- package/skills/cloudflare/references/workers/api.md +197 -0
- package/skills/cloudflare/references/workers/configuration.md +184 -0
- package/skills/cloudflare/references/workers/frameworks.md +200 -0
- package/skills/cloudflare/references/workers/gotchas.md +145 -0
- package/skills/cloudflare/references/workers/patterns.md +220 -0
- package/skills/cloudflare/references/workers-ai/README.md +206 -0
- package/skills/cloudflare/references/workers-ai/api.md +115 -0
- package/skills/cloudflare/references/workers-ai/configuration.md +98 -0
- package/skills/cloudflare/references/workers-ai/gotchas.md +130 -0
- package/skills/cloudflare/references/workers-ai/patterns.md +122 -0
- package/skills/cloudflare/references/workers-for-platforms/README.md +95 -0
- package/skills/cloudflare/references/workers-for-platforms/api.md +212 -0
- package/skills/cloudflare/references/workers-for-platforms/configuration.md +178 -0
- package/skills/cloudflare/references/workers-for-platforms/gotchas.md +134 -0
- package/skills/cloudflare/references/workers-for-platforms/patterns.md +210 -0
- package/skills/cloudflare/references/workers-playground/README.md +131 -0
- package/skills/cloudflare/references/workers-playground/api.md +101 -0
- package/skills/cloudflare/references/workers-playground/configuration.md +169 -0
- package/skills/cloudflare/references/workers-playground/gotchas.md +88 -0
- package/skills/cloudflare/references/workers-playground/patterns.md +134 -0
- package/skills/cloudflare/references/workers-vpc/README.md +130 -0
- package/skills/cloudflare/references/workers-vpc/api.md +196 -0
- package/skills/cloudflare/references/workers-vpc/configuration.md +151 -0
- package/skills/cloudflare/references/workers-vpc/gotchas.md +171 -0
- package/skills/cloudflare/references/workers-vpc/patterns.md +235 -0
- package/skills/cloudflare/references/workflows/README.md +72 -0
- package/skills/cloudflare/references/workflows/api.md +237 -0
- package/skills/cloudflare/references/workflows/configuration.md +158 -0
- package/skills/cloudflare/references/workflows/gotchas.md +97 -0
- package/skills/cloudflare/references/workflows/patterns.md +245 -0
- package/skills/cloudflare/references/wrangler/README.md +143 -0
- package/skills/cloudflare/references/wrangler/api.md +188 -0
- package/skills/cloudflare/references/wrangler/configuration.md +198 -0
- package/skills/cloudflare/references/wrangler/gotchas.md +212 -0
- package/skills/cloudflare/references/wrangler/patterns.md +211 -0
- package/skills/cloudflare/references/zaraz/IMPLEMENTATION_SUMMARY.md +131 -0
- package/skills/cloudflare/references/zaraz/README.md +114 -0
- package/skills/cloudflare/references/zaraz/api.md +118 -0
- package/skills/cloudflare/references/zaraz/configuration.md +94 -0
- package/skills/cloudflare/references/zaraz/gotchas.md +88 -0
- package/skills/cloudflare/references/zaraz/patterns.md +77 -0
- package/skills/docker/SKILL.md +7 -101
- package/skills/docker/references/advanced-examples.md +71 -0
- package/skills/docker/references/templates.md +34 -0
- package/skills/docs-marketer/SKILL.md +178 -0
- package/skills/docs-marketer/references/audit-categories.md +328 -0
- package/skills/docs-marketer/references/copilot-docs-prompts.md +88 -0
- package/skills/docs-marketer/references/copilot-usage.md +16 -0
- package/skills/docs-marketer/references/feedback-loop.md +155 -0
- package/skills/docs-marketer/references/multi-pass-docs-protocol.md +410 -0
- package/skills/drizzle-orm/SKILL.md +82 -0
- package/skills/durable-objects/SKILL.md +167 -0
- package/skills/durable-objects/references/advanced_features.md +29 -0
- package/skills/durable-objects/references/rules.md +300 -0
- package/skills/durable-objects/references/testing.md +261 -0
- package/skills/durable-objects/references/workers.md +336 -0
- package/skills/gcp/SKILL.md +37 -0
- package/skills/github-actions/SKILL.md +5 -58
- package/skills/github-actions/references/templates.md +65 -0
- package/skills/github-commander/SKILL.md +13 -21
- package/skills/github-commander/workflows/copilot-audit.md +12 -12
- package/skills/github-copilot-cli/SKILL.md +21 -26
- package/skills/github-repo-setup/SKILL.md +136 -0
- package/skills/github-repo-setup/references/community-standards.md +136 -0
- package/skills/github-repo-setup/references/github-automation.md +490 -0
- package/skills/github-repo-setup/references/inline-templates.md +205 -0
- package/skills/github-repo-setup/references/project-config.md +320 -0
- package/skills/gitlab/SKILL.md +7 -2
- package/skills/gitlab/package-lock.json +389 -389
- package/skills/golang/SKILL.md +8 -1
- package/skills/graphql/SKILL.md +30 -0
- package/skills/hono/SKILL.md +82 -0
- package/skills/journal-optimizer/SKILL.md +206 -0
- package/skills/journal-optimizer/references/optimizer-scripts.md +169 -0
- package/skills/llm-app-engineering/SKILL.md +18 -0
- package/skills/monorepo/SKILL.md +56 -0
- package/skills/multi-agent-orchestration/SKILL.md +14 -0
- package/skills/mysql/SKILL.md +6 -2
- package/skills/next-best-practices/SKILL.md +86 -0
- package/skills/next-best-practices/references/cache-components-examples.md +234 -0
- package/skills/next-best-practices/references/cache-components.md +210 -0
- package/skills/next-best-practices/references/upgrade-decision-tree.md +33 -0
- package/skills/next-best-practices/references/upgrade.md +43 -0
- package/skills/next-cache-components/SKILL.md +441 -0
- package/skills/next-upgrade/SKILL.md +43 -0
- package/skills/next-upgrade/references/decision-tree.md +33 -0
- package/skills/nodejs/SKILL.md +46 -0
- package/skills/opentelemetry/SKILL.md +62 -0
- package/skills/package.json +39 -4
- package/skills/playwright-standard/SKILL.md +6 -11
- package/skills/playwright-standard/references/locators.md +7 -0
- package/skills/postgres/SKILL.md +6 -1
- package/skills/python/SKILL.md +8 -70
- package/skills/python/references/advanced-patterns.md +37 -0
- package/skills/python/references/config-templates.md +48 -0
- package/skills/rag-pipelines/SKILL.md +14 -0
- package/skills/redis/SKILL.md +31 -0
- package/skills/render/SKILL.md +35 -0
- package/skills/rust/SKILL.md +15 -25
- package/skills/rust/references/borrow-checker.md +13 -0
- package/skills/rust/references/ecosystem.md +11 -0
- package/skills/sandbox-sdk/SKILL.md +186 -0
- package/skills/sandbox-sdk/references/api-quick-ref.md +113 -0
- package/skills/sandbox-sdk/references/examples.md +52 -0
- package/skills/shadcn-ui/SKILL.md +22 -57
- package/skills/skill-builder/SKILL.md +23 -424
- package/skills/skill-builder/references/tutorial.md +457 -0
- package/skills/sqlite/SKILL.md +16 -5
- package/skills/table.md +59 -0
- package/skills/tailwind-css/SKILL.md +11 -60
- package/skills/tailwind-css/references/component-patterns.md +52 -0
- package/skills/trpc/SKILL.md +56 -0
- package/skills/typescript/SKILL.md +30 -433
- package/skills/typescript/references/tutorial.md +453 -0
- package/skills/vercel-ai-sdk/SKILL.md +48 -0
- package/skills/vitest-standard/SKILL.md +5 -11
- package/skills/vitest-standard/references/assertions.md +11 -0
- package/skills/web-perf/SKILL.md +207 -0
- package/skills/workers-best-practices/SKILL.md +120 -0
- package/skills/workers-best-practices/references/anti-patterns.md +18 -0
- package/skills/workers-best-practices/references/review.md +174 -0
- package/skills/workers-best-practices/references/rules.md +485 -0
- package/skills/wrangler/SKILL.md +43 -0
- package/skills/wrangler/references/cli-commands.md +861 -0
- package/skills/zod/SKILL.md +48 -0
- package/dist/tools-P4VGG4FH.js +0 -1
- package/skills/react-best-practices/AGENTS.md +0 -2883
- package/skills/react-best-practices/SKILL.md +0 -138
- /package/skills/{react-best-practices → next-best-practices}/README.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/metadata.json +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/_sections.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/_template.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/advanced-event-handler-refs.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/advanced-init-once.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/advanced-use-latest.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/async-api-routes.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/async-defer-await.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/async-dependencies.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/async-parallel.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/async-suspense-boundaries.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/bundle-barrel-imports.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/bundle-conditional.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/bundle-defer-third-party.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/bundle-dynamic-imports.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/bundle-preload.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/client-event-listeners.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/client-localstorage-schema.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/client-passive-event-listeners.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/client-swr-dedup.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-batch-dom-css.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-function-results.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-property-access.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-storage.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-combine-iterations.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-early-exit.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-hoist-regexp.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-index-maps.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-length-check-first.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-min-max-loop.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-set-map-lookups.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-tosorted-immutable.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-activity.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-animate-svg-wrapper.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-conditional-render.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-content-visibility.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hoist-jsx.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-no-flicker.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-suppress-warning.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-svg-precision.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-usetransition-loading.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-defer-reads.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-dependencies.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state-no-effect.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-functional-setstate.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-lazy-state-init.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo-with-default-value.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-move-effect-to-event.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-simple-expression-in-memo.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-transitions.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-use-ref-transient-values.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/server-after-nonblocking.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/server-auth-actions.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-lru.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-react.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/server-dedup-props.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/server-parallel-fetching.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/server-serialization.md +0 -0
|
@@ -0,0 +1,205 @@
|
|
|
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
|
+
|
|
100
|
+
1. Valid payment method on file
|
|
101
|
+
2. Enterprise or higher plan
|
|
102
|
+
3. Zone must have billing enabled
|
|
103
|
+
|
|
104
|
+
**Check Billing Status via Dashboard:**
|
|
105
|
+
|
|
106
|
+
1. Navigate to Account → Billing
|
|
107
|
+
2. Verify payment method configured
|
|
108
|
+
3. Check zone subscription status
|
|
109
|
+
|
|
110
|
+
**Note:** Attempting to enable Argo without billing configured will result in `editable: false` in API responses.
|
|
111
|
+
|
|
112
|
+
## Environment Variable Setup
|
|
113
|
+
|
|
114
|
+
**Required Environment Variables:**
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# .env
|
|
118
|
+
CLOUDFLARE_API_TOKEN=your_api_token_here
|
|
119
|
+
CLOUDFLARE_ZONE_ID=your_zone_id_here
|
|
120
|
+
CLOUDFLARE_ACCOUNT_ID=your_account_id_here
|
|
121
|
+
|
|
122
|
+
# Optional
|
|
123
|
+
ARGO_ENABLED=true
|
|
124
|
+
ARGO_TIERED_CACHE=true
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**TypeScript Configuration Loader:**
|
|
128
|
+
|
|
129
|
+
```typescript
|
|
130
|
+
// config/env.ts
|
|
131
|
+
import { z } from 'zod'
|
|
132
|
+
|
|
133
|
+
const envSchema = z.object({
|
|
134
|
+
CLOUDFLARE_API_TOKEN: z.string().min(1),
|
|
135
|
+
CLOUDFLARE_ZONE_ID: z.string().min(1),
|
|
136
|
+
CLOUDFLARE_ACCOUNT_ID: z.string().min(1),
|
|
137
|
+
ARGO_ENABLED: z.string().optional().default('false'),
|
|
138
|
+
ARGO_TIERED_CACHE: z.string().optional().default('false'),
|
|
139
|
+
})
|
|
140
|
+
|
|
141
|
+
export const env = envSchema.parse(process.env)
|
|
142
|
+
|
|
143
|
+
export const argoConfig = {
|
|
144
|
+
enabled: env.ARGO_ENABLED === 'true',
|
|
145
|
+
tieredCache: env.ARGO_TIERED_CACHE === 'true',
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## CI/CD Integration
|
|
150
|
+
|
|
151
|
+
**GitHub Actions Example:**
|
|
152
|
+
|
|
153
|
+
```yaml
|
|
154
|
+
# .github/workflows/deploy-argo.yml
|
|
155
|
+
name: Deploy Argo Configuration
|
|
156
|
+
|
|
157
|
+
on:
|
|
158
|
+
push:
|
|
159
|
+
branches: [main]
|
|
160
|
+
paths:
|
|
161
|
+
- 'terraform/argo.tf'
|
|
162
|
+
|
|
163
|
+
jobs:
|
|
164
|
+
deploy:
|
|
165
|
+
runs-on: ubuntu-latest
|
|
166
|
+
steps:
|
|
167
|
+
- uses: actions/checkout@v3
|
|
168
|
+
|
|
169
|
+
- name: Setup Terraform
|
|
170
|
+
uses: hashicorp/setup-terraform@v2
|
|
171
|
+
|
|
172
|
+
- name: Terraform Init
|
|
173
|
+
run: terraform init
|
|
174
|
+
working-directory: ./terraform
|
|
175
|
+
|
|
176
|
+
- name: Terraform Apply
|
|
177
|
+
run: terraform apply -auto-approve
|
|
178
|
+
working-directory: ./terraform
|
|
179
|
+
env:
|
|
180
|
+
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
|
181
|
+
TF_VAR_zone_id: ${{ secrets.CLOUDFLARE_ZONE_ID }}
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Enterprise Preview Program
|
|
185
|
+
|
|
186
|
+
For early access to Argo Smart Routing features and Smart Shield integration:
|
|
187
|
+
|
|
188
|
+
**Eligibility:**
|
|
189
|
+
|
|
190
|
+
- Enterprise plan customers
|
|
191
|
+
- Active Cloudflare support contract
|
|
192
|
+
- Production traffic >100GB/month
|
|
193
|
+
|
|
194
|
+
**How to Join:**
|
|
195
|
+
|
|
196
|
+
1. Contact Cloudflare account team or support
|
|
197
|
+
2. Request Argo/Smart Shield preview access
|
|
198
|
+
3. Receive preview zone configuration
|
|
199
|
+
|
|
200
|
+
**Preview Features:**
|
|
201
|
+
|
|
202
|
+
- Enhanced analytics and reporting
|
|
203
|
+
- Smart Shield DDoS integration
|
|
204
|
+
- Advanced routing policies
|
|
205
|
+
- Priority support for routing issues
|
|
@@ -0,0 +1,115 @@
|
|
|
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
|
+
|
|
26
|
+
1. Verify zone has Enterprise or higher plan
|
|
27
|
+
2. Check billing is configured in Account → Billing
|
|
28
|
+
3. Ensure payment method is valid and current
|
|
29
|
+
4. Contact Cloudflare support if eligibility unclear
|
|
30
|
+
|
|
31
|
+
### "Cannot enable/disable"
|
|
32
|
+
|
|
33
|
+
**Problem:** API call succeeds but status remains unchanged, or `editable: false` in GET response
|
|
34
|
+
|
|
35
|
+
**Cause:** Insufficient permissions or zone restrictions
|
|
36
|
+
|
|
37
|
+
**Solution:**
|
|
38
|
+
|
|
39
|
+
1. Check API token has `Zone:Argo Smart Routing:Edit` permission
|
|
40
|
+
2. Verify `editable: true` in GET response before attempting PATCH
|
|
41
|
+
3. If `editable: false`, check:
|
|
42
|
+
- Billing configured for account
|
|
43
|
+
- Zone plan includes Argo (Enterprise+)
|
|
44
|
+
- No active zone holds or suspensions
|
|
45
|
+
- API token has correct scopes
|
|
46
|
+
|
|
47
|
+
### `editable: false` Error
|
|
48
|
+
|
|
49
|
+
**Problem:** GET request returns `"editable": false`, preventing enable/disable
|
|
50
|
+
|
|
51
|
+
**Cause:** Zone-level restrictions from billing, plan, or permissions
|
|
52
|
+
|
|
53
|
+
**Solution Pattern:**
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
const status = await client.argo.smartRouting.get({ zone_id: zoneId })
|
|
57
|
+
|
|
58
|
+
if (!status.editable) {
|
|
59
|
+
// Don't attempt to modify - will fail
|
|
60
|
+
console.error('Cannot modify Argo settings:')
|
|
61
|
+
console.error('- Check billing is configured')
|
|
62
|
+
console.error('- Verify zone has Enterprise+ plan')
|
|
63
|
+
console.error('- Confirm API token has Edit permission')
|
|
64
|
+
throw new Error('Argo is not editable for this zone')
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// Safe to proceed with enable/disable
|
|
68
|
+
await client.argo.smartRouting.edit({ zone_id: zoneId, value: 'on' })
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Rate Limiting
|
|
72
|
+
|
|
73
|
+
**Problem:** `429 Too Many Requests` error from API
|
|
74
|
+
|
|
75
|
+
**Cause:** Exceeded API rate limits (typically 1200 requests per 5 minutes)
|
|
76
|
+
|
|
77
|
+
**Solution:**
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
import { RateLimitError } from 'cloudflare'
|
|
81
|
+
|
|
82
|
+
try {
|
|
83
|
+
await client.argo.smartRouting.edit({ zone_id: zoneId, value: 'on' })
|
|
84
|
+
} catch (error) {
|
|
85
|
+
if (error instanceof RateLimitError) {
|
|
86
|
+
const retryAfter = error.response?.headers.get('retry-after')
|
|
87
|
+
console.log(`Rate limited. Retry after ${retryAfter} seconds`)
|
|
88
|
+
|
|
89
|
+
// Implement exponential backoff
|
|
90
|
+
await new Promise((resolve) => setTimeout(resolve, (retryAfter || 60) * 1000))
|
|
91
|
+
// Retry request
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Limits
|
|
97
|
+
|
|
98
|
+
| Resource/Limit | Value | Notes |
|
|
99
|
+
| -------------------------- | ------------------ | --------------------------------------- |
|
|
100
|
+
| Min requests for analytics | 500 in 48h | For detailed metrics via GraphQL |
|
|
101
|
+
| Zones supported | Enterprise+ | Check zone plan in dashboard |
|
|
102
|
+
| Billing requirement | Must be configured | Before enabling; verify payment method |
|
|
103
|
+
| API rate limit | 1200 req / 5 min | Per API token across all endpoints |
|
|
104
|
+
| Spectrum apps | No hard limit | Each app can enable Argo independently |
|
|
105
|
+
| Traffic counting | Proxied only | Only orange-clouded DNS records count |
|
|
106
|
+
| DDoS/WAF exemption | Yes | Mitigated traffic excluded from billing |
|
|
107
|
+
| Analytics latency | 1-5 minutes | Real-time metrics not available |
|
|
108
|
+
|
|
109
|
+
## Additional Resources
|
|
110
|
+
|
|
111
|
+
- [Official Argo Smart Routing Docs](https://developers.cloudflare.com/argo-smart-routing/)
|
|
112
|
+
- [Cloudflare Smart Shield](https://developers.cloudflare.com/smart-shield/)
|
|
113
|
+
- [API Authentication](https://developers.cloudflare.com/fundamentals/api/get-started/create-token/)
|
|
114
|
+
- [Cloudflare TypeScript SDK](https://github.com/cloudflare/cloudflare-typescript)
|
|
115
|
+
- [Cloudflare Python SDK](https://github.com/cloudflare/cloudflare-python)
|
|
@@ -0,0 +1,107 @@
|
|
|
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 {
|
|
26
|
+
argoBytes
|
|
27
|
+
bytes
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Billing:** ~$0.10/GB. DDoS-mitigated and WAF-blocked traffic NOT charged.
|
|
36
|
+
|
|
37
|
+
## Spectrum TCP Integration
|
|
38
|
+
|
|
39
|
+
Enable Argo for non-HTTP traffic (databases, game servers, IoT):
|
|
40
|
+
|
|
41
|
+
```typescript
|
|
42
|
+
// Update existing app
|
|
43
|
+
await client.spectrum.apps.update(appId, { zone_id: zoneId, argo_smart_routing: true })
|
|
44
|
+
|
|
45
|
+
// Create new app with Argo
|
|
46
|
+
await client.spectrum.apps.create({
|
|
47
|
+
zone_id: zoneId,
|
|
48
|
+
dns: { type: 'CNAME', name: 'tcp.example.com' },
|
|
49
|
+
origin_direct: ['tcp://origin.example.com:3306'],
|
|
50
|
+
protocol: 'tcp/3306',
|
|
51
|
+
argo_smart_routing: true,
|
|
52
|
+
})
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Use cases:** MySQL/PostgreSQL (3306/5432), game servers, MQTT (1883), SSH (22)
|
|
56
|
+
|
|
57
|
+
## Pre-Flight Validation
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
async function validateArgoEligibility(client: Cloudflare, zoneId: string) {
|
|
61
|
+
const status = await client.argo.smartRouting.get({ zone_id: zoneId })
|
|
62
|
+
const zone = await client.zones.get({ zone_id: zoneId })
|
|
63
|
+
|
|
64
|
+
const issues: string[] = []
|
|
65
|
+
if (!status.editable) issues.push('Zone not editable')
|
|
66
|
+
if (['free', 'pro'].includes(zone.plan.legacy_id)) issues.push('Requires Business+ plan')
|
|
67
|
+
if (zone.status !== 'active') issues.push('Zone not active')
|
|
68
|
+
|
|
69
|
+
return { canEnable: issues.length === 0, issues }
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Post-Enable Verification
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
async function verifyArgoEnabled(client: Cloudflare, zoneId: string): Promise<boolean> {
|
|
77
|
+
await new Promise((r) => setTimeout(r, 2000)) // Wait for propagation
|
|
78
|
+
const status = await client.argo.smartRouting.get({ zone_id: zoneId })
|
|
79
|
+
return status.value === 'on'
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Full Setup Pattern
|
|
84
|
+
|
|
85
|
+
```typescript
|
|
86
|
+
async function setupArgo(client: Cloudflare, zoneId: string) {
|
|
87
|
+
// 1. Validate
|
|
88
|
+
const { canEnable, issues } = await validateArgoEligibility(client, zoneId)
|
|
89
|
+
if (!canEnable) throw new Error(issues.join(', '))
|
|
90
|
+
|
|
91
|
+
// 2. Enable both features
|
|
92
|
+
await Promise.all([
|
|
93
|
+
client.argo.smartRouting.edit({ zone_id: zoneId, value: 'on' }),
|
|
94
|
+
client.argo.tieredCaching.edit({ zone_id: zoneId, value: 'on' }),
|
|
95
|
+
])
|
|
96
|
+
|
|
97
|
+
// 3. Verify
|
|
98
|
+
const [argo, cache] = await Promise.all([
|
|
99
|
+
client.argo.smartRouting.get({ zone_id: zoneId }),
|
|
100
|
+
client.argo.tieredCaching.get({ zone_id: zoneId }),
|
|
101
|
+
])
|
|
102
|
+
|
|
103
|
+
return { argo: argo.value === 'on', tieredCache: cache.value === 'on' }
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**When to combine:** High-traffic sites (>1TB/mo), global users, cacheable content.
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Cloudflare Bindings Skill Reference
|
|
2
|
+
|
|
3
|
+
Expert guidance on Cloudflare Workers Bindings - the runtime APIs that connect Workers to Cloudflare platform resources.
|
|
4
|
+
|
|
5
|
+
## What Are Bindings?
|
|
6
|
+
|
|
7
|
+
Bindings are how Workers access Cloudflare resources (storage, compute, services) via the `env` object. They're configured in `wrangler.jsonc`, type-safe via TypeScript, and zero-overhead at runtime.
|
|
8
|
+
|
|
9
|
+
## Reading Order
|
|
10
|
+
|
|
11
|
+
1. **This file** - Binding catalog and selection guide
|
|
12
|
+
2. **[api.md](api.md)** - TypeScript types and env access patterns
|
|
13
|
+
3. **[configuration.md](configuration.md)** - Complete wrangler.jsonc examples
|
|
14
|
+
4. **[patterns.md](patterns.md)** - Best practices and common patterns
|
|
15
|
+
5. **[gotchas.md](gotchas.md)** - Critical pitfalls and troubleshooting
|
|
16
|
+
|
|
17
|
+
## Binding Catalog
|
|
18
|
+
|
|
19
|
+
### Storage Bindings
|
|
20
|
+
|
|
21
|
+
| Binding | Use Case | Access Pattern |
|
|
22
|
+
| ------------------- | --------------------------------- | ----------------------------- |
|
|
23
|
+
| **KV** | Key-value cache, CDN-backed reads | `env.MY_KV.get(key)` |
|
|
24
|
+
| **R2** | Object storage (S3-compatible) | `env.MY_BUCKET.get(key)` |
|
|
25
|
+
| **D1** | SQL database (SQLite) | `env.DB.prepare(sql).all()` |
|
|
26
|
+
| **Durable Objects** | Coordination, real-time state | `env.MY_DO.get(id)` |
|
|
27
|
+
| **Vectorize** | Vector embeddings search | `env.VECTORIZE.query(vector)` |
|
|
28
|
+
| **Queues** | Async message processing | `env.MY_QUEUE.send(msg)` |
|
|
29
|
+
|
|
30
|
+
### Compute Bindings
|
|
31
|
+
|
|
32
|
+
| Binding | Use Case | Access Pattern |
|
|
33
|
+
| --------------------- | -------------------- | --------------------------- |
|
|
34
|
+
| **Service** | Worker-to-Worker RPC | `env.MY_SERVICE.fetch(req)` |
|
|
35
|
+
| **Workers AI** | LLM inference | `env.AI.run(model, input)` |
|
|
36
|
+
| **Browser Rendering** | Headless Chrome | `env.BROWSER.fetch(url)` |
|
|
37
|
+
|
|
38
|
+
### Platform Bindings
|
|
39
|
+
|
|
40
|
+
| Binding | Use Case | Access Pattern |
|
|
41
|
+
| -------------------- | ---------------------- | ------------------------------------ |
|
|
42
|
+
| **Analytics Engine** | Custom metrics | `env.ANALYTICS.writeDataPoint(data)` |
|
|
43
|
+
| **mTLS** | Client certificates | `env.MY_CERT` (string) |
|
|
44
|
+
| **Hyperdrive** | Database pooling | `env.HYPERDRIVE.connectionString` |
|
|
45
|
+
| **Rate Limiting** | Request throttling | `env.RATE_LIMITER.limit(id)` |
|
|
46
|
+
| **Workflows** | Long-running workflows | `env.MY_WORKFLOW.create()` |
|
|
47
|
+
|
|
48
|
+
### Configuration Bindings
|
|
49
|
+
|
|
50
|
+
| Binding | Use Case | Access Pattern |
|
|
51
|
+
| ------------------------- | -------------------- | ---------------------------------- |
|
|
52
|
+
| **Environment Variables** | Non-sensitive config | `env.API_URL` (string) |
|
|
53
|
+
| **Secrets** | Sensitive values | `env.API_KEY` (string) |
|
|
54
|
+
| **Text/Data Blobs** | Static files | `env.MY_BLOB` (string) |
|
|
55
|
+
| **WASM** | WebAssembly modules | `env.MY_WASM` (WebAssembly.Module) |
|
|
56
|
+
|
|
57
|
+
## Quick Selection Guide
|
|
58
|
+
|
|
59
|
+
**Need persistent storage?**
|
|
60
|
+
|
|
61
|
+
- Key-value < 25MB → **KV**
|
|
62
|
+
- Files/objects → **R2**
|
|
63
|
+
- Relational data → **D1**
|
|
64
|
+
- Real-time coordination → **Durable Objects**
|
|
65
|
+
|
|
66
|
+
**Need AI/compute?**
|
|
67
|
+
|
|
68
|
+
- LLM inference → **Workers AI**
|
|
69
|
+
- Scraping/PDFs → **Browser Rendering**
|
|
70
|
+
- Call another Worker → **Service binding**
|
|
71
|
+
|
|
72
|
+
**Need async processing?**
|
|
73
|
+
|
|
74
|
+
- Background jobs → **Queues**
|
|
75
|
+
|
|
76
|
+
**Need config?**
|
|
77
|
+
|
|
78
|
+
- Public values → **Environment Variables**
|
|
79
|
+
- Secrets → **Secrets** (never commit)
|
|
80
|
+
|
|
81
|
+
## Quick Start
|
|
82
|
+
|
|
83
|
+
1. **Add binding to wrangler.jsonc:**
|
|
84
|
+
|
|
85
|
+
```jsonc
|
|
86
|
+
{
|
|
87
|
+
"kv_namespaces": [{ "binding": "MY_KV", "id": "your-kv-id" }],
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
2. **Generate types:**
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
npx wrangler types
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
3. **Access in Worker:**
|
|
98
|
+
|
|
99
|
+
```typescript
|
|
100
|
+
export default {
|
|
101
|
+
async fetch(request, env, ctx) {
|
|
102
|
+
await env.MY_KV.put('key', 'value')
|
|
103
|
+
return new Response('OK')
|
|
104
|
+
},
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Type Safety
|
|
109
|
+
|
|
110
|
+
Bindings are fully typed via `wrangler types`. See [api.md](api.md) for details.
|
|
111
|
+
|
|
112
|
+
## Limits
|
|
113
|
+
|
|
114
|
+
- 64 bindings max per Worker (all types combined)
|
|
115
|
+
- See [gotchas.md](gotchas.md) for per-binding limits
|
|
116
|
+
|
|
117
|
+
## Key Concepts
|
|
118
|
+
|
|
119
|
+
**Zero-overhead access:** Bindings compiled into Worker, no network calls to access
|
|
120
|
+
**Type-safe:** Full TypeScript support via `wrangler types`
|
|
121
|
+
**Per-environment:** Different IDs for dev/staging/production
|
|
122
|
+
**Secrets vs Vars:** Secrets encrypted at rest, never in config files
|
|
123
|
+
|
|
124
|
+
## See Also
|
|
125
|
+
|
|
126
|
+
- [Cloudflare Docs: Bindings](https://developers.cloudflare.com/workers/runtime-apis/bindings/)
|
|
127
|
+
- [Wrangler Configuration](https://developers.cloudflare.com/workers/wrangler/configuration/)
|