memory-journal-mcp 7.7.1 → 8.0.1
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-ARLYSFSI.js → chunk-UHSO65A4.js} +4242 -6092
- package/dist/{chunk-6LPTBIB6.js → chunk-V3UTFQQK.js} +318 -4330
- 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,93 @@
|
|
|
1
|
+
# Browser Rendering Patterns
|
|
2
|
+
|
|
3
|
+
## Basic Worker
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
import puppeteer from '@cloudflare/puppeteer'
|
|
7
|
+
|
|
8
|
+
export default {
|
|
9
|
+
async fetch(request, env) {
|
|
10
|
+
const browser = await puppeteer.launch(env.MYBROWSER)
|
|
11
|
+
try {
|
|
12
|
+
const page = await browser.newPage()
|
|
13
|
+
await page.goto('https://example.com')
|
|
14
|
+
return new Response(await page.content())
|
|
15
|
+
} finally {
|
|
16
|
+
await browser.close() // ALWAYS in finally
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Session Reuse
|
|
23
|
+
|
|
24
|
+
Keep sessions alive for performance:
|
|
25
|
+
|
|
26
|
+
```typescript
|
|
27
|
+
let sessionId = await env.SESSION_KV.get('browser-session')
|
|
28
|
+
if (sessionId) {
|
|
29
|
+
browser = await puppeteer.connect(env.MYBROWSER, sessionId)
|
|
30
|
+
} else {
|
|
31
|
+
browser = await puppeteer.launch(env.MYBROWSER, { keep_alive: 600000 })
|
|
32
|
+
await env.SESSION_KV.put('browser-session', browser.sessionId(), { expirationTtl: 600 })
|
|
33
|
+
}
|
|
34
|
+
// Don't close browser to keep session alive
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Common Operations
|
|
38
|
+
|
|
39
|
+
| Task | Code |
|
|
40
|
+
| ------------ | --------------------------------------------------------------------- |
|
|
41
|
+
| Screenshot | `await page.screenshot({ type: "png", fullPage: true })` |
|
|
42
|
+
| PDF | `await page.pdf({ format: "A4", printBackground: true })` |
|
|
43
|
+
| Extract data | `await page.evaluate(() => document.querySelector('h1').textContent)` |
|
|
44
|
+
| Fill form | `await page.type('#input', 'value'); await page.click('button')` |
|
|
45
|
+
| Wait nav | `await Promise.all([page.waitForNavigation(), page.click('a')])` |
|
|
46
|
+
|
|
47
|
+
## Parallel Scraping
|
|
48
|
+
|
|
49
|
+
```typescript
|
|
50
|
+
const pages = await Promise.all(urls.map(() => browser.newPage()))
|
|
51
|
+
await Promise.all(pages.map((p, i) => p.goto(urls[i])))
|
|
52
|
+
const titles = await Promise.all(pages.map((p) => p.title()))
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Playwright Selectors
|
|
56
|
+
|
|
57
|
+
```typescript
|
|
58
|
+
import { launch } from '@cloudflare/playwright'
|
|
59
|
+
const browser = await launch(env.MYBROWSER)
|
|
60
|
+
await page.getByRole('button', { name: 'Sign in' }).click()
|
|
61
|
+
await page.getByLabel('Email').fill('user@example.com')
|
|
62
|
+
await page.getByTestId('submit-button').click()
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Incognito Contexts
|
|
66
|
+
|
|
67
|
+
Isolated sessions without multiple browsers:
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
const ctx1 = await browser.createIncognitoBrowserContext()
|
|
71
|
+
const ctx2 = await browser.createIncognitoBrowserContext()
|
|
72
|
+
// Each has isolated cookies/storage
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Quota Check
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
const limits = await puppeteer.limits(env.MYBROWSER)
|
|
79
|
+
if (limits.remaining < 60000) return new Response('Quota low', { status: 429 })
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Error Handling
|
|
83
|
+
|
|
84
|
+
```typescript
|
|
85
|
+
try {
|
|
86
|
+
await page.goto(url, { timeout: 30000, waitUntil: 'networkidle0' })
|
|
87
|
+
} catch (e) {
|
|
88
|
+
if (e.message.includes('timeout')) return new Response('Timeout', { status: 504 })
|
|
89
|
+
if (e.message.includes('Session limit')) return new Response('Too many sessions', { status: 429 })
|
|
90
|
+
} finally {
|
|
91
|
+
if (browser) await browser.close()
|
|
92
|
+
}
|
|
93
|
+
```
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# C3 (create-cloudflare)
|
|
2
|
+
|
|
3
|
+
Official CLI for scaffolding Cloudflare Workers and Pages projects with templates, TypeScript, and instant deployment.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Interactive (recommended for first-time)
|
|
9
|
+
npm create cloudflare@latest my-app
|
|
10
|
+
|
|
11
|
+
# Worker (API/WebSocket/Cron)
|
|
12
|
+
npm create cloudflare@latest my-api -- --type=hello-world --ts
|
|
13
|
+
|
|
14
|
+
# Pages (static/SSG/full-stack)
|
|
15
|
+
npm create cloudflare@latest my-site -- --type=web-app --framework=astro --platform=pages
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Platform Decision Tree
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
What are you building?
|
|
22
|
+
|
|
23
|
+
├─ API / WebSocket / Cron / Email handler
|
|
24
|
+
│ └─ Workers (default) - no --platform flag needed
|
|
25
|
+
│ npm create cloudflare@latest my-api -- --type=hello-world
|
|
26
|
+
|
|
27
|
+
├─ Static site / SSG / Documentation
|
|
28
|
+
│ └─ Pages - requires --platform=pages
|
|
29
|
+
│ npm create cloudflare@latest my-site -- --type=web-app --framework=astro --platform=pages
|
|
30
|
+
|
|
31
|
+
├─ Full-stack app (Next.js/Remix/SvelteKit)
|
|
32
|
+
│ ├─ Need Durable Objects, Queues, or Workers-only features?
|
|
33
|
+
│ │ └─ Workers (default)
|
|
34
|
+
│ └─ Otherwise use Pages for git integration and branch previews
|
|
35
|
+
│ └─ Add --platform=pages
|
|
36
|
+
|
|
37
|
+
└─ Convert existing project
|
|
38
|
+
└─ npm create cloudflare@latest . -- --type=pre-existing --existing-script=./src/worker.ts
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Critical:** Pages projects require `--platform=pages` flag. Without it, C3 defaults to Workers.
|
|
42
|
+
|
|
43
|
+
## Interactive Flow
|
|
44
|
+
|
|
45
|
+
When run without flags, C3 prompts in this order:
|
|
46
|
+
|
|
47
|
+
1. **Project name** - Directory to create (defaults to current dir with `.`)
|
|
48
|
+
2. **Application type** - `hello-world`, `web-app`, `demo`, `pre-existing`, `remote-template`
|
|
49
|
+
3. **Platform** - `workers` (default) or `pages` (for web apps only)
|
|
50
|
+
4. **Framework** - If web-app: `next`, `remix`, `astro`, `react-router`, `solid`, `svelte`, etc.
|
|
51
|
+
5. **TypeScript** - `yes` (recommended) or `no`
|
|
52
|
+
6. **Git** - Initialize repository? `yes` or `no`
|
|
53
|
+
7. **Deploy** - Deploy now? `yes` or `no` (requires `wrangler login`)
|
|
54
|
+
|
|
55
|
+
## Installation Methods
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# NPM
|
|
59
|
+
npm create cloudflare@latest
|
|
60
|
+
|
|
61
|
+
# Yarn
|
|
62
|
+
yarn create cloudflare
|
|
63
|
+
|
|
64
|
+
# PNPM
|
|
65
|
+
pnpm create cloudflare@latest
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## In This Reference
|
|
69
|
+
|
|
70
|
+
| File | Purpose | Use When |
|
|
71
|
+
| -------------------- | -------------------------------- | ----------------------------------- |
|
|
72
|
+
| **api.md** | Complete CLI flag reference | Scripting, CI/CD, advanced usage |
|
|
73
|
+
| **configuration.md** | Generated files, bindings, types | Understanding output, customization |
|
|
74
|
+
| **patterns.md** | Workflows, CI/CD, monorepos | Real-world integration |
|
|
75
|
+
| **gotchas.md** | Troubleshooting failures | Deployment blocked, errors |
|
|
76
|
+
|
|
77
|
+
## Reading Order
|
|
78
|
+
|
|
79
|
+
| Task | Read |
|
|
80
|
+
| -------------------------- | ------------------------ |
|
|
81
|
+
| Create first project | README only |
|
|
82
|
+
| Set up CI/CD | README → api → patterns |
|
|
83
|
+
| Debug failed deploy | gotchas |
|
|
84
|
+
| Understand generated files | configuration |
|
|
85
|
+
| Full CLI reference | api |
|
|
86
|
+
| Create custom template | patterns → configuration |
|
|
87
|
+
| Convert existing project | README → patterns |
|
|
88
|
+
|
|
89
|
+
## Post-Creation
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
cd my-app
|
|
93
|
+
|
|
94
|
+
# Local dev with hot reload
|
|
95
|
+
npm run dev
|
|
96
|
+
|
|
97
|
+
# Generate TypeScript types for bindings
|
|
98
|
+
npm run cf-typegen
|
|
99
|
+
|
|
100
|
+
# Deploy to Cloudflare
|
|
101
|
+
npm run deploy
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## See Also
|
|
105
|
+
|
|
106
|
+
- **workers/README.md** - Workers runtime, bindings, APIs
|
|
107
|
+
- **workers-ai/README.md** - AI/ML models
|
|
108
|
+
- **pages/README.md** - Pages-specific features
|
|
109
|
+
- **wrangler/README.md** - Wrangler CLI beyond initial setup
|
|
110
|
+
- **d1/README.md** - SQLite database
|
|
111
|
+
- **r2/README.md** - Object storage
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# C3 CLI Reference
|
|
2
|
+
|
|
3
|
+
## Invocation
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
npm create cloudflare@latest [name] [-- flags] # NPM requires --
|
|
7
|
+
yarn create cloudflare [name] [flags]
|
|
8
|
+
pnpm create cloudflare@latest [name] [-- flags]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Core Flags
|
|
12
|
+
|
|
13
|
+
| Flag | Values | Description |
|
|
14
|
+
| ------------------ | --------------------------------------------------------------------------------------------- | ----------------------------------------- |
|
|
15
|
+
| `--type` | `hello-world`, `web-app`, `demo`, `pre-existing`, `remote-template` | Application type |
|
|
16
|
+
| `--platform` | `workers` (default), `pages` | Target platform |
|
|
17
|
+
| `--framework` | `next`, `remix`, `astro`, `react-router`, `solid`, `svelte`, `qwik`, `vue`, `angular`, `hono` | Web framework (requires `--type=web-app`) |
|
|
18
|
+
| `--lang` | `ts`, `js`, `python` | Language (for `--type=hello-world`) |
|
|
19
|
+
| `--ts` / `--no-ts` | - | TypeScript for web apps |
|
|
20
|
+
|
|
21
|
+
## Deployment Flags
|
|
22
|
+
|
|
23
|
+
| Flag | Description |
|
|
24
|
+
| -------------------------- | ----------------------------------------------------- |
|
|
25
|
+
| `--deploy` / `--no-deploy` | Deploy immediately (prompts interactive, skips in CI) |
|
|
26
|
+
| `--git` / `--no-git` | Initialize git (default: yes) |
|
|
27
|
+
| `--open` | Open browser after deploy |
|
|
28
|
+
|
|
29
|
+
## Advanced Flags
|
|
30
|
+
|
|
31
|
+
| Flag | Description |
|
|
32
|
+
| ----------------------------------- | ------------------------------------------------ |
|
|
33
|
+
| `--template=user/repo` | GitHub template or local path |
|
|
34
|
+
| `--existing-script=./src/worker.ts` | Existing script (requires `--type=pre-existing`) |
|
|
35
|
+
| `--category=ai\|database\|realtime` | Demo filter (requires `--type=demo`) |
|
|
36
|
+
| `--experimental` | Enable experimental features |
|
|
37
|
+
| `--wrangler-defaults` | Skip wrangler prompts |
|
|
38
|
+
|
|
39
|
+
## Environment Variables
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
CLOUDFLARE_API_TOKEN=xxx # For deployment
|
|
43
|
+
CLOUDFLARE_ACCOUNT_ID=xxx # Account ID
|
|
44
|
+
CF_TELEMETRY_DISABLED=1 # Disable telemetry
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Exit Codes
|
|
48
|
+
|
|
49
|
+
`0` success, `1` user abort, `2` error
|
|
50
|
+
|
|
51
|
+
## Examples
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# TypeScript Worker
|
|
55
|
+
npm create cloudflare@latest my-api -- --type=hello-world --lang=ts --no-deploy
|
|
56
|
+
|
|
57
|
+
# Next.js on Pages
|
|
58
|
+
npm create cloudflare@latest my-app -- --type=web-app --framework=next --platform=pages --ts
|
|
59
|
+
|
|
60
|
+
# Astro blog
|
|
61
|
+
npm create cloudflare@latest my-blog -- --type=web-app --framework=astro --ts --deploy
|
|
62
|
+
|
|
63
|
+
# CI: non-interactive
|
|
64
|
+
npm create cloudflare@latest my-app -- --type=web-app --framework=next --ts --no-git --no-deploy
|
|
65
|
+
|
|
66
|
+
# GitHub template
|
|
67
|
+
npm create cloudflare@latest -- --template=cloudflare/templates/worker-openapi
|
|
68
|
+
|
|
69
|
+
# Convert existing project
|
|
70
|
+
npm create cloudflare@latest . -- --type=pre-existing --existing-script=./build/worker.js
|
|
71
|
+
```
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# C3 Generated Configuration
|
|
2
|
+
|
|
3
|
+
## Output Structure
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
my-app/
|
|
7
|
+
├── src/index.ts # Worker entry point
|
|
8
|
+
├── wrangler.jsonc # Cloudflare config
|
|
9
|
+
├── package.json # Scripts
|
|
10
|
+
├── tsconfig.json
|
|
11
|
+
└── .gitignore
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## wrangler.jsonc
|
|
15
|
+
|
|
16
|
+
```jsonc
|
|
17
|
+
{
|
|
18
|
+
"$schema": "https://raw.githubusercontent.com/cloudflare/workers-sdk/main/packages/wrangler/config-schema.json",
|
|
19
|
+
"name": "my-app",
|
|
20
|
+
"main": "src/index.ts",
|
|
21
|
+
"compatibility_date": "2026-01-27",
|
|
22
|
+
}
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Binding Placeholders
|
|
26
|
+
|
|
27
|
+
C3 generates **placeholder IDs** that must be replaced before deploy:
|
|
28
|
+
|
|
29
|
+
```jsonc
|
|
30
|
+
{
|
|
31
|
+
"kv_namespaces": [{ "binding": "MY_KV", "id": "placeholder_kv_id" }],
|
|
32
|
+
"d1_databases": [{ "binding": "DB", "database_id": "00000000-..." }],
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Replace with real IDs:**
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
npx wrangler kv namespace create MY_KV # Returns real ID
|
|
40
|
+
npx wrangler d1 create my-database # Returns real database_id
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Deployment error if not replaced:**
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
Error: Invalid KV namespace ID "placeholder_kv_id"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Scripts
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"scripts": {
|
|
54
|
+
"dev": "wrangler dev",
|
|
55
|
+
"deploy": "wrangler deploy",
|
|
56
|
+
"cf-typegen": "wrangler types"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Type Generation
|
|
62
|
+
|
|
63
|
+
Run after adding bindings:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
npm run cf-typegen
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Generates `.wrangler/types/runtime.d.ts`:
|
|
70
|
+
|
|
71
|
+
```typescript
|
|
72
|
+
interface Env {
|
|
73
|
+
MY_KV: KVNamespace
|
|
74
|
+
DB: D1Database
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Post-Creation Checklist
|
|
79
|
+
|
|
80
|
+
1. Review `wrangler.jsonc` - check name, compatibility_date
|
|
81
|
+
2. Replace placeholder binding IDs with real resource IDs
|
|
82
|
+
3. Run `npm run cf-typegen`
|
|
83
|
+
4. Test: `npm run dev`
|
|
84
|
+
5. Deploy: `npm run deploy`
|
|
85
|
+
6. Add secrets: `npx wrangler secret put SECRET_NAME`
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# C3 Troubleshooting
|
|
2
|
+
|
|
3
|
+
## Deployment Issues
|
|
4
|
+
|
|
5
|
+
### Placeholder IDs
|
|
6
|
+
|
|
7
|
+
**Error:** "Invalid namespace ID"
|
|
8
|
+
**Fix:** Replace placeholders in wrangler.jsonc with real IDs:
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
npx wrangler kv namespace create MY_KV # Get real ID
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
### Authentication
|
|
15
|
+
|
|
16
|
+
**Error:** "Not authenticated"
|
|
17
|
+
**Fix:** `npx wrangler login` or set `CLOUDFLARE_API_TOKEN`
|
|
18
|
+
|
|
19
|
+
### Name Conflict
|
|
20
|
+
|
|
21
|
+
**Error:** "Worker already exists"
|
|
22
|
+
**Fix:** Change `name` in wrangler.jsonc
|
|
23
|
+
|
|
24
|
+
## Platform Selection
|
|
25
|
+
|
|
26
|
+
| Need | Platform |
|
|
27
|
+
| -------------------------------- | ------------------ |
|
|
28
|
+
| Git integration, branch previews | `--platform=pages` |
|
|
29
|
+
| Durable Objects, D1, Queues | Workers (default) |
|
|
30
|
+
|
|
31
|
+
Wrong platform? Recreate with correct `--platform` flag.
|
|
32
|
+
|
|
33
|
+
## TypeScript Issues
|
|
34
|
+
|
|
35
|
+
**"Cannot find name 'KVNamespace'"**
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npm run cf-typegen # Regenerate types
|
|
39
|
+
# Restart TS server in editor
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Missing types after config change:** Re-run `npm run cf-typegen`
|
|
43
|
+
|
|
44
|
+
## Package Manager
|
|
45
|
+
|
|
46
|
+
**Multiple lockfiles causing issues:**
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
rm pnpm-lock.yaml # If using npm
|
|
50
|
+
rm package-lock.json # If using pnpm
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## CI/CD
|
|
54
|
+
|
|
55
|
+
**CI hangs on prompts:**
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npm create cloudflare@latest my-app -- \
|
|
59
|
+
--type=hello-world --lang=ts --no-git --no-deploy
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Auth in CI:**
|
|
63
|
+
|
|
64
|
+
```yaml
|
|
65
|
+
env:
|
|
66
|
+
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
|
67
|
+
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Framework-Specific
|
|
71
|
+
|
|
72
|
+
| Framework | Issue | Fix |
|
|
73
|
+
| --------- | ---------------------- | -------------------------------- |
|
|
74
|
+
| Next.js | create-next-app failed | `npm cache clean --force`, retry |
|
|
75
|
+
| Astro | Adapter missing | Install `@astrojs/cloudflare` |
|
|
76
|
+
| Remix | Module errors | Update `@remix-run/cloudflare*` |
|
|
77
|
+
|
|
78
|
+
## Compatibility Date
|
|
79
|
+
|
|
80
|
+
**"Feature X requires compatibility_date >= ..."**
|
|
81
|
+
**Fix:** Update `compatibility_date` in wrangler.jsonc to today's date
|
|
82
|
+
|
|
83
|
+
## Node.js Version
|
|
84
|
+
|
|
85
|
+
**"Node.js version not supported"**
|
|
86
|
+
**Fix:** Install Node.js 18+ (`nvm install 20`)
|
|
87
|
+
|
|
88
|
+
## Quick Reference
|
|
89
|
+
|
|
90
|
+
| Error | Cause | Fix |
|
|
91
|
+
| ----------------------- | ------------------- | ------------------------------- |
|
|
92
|
+
| Invalid namespace ID | Placeholder binding | Create resource, update config |
|
|
93
|
+
| Not authenticated | No login | `npx wrangler login` |
|
|
94
|
+
| Cannot find KVNamespace | Missing types | `npm run cf-typegen` |
|
|
95
|
+
| Worker already exists | Name conflict | Change `name` |
|
|
96
|
+
| CI hangs | Missing flags | Add --type, --lang, --no-deploy |
|
|
97
|
+
| Template not found | Bad name | Check cloudflare/templates |
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# C3 Usage Patterns
|
|
2
|
+
|
|
3
|
+
## Quick Workflows
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
# TypeScript API Worker
|
|
7
|
+
npm create cloudflare@latest my-api -- --type=hello-world --lang=ts --deploy
|
|
8
|
+
|
|
9
|
+
# Next.js on Pages
|
|
10
|
+
npm create cloudflare@latest my-app -- --type=web-app --framework=next --platform=pages --ts --deploy
|
|
11
|
+
|
|
12
|
+
# Astro static site
|
|
13
|
+
npm create cloudflare@latest my-blog -- --type=web-app --framework=astro --platform=pages --ts
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## CI/CD (GitHub Actions)
|
|
17
|
+
|
|
18
|
+
```yaml
|
|
19
|
+
- name: Deploy
|
|
20
|
+
run: npm run deploy
|
|
21
|
+
env:
|
|
22
|
+
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
|
23
|
+
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Non-interactive requires:**
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
--type=<value> # Required
|
|
30
|
+
--no-git # Recommended (CI already in git)
|
|
31
|
+
--no-deploy # Deploy separately with secrets
|
|
32
|
+
--framework=<value> # For web-app
|
|
33
|
+
--ts / --no-ts # Required
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Monorepo
|
|
37
|
+
|
|
38
|
+
C3 detects workspace config (`package.json` workspaces or `pnpm-workspace.yaml`).
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
cd packages/
|
|
42
|
+
npm create cloudflare@latest my-worker -- --type=hello-world --lang=ts --no-deploy
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Custom Templates
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# GitHub repo
|
|
49
|
+
npm create cloudflare@latest -- --template=username/repo
|
|
50
|
+
npm create cloudflare@latest -- --template=cloudflare/templates/worker-openapi
|
|
51
|
+
|
|
52
|
+
# Local path
|
|
53
|
+
npm create cloudflare@latest my-app -- --template=../my-template
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Template requires `c3.config.json`:**
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
{
|
|
60
|
+
"name": "my-template",
|
|
61
|
+
"category": "hello-world",
|
|
62
|
+
"copies": [{ "path": "src/" }, { "path": "wrangler.jsonc" }],
|
|
63
|
+
"transforms": [{ "path": "package.json", "jsonc": { "name": "{{projectName}}" } }]
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Existing Projects
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# Add Cloudflare to existing Worker
|
|
71
|
+
npm create cloudflare@latest . -- --type=pre-existing --existing-script=./dist/index.js
|
|
72
|
+
|
|
73
|
+
# Add to existing framework app
|
|
74
|
+
npm create cloudflare@latest . -- --type=web-app --framework=next --platform=pages --ts
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Post-Creation Checklist
|
|
78
|
+
|
|
79
|
+
1. Review `wrangler.jsonc` - set `compatibility_date`, verify `name`
|
|
80
|
+
2. Create bindings: `wrangler kv namespace create`, `wrangler d1 create`, `wrangler r2 bucket create`
|
|
81
|
+
3. Generate types: `npm run cf-typegen`
|
|
82
|
+
4. Test: `npm run dev`
|
|
83
|
+
5. Deploy: `npm run deploy`
|
|
84
|
+
6. Set secrets: `wrangler secret put SECRET_NAME`
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# Cloudflare Cache Reserve
|
|
2
|
+
|
|
3
|
+
**Persistent cache storage built on R2 for long-term content retention**
|
|
4
|
+
|
|
5
|
+
## Smart Shield Integration
|
|
6
|
+
|
|
7
|
+
Cache Reserve is part of **Smart Shield**, Cloudflare's comprehensive security and performance suite:
|
|
8
|
+
|
|
9
|
+
- **Smart Shield Advanced tier**: Includes 2TB Cache Reserve storage
|
|
10
|
+
- **Standalone purchase**: Available separately if not using Smart Shield
|
|
11
|
+
- **Migration**: Existing standalone customers can migrate to Smart Shield bundles
|
|
12
|
+
|
|
13
|
+
**Decision**: Already on Smart Shield Advanced? Cache Reserve is included. Otherwise evaluate standalone purchase vs Smart Shield upgrade.
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
Cache Reserve is Cloudflare's persistent, large-scale cache storage layer built on R2. It acts as the ultimate upper-tier cache, storing cacheable content for extended periods (30+ days) to maximize cache hits, reduce origin egress fees, and shield origins from repeated requests for long-tail content.
|
|
18
|
+
|
|
19
|
+
## Core Concepts
|
|
20
|
+
|
|
21
|
+
### What is Cache Reserve?
|
|
22
|
+
|
|
23
|
+
- **Persistent storage layer**: Built on R2, sits above tiered cache hierarchy
|
|
24
|
+
- **Long-term retention**: 30-day default retention, extended on each access
|
|
25
|
+
- **Automatic operation**: Works seamlessly with existing CDN, no code changes required
|
|
26
|
+
- **Origin shielding**: Dramatically reduces origin egress by serving cached content longer
|
|
27
|
+
- **Usage-based pricing**: Pay only for storage + read/write operations
|
|
28
|
+
|
|
29
|
+
### Cache Hierarchy
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
Visitor Request
|
|
33
|
+
↓
|
|
34
|
+
Lower-Tier Cache (closest to visitor)
|
|
35
|
+
↓ (on miss)
|
|
36
|
+
Upper-Tier Cache (closest to origin)
|
|
37
|
+
↓ (on miss)
|
|
38
|
+
Cache Reserve (R2 persistent storage)
|
|
39
|
+
↓ (on miss)
|
|
40
|
+
Origin Server
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### How It Works
|
|
44
|
+
|
|
45
|
+
1. **On cache miss**: Content fetched from origin �� written to Cache Reserve + edge caches simultaneously
|
|
46
|
+
2. **On edge eviction**: Content may be evicted from edge cache but remains in Cache Reserve
|
|
47
|
+
3. **On subsequent request**: If edge cache misses but Cache Reserve hits → content restored to edge caches
|
|
48
|
+
4. **Retention**: Assets remain in Cache Reserve for 30 days since last access (configurable via TTL)
|
|
49
|
+
|
|
50
|
+
## When to Use Cache Reserve
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
Need persistent caching?
|
|
54
|
+
├─ High origin egress costs → Cache Reserve ✓
|
|
55
|
+
├─ Long-tail content (archives, media libraries) → Cache Reserve ✓
|
|
56
|
+
├─ Already using Smart Shield Advanced → Included! ✓
|
|
57
|
+
├─ Video streaming with seeking (range requests) → ✗ Not supported
|
|
58
|
+
├─ Dynamic/personalized content → ✗ Use edge cache only
|
|
59
|
+
├─ Need per-request cache control from Workers → ✗ Use R2 directly
|
|
60
|
+
└─ Frequently updated content (< 10hr lifetime) → ✗ Not eligible
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Asset Eligibility
|
|
64
|
+
|
|
65
|
+
Cache Reserve only stores assets meeting **ALL** criteria:
|
|
66
|
+
|
|
67
|
+
- Cacheable per Cloudflare's standard rules
|
|
68
|
+
- Minimum 10-hour TTL (36000 seconds)
|
|
69
|
+
- `Content-Length` header present
|
|
70
|
+
- Original files only (not transformed images)
|
|
71
|
+
|
|
72
|
+
### Eligibility Checklist
|
|
73
|
+
|
|
74
|
+
Use this checklist to verify if an asset is eligible:
|
|
75
|
+
|
|
76
|
+
- [ ] Zone has Cache Reserve enabled
|
|
77
|
+
- [ ] Zone has Tiered Cache enabled (required)
|
|
78
|
+
- [ ] Asset TTL ≥ 10 hours (36,000 seconds)
|
|
79
|
+
- [ ] `Content-Length` header present on origin response
|
|
80
|
+
- [ ] No `Set-Cookie` header (or uses private directive)
|
|
81
|
+
- [ ] `Vary` header is NOT `*` (can be `Accept-Encoding`)
|
|
82
|
+
- [ ] Not an image transformation variant (original images OK)
|
|
83
|
+
- [ ] Not a range request (no HTTP 206 support)
|
|
84
|
+
- [ ] Not O2O (Orange-to-Orange) proxied request
|
|
85
|
+
|
|
86
|
+
**All boxes must be checked for Cache Reserve eligibility.**
|
|
87
|
+
|
|
88
|
+
### Not Eligible
|
|
89
|
+
|
|
90
|
+
- Assets with TTL < 10 hours
|
|
91
|
+
- Responses without `Content-Length` header
|
|
92
|
+
- Image transformation variants (original images are eligible)
|
|
93
|
+
- Responses with `Set-Cookie` headers
|
|
94
|
+
- Responses with `Vary: *` header
|
|
95
|
+
- Assets from R2 public buckets on same zone
|
|
96
|
+
- O2O (Orange-to-Orange) setup requests
|
|
97
|
+
- **Range requests** (video seeking, partial content downloads)
|
|
98
|
+
|
|
99
|
+
## Quick Start
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
# Enable via Dashboard
|
|
103
|
+
https://dash.cloudflare.com/caching/cache-reserve
|
|
104
|
+
# Click "Enable Storage Sync" or "Purchase" button
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**Prerequisites:**
|
|
108
|
+
|
|
109
|
+
- Paid Cache Reserve plan or Smart Shield Advanced required
|
|
110
|
+
- Tiered Cache required for optimal performance
|
|
111
|
+
|
|
112
|
+
## Essential Commands
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
# Check Cache Reserve status
|
|
116
|
+
curl -X GET "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/cache/cache_reserve" \
|
|
117
|
+
-H "Authorization: Bearer $API_TOKEN"
|
|
118
|
+
|
|
119
|
+
# Enable Cache Reserve
|
|
120
|
+
curl -X PATCH "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/cache/cache_reserve" \
|
|
121
|
+
-H "Authorization: Bearer $API_TOKEN" \
|
|
122
|
+
-H "Content-Type: application/json" \
|
|
123
|
+
-d '{"value": "on"}'
|
|
124
|
+
|
|
125
|
+
# Check asset cache status
|
|
126
|
+
curl -I https://example.com/asset.jpg | grep -i cache
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## In This Reference
|
|
130
|
+
|
|
131
|
+
| Task | Files |
|
|
132
|
+
| ----------------------------------------------------- | --------------------------------------------------------- |
|
|
133
|
+
| Evaluate if Cache Reserve fits your use case | README.md (this file) |
|
|
134
|
+
| Enable Cache Reserve for your zone | README.md + [configuration.md](./configuration.md) |
|
|
135
|
+
| Use with Workers (understand limitations) | [api.md](./api.md) |
|
|
136
|
+
| Setup via SDKs or IaC (TypeScript, Python, Terraform) | [configuration.md](./configuration.md) |
|
|
137
|
+
| Optimize costs and debug issues | [patterns.md](./patterns.md) + [gotchas.md](./gotchas.md) |
|
|
138
|
+
| Understand eligibility and troubleshoot | [gotchas.md](./gotchas.md) → [patterns.md](./patterns.md) |
|
|
139
|
+
|
|
140
|
+
**Files:**
|
|
141
|
+
|
|
142
|
+
- [configuration.md](./configuration.md) - Setup, API, SDKs, and Cache Rules
|
|
143
|
+
- [api.md](./api.md) - Purging, monitoring, Workers integration
|
|
144
|
+
- [patterns.md](./patterns.md) - Best practices, cost optimization, debugging
|
|
145
|
+
- [gotchas.md](./gotchas.md) - Common issues, limitations, troubleshooting
|
|
146
|
+
|
|
147
|
+
## See Also
|
|
148
|
+
|
|
149
|
+
- [r2](../r2/) - Cache Reserve built on R2 storage
|
|
150
|
+
- [workers](../workers/) - Workers integration with Cache API
|