memory-journal-mcp 7.7.0 → 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-QCQPAF4I.js → chunk-MWNLAEHR.js} +301 -4321
- 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 +7 -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,163 @@
|
|
|
1
|
+
# Tunnel Configuration
|
|
2
|
+
|
|
3
|
+
## Config Source
|
|
4
|
+
|
|
5
|
+
Tunnels use one of two config sources:
|
|
6
|
+
|
|
7
|
+
| Config Source | Storage | Updates | Use Case |
|
|
8
|
+
| ------------- | ----------------- | ------------------- | ---------------------------------- |
|
|
9
|
+
| Local | `config.yml` file | Edit file, restart | Dev, multi-env, version control |
|
|
10
|
+
| Cloudflare | Dashboard/API | Instant, no restart | Production, centralized management |
|
|
11
|
+
|
|
12
|
+
**Token-based tunnels** = config source: Cloudflare
|
|
13
|
+
**Locally-managed tunnels** = config source: local
|
|
14
|
+
|
|
15
|
+
## Config File Location
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
~/.cloudflared/config.yml # User config
|
|
19
|
+
/etc/cloudflared/config.yml # System-wide (Linux)
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Basic Structure
|
|
23
|
+
|
|
24
|
+
```yaml
|
|
25
|
+
tunnel: <UUID>
|
|
26
|
+
credentials-file: /path/to/<UUID>.json
|
|
27
|
+
|
|
28
|
+
ingress:
|
|
29
|
+
- hostname: app.example.com
|
|
30
|
+
service: http://localhost:8000
|
|
31
|
+
- service: http_status:404 # Required catch-all
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Ingress Rules
|
|
35
|
+
|
|
36
|
+
Rules evaluated **top to bottom**, first match wins.
|
|
37
|
+
|
|
38
|
+
```yaml
|
|
39
|
+
ingress:
|
|
40
|
+
# Exact hostname + path regex
|
|
41
|
+
- hostname: static.example.com
|
|
42
|
+
path: \.(jpg|png|css|js)$
|
|
43
|
+
service: https://localhost:8001
|
|
44
|
+
|
|
45
|
+
# Wildcard hostname
|
|
46
|
+
- hostname: '*.example.com'
|
|
47
|
+
service: https://localhost:8002
|
|
48
|
+
|
|
49
|
+
# Path only (all hostnames)
|
|
50
|
+
- path: /api/.*
|
|
51
|
+
service: http://localhost:9000
|
|
52
|
+
|
|
53
|
+
# Catch-all (required)
|
|
54
|
+
- service: http_status:404
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Validation**:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
cloudflared tunnel ingress validate
|
|
61
|
+
cloudflared tunnel ingress rule https://foo.example.com
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Service Types
|
|
65
|
+
|
|
66
|
+
| Protocol | Format | Client Requirement |
|
|
67
|
+
| -------- | ------------------------ | ------------------------ |
|
|
68
|
+
| HTTP | `http://localhost:8000` | Browser |
|
|
69
|
+
| HTTPS | `https://localhost:8443` | Browser |
|
|
70
|
+
| TCP | `tcp://localhost:2222` | `cloudflared access tcp` |
|
|
71
|
+
| SSH | `ssh://localhost:22` | `cloudflared access ssh` |
|
|
72
|
+
| RDP | `rdp://localhost:3389` | `cloudflared access rdp` |
|
|
73
|
+
| Unix | `unix:/path/to/socket` | Browser |
|
|
74
|
+
| Test | `hello_world` | Browser |
|
|
75
|
+
|
|
76
|
+
## Origin Configuration
|
|
77
|
+
|
|
78
|
+
### Connection Settings
|
|
79
|
+
|
|
80
|
+
```yaml
|
|
81
|
+
originRequest:
|
|
82
|
+
connectTimeout: 30s
|
|
83
|
+
tlsTimeout: 10s
|
|
84
|
+
tcpKeepAlive: 30s
|
|
85
|
+
keepAliveTimeout: 90s
|
|
86
|
+
keepAliveConnections: 100
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### TLS Settings
|
|
90
|
+
|
|
91
|
+
```yaml
|
|
92
|
+
originRequest:
|
|
93
|
+
noTLSVerify: true # Disable cert verification
|
|
94
|
+
originServerName: 'app.internal' # Override SNI
|
|
95
|
+
caPool: /path/to/ca.pem # Custom CA
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### HTTP Settings
|
|
99
|
+
|
|
100
|
+
```yaml
|
|
101
|
+
originRequest:
|
|
102
|
+
disableChunkedEncoding: true
|
|
103
|
+
httpHostHeader: 'app.internal'
|
|
104
|
+
http2Origin: true
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Private Network Mode
|
|
108
|
+
|
|
109
|
+
```yaml
|
|
110
|
+
tunnel: <UUID>
|
|
111
|
+
credentials-file: /path/to/creds.json
|
|
112
|
+
|
|
113
|
+
warp-routing:
|
|
114
|
+
enabled: true
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
cloudflared tunnel route ip add 10.0.0.0/8 my-tunnel
|
|
119
|
+
cloudflared tunnel route ip add 192.168.1.100/32 my-tunnel
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Config Source Comparison
|
|
123
|
+
|
|
124
|
+
### Local Config
|
|
125
|
+
|
|
126
|
+
```yaml
|
|
127
|
+
# config.yml
|
|
128
|
+
tunnel: <UUID>
|
|
129
|
+
credentials-file: /path/to/<UUID>.json
|
|
130
|
+
|
|
131
|
+
ingress:
|
|
132
|
+
- hostname: app.example.com
|
|
133
|
+
service: http://localhost:8000
|
|
134
|
+
- service: http_status:404
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
cloudflared tunnel run my-tunnel
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**Pros:** Version control, multi-environment, offline edits
|
|
142
|
+
**Cons:** Requires file distribution, manual restarts
|
|
143
|
+
|
|
144
|
+
### Cloudflare Config (Token-Based)
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# No config file needed
|
|
148
|
+
cloudflared tunnel --no-autoupdate run --token <TOKEN>
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Configure routes in dashboard: **Zero Trust** > **Networks** > **Tunnels** > [Tunnel] > **Public Hostname**
|
|
152
|
+
|
|
153
|
+
**Pros:** Centralized updates, no file management, instant route changes
|
|
154
|
+
**Cons:** Requires dashboard/API access, less portable
|
|
155
|
+
|
|
156
|
+
## Environment Variables
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
TUNNEL_TOKEN=<token> # Token for config source: cloudflare
|
|
160
|
+
TUNNEL_ORIGIN_CERT=/path/to/cert.pem # Override cert path (local config)
|
|
161
|
+
NO_AUTOUPDATE=true # Disable auto-updates
|
|
162
|
+
TUNNEL_LOGLEVEL=debug # Log level
|
|
163
|
+
```
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
# Tunnel Gotchas
|
|
2
|
+
|
|
3
|
+
## Common Errors
|
|
4
|
+
|
|
5
|
+
### "Error 1016 (Origin DNS Error)"
|
|
6
|
+
|
|
7
|
+
**Cause:** Tunnel not running or not connected
|
|
8
|
+
**Solution:**
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
cloudflared tunnel info my-tunnel # Check status
|
|
12
|
+
ps aux | grep cloudflared # Verify running
|
|
13
|
+
journalctl -u cloudflared -n 100 # Check logs
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### "Self-signed certificate rejected"
|
|
17
|
+
|
|
18
|
+
**Cause:** Origin using self-signed certificate
|
|
19
|
+
**Solution:**
|
|
20
|
+
|
|
21
|
+
```yaml
|
|
22
|
+
originRequest:
|
|
23
|
+
noTLSVerify: true # Dev only
|
|
24
|
+
caPool: /path/to/ca.pem # Custom CA
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### "Connection timeout"
|
|
28
|
+
|
|
29
|
+
**Cause:** Origin slow to respond or timeout settings too low
|
|
30
|
+
**Solution:**
|
|
31
|
+
|
|
32
|
+
```yaml
|
|
33
|
+
originRequest:
|
|
34
|
+
connectTimeout: 60s
|
|
35
|
+
tlsTimeout: 20s
|
|
36
|
+
keepAliveTimeout: 120s
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### "Tunnel not starting"
|
|
40
|
+
|
|
41
|
+
**Cause:** Invalid config, missing credentials, or tunnel doesn't exist
|
|
42
|
+
**Solution:**
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
cloudflared tunnel ingress validate # Validate config
|
|
46
|
+
ls -la ~/.cloudflared/*.json # Verify credentials
|
|
47
|
+
cloudflared tunnel list # Verify tunnel exists
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### "Connection already registered"
|
|
51
|
+
|
|
52
|
+
**Cause:** Multiple replicas with same connector ID or stale connection
|
|
53
|
+
**Solution:**
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# Check active connections
|
|
57
|
+
cloudflared tunnel info my-tunnel
|
|
58
|
+
|
|
59
|
+
# Wait 60s for stale connection cleanup, or restart with new connector ID
|
|
60
|
+
cloudflared tunnel run my-tunnel
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### "Tunnel credentials rotated but connections fail"
|
|
64
|
+
|
|
65
|
+
**Cause:** Old cloudflared processes using expired credentials
|
|
66
|
+
**Solution:**
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# Stop all cloudflared processes
|
|
70
|
+
pkill cloudflared
|
|
71
|
+
|
|
72
|
+
# Verify stopped
|
|
73
|
+
ps aux | grep cloudflared
|
|
74
|
+
|
|
75
|
+
# Restart with new credentials
|
|
76
|
+
cloudflared tunnel run my-tunnel
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Limits
|
|
80
|
+
|
|
81
|
+
| Resource/Limit | Value | Notes |
|
|
82
|
+
| ---------------------- | ----------------------- | ----------------------------------------- |
|
|
83
|
+
| Free tier | Unlimited tunnels | Unlimited traffic |
|
|
84
|
+
| Tunnel replicas | 1000 per tunnel | Max concurrent |
|
|
85
|
+
| Connection duration | No hard limit | Hours to days |
|
|
86
|
+
| Long-lived connections | May drop during updates | WebSocket, SSH, UDP |
|
|
87
|
+
| Replica registration | ~5s TTL | Old replica dropped after 5s no heartbeat |
|
|
88
|
+
| Token rotation grace | 24 hours | Old tokens work during grace period |
|
|
89
|
+
|
|
90
|
+
## Best Practices
|
|
91
|
+
|
|
92
|
+
### Security
|
|
93
|
+
|
|
94
|
+
1. Use token-based tunnels (config source: cloudflare) for centralized control
|
|
95
|
+
2. Enable Access policies for sensitive services
|
|
96
|
+
3. Rotate tunnel credentials regularly
|
|
97
|
+
4. After rotation: stop all old cloudflared processes within 24h grace period
|
|
98
|
+
5. Verify TLS certs (`noTLSVerify: false`)
|
|
99
|
+
6. Restrict `bastion` service type
|
|
100
|
+
|
|
101
|
+
### Performance
|
|
102
|
+
|
|
103
|
+
1. Run multiple replicas for HA (2-4 typical, load balanced automatically)
|
|
104
|
+
2. Replicas share same tunnel UUID, get unique connector IDs
|
|
105
|
+
3. Place `cloudflared` close to origin (same network)
|
|
106
|
+
4. Use HTTP/2 for gRPC (`http2Origin: true`)
|
|
107
|
+
5. Tune keepalive for long-lived connections
|
|
108
|
+
6. Monitor connection counts
|
|
109
|
+
|
|
110
|
+
### Configuration
|
|
111
|
+
|
|
112
|
+
1. Use environment variables for secrets
|
|
113
|
+
2. Version control config files
|
|
114
|
+
3. Validate before deploying (`cloudflared tunnel ingress validate`)
|
|
115
|
+
4. Test rules (`cloudflared tunnel ingress rule <URL>`)
|
|
116
|
+
5. Document rule order (first match wins)
|
|
117
|
+
|
|
118
|
+
### Operations
|
|
119
|
+
|
|
120
|
+
1. Monitor tunnel health in dashboard (shows active replicas)
|
|
121
|
+
2. Set up disconnect alerts (when replica count drops to 0)
|
|
122
|
+
3. Graceful shutdown for config updates
|
|
123
|
+
4. Update replicas in rolling fashion (update 1, wait, update next)
|
|
124
|
+
5. Keep `cloudflared` updated (1 year support window)
|
|
125
|
+
6. Use `--no-autoupdate` in prod; control updates manually
|
|
126
|
+
|
|
127
|
+
## Debug Mode
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
cloudflared tunnel --loglevel debug run my-tunnel
|
|
131
|
+
cloudflared tunnel ingress rule https://app.example.com
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Migration Strategies
|
|
135
|
+
|
|
136
|
+
### From Ngrok
|
|
137
|
+
|
|
138
|
+
```yaml
|
|
139
|
+
# Ngrok: ngrok http 8000
|
|
140
|
+
# Cloudflare Tunnel:
|
|
141
|
+
ingress:
|
|
142
|
+
- hostname: app.example.com
|
|
143
|
+
service: http://localhost:8000
|
|
144
|
+
- service: http_status:404
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### From VPN
|
|
148
|
+
|
|
149
|
+
```yaml
|
|
150
|
+
# Replace VPN with private network routing
|
|
151
|
+
warp-routing:
|
|
152
|
+
enabled: true
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
cloudflared tunnel route ip add 10.0.0.0/8 my-tunnel
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Users install WARP client instead of VPN.
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# Tunnel Networking
|
|
2
|
+
|
|
3
|
+
## Connectivity Requirements
|
|
4
|
+
|
|
5
|
+
### Outbound Ports
|
|
6
|
+
|
|
7
|
+
Cloudflared requires outbound access on:
|
|
8
|
+
|
|
9
|
+
| Port | Protocol | Purpose | Required |
|
|
10
|
+
| ---- | -------- | ------------------------------ | -------- |
|
|
11
|
+
| 7844 | TCP/UDP | Primary tunnel protocol (QUIC) | Yes |
|
|
12
|
+
| 443 | TCP | Fallback (HTTP/2) | Yes |
|
|
13
|
+
|
|
14
|
+
**Network path:**
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
cloudflared → edge.argotunnel.com:7844 (preferred)
|
|
18
|
+
cloudflared → region.argotunnel.com:443 (fallback)
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Firewall Rules
|
|
22
|
+
|
|
23
|
+
#### Minimal (Production)
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Outbound only
|
|
27
|
+
ALLOW tcp/udp 7844 to *.argotunnel.com
|
|
28
|
+
ALLOW tcp 443 to *.argotunnel.com
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
#### Full (Recommended)
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# Tunnel connectivity
|
|
35
|
+
ALLOW tcp/udp 7844 to *.argotunnel.com
|
|
36
|
+
ALLOW tcp 443 to *.argotunnel.com
|
|
37
|
+
|
|
38
|
+
# API access (for token-based tunnels)
|
|
39
|
+
ALLOW tcp 443 to api.cloudflare.com
|
|
40
|
+
|
|
41
|
+
# Updates (optional)
|
|
42
|
+
ALLOW tcp 443 to github.com
|
|
43
|
+
ALLOW tcp 443 to objects.githubusercontent.com
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### IP Ranges
|
|
47
|
+
|
|
48
|
+
Cloudflare Anycast IPs (tunnel endpoints):
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
# IPv4
|
|
52
|
+
198.41.192.0/24
|
|
53
|
+
198.41.200.0/24
|
|
54
|
+
|
|
55
|
+
# IPv6
|
|
56
|
+
2606:4700::/32
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**Note:** Use DNS resolution for `*.argotunnel.com` rather than hardcoding IPs. Cloudflare may add edge locations.
|
|
60
|
+
|
|
61
|
+
## Pre-Flight Check
|
|
62
|
+
|
|
63
|
+
Test connectivity before deploying:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# Test DNS resolution
|
|
67
|
+
dig edge.argotunnel.com +short
|
|
68
|
+
|
|
69
|
+
# Test port 7844 (QUIC/UDP)
|
|
70
|
+
nc -zvu edge.argotunnel.com 7844
|
|
71
|
+
|
|
72
|
+
# Test port 443 (HTTP/2 fallback)
|
|
73
|
+
nc -zv edge.argotunnel.com 443
|
|
74
|
+
|
|
75
|
+
# Test with cloudflared
|
|
76
|
+
cloudflared tunnel --loglevel debug run my-tunnel
|
|
77
|
+
# Look for "Registered tunnel connection"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Common Connectivity Errors
|
|
81
|
+
|
|
82
|
+
| Error | Cause | Solution |
|
|
83
|
+
| --------------------------- | ----------------- | ------------------------------------- |
|
|
84
|
+
| "no such host" | DNS blocked | Allow port 53 UDP/TCP |
|
|
85
|
+
| "context deadline exceeded" | Port 7844 blocked | Allow UDP/TCP 7844 |
|
|
86
|
+
| "TLS handshake timeout" | Port 443 blocked | Allow TCP 443, disable SSL inspection |
|
|
87
|
+
|
|
88
|
+
## Protocol Selection
|
|
89
|
+
|
|
90
|
+
Cloudflared automatically selects protocol:
|
|
91
|
+
|
|
92
|
+
| Protocol | Port | Priority | Use Case |
|
|
93
|
+
| -------- | -------- | --------------- | ----------------------------- |
|
|
94
|
+
| QUIC | 7844 UDP | 1st (preferred) | Low latency, best performance |
|
|
95
|
+
| HTTP/2 | 443 TCP | 2nd (fallback) | QUIC blocked by firewall |
|
|
96
|
+
|
|
97
|
+
**Force HTTP/2 fallback:**
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
cloudflared tunnel --protocol http2 run my-tunnel
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Verify active protocol:**
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
cloudflared tunnel info my-tunnel
|
|
107
|
+
# Shows "connections" with protocol type
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Private Network Routing
|
|
111
|
+
|
|
112
|
+
### WARP Client Requirements
|
|
113
|
+
|
|
114
|
+
Users accessing private IPs via WARP need:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# Outbound (WARP client)
|
|
118
|
+
ALLOW udp 500,4500 to 162.159.*.* (IPsec)
|
|
119
|
+
ALLOW udp 2408 to 162.159.*.* (WireGuard)
|
|
120
|
+
ALLOW tcp 443 to *.cloudflareclient.com
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Split Tunnel Configuration
|
|
124
|
+
|
|
125
|
+
Route only private networks through tunnel:
|
|
126
|
+
|
|
127
|
+
```yaml
|
|
128
|
+
# warp-routing config
|
|
129
|
+
warp-routing:
|
|
130
|
+
enabled: true
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
# Add specific routes
|
|
135
|
+
cloudflared tunnel route ip add 10.0.0.0/8 my-tunnel
|
|
136
|
+
cloudflared tunnel route ip add 172.16.0.0/12 my-tunnel
|
|
137
|
+
cloudflared tunnel route ip add 192.168.0.0/16 my-tunnel
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
WARP users can access these IPs without VPN.
|
|
141
|
+
|
|
142
|
+
## Network Diagnostics
|
|
143
|
+
|
|
144
|
+
### Connection Diagnostics
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# Check edge selection and connection health
|
|
148
|
+
cloudflared tunnel info my-tunnel --output json | jq '.connections[]'
|
|
149
|
+
|
|
150
|
+
# Enable metrics endpoint
|
|
151
|
+
cloudflared tunnel --metrics localhost:9090 run my-tunnel
|
|
152
|
+
curl localhost:9090/metrics | grep cloudflared_tunnel
|
|
153
|
+
|
|
154
|
+
# Test latency
|
|
155
|
+
curl -w "time_total: %{time_total}\n" -o /dev/null https://myapp.example.com
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Corporate Network Considerations
|
|
159
|
+
|
|
160
|
+
Cloudflared honors proxy environment variables (`HTTP_PROXY`, `HTTPS_PROXY`, `NO_PROXY`).
|
|
161
|
+
|
|
162
|
+
If corporate proxy intercepts TLS, add corporate root CA to system trust store.
|
|
163
|
+
|
|
164
|
+
## Bandwidth and Rate Limits
|
|
165
|
+
|
|
166
|
+
| Limit | Value | Notes |
|
|
167
|
+
| ---------------------- | --------------- | ------------------------- |
|
|
168
|
+
| Request size | 100 MB | Single HTTP request |
|
|
169
|
+
| Upload speed | No hard limit | Governed by network/plan |
|
|
170
|
+
| Concurrent connections | 1000 per tunnel | Across all replicas |
|
|
171
|
+
| Requests per second | No limit | Subject to DDoS detection |
|
|
172
|
+
|
|
173
|
+
**Large file transfers:**
|
|
174
|
+
Use R2 or Workers with chunked uploads instead of streaming through tunnel.
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
# Tunnel Patterns
|
|
2
|
+
|
|
3
|
+
## Docker Deployment
|
|
4
|
+
|
|
5
|
+
### Token-Based (Recommended)
|
|
6
|
+
|
|
7
|
+
```yaml
|
|
8
|
+
services:
|
|
9
|
+
cloudflared:
|
|
10
|
+
image: cloudflare/cloudflared:latest
|
|
11
|
+
command: tunnel --no-autoupdate run --token ${TUNNEL_TOKEN}
|
|
12
|
+
restart: unless-stopped
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### Local Config
|
|
16
|
+
|
|
17
|
+
```yaml
|
|
18
|
+
services:
|
|
19
|
+
cloudflared:
|
|
20
|
+
image: cloudflare/cloudflared:latest
|
|
21
|
+
volumes:
|
|
22
|
+
- ./config.yml:/etc/cloudflared/config.yml:ro
|
|
23
|
+
- ./credentials.json:/etc/cloudflared/credentials.json:ro
|
|
24
|
+
command: tunnel run
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Kubernetes Deployment
|
|
28
|
+
|
|
29
|
+
```yaml
|
|
30
|
+
apiVersion: apps/v1
|
|
31
|
+
kind: Deployment
|
|
32
|
+
metadata:
|
|
33
|
+
name: cloudflared
|
|
34
|
+
spec:
|
|
35
|
+
replicas: 2
|
|
36
|
+
selector:
|
|
37
|
+
matchLabels:
|
|
38
|
+
app: cloudflared
|
|
39
|
+
template:
|
|
40
|
+
metadata:
|
|
41
|
+
labels:
|
|
42
|
+
app: cloudflared
|
|
43
|
+
spec:
|
|
44
|
+
containers:
|
|
45
|
+
- name: cloudflared
|
|
46
|
+
image: cloudflare/cloudflared:latest
|
|
47
|
+
args:
|
|
48
|
+
- tunnel
|
|
49
|
+
- --no-autoupdate
|
|
50
|
+
- run
|
|
51
|
+
- --token
|
|
52
|
+
- $(TUNNEL_TOKEN)
|
|
53
|
+
env:
|
|
54
|
+
- name: TUNNEL_TOKEN
|
|
55
|
+
valueFrom:
|
|
56
|
+
secretKeyRef:
|
|
57
|
+
name: tunnel-credentials
|
|
58
|
+
key: token
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## High Availability
|
|
62
|
+
|
|
63
|
+
```yaml
|
|
64
|
+
# Same config on multiple servers
|
|
65
|
+
tunnel: <UUID>
|
|
66
|
+
credentials-file: /path/to/creds.json
|
|
67
|
+
|
|
68
|
+
ingress:
|
|
69
|
+
- hostname: app.example.com
|
|
70
|
+
service: http://localhost:8000
|
|
71
|
+
- service: http_status:404
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Run same config on multiple machines. Cloudflare automatically load balances. Long-lived connections (WebSocket, SSH) may drop during updates.
|
|
75
|
+
|
|
76
|
+
## Use Cases
|
|
77
|
+
|
|
78
|
+
### Web Application
|
|
79
|
+
|
|
80
|
+
```yaml
|
|
81
|
+
ingress:
|
|
82
|
+
- hostname: myapp.example.com
|
|
83
|
+
service: http://localhost:3000
|
|
84
|
+
- service: http_status:404
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### SSH Access
|
|
88
|
+
|
|
89
|
+
```yaml
|
|
90
|
+
ingress:
|
|
91
|
+
- hostname: ssh.example.com
|
|
92
|
+
service: ssh://localhost:22
|
|
93
|
+
- service: http_status:404
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Client: `cloudflared access ssh --hostname ssh.example.com`
|
|
97
|
+
|
|
98
|
+
### gRPC Service
|
|
99
|
+
|
|
100
|
+
```yaml
|
|
101
|
+
ingress:
|
|
102
|
+
- hostname: grpc.example.com
|
|
103
|
+
service: http://localhost:50051
|
|
104
|
+
originRequest:
|
|
105
|
+
http2Origin: true
|
|
106
|
+
- service: http_status:404
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Infrastructure as Code
|
|
110
|
+
|
|
111
|
+
### Terraform
|
|
112
|
+
|
|
113
|
+
```hcl
|
|
114
|
+
resource "random_id" "tunnel_secret" {
|
|
115
|
+
byte_length = 32
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
resource "cloudflare_tunnel" "app" {
|
|
119
|
+
account_id = var.cloudflare_account_id
|
|
120
|
+
name = "app-tunnel"
|
|
121
|
+
secret = random_id.tunnel_secret.b64_std
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
resource "cloudflare_tunnel_config" "app" {
|
|
125
|
+
account_id = var.cloudflare_account_id
|
|
126
|
+
tunnel_id = cloudflare_tunnel.app.id
|
|
127
|
+
config {
|
|
128
|
+
ingress_rule {
|
|
129
|
+
hostname = "app.example.com"
|
|
130
|
+
service = "http://localhost:8000"
|
|
131
|
+
}
|
|
132
|
+
ingress_rule { service = "http_status:404" }
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
resource "cloudflare_record" "app" {
|
|
137
|
+
zone_id = var.cloudflare_zone_id
|
|
138
|
+
name = "app"
|
|
139
|
+
value = cloudflare_tunnel.app.cname
|
|
140
|
+
type = "CNAME"
|
|
141
|
+
proxied = true
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
output "tunnel_token" {
|
|
145
|
+
value = cloudflare_tunnel.app.tunnel_token
|
|
146
|
+
sensitive = true
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Pulumi
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
import * as cloudflare from '@pulumi/cloudflare'
|
|
154
|
+
import * as random from '@pulumi/random'
|
|
155
|
+
|
|
156
|
+
const secret = new random.RandomId('secret', { byteLength: 32 })
|
|
157
|
+
|
|
158
|
+
const tunnel = new cloudflare.ZeroTrustTunnelCloudflared('tunnel', {
|
|
159
|
+
accountId: accountId,
|
|
160
|
+
name: 'app-tunnel',
|
|
161
|
+
secret: secret.b64Std,
|
|
162
|
+
})
|
|
163
|
+
|
|
164
|
+
const config = new cloudflare.ZeroTrustTunnelCloudflaredConfig('config', {
|
|
165
|
+
accountId: accountId,
|
|
166
|
+
tunnelId: tunnel.id,
|
|
167
|
+
config: {
|
|
168
|
+
ingressRules: [
|
|
169
|
+
{ hostname: 'app.example.com', service: 'http://localhost:8000' },
|
|
170
|
+
{ service: 'http_status:404' },
|
|
171
|
+
],
|
|
172
|
+
},
|
|
173
|
+
})
|
|
174
|
+
|
|
175
|
+
new cloudflare.Record('dns', {
|
|
176
|
+
zoneId: zoneId,
|
|
177
|
+
name: 'app',
|
|
178
|
+
value: tunnel.cname,
|
|
179
|
+
type: 'CNAME',
|
|
180
|
+
proxied: true,
|
|
181
|
+
})
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Service Installation
|
|
185
|
+
|
|
186
|
+
### Linux systemd
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
cloudflared service install
|
|
190
|
+
systemctl start cloudflared && systemctl enable cloudflared
|
|
191
|
+
journalctl -u cloudflared -f # Logs
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### macOS launchd
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
sudo cloudflared service install
|
|
198
|
+
sudo launchctl start com.cloudflare.cloudflared
|
|
199
|
+
```
|