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,175 @@
|
|
|
1
|
+
# CNI Gotchas & Troubleshooting
|
|
2
|
+
|
|
3
|
+
## Common Errors
|
|
4
|
+
|
|
5
|
+
### "Status: Pending"
|
|
6
|
+
|
|
7
|
+
**Cause:** Cross-connect not installed, RX/TX fibers reversed, wrong fiber type, or low light levels
|
|
8
|
+
**Solution:**
|
|
9
|
+
|
|
10
|
+
1. Verify cross-connect installed
|
|
11
|
+
2. Check fiber at patch panel
|
|
12
|
+
3. Swap RX/TX fibers
|
|
13
|
+
4. Check light with optical power meter (target > -20 dBm)
|
|
14
|
+
5. Contact account team
|
|
15
|
+
|
|
16
|
+
### "Status: Unhealthy"
|
|
17
|
+
|
|
18
|
+
**Cause:** Physical issue, low light (<-20 dBm), optic mismatch, or dirty connectors
|
|
19
|
+
**Solution:**
|
|
20
|
+
|
|
21
|
+
1. Check physical connections
|
|
22
|
+
2. Clean fiber connectors
|
|
23
|
+
3. Verify optic types (10GBASE-LR/100GBASE-LR4)
|
|
24
|
+
4. Test with known-good optics
|
|
25
|
+
5. Check patch panel
|
|
26
|
+
6. Contact account team
|
|
27
|
+
|
|
28
|
+
### "BGP Session Down"
|
|
29
|
+
|
|
30
|
+
**Cause:** Wrong IP addressing, wrong ASN, password mismatch, or firewall blocking TCP/179
|
|
31
|
+
**Solution:**
|
|
32
|
+
|
|
33
|
+
1. Verify IPs match CNI object
|
|
34
|
+
2. Confirm ASN correct
|
|
35
|
+
3. Check BGP password
|
|
36
|
+
4. Verify no firewall on TCP/179
|
|
37
|
+
5. Check BGP logs
|
|
38
|
+
6. Review BGP timers
|
|
39
|
+
|
|
40
|
+
### "Low Throughput"
|
|
41
|
+
|
|
42
|
+
**Cause:** MTU mismatch, fragmentation, single GRE tunnel (v1), or routing inefficiency
|
|
43
|
+
**Solution:**
|
|
44
|
+
|
|
45
|
+
1. Check MTU (1500↓/1476↑ for v1, 1500 both for v2)
|
|
46
|
+
2. Test various packet sizes
|
|
47
|
+
3. Add more GRE tunnels (v1)
|
|
48
|
+
4. Consider upgrading to v2
|
|
49
|
+
5. Review routing tables
|
|
50
|
+
6. Use LACP for bundling (v1)
|
|
51
|
+
|
|
52
|
+
## API Errors
|
|
53
|
+
|
|
54
|
+
### 400 Bad Request: "slot_id already occupied"
|
|
55
|
+
|
|
56
|
+
**Cause:** Another interconnect already uses this slot
|
|
57
|
+
**Solution:** Use `occupied=false` filter when listing slots:
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
await client.networkInterconnects.slots.list({
|
|
61
|
+
account_id: id,
|
|
62
|
+
occupied: false,
|
|
63
|
+
facility: 'EWR1',
|
|
64
|
+
})
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 400 Bad Request: "invalid facility code"
|
|
68
|
+
|
|
69
|
+
**Cause:** Typo or unsupported facility
|
|
70
|
+
**Solution:** Check [locations PDF](https://developers.cloudflare.com/network-interconnect/static/cni-locations-2026-01.pdf) for valid codes
|
|
71
|
+
|
|
72
|
+
### 403 Forbidden: "Enterprise plan required"
|
|
73
|
+
|
|
74
|
+
**Cause:** Account not enterprise-level
|
|
75
|
+
**Solution:** Contact account team to upgrade
|
|
76
|
+
|
|
77
|
+
### 422 Unprocessable: "validate_only request failed"
|
|
78
|
+
|
|
79
|
+
**Cause:** Dry-run validation found issues (wrong slot, invalid config)
|
|
80
|
+
**Solution:** Review error message details, fix config before real creation
|
|
81
|
+
|
|
82
|
+
### Rate Limiting
|
|
83
|
+
|
|
84
|
+
**Limit:** 1200 requests/5min per token
|
|
85
|
+
**Solution:** Implement exponential backoff, cache slot listings
|
|
86
|
+
|
|
87
|
+
## Cloud-Specific Issues
|
|
88
|
+
|
|
89
|
+
### AWS Direct Connect: "VLAN not matching"
|
|
90
|
+
|
|
91
|
+
**Cause:** VLAN ID from AWS LOA doesn't match CNI config
|
|
92
|
+
**Solution:**
|
|
93
|
+
|
|
94
|
+
1. Get VLAN from AWS Console after ordering
|
|
95
|
+
2. Send exact VLAN to CF account team
|
|
96
|
+
3. Verify match in CNI object config
|
|
97
|
+
|
|
98
|
+
### AWS: "Connection stuck in Pending"
|
|
99
|
+
|
|
100
|
+
**Cause:** LOA not provided to CF or AWS connection not accepted
|
|
101
|
+
**Solution:**
|
|
102
|
+
|
|
103
|
+
1. Verify AWS connection status is "Available"
|
|
104
|
+
2. Confirm LOA sent to CF account team
|
|
105
|
+
3. Wait for CF team acceptance (can take days)
|
|
106
|
+
|
|
107
|
+
### GCP: "BGP routes not propagating"
|
|
108
|
+
|
|
109
|
+
**Cause:** BGP routes from GCP Cloud Router **ignored by design**
|
|
110
|
+
**Solution:** Use [static routes](https://developers.cloudflare.com/magic-wan/configuration/manually/how-to/configure-routes/#configure-static-routes) in Magic WAN instead
|
|
111
|
+
|
|
112
|
+
### GCP: "Cannot query VLAN attachment status via API"
|
|
113
|
+
|
|
114
|
+
**Cause:** GCP Cloud Interconnect Dashboard-only (no API yet)
|
|
115
|
+
**Solution:** Check status in CF Dashboard or GCP Console
|
|
116
|
+
|
|
117
|
+
## Partner Interconnect Issues
|
|
118
|
+
|
|
119
|
+
### Equinix: "Virtual circuit not appearing"
|
|
120
|
+
|
|
121
|
+
**Cause:** CF hasn't accepted Equinix connection request
|
|
122
|
+
**Solution:**
|
|
123
|
+
|
|
124
|
+
1. Verify VC created in Equinix Fabric Portal
|
|
125
|
+
2. Contact CF account team to accept
|
|
126
|
+
3. Allow 2-3 business days
|
|
127
|
+
|
|
128
|
+
### Console Connect/Megaport: "API creation fails"
|
|
129
|
+
|
|
130
|
+
**Cause:** Partner interconnects require partner portal + CF approval
|
|
131
|
+
**Solution:** Cannot fully automate. Order in partner portal, notify CF account team.
|
|
132
|
+
|
|
133
|
+
## Anti-Patterns
|
|
134
|
+
|
|
135
|
+
| Anti-Pattern | Why Bad | Solution |
|
|
136
|
+
| -------------------------------------- | ------------------------------------ | ------------------------------------ |
|
|
137
|
+
| Single interconnect for production | No SLA, single point of failure | Use ≥2 with device diversity |
|
|
138
|
+
| No backup Internet | CNI fails = total outage | Always maintain alternate path |
|
|
139
|
+
| Polling status every second | Rate limits, wastes API calls | Poll every 30-60s max |
|
|
140
|
+
| Using v1 for Magic WAN v2 workloads | GRE overhead, complexity | Use v2 for simplified routing |
|
|
141
|
+
| Assuming BGP session = traffic flowing | BGP up ≠ routes installed | Verify routing tables + test traffic |
|
|
142
|
+
| Not enabling maintenance alerts | Surprise downtime during maintenance | Enable notifications immediately |
|
|
143
|
+
| Hardcoding VLAN in automation | VLAN assigned by CF (v1) | Get VLAN from CNI object response |
|
|
144
|
+
| Using Direct without colocation | Can't access cross-connect | Use Partner or Cloud interconnect |
|
|
145
|
+
|
|
146
|
+
## What's Not Queryable via API
|
|
147
|
+
|
|
148
|
+
**Cannot retrieve:**
|
|
149
|
+
|
|
150
|
+
- BGP session state (use Dashboard or BGP logs)
|
|
151
|
+
- Light levels (contact account team)
|
|
152
|
+
- Historical metrics (uptime, traffic)
|
|
153
|
+
- Bandwidth utilization per interconnect
|
|
154
|
+
- Maintenance window schedules (notifications only)
|
|
155
|
+
- Fiber path details
|
|
156
|
+
- Cross-connect installation status
|
|
157
|
+
|
|
158
|
+
**Workarounds:**
|
|
159
|
+
|
|
160
|
+
- External monitoring for BGP state
|
|
161
|
+
- Log aggregation for historical data
|
|
162
|
+
- Notifications for maintenance windows
|
|
163
|
+
|
|
164
|
+
## Limits
|
|
165
|
+
|
|
166
|
+
| Resource/Limit | Value | Notes |
|
|
167
|
+
| --------------------- | ------------- | ----------------------------------- |
|
|
168
|
+
| Max optical distance | 10km | Physical limit |
|
|
169
|
+
| MTU (v1) | 1500↓ / 1476↑ | Asymmetric |
|
|
170
|
+
| MTU (v2) | 1500 both | Symmetric |
|
|
171
|
+
| GRE tunnel throughput | 1 Gbps | Per tunnel (v1) |
|
|
172
|
+
| Recovery time | Days | No formal SLA |
|
|
173
|
+
| Light level minimum | -20 dBm | Target threshold |
|
|
174
|
+
| API rate limit | 1200 req/5min | Per token |
|
|
175
|
+
| Health check delay | 6 hours | New maintenance alert subscriptions |
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# CNI Patterns
|
|
2
|
+
|
|
3
|
+
See [README.md](README.md) for overview.
|
|
4
|
+
|
|
5
|
+
## High Availability
|
|
6
|
+
|
|
7
|
+
**Critical:** Design for resilience from day one.
|
|
8
|
+
|
|
9
|
+
**Requirements:**
|
|
10
|
+
|
|
11
|
+
- Device-level diversity (separate hardware)
|
|
12
|
+
- Backup Internet connectivity (no SLA on CNI)
|
|
13
|
+
- Network-resilient locations preferred
|
|
14
|
+
- Regular failover testing
|
|
15
|
+
|
|
16
|
+
**Architecture:**
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
Your Network A ──10G CNI v2──> CF CCR Device 1
|
|
20
|
+
│
|
|
21
|
+
Your Network B ──10G CNI v2──> CF CCR Device 2
|
|
22
|
+
│
|
|
23
|
+
CF Global Network (AS13335)
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Capacity Planning:**
|
|
27
|
+
|
|
28
|
+
- Plan across all links
|
|
29
|
+
- Account for failover scenarios
|
|
30
|
+
- Your responsibility
|
|
31
|
+
|
|
32
|
+
## Pattern: Magic Transit + CNI v2
|
|
33
|
+
|
|
34
|
+
**Use Case:** DDoS protection, private connectivity, no GRE overhead.
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
// 1. Create interconnect
|
|
38
|
+
const ic = await client.networkInterconnects.interconnects.create({
|
|
39
|
+
account_id: id,
|
|
40
|
+
type: 'direct',
|
|
41
|
+
facility: 'EWR1',
|
|
42
|
+
speed: '10G',
|
|
43
|
+
name: 'magic-transit-primary',
|
|
44
|
+
})
|
|
45
|
+
|
|
46
|
+
// 2. Poll until active
|
|
47
|
+
const status = await pollUntilActive(id, ic.id)
|
|
48
|
+
|
|
49
|
+
// 3. Configure Magic Transit tunnel via Dashboard/API
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Benefits:** 1500 MTU both ways, simplified routing.
|
|
53
|
+
|
|
54
|
+
## Pattern: Multi-Cloud Hybrid
|
|
55
|
+
|
|
56
|
+
**Use Case:** AWS/GCP workloads with Cloudflare.
|
|
57
|
+
|
|
58
|
+
**AWS Direct Connect:**
|
|
59
|
+
|
|
60
|
+
```typescript
|
|
61
|
+
// 1. Order Direct Connect in AWS Console
|
|
62
|
+
// 2. Get LOA + VLAN from AWS
|
|
63
|
+
// 3. Send to CF account team (no API)
|
|
64
|
+
// 4. Configure static routes in Magic WAN
|
|
65
|
+
|
|
66
|
+
await configureStaticRoutes(id, {
|
|
67
|
+
prefix: '10.0.0.0/8',
|
|
68
|
+
nexthop: 'aws-direct-connect',
|
|
69
|
+
})
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**GCP Cloud Interconnect:**
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
1. Get VLAN attachment pairing key from GCP Console
|
|
76
|
+
2. Create via Dashboard: Interconnects → Create → Cloud Interconnect → Google
|
|
77
|
+
- Enter pairing key, name, MTU, speed
|
|
78
|
+
3. Configure static routes in Magic WAN (BGP routes from GCP ignored)
|
|
79
|
+
4. Configure custom learned routes in GCP Cloud Router
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Note:** Dashboard-only. No API/SDK support yet.
|
|
83
|
+
|
|
84
|
+
## Pattern: Multi-Location HA
|
|
85
|
+
|
|
86
|
+
**Use Case:** 99.99%+ uptime.
|
|
87
|
+
|
|
88
|
+
```typescript
|
|
89
|
+
// Primary (NY)
|
|
90
|
+
const primary = await client.networkInterconnects.interconnects.create({
|
|
91
|
+
account_id: id,
|
|
92
|
+
type: 'direct',
|
|
93
|
+
facility: 'EWR1',
|
|
94
|
+
speed: '10G',
|
|
95
|
+
name: 'primary-ewr1',
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
// Secondary (NY, different hardware)
|
|
99
|
+
const secondary = await client.networkInterconnects.interconnects.create({
|
|
100
|
+
account_id: id,
|
|
101
|
+
type: 'direct',
|
|
102
|
+
facility: 'EWR2',
|
|
103
|
+
speed: '10G',
|
|
104
|
+
name: 'secondary-ewr2',
|
|
105
|
+
})
|
|
106
|
+
|
|
107
|
+
// Tertiary (LA, different geography)
|
|
108
|
+
const tertiary = await client.networkInterconnects.interconnects.create({
|
|
109
|
+
account_id: id,
|
|
110
|
+
type: 'partner',
|
|
111
|
+
facility: 'LAX1',
|
|
112
|
+
speed: '10G',
|
|
113
|
+
name: 'tertiary-lax1',
|
|
114
|
+
})
|
|
115
|
+
|
|
116
|
+
// BGP local preferences:
|
|
117
|
+
// Primary: 200
|
|
118
|
+
// Secondary: 150
|
|
119
|
+
// Tertiary: 100
|
|
120
|
+
// Internet: Last resort
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Pattern: Partner Interconnect (Equinix)
|
|
124
|
+
|
|
125
|
+
**Use Case:** Quick deployment, no colocation.
|
|
126
|
+
|
|
127
|
+
**Setup:**
|
|
128
|
+
|
|
129
|
+
1. Order virtual circuit in Equinix Fabric Portal
|
|
130
|
+
2. Select Cloudflare as destination
|
|
131
|
+
3. Choose facility
|
|
132
|
+
4. Send details to CF account team
|
|
133
|
+
5. CF accepts in portal
|
|
134
|
+
6. Configure BGP
|
|
135
|
+
|
|
136
|
+
**No API automation** – partner portals managed separately.
|
|
137
|
+
|
|
138
|
+
## Failover & Security
|
|
139
|
+
|
|
140
|
+
**Failover Best Practices:**
|
|
141
|
+
|
|
142
|
+
- Use BGP local preferences for priority
|
|
143
|
+
- Configure BFD for fast detection (v1)
|
|
144
|
+
- Test regularly with traffic shift
|
|
145
|
+
- Document runbooks
|
|
146
|
+
|
|
147
|
+
**Security:**
|
|
148
|
+
|
|
149
|
+
- BGP password authentication
|
|
150
|
+
- BGP route filtering
|
|
151
|
+
- Monitor unexpected routes
|
|
152
|
+
- Magic Firewall for DDoS/threats
|
|
153
|
+
- Minimum API token permissions
|
|
154
|
+
- Rotate credentials periodically
|
|
155
|
+
|
|
156
|
+
## Decision Matrix
|
|
157
|
+
|
|
158
|
+
| Requirement | Recommended |
|
|
159
|
+
| ------------------ | ----------- |
|
|
160
|
+
| Collocated with CF | Direct |
|
|
161
|
+
| Not collocated | Partner |
|
|
162
|
+
| AWS/GCP workloads | Cloud |
|
|
163
|
+
| 1500 MTU both ways | v2 |
|
|
164
|
+
| VLAN tagging | v1 |
|
|
165
|
+
| Public peering | v1 |
|
|
166
|
+
| Simplest config | v2 |
|
|
167
|
+
| BFD fast failover | v1 |
|
|
168
|
+
| LACP bundling | v1 |
|
|
169
|
+
|
|
170
|
+
## Resources
|
|
171
|
+
|
|
172
|
+
- [Magic Transit Docs](https://developers.cloudflare.com/magic-transit/)
|
|
173
|
+
- [Magic WAN Docs](https://developers.cloudflare.com/magic-wan/)
|
|
174
|
+
- [Argo Smart Routing](https://developers.cloudflare.com/argo/)
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Cloudflare Observability Skill Reference
|
|
2
|
+
|
|
3
|
+
**Purpose**: Comprehensive guidance for implementing observability in Cloudflare Workers, covering traces, logs, metrics, and analytics.
|
|
4
|
+
|
|
5
|
+
**Scope**: Cloudflare Observability features ONLY - Workers Logs, Traces, Analytics Engine, Logpush, Metrics & Analytics, and OpenTelemetry exports.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Decision Tree: Which File to Load?
|
|
10
|
+
|
|
11
|
+
Use this to route to the correct file without loading all content:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
├─ "How do I enable/configure X?" → configuration.md
|
|
15
|
+
├─ "What's the API/method/binding for X?" → api.md
|
|
16
|
+
├─ "How do I implement X pattern?" → patterns.md
|
|
17
|
+
│ ├─ Usage tracking/billing → patterns.md
|
|
18
|
+
│ ├─ Error tracking → patterns.md
|
|
19
|
+
│ ├─ Performance monitoring → patterns.md
|
|
20
|
+
│ ├─ Multi-tenant tracking → patterns.md
|
|
21
|
+
│ ├─ Tail Worker filtering → patterns.md
|
|
22
|
+
│ └─ OpenTelemetry export → patterns.md
|
|
23
|
+
└─ "Why isn't X working?" / "Limits?" → gotchas.md
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Reading Order
|
|
27
|
+
|
|
28
|
+
Load files in this order based on task:
|
|
29
|
+
|
|
30
|
+
| Task Type | Load Order | Reason |
|
|
31
|
+
| --------------------- | --------------------------------- | ---------------------------------- |
|
|
32
|
+
| **Initial setup** | configuration.md → gotchas.md | Setup first, avoid pitfalls |
|
|
33
|
+
| **Implement feature** | patterns.md → api.md → gotchas.md | Pattern → API details → edge cases |
|
|
34
|
+
| **Debug issue** | gotchas.md → configuration.md | Common issues first |
|
|
35
|
+
| **Query data** | api.md → patterns.md | API syntax → query examples |
|
|
36
|
+
|
|
37
|
+
## Product Overview
|
|
38
|
+
|
|
39
|
+
### Workers Logs
|
|
40
|
+
|
|
41
|
+
- **What:** Console output from Workers (console.log/warn/error)
|
|
42
|
+
- **Access:** Dashboard (Real-time Logs), Logpush, Tail Workers
|
|
43
|
+
- **Cost:** Free (included with all Workers)
|
|
44
|
+
- **Retention:** Real-time only (no historical storage in dashboard)
|
|
45
|
+
|
|
46
|
+
### Workers Traces
|
|
47
|
+
|
|
48
|
+
- **What:** Execution traces with timing, CPU usage, outcome
|
|
49
|
+
- **Access:** Dashboard (Workers Analytics → Traces), Logpush
|
|
50
|
+
- **Cost:** $0.10/1M spans (GA pricing starts March 1, 2026), 10M free/month
|
|
51
|
+
- **Retention:** 14 days included
|
|
52
|
+
|
|
53
|
+
### Analytics Engine
|
|
54
|
+
|
|
55
|
+
- **What:** High-cardinality event storage and SQL queries
|
|
56
|
+
- **Access:** SQL API, Dashboard (Analytics → Analytics Engine)
|
|
57
|
+
- **Cost:** $0.25/1M writes beyond 10M free/month
|
|
58
|
+
- **Retention:** 90 days (configurable up to 1 year)
|
|
59
|
+
|
|
60
|
+
### Tail Workers
|
|
61
|
+
|
|
62
|
+
- **What:** Workers that receive logs/traces from other Workers
|
|
63
|
+
- **Use Cases:** Log filtering, transformation, external export
|
|
64
|
+
- **Cost:** Standard Workers pricing
|
|
65
|
+
|
|
66
|
+
### Logpush
|
|
67
|
+
|
|
68
|
+
- **What:** Stream logs to external storage (S3, R2, Datadog, etc.)
|
|
69
|
+
- **Access:** Dashboard, API
|
|
70
|
+
- **Cost:** Requires Business/Enterprise plan
|
|
71
|
+
|
|
72
|
+
## Pricing Summary (2026)
|
|
73
|
+
|
|
74
|
+
| Feature | Free Tier | Cost Beyond Free Tier | Plan Requirement |
|
|
75
|
+
| ---------------- | ---------------- | --------------------- | -------------------------------- |
|
|
76
|
+
| Workers Logs | Unlimited | Free | Any |
|
|
77
|
+
| Workers Traces | 10M spans/month | $0.10/1M spans | Paid Workers (GA: March 1, 2026) |
|
|
78
|
+
| Analytics Engine | 10M writes/month | $0.25/1M writes | Paid Workers |
|
|
79
|
+
| Logpush | N/A | Included in plan | Business/Enterprise |
|
|
80
|
+
|
|
81
|
+
## In This Reference
|
|
82
|
+
|
|
83
|
+
- **[configuration.md](configuration.md)** - Setup, deployment, configuration (Logs, Traces, Analytics Engine, Tail Workers, Logpush)
|
|
84
|
+
- **[api.md](api.md)** - API endpoints, methods, interfaces (GraphQL, SQL, bindings, types)
|
|
85
|
+
- **[patterns.md](patterns.md)** - Common patterns, use cases, examples (billing, monitoring, error tracking, exports)
|
|
86
|
+
- **[gotchas.md](gotchas.md)** - Troubleshooting, best practices, limitations (common errors, performance gotchas, pricing)
|
|
87
|
+
|
|
88
|
+
## See Also
|
|
89
|
+
|
|
90
|
+
- [Cloudflare Workers Docs](https://developers.cloudflare.com/workers/)
|
|
91
|
+
- [Analytics Engine Docs](https://developers.cloudflare.com/analytics/analytics-engine/)
|
|
92
|
+
- [Workers Traces Docs](https://developers.cloudflare.com/workers/observability/traces/)
|
|
93
|
+
- [GraphQL Analytics API Reference](../graphql-api/) - Query Workers metrics, HTTP analytics, and 70+ other datasets via GraphQL
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
## API Reference
|
|
2
|
+
|
|
3
|
+
### GraphQL Analytics API
|
|
4
|
+
|
|
5
|
+
**Endpoint**: `https://api.cloudflare.com/client/v4/graphql`
|
|
6
|
+
|
|
7
|
+
**Query Workers Metrics**:
|
|
8
|
+
|
|
9
|
+
```graphql
|
|
10
|
+
query {
|
|
11
|
+
viewer {
|
|
12
|
+
accounts(filter: { accountTag: $accountId }) {
|
|
13
|
+
workersInvocationsAdaptive(
|
|
14
|
+
limit: 100
|
|
15
|
+
filter: {
|
|
16
|
+
datetime_geq: "2025-01-01T00:00:00Z"
|
|
17
|
+
datetime_leq: "2025-01-31T23:59:59Z"
|
|
18
|
+
scriptName: "my-worker"
|
|
19
|
+
}
|
|
20
|
+
) {
|
|
21
|
+
sum {
|
|
22
|
+
requests
|
|
23
|
+
errors
|
|
24
|
+
subrequests
|
|
25
|
+
}
|
|
26
|
+
quantiles {
|
|
27
|
+
cpuTimeP50
|
|
28
|
+
cpuTimeP99
|
|
29
|
+
wallTimeP50
|
|
30
|
+
wallTimeP99
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Analytics Engine SQL API
|
|
39
|
+
|
|
40
|
+
**Endpoint**: `https://api.cloudflare.com/client/v4/accounts/{account_id}/analytics_engine/sql`
|
|
41
|
+
|
|
42
|
+
**Authentication**: `Authorization: Bearer <API_TOKEN>` (Account Analytics Read permission)
|
|
43
|
+
|
|
44
|
+
**Common Queries**:
|
|
45
|
+
|
|
46
|
+
```sql
|
|
47
|
+
-- List all datasets
|
|
48
|
+
SHOW TABLES;
|
|
49
|
+
|
|
50
|
+
-- Time-series aggregation (5-minute buckets)
|
|
51
|
+
SELECT
|
|
52
|
+
intDiv(toUInt32(timestamp), 300) * 300 AS time_bucket,
|
|
53
|
+
blob1 AS endpoint,
|
|
54
|
+
SUM(_sample_interval) AS total_requests,
|
|
55
|
+
AVG(double1) AS avg_response_time_ms
|
|
56
|
+
FROM api_metrics
|
|
57
|
+
WHERE timestamp >= NOW() - INTERVAL '24' HOUR
|
|
58
|
+
GROUP BY time_bucket, endpoint
|
|
59
|
+
ORDER BY time_bucket DESC;
|
|
60
|
+
|
|
61
|
+
-- Top customers by usage
|
|
62
|
+
SELECT
|
|
63
|
+
index1 AS customer_id,
|
|
64
|
+
SUM(_sample_interval * double1) AS total_api_calls,
|
|
65
|
+
AVG(double2) AS avg_response_time_ms
|
|
66
|
+
FROM api_usage
|
|
67
|
+
WHERE timestamp >= NOW() - INTERVAL '7' DAY
|
|
68
|
+
GROUP BY customer_id
|
|
69
|
+
ORDER BY total_api_calls DESC
|
|
70
|
+
LIMIT 100;
|
|
71
|
+
|
|
72
|
+
-- Error rate analysis
|
|
73
|
+
SELECT
|
|
74
|
+
blob1 AS error_type,
|
|
75
|
+
COUNT(*) AS occurrences,
|
|
76
|
+
MAX(timestamp) AS last_seen
|
|
77
|
+
FROM error_tracking
|
|
78
|
+
WHERE timestamp >= NOW() - INTERVAL '1' HOUR
|
|
79
|
+
GROUP BY error_type
|
|
80
|
+
ORDER BY occurrences DESC;
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Console Logging API
|
|
84
|
+
|
|
85
|
+
**Methods**:
|
|
86
|
+
|
|
87
|
+
```typescript
|
|
88
|
+
// Standard methods (all appear in Workers Logs)
|
|
89
|
+
console.log('info message')
|
|
90
|
+
console.info('info message')
|
|
91
|
+
console.warn('warning message')
|
|
92
|
+
console.error('error message')
|
|
93
|
+
console.debug('debug message')
|
|
94
|
+
|
|
95
|
+
// Structured logging (recommended)
|
|
96
|
+
console.log({
|
|
97
|
+
level: 'info',
|
|
98
|
+
user_id: '123',
|
|
99
|
+
action: 'checkout',
|
|
100
|
+
amount: 99.99,
|
|
101
|
+
currency: 'USD',
|
|
102
|
+
})
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**Log Levels**: All console methods produce logs; use structured fields for filtering:
|
|
106
|
+
|
|
107
|
+
```typescript
|
|
108
|
+
console.log({
|
|
109
|
+
level: 'error',
|
|
110
|
+
message: 'Payment failed',
|
|
111
|
+
error_code: 'CARD_DECLINED',
|
|
112
|
+
})
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Analytics Engine Binding Types
|
|
116
|
+
|
|
117
|
+
```typescript
|
|
118
|
+
interface AnalyticsEngineDataset {
|
|
119
|
+
writeDataPoint(event: AnalyticsEngineDataPoint): void
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
interface AnalyticsEngineDataPoint {
|
|
123
|
+
// Indexed strings (use for filtering/grouping)
|
|
124
|
+
indexes?: string[]
|
|
125
|
+
|
|
126
|
+
// Non-indexed strings (metadata, IDs, URLs)
|
|
127
|
+
blobs?: string[]
|
|
128
|
+
|
|
129
|
+
// Numeric values (counts, durations, amounts)
|
|
130
|
+
doubles?: number[]
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**Field Limits**:
|
|
135
|
+
|
|
136
|
+
- Max 20 indexes
|
|
137
|
+
- Max 20 blobs
|
|
138
|
+
- Max 20 doubles
|
|
139
|
+
- Max 25 `writeDataPoint` calls per request
|
|
140
|
+
|
|
141
|
+
### Tail Consumer Event Type
|
|
142
|
+
|
|
143
|
+
```typescript
|
|
144
|
+
interface TraceItem {
|
|
145
|
+
event: TraceEvent
|
|
146
|
+
logs: TraceLog[]
|
|
147
|
+
exceptions: TraceException[]
|
|
148
|
+
scriptName?: string
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
interface TraceEvent {
|
|
152
|
+
outcome: 'ok' | 'exception' | 'exceededCpu' | 'exceededMemory' | 'unknown'
|
|
153
|
+
cpuTime: number // microseconds
|
|
154
|
+
wallTime: number // microseconds
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
interface TraceLog {
|
|
158
|
+
timestamp: number
|
|
159
|
+
level: 'log' | 'info' | 'debug' | 'warn' | 'error'
|
|
160
|
+
message: any // string or structured object
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
interface TraceException {
|
|
164
|
+
name: string
|
|
165
|
+
message: string
|
|
166
|
+
timestamp: number
|
|
167
|
+
}
|
|
168
|
+
```
|