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.
Files changed (531) hide show
  1. package/README.md +126 -56
  2. package/dist/chunk-6OHRCNYW.js +3231 -0
  3. package/dist/chunk-JFMITANR.js +5168 -0
  4. package/dist/{chunk-QCQPAF4I.js → chunk-MWNLAEHR.js} +301 -4321
  5. package/dist/{chunk-ARLYSFSI.js → chunk-UHSO65A4.js} +4242 -6092
  6. package/dist/cli.js +21 -3
  7. package/dist/index.d.ts +16 -13
  8. package/dist/index.js +4 -2
  9. package/dist/resources-IJVKDFGS.js +2 -0
  10. package/dist/tools-44DGXE3V.js +2 -0
  11. package/dist/worker-script.js +201 -20
  12. package/package.json +7 -4
  13. package/skills/README.md +62 -25
  14. package/skills/adversarial-performance/SKILL.md +139 -0
  15. package/skills/adversarial-performance/references/audit-categories.md +462 -0
  16. package/skills/adversarial-performance/references/copilot-performance-prompts.md +44 -0
  17. package/skills/adversarial-performance/references/copilot-usage.md +16 -0
  18. package/skills/adversarial-performance/references/feedback-loop.md +177 -0
  19. package/skills/adversarial-performance/references/multi-pass-performance-protocol.md +398 -0
  20. package/skills/adversarial-planner/SKILL.md +23 -54
  21. package/skills/adversarial-planner/references/copilot-integration.md +25 -40
  22. package/skills/adversarial-planner/references/copilot-usage.md +16 -0
  23. package/skills/adversarial-planner/references/multi-pass-protocol.md +4 -0
  24. package/skills/adversarial-security/SKILL.md +149 -0
  25. package/skills/adversarial-security/references/adversarial-base-protocol.md +44 -0
  26. package/skills/adversarial-security/references/audit-categories.md +723 -0
  27. package/skills/adversarial-security/references/copilot-security-prompts.md +142 -0
  28. package/skills/adversarial-security/references/copilot-usage.md +16 -0
  29. package/skills/adversarial-security/references/feedback-loop.md +206 -0
  30. package/skills/adversarial-security/references/journal-opt-out.md +7 -0
  31. package/skills/adversarial-security/references/multi-pass-security-protocol.md +403 -0
  32. package/skills/adversarial-skill-audit/SKILL.md +118 -0
  33. package/skills/adversarial-skill-audit/references/audit-categories.md +308 -0
  34. package/skills/adversarial-skill-audit/references/copilot-skill-prompts.md +68 -0
  35. package/skills/adversarial-skill-audit/references/copilot-usage.md +16 -0
  36. package/skills/adversarial-skill-audit/references/feedback-loop.md +155 -0
  37. package/skills/adversarial-skill-audit/references/multi-pass-skill-protocol.md +367 -0
  38. package/skills/adversarial-skill-audit/scripts/check-skills.ps1 +48 -0
  39. package/skills/adversarial-skill-audit/scripts/run-copilot.ps1 +52 -0
  40. package/skills/adversarial-workflow-audit/SKILL.md +82 -0
  41. package/skills/adversarial-workflow-audit/references/audit-categories.md +28 -0
  42. package/skills/adversarial-workflow-audit/references/copilot-usage.md +16 -0
  43. package/skills/adversarial-workflow-audit/scripts/check-workflows.ps1 +24 -0
  44. package/skills/agents-sdk/SKILL.md +220 -0
  45. package/skills/agents-sdk/references/callable.md +92 -0
  46. package/skills/agents-sdk/references/codemode.md +209 -0
  47. package/skills/agents-sdk/references/email.md +144 -0
  48. package/skills/agents-sdk/references/mcp/SKILL.md +65 -0
  49. package/skills/agents-sdk/references/mcp/code-mode-reference.md +245 -0
  50. package/skills/agents-sdk/references/mcp/oauth-reference.md +359 -0
  51. package/skills/agents-sdk/references/mcp/references/architecture-reference.md +208 -0
  52. package/skills/agents-sdk/references/mcp/references/cloudflare-quickstart.md +156 -0
  53. package/skills/agents-sdk/references/mcp/references/error-handling.md +343 -0
  54. package/skills/agents-sdk/references/mcp/references/http-security.md +164 -0
  55. package/skills/agents-sdk/references/mcp/references/implementation-guide.md +507 -0
  56. package/skills/agents-sdk/references/mcp/references/testing-reference.md +171 -0
  57. package/skills/agents-sdk/references/mcp.md +157 -0
  58. package/skills/agents-sdk/references/state-scheduling.md +164 -0
  59. package/skills/agents-sdk/references/streaming-chat.md +168 -0
  60. package/skills/agents-sdk/references/workflows.md +136 -0
  61. package/skills/auth-identity/SKILL.md +48 -0
  62. package/skills/autonomous-dev/SKILL.md +46 -23
  63. package/skills/autonomous-dev/references/workflow_orchestration.md +22 -0
  64. package/skills/aws/SKILL.md +39 -0
  65. package/skills/azure/SKILL.md +38 -0
  66. package/skills/bin/sync.js +7 -1
  67. package/skills/biome/SKILL.md +59 -0
  68. package/skills/bun/SKILL.md +8 -2
  69. package/skills/cloudflare/SKILL.md +37 -0
  70. package/skills/cloudflare/references/agents-sdk/README.md +95 -0
  71. package/skills/cloudflare/references/agents-sdk/api.md +195 -0
  72. package/skills/cloudflare/references/agents-sdk/configuration.md +178 -0
  73. package/skills/cloudflare/references/agents-sdk/gotchas.md +173 -0
  74. package/skills/cloudflare/references/agents-sdk/patterns.md +215 -0
  75. package/skills/cloudflare/references/ai-gateway/README.md +176 -0
  76. package/skills/cloudflare/references/ai-gateway/configuration.md +117 -0
  77. package/skills/cloudflare/references/ai-gateway/dynamic-routing.md +88 -0
  78. package/skills/cloudflare/references/ai-gateway/features.md +96 -0
  79. package/skills/cloudflare/references/ai-gateway/sdk-integration.md +110 -0
  80. package/skills/cloudflare/references/ai-gateway/troubleshooting.md +90 -0
  81. package/skills/cloudflare/references/ai-search/README.md +145 -0
  82. package/skills/cloudflare/references/ai-search/api.md +87 -0
  83. package/skills/cloudflare/references/ai-search/configuration.md +91 -0
  84. package/skills/cloudflare/references/ai-search/gotchas.md +92 -0
  85. package/skills/cloudflare/references/ai-search/patterns.md +87 -0
  86. package/skills/cloudflare/references/analytics-engine/README.md +96 -0
  87. package/skills/cloudflare/references/analytics-engine/api.md +112 -0
  88. package/skills/cloudflare/references/analytics-engine/configuration.md +107 -0
  89. package/skills/cloudflare/references/analytics-engine/gotchas.md +87 -0
  90. package/skills/cloudflare/references/analytics-engine/patterns.md +83 -0
  91. package/skills/cloudflare/references/api/README.md +66 -0
  92. package/skills/cloudflare/references/api/api.md +205 -0
  93. package/skills/cloudflare/references/api/configuration.md +158 -0
  94. package/skills/cloudflare/references/api/gotchas.md +231 -0
  95. package/skills/cloudflare/references/api/patterns.md +208 -0
  96. package/skills/cloudflare/references/api-shield/README.md +44 -0
  97. package/skills/cloudflare/references/api-shield/api.md +153 -0
  98. package/skills/cloudflare/references/api-shield/configuration.md +210 -0
  99. package/skills/cloudflare/references/api-shield/gotchas.md +132 -0
  100. package/skills/cloudflare/references/api-shield/patterns.md +185 -0
  101. package/skills/cloudflare/references/argo-smart-routing/README.md +96 -0
  102. package/skills/cloudflare/references/argo-smart-routing/api.md +253 -0
  103. package/skills/cloudflare/references/argo-smart-routing/configuration.md +205 -0
  104. package/skills/cloudflare/references/argo-smart-routing/gotchas.md +115 -0
  105. package/skills/cloudflare/references/argo-smart-routing/patterns.md +107 -0
  106. package/skills/cloudflare/references/bindings/README.md +127 -0
  107. package/skills/cloudflare/references/bindings/api.md +214 -0
  108. package/skills/cloudflare/references/bindings/configuration.md +200 -0
  109. package/skills/cloudflare/references/bindings/gotchas.md +210 -0
  110. package/skills/cloudflare/references/bindings/patterns.md +205 -0
  111. package/skills/cloudflare/references/bot-management/README.md +95 -0
  112. package/skills/cloudflare/references/bot-management/api.md +175 -0
  113. package/skills/cloudflare/references/bot-management/configuration.md +175 -0
  114. package/skills/cloudflare/references/bot-management/gotchas.md +116 -0
  115. package/skills/cloudflare/references/bot-management/patterns.md +181 -0
  116. package/skills/cloudflare/references/browser-rendering/README.md +84 -0
  117. package/skills/cloudflare/references/browser-rendering/api.md +108 -0
  118. package/skills/cloudflare/references/browser-rendering/configuration.md +78 -0
  119. package/skills/cloudflare/references/browser-rendering/gotchas.md +91 -0
  120. package/skills/cloudflare/references/browser-rendering/patterns.md +93 -0
  121. package/skills/cloudflare/references/c3/README.md +111 -0
  122. package/skills/cloudflare/references/c3/api.md +71 -0
  123. package/skills/cloudflare/references/c3/configuration.md +85 -0
  124. package/skills/cloudflare/references/c3/gotchas.md +97 -0
  125. package/skills/cloudflare/references/c3/patterns.md +84 -0
  126. package/skills/cloudflare/references/cache-reserve/README.md +150 -0
  127. package/skills/cloudflare/references/cache-reserve/api.md +184 -0
  128. package/skills/cloudflare/references/cache-reserve/configuration.md +170 -0
  129. package/skills/cloudflare/references/cache-reserve/gotchas.md +136 -0
  130. package/skills/cloudflare/references/cache-reserve/patterns.md +197 -0
  131. package/skills/cloudflare/references/containers/README.md +87 -0
  132. package/skills/cloudflare/references/containers/api.md +197 -0
  133. package/skills/cloudflare/references/containers/configuration.md +191 -0
  134. package/skills/cloudflare/references/containers/gotchas.md +182 -0
  135. package/skills/cloudflare/references/containers/patterns.md +204 -0
  136. package/skills/cloudflare/references/cron-triggers/README.md +101 -0
  137. package/skills/cloudflare/references/cron-triggers/api.md +224 -0
  138. package/skills/cloudflare/references/cron-triggers/configuration.md +190 -0
  139. package/skills/cloudflare/references/cron-triggers/gotchas.md +207 -0
  140. package/skills/cloudflare/references/cron-triggers/patterns.md +274 -0
  141. package/skills/cloudflare/references/d1/README.md +137 -0
  142. package/skills/cloudflare/references/d1/api.md +213 -0
  143. package/skills/cloudflare/references/d1/configuration.md +198 -0
  144. package/skills/cloudflare/references/d1/gotchas.md +98 -0
  145. package/skills/cloudflare/references/d1/patterns.md +240 -0
  146. package/skills/cloudflare/references/ddos/README.md +42 -0
  147. package/skills/cloudflare/references/ddos/api.md +158 -0
  148. package/skills/cloudflare/references/ddos/configuration.md +94 -0
  149. package/skills/cloudflare/references/ddos/gotchas.md +114 -0
  150. package/skills/cloudflare/references/ddos/patterns.md +220 -0
  151. package/skills/cloudflare/references/decision-trees.md +95 -0
  152. package/skills/cloudflare/references/do-storage/README.md +79 -0
  153. package/skills/cloudflare/references/do-storage/api.md +107 -0
  154. package/skills/cloudflare/references/do-storage/configuration.md +114 -0
  155. package/skills/cloudflare/references/do-storage/gotchas.md +153 -0
  156. package/skills/cloudflare/references/do-storage/patterns.md +210 -0
  157. package/skills/cloudflare/references/do-storage/testing.md +186 -0
  158. package/skills/cloudflare/references/durable-objects/README.md +194 -0
  159. package/skills/cloudflare/references/durable-objects/api.md +205 -0
  160. package/skills/cloudflare/references/durable-objects/configuration.md +160 -0
  161. package/skills/cloudflare/references/durable-objects/gotchas.md +200 -0
  162. package/skills/cloudflare/references/durable-objects/patterns.md +205 -0
  163. package/skills/cloudflare/references/email-routing/README.md +89 -0
  164. package/skills/cloudflare/references/email-routing/api.md +192 -0
  165. package/skills/cloudflare/references/email-routing/configuration.md +187 -0
  166. package/skills/cloudflare/references/email-routing/gotchas.md +203 -0
  167. package/skills/cloudflare/references/email-routing/patterns.md +241 -0
  168. package/skills/cloudflare/references/email-workers/README.md +153 -0
  169. package/skills/cloudflare/references/email-workers/api.md +227 -0
  170. package/skills/cloudflare/references/email-workers/configuration.md +115 -0
  171. package/skills/cloudflare/references/email-workers/gotchas.md +133 -0
  172. package/skills/cloudflare/references/email-workers/patterns.md +108 -0
  173. package/skills/cloudflare/references/graphql-api/README.md +147 -0
  174. package/skills/cloudflare/references/graphql-api/api.md +175 -0
  175. package/skills/cloudflare/references/graphql-api/configuration.md +151 -0
  176. package/skills/cloudflare/references/graphql-api/gotchas.md +111 -0
  177. package/skills/cloudflare/references/graphql-api/patterns.md +276 -0
  178. package/skills/cloudflare/references/hyperdrive/README.md +84 -0
  179. package/skills/cloudflare/references/hyperdrive/api.md +149 -0
  180. package/skills/cloudflare/references/hyperdrive/configuration.md +166 -0
  181. package/skills/cloudflare/references/hyperdrive/gotchas.md +77 -0
  182. package/skills/cloudflare/references/hyperdrive/patterns.md +203 -0
  183. package/skills/cloudflare/references/images/README.md +65 -0
  184. package/skills/cloudflare/references/images/api.md +101 -0
  185. package/skills/cloudflare/references/images/configuration.md +206 -0
  186. package/skills/cloudflare/references/images/gotchas.md +106 -0
  187. package/skills/cloudflare/references/images/patterns.md +126 -0
  188. package/skills/cloudflare/references/kv/README.md +90 -0
  189. package/skills/cloudflare/references/kv/api.md +163 -0
  190. package/skills/cloudflare/references/kv/configuration.md +148 -0
  191. package/skills/cloudflare/references/kv/gotchas.md +133 -0
  192. package/skills/cloudflare/references/kv/patterns.md +195 -0
  193. package/skills/cloudflare/references/miniflare/README.md +113 -0
  194. package/skills/cloudflare/references/miniflare/api.md +204 -0
  195. package/skills/cloudflare/references/miniflare/configuration.md +174 -0
  196. package/skills/cloudflare/references/miniflare/gotchas.md +179 -0
  197. package/skills/cloudflare/references/miniflare/patterns.md +187 -0
  198. package/skills/cloudflare/references/network-interconnect/README.md +104 -0
  199. package/skills/cloudflare/references/network-interconnect/api.md +220 -0
  200. package/skills/cloudflare/references/network-interconnect/configuration.md +123 -0
  201. package/skills/cloudflare/references/network-interconnect/gotchas.md +175 -0
  202. package/skills/cloudflare/references/network-interconnect/patterns.md +174 -0
  203. package/skills/cloudflare/references/observability/README.md +93 -0
  204. package/skills/cloudflare/references/observability/api.md +168 -0
  205. package/skills/cloudflare/references/observability/configuration.md +178 -0
  206. package/skills/cloudflare/references/observability/gotchas.md +125 -0
  207. package/skills/cloudflare/references/observability/patterns.md +105 -0
  208. package/skills/cloudflare/references/pages/README.md +92 -0
  209. package/skills/cloudflare/references/pages/api.md +205 -0
  210. package/skills/cloudflare/references/pages/configuration.md +216 -0
  211. package/skills/cloudflare/references/pages/gotchas.md +218 -0
  212. package/skills/cloudflare/references/pages/patterns.md +215 -0
  213. package/skills/cloudflare/references/pages-functions/README.md +104 -0
  214. package/skills/cloudflare/references/pages-functions/api.md +159 -0
  215. package/skills/cloudflare/references/pages-functions/configuration.md +130 -0
  216. package/skills/cloudflare/references/pages-functions/gotchas.md +102 -0
  217. package/skills/cloudflare/references/pages-functions/patterns.md +148 -0
  218. package/skills/cloudflare/references/pipelines/README.md +109 -0
  219. package/skills/cloudflare/references/pipelines/api.md +214 -0
  220. package/skills/cloudflare/references/pipelines/configuration.md +98 -0
  221. package/skills/cloudflare/references/pipelines/gotchas.md +84 -0
  222. package/skills/cloudflare/references/pipelines/patterns.md +87 -0
  223. package/skills/cloudflare/references/product-index.md +112 -0
  224. package/skills/cloudflare/references/pulumi/README.md +113 -0
  225. package/skills/cloudflare/references/pulumi/api.md +230 -0
  226. package/skills/cloudflare/references/pulumi/configuration.md +213 -0
  227. package/skills/cloudflare/references/pulumi/gotchas.md +205 -0
  228. package/skills/cloudflare/references/pulumi/patterns.md +260 -0
  229. package/skills/cloudflare/references/queues/README.md +99 -0
  230. package/skills/cloudflare/references/queues/api.md +211 -0
  231. package/skills/cloudflare/references/queues/configuration.md +151 -0
  232. package/skills/cloudflare/references/queues/gotchas.md +210 -0
  233. package/skills/cloudflare/references/queues/patterns.md +220 -0
  234. package/skills/cloudflare/references/r2/README.md +97 -0
  235. package/skills/cloudflare/references/r2/api.md +235 -0
  236. package/skills/cloudflare/references/r2/configuration.md +176 -0
  237. package/skills/cloudflare/references/r2/gotchas.md +190 -0
  238. package/skills/cloudflare/references/r2/patterns.md +203 -0
  239. package/skills/cloudflare/references/r2-data-catalog/README.md +157 -0
  240. package/skills/cloudflare/references/r2-data-catalog/api.md +199 -0
  241. package/skills/cloudflare/references/r2-data-catalog/configuration.md +205 -0
  242. package/skills/cloudflare/references/r2-data-catalog/gotchas.md +170 -0
  243. package/skills/cloudflare/references/r2-data-catalog/patterns.md +191 -0
  244. package/skills/cloudflare/references/r2-sql/README.md +138 -0
  245. package/skills/cloudflare/references/r2-sql/SKILL.md.backup +512 -0
  246. package/skills/cloudflare/references/r2-sql/api.md +159 -0
  247. package/skills/cloudflare/references/r2-sql/configuration.md +152 -0
  248. package/skills/cloudflare/references/r2-sql/gotchas.md +228 -0
  249. package/skills/cloudflare/references/r2-sql/patterns.md +230 -0
  250. package/skills/cloudflare/references/realtime-sfu/README.md +66 -0
  251. package/skills/cloudflare/references/realtime-sfu/api.md +164 -0
  252. package/skills/cloudflare/references/realtime-sfu/configuration.md +141 -0
  253. package/skills/cloudflare/references/realtime-sfu/gotchas.md +138 -0
  254. package/skills/cloudflare/references/realtime-sfu/patterns.md +187 -0
  255. package/skills/cloudflare/references/realtimekit/README.md +118 -0
  256. package/skills/cloudflare/references/realtimekit/api.md +234 -0
  257. package/skills/cloudflare/references/realtimekit/configuration.md +226 -0
  258. package/skills/cloudflare/references/realtimekit/gotchas.md +206 -0
  259. package/skills/cloudflare/references/realtimekit/patterns.md +240 -0
  260. package/skills/cloudflare/references/sandbox/README.md +104 -0
  261. package/skills/cloudflare/references/sandbox/api.md +200 -0
  262. package/skills/cloudflare/references/sandbox/configuration.md +154 -0
  263. package/skills/cloudflare/references/sandbox/gotchas.md +201 -0
  264. package/skills/cloudflare/references/sandbox/patterns.md +195 -0
  265. package/skills/cloudflare/references/secrets-store/README.md +77 -0
  266. package/skills/cloudflare/references/secrets-store/api.md +199 -0
  267. package/skills/cloudflare/references/secrets-store/configuration.md +187 -0
  268. package/skills/cloudflare/references/secrets-store/gotchas.md +97 -0
  269. package/skills/cloudflare/references/secrets-store/patterns.md +218 -0
  270. package/skills/cloudflare/references/smart-placement/README.md +143 -0
  271. package/skills/cloudflare/references/smart-placement/api.md +192 -0
  272. package/skills/cloudflare/references/smart-placement/configuration.md +202 -0
  273. package/skills/cloudflare/references/smart-placement/gotchas.md +180 -0
  274. package/skills/cloudflare/references/smart-placement/patterns.md +190 -0
  275. package/skills/cloudflare/references/snippets/README.md +74 -0
  276. package/skills/cloudflare/references/snippets/api.md +214 -0
  277. package/skills/cloudflare/references/snippets/configuration.md +239 -0
  278. package/skills/cloudflare/references/snippets/gotchas.md +104 -0
  279. package/skills/cloudflare/references/snippets/patterns.md +135 -0
  280. package/skills/cloudflare/references/spectrum/README.md +52 -0
  281. package/skills/cloudflare/references/spectrum/api.md +184 -0
  282. package/skills/cloudflare/references/spectrum/configuration.md +203 -0
  283. package/skills/cloudflare/references/spectrum/gotchas.md +155 -0
  284. package/skills/cloudflare/references/spectrum/patterns.md +206 -0
  285. package/skills/cloudflare/references/static-assets/README.md +65 -0
  286. package/skills/cloudflare/references/static-assets/api.md +201 -0
  287. package/skills/cloudflare/references/static-assets/configuration.md +186 -0
  288. package/skills/cloudflare/references/static-assets/gotchas.md +164 -0
  289. package/skills/cloudflare/references/static-assets/patterns.md +189 -0
  290. package/skills/cloudflare/references/stream/README.md +123 -0
  291. package/skills/cloudflare/references/stream/api-live.md +202 -0
  292. package/skills/cloudflare/references/stream/api.md +206 -0
  293. package/skills/cloudflare/references/stream/configuration.md +151 -0
  294. package/skills/cloudflare/references/stream/gotchas.md +139 -0
  295. package/skills/cloudflare/references/stream/patterns.md +217 -0
  296. package/skills/cloudflare/references/tail-workers/README.md +92 -0
  297. package/skills/cloudflare/references/tail-workers/api.md +203 -0
  298. package/skills/cloudflare/references/tail-workers/configuration.md +178 -0
  299. package/skills/cloudflare/references/tail-workers/gotchas.md +206 -0
  300. package/skills/cloudflare/references/tail-workers/patterns.md +190 -0
  301. package/skills/cloudflare/references/terraform/README.md +100 -0
  302. package/skills/cloudflare/references/terraform/api.md +178 -0
  303. package/skills/cloudflare/references/terraform/configuration.md +197 -0
  304. package/skills/cloudflare/references/terraform/gotchas.md +150 -0
  305. package/skills/cloudflare/references/terraform/patterns.md +174 -0
  306. package/skills/cloudflare/references/tunnel/README.md +137 -0
  307. package/skills/cloudflare/references/tunnel/api.md +205 -0
  308. package/skills/cloudflare/references/tunnel/configuration.md +163 -0
  309. package/skills/cloudflare/references/tunnel/gotchas.md +159 -0
  310. package/skills/cloudflare/references/tunnel/networking.md +174 -0
  311. package/skills/cloudflare/references/tunnel/patterns.md +199 -0
  312. package/skills/cloudflare/references/turn/README.md +86 -0
  313. package/skills/cloudflare/references/turn/api.md +236 -0
  314. package/skills/cloudflare/references/turn/configuration.md +181 -0
  315. package/skills/cloudflare/references/turn/gotchas.md +236 -0
  316. package/skills/cloudflare/references/turn/patterns.md +228 -0
  317. package/skills/cloudflare/references/turnstile/README.md +102 -0
  318. package/skills/cloudflare/references/turnstile/api.md +253 -0
  319. package/skills/cloudflare/references/turnstile/configuration.md +242 -0
  320. package/skills/cloudflare/references/turnstile/gotchas.md +253 -0
  321. package/skills/cloudflare/references/turnstile/patterns.md +195 -0
  322. package/skills/cloudflare/references/vectorize/README.md +133 -0
  323. package/skills/cloudflare/references/vectorize/api.md +89 -0
  324. package/skills/cloudflare/references/vectorize/configuration.md +91 -0
  325. package/skills/cloudflare/references/vectorize/gotchas.md +83 -0
  326. package/skills/cloudflare/references/vectorize/patterns.md +92 -0
  327. package/skills/cloudflare/references/waf/README.md +125 -0
  328. package/skills/cloudflare/references/waf/api.md +203 -0
  329. package/skills/cloudflare/references/waf/configuration.md +215 -0
  330. package/skills/cloudflare/references/waf/gotchas.md +208 -0
  331. package/skills/cloudflare/references/waf/patterns.md +236 -0
  332. package/skills/cloudflare/references/web-analytics/README.md +149 -0
  333. package/skills/cloudflare/references/web-analytics/configuration.md +81 -0
  334. package/skills/cloudflare/references/web-analytics/gotchas.md +86 -0
  335. package/skills/cloudflare/references/web-analytics/integration.md +63 -0
  336. package/skills/cloudflare/references/web-analytics/patterns.md +98 -0
  337. package/skills/cloudflare/references/workerd/README.md +85 -0
  338. package/skills/cloudflare/references/workerd/api.md +219 -0
  339. package/skills/cloudflare/references/workerd/configuration.md +200 -0
  340. package/skills/cloudflare/references/workerd/gotchas.md +151 -0
  341. package/skills/cloudflare/references/workerd/patterns.md +205 -0
  342. package/skills/cloudflare/references/workers/README.md +110 -0
  343. package/skills/cloudflare/references/workers/api.md +197 -0
  344. package/skills/cloudflare/references/workers/configuration.md +184 -0
  345. package/skills/cloudflare/references/workers/frameworks.md +200 -0
  346. package/skills/cloudflare/references/workers/gotchas.md +145 -0
  347. package/skills/cloudflare/references/workers/patterns.md +220 -0
  348. package/skills/cloudflare/references/workers-ai/README.md +206 -0
  349. package/skills/cloudflare/references/workers-ai/api.md +115 -0
  350. package/skills/cloudflare/references/workers-ai/configuration.md +98 -0
  351. package/skills/cloudflare/references/workers-ai/gotchas.md +130 -0
  352. package/skills/cloudflare/references/workers-ai/patterns.md +122 -0
  353. package/skills/cloudflare/references/workers-for-platforms/README.md +95 -0
  354. package/skills/cloudflare/references/workers-for-platforms/api.md +212 -0
  355. package/skills/cloudflare/references/workers-for-platforms/configuration.md +178 -0
  356. package/skills/cloudflare/references/workers-for-platforms/gotchas.md +134 -0
  357. package/skills/cloudflare/references/workers-for-platforms/patterns.md +210 -0
  358. package/skills/cloudflare/references/workers-playground/README.md +131 -0
  359. package/skills/cloudflare/references/workers-playground/api.md +101 -0
  360. package/skills/cloudflare/references/workers-playground/configuration.md +169 -0
  361. package/skills/cloudflare/references/workers-playground/gotchas.md +88 -0
  362. package/skills/cloudflare/references/workers-playground/patterns.md +134 -0
  363. package/skills/cloudflare/references/workers-vpc/README.md +130 -0
  364. package/skills/cloudflare/references/workers-vpc/api.md +196 -0
  365. package/skills/cloudflare/references/workers-vpc/configuration.md +151 -0
  366. package/skills/cloudflare/references/workers-vpc/gotchas.md +171 -0
  367. package/skills/cloudflare/references/workers-vpc/patterns.md +235 -0
  368. package/skills/cloudflare/references/workflows/README.md +72 -0
  369. package/skills/cloudflare/references/workflows/api.md +237 -0
  370. package/skills/cloudflare/references/workflows/configuration.md +158 -0
  371. package/skills/cloudflare/references/workflows/gotchas.md +97 -0
  372. package/skills/cloudflare/references/workflows/patterns.md +245 -0
  373. package/skills/cloudflare/references/wrangler/README.md +143 -0
  374. package/skills/cloudflare/references/wrangler/api.md +188 -0
  375. package/skills/cloudflare/references/wrangler/configuration.md +198 -0
  376. package/skills/cloudflare/references/wrangler/gotchas.md +212 -0
  377. package/skills/cloudflare/references/wrangler/patterns.md +211 -0
  378. package/skills/cloudflare/references/zaraz/IMPLEMENTATION_SUMMARY.md +131 -0
  379. package/skills/cloudflare/references/zaraz/README.md +114 -0
  380. package/skills/cloudflare/references/zaraz/api.md +118 -0
  381. package/skills/cloudflare/references/zaraz/configuration.md +94 -0
  382. package/skills/cloudflare/references/zaraz/gotchas.md +88 -0
  383. package/skills/cloudflare/references/zaraz/patterns.md +77 -0
  384. package/skills/docker/SKILL.md +7 -101
  385. package/skills/docker/references/advanced-examples.md +71 -0
  386. package/skills/docker/references/templates.md +34 -0
  387. package/skills/docs-marketer/SKILL.md +178 -0
  388. package/skills/docs-marketer/references/audit-categories.md +328 -0
  389. package/skills/docs-marketer/references/copilot-docs-prompts.md +88 -0
  390. package/skills/docs-marketer/references/copilot-usage.md +16 -0
  391. package/skills/docs-marketer/references/feedback-loop.md +155 -0
  392. package/skills/docs-marketer/references/multi-pass-docs-protocol.md +410 -0
  393. package/skills/drizzle-orm/SKILL.md +82 -0
  394. package/skills/durable-objects/SKILL.md +167 -0
  395. package/skills/durable-objects/references/advanced_features.md +29 -0
  396. package/skills/durable-objects/references/rules.md +300 -0
  397. package/skills/durable-objects/references/testing.md +261 -0
  398. package/skills/durable-objects/references/workers.md +336 -0
  399. package/skills/gcp/SKILL.md +37 -0
  400. package/skills/github-actions/SKILL.md +5 -58
  401. package/skills/github-actions/references/templates.md +65 -0
  402. package/skills/github-commander/SKILL.md +13 -21
  403. package/skills/github-commander/workflows/copilot-audit.md +12 -12
  404. package/skills/github-copilot-cli/SKILL.md +21 -26
  405. package/skills/github-repo-setup/SKILL.md +136 -0
  406. package/skills/github-repo-setup/references/community-standards.md +136 -0
  407. package/skills/github-repo-setup/references/github-automation.md +490 -0
  408. package/skills/github-repo-setup/references/inline-templates.md +205 -0
  409. package/skills/github-repo-setup/references/project-config.md +320 -0
  410. package/skills/gitlab/SKILL.md +7 -2
  411. package/skills/gitlab/package-lock.json +389 -389
  412. package/skills/golang/SKILL.md +8 -1
  413. package/skills/graphql/SKILL.md +30 -0
  414. package/skills/hono/SKILL.md +82 -0
  415. package/skills/journal-optimizer/SKILL.md +206 -0
  416. package/skills/journal-optimizer/references/optimizer-scripts.md +169 -0
  417. package/skills/llm-app-engineering/SKILL.md +18 -0
  418. package/skills/monorepo/SKILL.md +56 -0
  419. package/skills/multi-agent-orchestration/SKILL.md +14 -0
  420. package/skills/mysql/SKILL.md +6 -2
  421. package/skills/next-best-practices/SKILL.md +86 -0
  422. package/skills/next-best-practices/references/cache-components-examples.md +234 -0
  423. package/skills/next-best-practices/references/cache-components.md +210 -0
  424. package/skills/next-best-practices/references/upgrade-decision-tree.md +33 -0
  425. package/skills/next-best-practices/references/upgrade.md +43 -0
  426. package/skills/next-cache-components/SKILL.md +441 -0
  427. package/skills/next-upgrade/SKILL.md +43 -0
  428. package/skills/next-upgrade/references/decision-tree.md +33 -0
  429. package/skills/nodejs/SKILL.md +46 -0
  430. package/skills/opentelemetry/SKILL.md +62 -0
  431. package/skills/package.json +39 -4
  432. package/skills/playwright-standard/SKILL.md +6 -11
  433. package/skills/playwright-standard/references/locators.md +7 -0
  434. package/skills/postgres/SKILL.md +6 -1
  435. package/skills/python/SKILL.md +8 -70
  436. package/skills/python/references/advanced-patterns.md +37 -0
  437. package/skills/python/references/config-templates.md +48 -0
  438. package/skills/rag-pipelines/SKILL.md +14 -0
  439. package/skills/redis/SKILL.md +31 -0
  440. package/skills/render/SKILL.md +35 -0
  441. package/skills/rust/SKILL.md +15 -25
  442. package/skills/rust/references/borrow-checker.md +13 -0
  443. package/skills/rust/references/ecosystem.md +11 -0
  444. package/skills/sandbox-sdk/SKILL.md +186 -0
  445. package/skills/sandbox-sdk/references/api-quick-ref.md +113 -0
  446. package/skills/sandbox-sdk/references/examples.md +52 -0
  447. package/skills/shadcn-ui/SKILL.md +22 -57
  448. package/skills/skill-builder/SKILL.md +23 -424
  449. package/skills/skill-builder/references/tutorial.md +457 -0
  450. package/skills/sqlite/SKILL.md +16 -5
  451. package/skills/table.md +59 -0
  452. package/skills/tailwind-css/SKILL.md +11 -60
  453. package/skills/tailwind-css/references/component-patterns.md +52 -0
  454. package/skills/trpc/SKILL.md +56 -0
  455. package/skills/typescript/SKILL.md +30 -433
  456. package/skills/typescript/references/tutorial.md +453 -0
  457. package/skills/vercel-ai-sdk/SKILL.md +48 -0
  458. package/skills/vitest-standard/SKILL.md +5 -11
  459. package/skills/vitest-standard/references/assertions.md +11 -0
  460. package/skills/web-perf/SKILL.md +207 -0
  461. package/skills/workers-best-practices/SKILL.md +120 -0
  462. package/skills/workers-best-practices/references/anti-patterns.md +18 -0
  463. package/skills/workers-best-practices/references/review.md +174 -0
  464. package/skills/workers-best-practices/references/rules.md +485 -0
  465. package/skills/wrangler/SKILL.md +43 -0
  466. package/skills/wrangler/references/cli-commands.md +861 -0
  467. package/skills/zod/SKILL.md +48 -0
  468. package/dist/tools-P4VGG4FH.js +0 -1
  469. package/skills/react-best-practices/AGENTS.md +0 -2883
  470. package/skills/react-best-practices/SKILL.md +0 -138
  471. /package/skills/{react-best-practices → next-best-practices}/README.md +0 -0
  472. /package/skills/{react-best-practices → next-best-practices}/metadata.json +0 -0
  473. /package/skills/{react-best-practices → next-best-practices}/rules/_sections.md +0 -0
  474. /package/skills/{react-best-practices → next-best-practices}/rules/_template.md +0 -0
  475. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-event-handler-refs.md +0 -0
  476. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-init-once.md +0 -0
  477. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-use-latest.md +0 -0
  478. /package/skills/{react-best-practices → next-best-practices}/rules/async-api-routes.md +0 -0
  479. /package/skills/{react-best-practices → next-best-practices}/rules/async-defer-await.md +0 -0
  480. /package/skills/{react-best-practices → next-best-practices}/rules/async-dependencies.md +0 -0
  481. /package/skills/{react-best-practices → next-best-practices}/rules/async-parallel.md +0 -0
  482. /package/skills/{react-best-practices → next-best-practices}/rules/async-suspense-boundaries.md +0 -0
  483. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-barrel-imports.md +0 -0
  484. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-conditional.md +0 -0
  485. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-defer-third-party.md +0 -0
  486. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-dynamic-imports.md +0 -0
  487. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-preload.md +0 -0
  488. /package/skills/{react-best-practices → next-best-practices}/rules/client-event-listeners.md +0 -0
  489. /package/skills/{react-best-practices → next-best-practices}/rules/client-localstorage-schema.md +0 -0
  490. /package/skills/{react-best-practices → next-best-practices}/rules/client-passive-event-listeners.md +0 -0
  491. /package/skills/{react-best-practices → next-best-practices}/rules/client-swr-dedup.md +0 -0
  492. /package/skills/{react-best-practices → next-best-practices}/rules/js-batch-dom-css.md +0 -0
  493. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-function-results.md +0 -0
  494. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-property-access.md +0 -0
  495. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-storage.md +0 -0
  496. /package/skills/{react-best-practices → next-best-practices}/rules/js-combine-iterations.md +0 -0
  497. /package/skills/{react-best-practices → next-best-practices}/rules/js-early-exit.md +0 -0
  498. /package/skills/{react-best-practices → next-best-practices}/rules/js-hoist-regexp.md +0 -0
  499. /package/skills/{react-best-practices → next-best-practices}/rules/js-index-maps.md +0 -0
  500. /package/skills/{react-best-practices → next-best-practices}/rules/js-length-check-first.md +0 -0
  501. /package/skills/{react-best-practices → next-best-practices}/rules/js-min-max-loop.md +0 -0
  502. /package/skills/{react-best-practices → next-best-practices}/rules/js-set-map-lookups.md +0 -0
  503. /package/skills/{react-best-practices → next-best-practices}/rules/js-tosorted-immutable.md +0 -0
  504. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-activity.md +0 -0
  505. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-animate-svg-wrapper.md +0 -0
  506. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-conditional-render.md +0 -0
  507. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-content-visibility.md +0 -0
  508. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hoist-jsx.md +0 -0
  509. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-no-flicker.md +0 -0
  510. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-suppress-warning.md +0 -0
  511. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-svg-precision.md +0 -0
  512. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-usetransition-loading.md +0 -0
  513. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-defer-reads.md +0 -0
  514. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-dependencies.md +0 -0
  515. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state-no-effect.md +0 -0
  516. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state.md +0 -0
  517. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-functional-setstate.md +0 -0
  518. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-lazy-state-init.md +0 -0
  519. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo-with-default-value.md +0 -0
  520. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo.md +0 -0
  521. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-move-effect-to-event.md +0 -0
  522. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-simple-expression-in-memo.md +0 -0
  523. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-transitions.md +0 -0
  524. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-use-ref-transient-values.md +0 -0
  525. /package/skills/{react-best-practices → next-best-practices}/rules/server-after-nonblocking.md +0 -0
  526. /package/skills/{react-best-practices → next-best-practices}/rules/server-auth-actions.md +0 -0
  527. /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-lru.md +0 -0
  528. /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-react.md +0 -0
  529. /package/skills/{react-best-practices → next-best-practices}/rules/server-dedup-props.md +0 -0
  530. /package/skills/{react-best-practices → next-best-practices}/rules/server-parallel-fetching.md +0 -0
  531. /package/skills/{react-best-practices → next-best-practices}/rules/server-serialization.md +0 -0
@@ -0,0 +1,150 @@
1
+ # Terraform Troubleshooting & Best Practices
2
+
3
+ Common issues, security considerations, and best practices.
4
+
5
+ ## State Drift Issues
6
+
7
+ Some resources have known state drift. Add lifecycle blocks to prevent perpetual diffs:
8
+
9
+ | Resource | Drift Attributes | Workaround |
10
+ | --------------------------- | ------------------------------------- | ------------------------------------------------------ |
11
+ | `cloudflare_pages_project` | `deployment_configs.*` | `ignore_changes = [deployment_configs]` |
12
+ | `cloudflare_workers_script` | secrets returned as REDACTED | `ignore_changes = [secret_text_binding]` |
13
+ | `cloudflare_load_balancer` | `adaptive_routing`, `random_steering` | `ignore_changes = [adaptive_routing, random_steering]` |
14
+ | `cloudflare_workers_kv` | special chars in keys (< 5.16.0) | Upgrade to 5.16.0+ |
15
+
16
+ ```hcl
17
+ # Example: Ignore secret drift
18
+ resource "cloudflare_workers_script" "api" {
19
+ account_id = var.account_id
20
+ name = "api-worker"
21
+ content = file("worker.js")
22
+ secret_text_binding { name = "API_KEY"; text = var.api_key }
23
+
24
+ lifecycle {
25
+ ignore_changes = [secret_text_binding]
26
+ }
27
+ }
28
+ ```
29
+
30
+ ## v5 Breaking Changes
31
+
32
+ Provider v5 is current (auto-generated from OpenAPI). v4→v5 has breaking changes:
33
+
34
+ **Resource Renames:**
35
+
36
+ | v4 Resource | v5 Resource | Notes |
37
+ | -------------------------- | --------------------------- | -------------------- |
38
+ | `cloudflare_record` | `cloudflare_dns_record` | |
39
+ | `cloudflare_worker_script` | `cloudflare_workers_script` | Note: plural |
40
+ | `cloudflare_worker_*` | `cloudflare_workers_*` | All worker resources |
41
+ | `cloudflare_access_*` | `cloudflare_zero_trust_*` | Access → Zero Trust |
42
+
43
+ **Attribute Changes:**
44
+
45
+ | v4 Attribute | v5 Attribute | Resources |
46
+ | --------------- | ------------ | -------------------- |
47
+ | `zone` | `name` | zone |
48
+ | `account_id` | `account.id` | zone (object syntax) |
49
+ | `key` | `key_name` | KV |
50
+ | `location_hint` | `location` | R2 |
51
+
52
+ **State Migration:**
53
+
54
+ ```bash
55
+ # Rename resources in state after v5 upgrade
56
+ terraform state mv cloudflare_record.example cloudflare_dns_record.example
57
+ terraform state mv cloudflare_worker_script.api cloudflare_workers_script.api
58
+ ```
59
+
60
+ ## Resource-Specific Gotchas
61
+
62
+ ### R2 Location Case Sensitivity
63
+
64
+ **Problem:** Terraform creates R2 bucket but fails on subsequent applies
65
+ **Cause:** Location must be UPPERCASE
66
+ **Solution:** Use `WNAM`, `ENAM`, `WEUR`, `EEUR`, `APAC` (not `wnam`, `enam`, etc.)
67
+
68
+ ```hcl
69
+ resource "cloudflare_r2_bucket" "assets" {
70
+ account_id = var.account_id
71
+ name = "assets"
72
+ location = "WNAM" # UPPERCASE required
73
+ }
74
+ ```
75
+
76
+ ### KV Special Characters (< 5.16.0)
77
+
78
+ **Problem:** Keys with `+`, `#`, `%` cause encoding issues
79
+ **Cause:** URL encoding bug in provider < 5.16.0
80
+ **Solution:** Upgrade to 5.16.0+ or avoid special chars in keys
81
+
82
+ ### D1 Migrations
83
+
84
+ **Problem:** Terraform creates database but schema is empty
85
+ **Cause:** Terraform only creates D1 resource, not schema
86
+ **Solution:** Run migrations via wrangler after Terraform apply
87
+
88
+ ```bash
89
+ # After terraform apply
90
+ wrangler d1 migrations apply <db-name>
91
+ ```
92
+
93
+ ### Worker Script Size Limit
94
+
95
+ **Problem:** Worker deployment fails with "script too large"
96
+ **Cause:** Worker script + dependencies exceed 10 MB limit
97
+ **Solution:** Use code splitting, external dependencies, or minification
98
+
99
+ ### Pages Project Drift
100
+
101
+ **Problem:** Pages project shows perpetual diff on `deployment_configs`
102
+ **Cause:** Cloudflare API adds default values not in Terraform state
103
+ **Solution:** Add lifecycle ignore block (see State Drift table above)
104
+
105
+ ## Common Errors
106
+
107
+ ### "Error: couldn't find resource"
108
+
109
+ **Cause:** Resource was deleted outside Terraform
110
+ **Solution:** Import resource back into state with `terraform import cloudflare_zone.example <zone-id>` or remove from state with `terraform state rm cloudflare_zone.example`
111
+
112
+ ### "409 Conflict on worker deployment"
113
+
114
+ **Cause:** Worker being deployed by both Terraform and wrangler simultaneously
115
+ **Solution:** Choose one deployment method; if using Terraform, remove wrangler deployments
116
+
117
+ ### "DNS record already exists"
118
+
119
+ **Cause:** Existing DNS record not imported into Terraform state
120
+ **Solution:** Find record ID in Cloudflare dashboard and import with `terraform import cloudflare_dns_record.example <zone-id>/<record-id>`
121
+
122
+ ### "Invalid provider configuration"
123
+
124
+ **Cause:** API token missing, invalid, or lacking required permissions
125
+ **Solution:** Set `CLOUDFLARE_API_TOKEN` environment variable or check token permissions in dashboard
126
+
127
+ ### "State locking errors"
128
+
129
+ **Cause:** Multiple concurrent Terraform runs or stale lock from crashed process
130
+ **Solution:** Remove stale lock with `terraform force-unlock <lock-id>` (use with caution)
131
+
132
+ ## Limits
133
+
134
+ | Resource | Limit | Notes |
135
+ | --------------------- | ------------------ | ---------------------------------------- |
136
+ | API token rate limit | Varies by plan | Use `api_client_logging = true` to debug |
137
+ | Worker script size | 10 MB | Includes all dependencies |
138
+ | KV keys per namespace | Unlimited | Pay per operation |
139
+ | R2 storage | Unlimited | Pay per GB |
140
+ | D1 databases | 50,000 per account | Free tier: 10 |
141
+ | Pages projects | 500 per account | 100 for free accounts |
142
+ | DNS records | 3,500 per zone | Free plan |
143
+
144
+ ## See Also
145
+
146
+ - [README](./README.md) - Provider setup
147
+ - [Configuration](./configuration.md) - Resources
148
+ - [API](./api.md) - Data sources
149
+ - [Patterns](./patterns.md) - Use cases
150
+ - Provider docs: https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs
@@ -0,0 +1,174 @@
1
+ # Terraform Patterns & Use Cases
2
+
3
+ Architecture patterns, multi-environment setups, and real-world use cases.
4
+
5
+ ## Recommended Directory Structure
6
+
7
+ ```
8
+ terraform/
9
+ ├── environments/
10
+ │ ├── production/
11
+ │ │ ├── main.tf
12
+ │ │ └── terraform.tfvars
13
+ │ └── staging/
14
+ │ ├── main.tf
15
+ │ └── terraform.tfvars
16
+ ├── modules/
17
+ │ ├── zone/
18
+ │ ├── worker/
19
+ │ └── dns/
20
+ └── shared/ # Shared resources across envs
21
+ └── main.tf
22
+ ```
23
+
24
+ **Note:** Cloudflare recommends avoiding modules for provider resources due to v5 auto-generation complexity. Prefer environment directories + shared state instead.
25
+
26
+ ## Multi-Environment Setup
27
+
28
+ ```hcl
29
+ # Directory: environments/{production,staging}/main.tf + modules/{zone,worker,pages}
30
+ module "zone" {
31
+ source = "../../modules/zone"; account_id = var.account_id; zone_name = "example.com"; environment = "production"
32
+ }
33
+ module "api_worker" {
34
+ source = "../../modules/worker"; account_id = var.account_id; zone_id = module.zone.zone_id
35
+ name = "api-worker-prod"; script = file("../../workers/api.js"); environment = "production"
36
+ }
37
+ ```
38
+
39
+ ## R2 State Backend
40
+
41
+ ```hcl
42
+ terraform {
43
+ backend "s3" {
44
+ bucket = "terraform-state"
45
+ key = "cloudflare.tfstate"
46
+ region = "auto"
47
+ endpoints = { s3 = "https://<account_id>.r2.cloudflarestorage.com" }
48
+ skip_credentials_validation = true
49
+ skip_region_validation = true
50
+ skip_requesting_account_id = true
51
+ skip_metadata_api_check = true
52
+ skip_s3_checksum = true
53
+ }
54
+ }
55
+ ```
56
+
57
+ ## Worker with All Bindings
58
+
59
+ ```hcl
60
+ locals { worker_name = "full-stack-worker" }
61
+ resource "cloudflare_workers_kv_namespace" "app" { account_id = var.account_id; title = "${local.worker_name}-kv" }
62
+ resource "cloudflare_r2_bucket" "app" { account_id = var.account_id; name = "${local.worker_name}-bucket" }
63
+ resource "cloudflare_d1_database" "app" { account_id = var.account_id; name = "${local.worker_name}-db" }
64
+
65
+ resource "cloudflare_worker_script" "app" {
66
+ account_id = var.account_id; name = local.worker_name; content = file("worker.js"); module = true
67
+ compatibility_date = "2025-01-01"
68
+ kv_namespace_binding { name = "KV"; namespace_id = cloudflare_workers_kv_namespace.app.id }
69
+ r2_bucket_binding { name = "BUCKET"; bucket_name = cloudflare_r2_bucket.app.name }
70
+ d1_database_binding { name = "DB"; database_id = cloudflare_d1_database.app.id }
71
+ secret_text_binding { name = "API_KEY"; text = var.api_key }
72
+ }
73
+ ```
74
+
75
+ ## Wrangler Integration
76
+
77
+ **CRITICAL**: Wrangler and Terraform must NOT manage same resources.
78
+
79
+ **Terraform**: Zones, DNS, security rules, Access, load balancers, worker deployments (CI/CD), KV/R2/D1 resource creation
80
+ **Wrangler**: Local dev (`wrangler dev`), manual deploys, D1 migrations, KV bulk ops, log streaming (`wrangler tail`)
81
+
82
+ ### CI/CD Pattern
83
+
84
+ ```hcl
85
+ # Terraform creates infrastructure
86
+ resource "cloudflare_workers_kv_namespace" "app" { account_id = var.account_id; title = "app-kv" }
87
+ resource "cloudflare_d1_database" "app" { account_id = var.account_id; name = "app-db" }
88
+ output "kv_namespace_id" { value = cloudflare_workers_kv_namespace.app.id }
89
+ output "d1_database_id" { value = cloudflare_d1_database.app.id }
90
+ ```
91
+
92
+ ```yaml
93
+ # GitHub Actions: terraform apply → envsubst wrangler.jsonc.template → wrangler deploy
94
+ - run: terraform apply -auto-approve
95
+ - run: |
96
+ export KV_NAMESPACE_ID=$(terraform output -raw kv_namespace_id)
97
+ envsubst < wrangler.jsonc.template > wrangler.jsonc
98
+ - run: wrangler deploy
99
+ ```
100
+
101
+ ## Use Cases
102
+
103
+ ### Static Site + API Worker
104
+
105
+ ```hcl
106
+ resource "cloudflare_pages_project" "frontend" {
107
+ account_id = var.account_id; name = "frontend"; production_branch = "main"
108
+ build_config { build_command = "npm run build"; destination_dir = "dist" }
109
+ }
110
+ resource "cloudflare_worker_script" "api" {
111
+ account_id = var.account_id; name = "api"; content = file("api-worker.js")
112
+ d1_database_binding { name = "DB"; database_id = cloudflare_d1_database.api_db.id }
113
+ }
114
+ resource "cloudflare_dns_record" "frontend" {
115
+ zone_id = cloudflare_zone.main.id; name = "app"; content = cloudflare_pages_project.frontend.subdomain; type = "CNAME"; proxied = true
116
+ }
117
+ resource "cloudflare_worker_route" "api" {
118
+ zone_id = cloudflare_zone.main.id; pattern = "api.example.com/*"; script_name = cloudflare_worker_script.api.name
119
+ }
120
+ ```
121
+
122
+ ### Multi-Region Load Balancing
123
+
124
+ ```hcl
125
+ resource "cloudflare_load_balancer_pool" "us" {
126
+ account_id = var.account_id; name = "us-pool"; monitor = cloudflare_load_balancer_monitor.http.id
127
+ origins { name = "us-east"; address = var.us_east_ip }
128
+ }
129
+ resource "cloudflare_load_balancer_pool" "eu" {
130
+ account_id = var.account_id; name = "eu-pool"; monitor = cloudflare_load_balancer_monitor.http.id
131
+ origins { name = "eu-west"; address = var.eu_west_ip }
132
+ }
133
+ resource "cloudflare_load_balancer" "global" {
134
+ zone_id = cloudflare_zone.main.id; name = "api.example.com"; steering_policy = "geo"
135
+ default_pool_ids = [cloudflare_load_balancer_pool.us.id]
136
+ region_pools { region = "WNAM"; pool_ids = [cloudflare_load_balancer_pool.us.id] }
137
+ region_pools { region = "WEU"; pool_ids = [cloudflare_load_balancer_pool.eu.id] }
138
+ }
139
+ ```
140
+
141
+ ### Secure Admin with Access
142
+
143
+ ```hcl
144
+ resource "cloudflare_pages_project" "admin" { account_id = var.account_id; name = "admin"; production_branch = "main" }
145
+ resource "cloudflare_access_application" "admin" {
146
+ account_id = var.account_id; name = "Admin"; domain = "admin.example.com"; type = "self_hosted"; session_duration = "24h"
147
+ allowed_idps = [cloudflare_access_identity_provider.google.id]
148
+ }
149
+ resource "cloudflare_access_policy" "allow" {
150
+ account_id = var.account_id; application_id = cloudflare_access_application.admin.id
151
+ name = "Allow admins"; decision = "allow"; precedence = 1; include { email = var.admin_emails }
152
+ }
153
+ ```
154
+
155
+ ### Reusable Module
156
+
157
+ ```hcl
158
+ # modules/cloudflare-zone/main.tf
159
+ variable "account_id" { type = string }; variable "domain" { type = string }; variable "ssl_mode" { default = "strict" }
160
+ resource "cloudflare_zone" "main" { account = { id = var.account_id }; name = var.domain }
161
+ resource "cloudflare_zone_settings_override" "main" {
162
+ zone_id = cloudflare_zone.main.id; settings { ssl = var.ssl_mode; always_use_https = "on" }
163
+ }
164
+ output "zone_id" { value = cloudflare_zone.main.id }
165
+
166
+ # Usage: module "prod" { source = "./modules/cloudflare-zone"; account_id = var.account_id; domain = "example.com" }
167
+ ```
168
+
169
+ ## See Also
170
+
171
+ - [README](./README.md) - Provider setup
172
+ - [Configuration Reference](./configuration.md) - All resource types
173
+ - [API Reference](./api.md) - Data sources
174
+ - [Troubleshooting](./gotchas.md) - Best practices, common issues
@@ -0,0 +1,137 @@
1
+ # Cloudflare Tunnel
2
+
3
+ Secure outbound-only connections between infrastructure and Cloudflare's global network.
4
+
5
+ ## Overview
6
+
7
+ Cloudflare Tunnel (formerly Argo Tunnel) enables:
8
+
9
+ - **Outbound-only connections** - No inbound ports or firewall changes
10
+ - **Public hostname routing** - Expose local services to internet
11
+ - **Private network access** - Connect internal networks via WARP
12
+ - **Zero Trust integration** - Built-in access policies
13
+
14
+ **Architecture**: Tunnel (persistent object) → Replica (`cloudflared` process) → Origin services
15
+
16
+ **Terminology:**
17
+
18
+ - **Tunnel**: Named persistent object with UUID
19
+ - **Replica**: Individual `cloudflared` process connected to tunnel
20
+ - **Config Source**: Where ingress rules stored (local file vs Cloudflare dashboard)
21
+ - **Connector**: Legacy term for replica
22
+
23
+ ## Quick Start
24
+
25
+ ### Local Config
26
+
27
+ ```bash
28
+ # Install cloudflared
29
+ brew install cloudflared # macOS
30
+
31
+ # Authenticate
32
+ cloudflared tunnel login
33
+
34
+ # Create tunnel
35
+ cloudflared tunnel create my-tunnel
36
+
37
+ # Route DNS
38
+ cloudflared tunnel route dns my-tunnel app.example.com
39
+
40
+ # Run tunnel
41
+ cloudflared tunnel run my-tunnel
42
+ ```
43
+
44
+ ### Dashboard Config (Recommended)
45
+
46
+ 1. **Zero Trust** > **Networks** > **Tunnels** > **Create**
47
+ 2. Name tunnel, copy token
48
+ 3. Configure routes in dashboard
49
+ 4. Run: `cloudflared tunnel --no-autoupdate run --token <TOKEN>`
50
+
51
+ ## Decision Tree
52
+
53
+ **Choose config source:**
54
+
55
+ ```
56
+ Need centralized config updates?
57
+ ├─ Yes → Token-based (dashboard config)
58
+ └─ No → Local config file
59
+
60
+ Multiple environments (dev/staging/prod)?
61
+ ├─ Yes → Local config (version controlled)
62
+ └─ No → Either works
63
+
64
+ Need firewall approval?
65
+ └─ See networking.md first
66
+ ```
67
+
68
+ ## Core Commands
69
+
70
+ ```bash
71
+ # Tunnel lifecycle
72
+ cloudflared tunnel create <name>
73
+ cloudflared tunnel list
74
+ cloudflared tunnel info <name>
75
+ cloudflared tunnel delete <name>
76
+
77
+ # DNS routing
78
+ cloudflared tunnel route dns <tunnel> <hostname>
79
+ cloudflared tunnel route list
80
+
81
+ # Private network
82
+ cloudflared tunnel route ip add 10.0.0.0/8 <tunnel>
83
+
84
+ # Run tunnel
85
+ cloudflared tunnel run <name>
86
+ ```
87
+
88
+ ## Configuration Example
89
+
90
+ ```yaml
91
+ # ~/.cloudflared/config.yml
92
+ tunnel: 6ff42ae2-765d-4adf-8112-31c55c1551ef
93
+ credentials-file: /root/.cloudflared/6ff42ae2-765d-4adf-8112-31c55c1551ef.json
94
+
95
+ ingress:
96
+ - hostname: app.example.com
97
+ service: http://localhost:8000
98
+ - hostname: api.example.com
99
+ service: https://localhost:8443
100
+ originRequest:
101
+ noTLSVerify: true
102
+ - service: http_status:404
103
+ ```
104
+
105
+ ## Reading Order
106
+
107
+ **New to Cloudflare Tunnel:**
108
+
109
+ 1. This README (overview, quick start)
110
+ 2. [networking.md](./networking.md) - Firewall rules, connectivity pre-checks
111
+ 3. [configuration.md](./configuration.md) - Config file options, ingress rules
112
+ 4. [patterns.md](./patterns.md) - Docker, Kubernetes, production deployment
113
+ 5. [gotchas.md](./gotchas.md) - Troubleshooting, best practices
114
+
115
+ **Enterprise deployment:**
116
+
117
+ 1. [networking.md](./networking.md) - Corporate firewall requirements
118
+ 2. [gotchas.md](./gotchas.md) - HA setup, security best practices
119
+ 3. [patterns.md](./patterns.md) - Kubernetes, rolling updates
120
+
121
+ **Programmatic control:**
122
+
123
+ 1. [api.md](./api.md) - REST API, TypeScript SDK
124
+
125
+ ## In This Reference
126
+
127
+ - [networking.md](./networking.md) - Firewall rules, ports, connectivity pre-checks
128
+ - [configuration.md](./configuration.md) - Config file options, ingress rules, TLS settings
129
+ - [api.md](./api.md) - REST API, TypeScript SDK, token-based tunnels
130
+ - [patterns.md](./patterns.md) - Docker, Kubernetes, Terraform, HA, use cases
131
+ - [gotchas.md](./gotchas.md) - Troubleshooting, limitations, best practices
132
+
133
+ ## See Also
134
+
135
+ - [workers](../workers/) - Workers with Tunnel integration
136
+ - [access](../access/) - Zero Trust access policies
137
+ - [warp](../warp/) - WARP client for private networks
@@ -0,0 +1,205 @@
1
+ # Tunnel API
2
+
3
+ ## Cloudflare API Access
4
+
5
+ **Base URL**: `https://api.cloudflare.com/client/v4`
6
+
7
+ **Authentication**:
8
+
9
+ ```bash
10
+ Authorization: Bearer ${CF_API_TOKEN}
11
+ ```
12
+
13
+ ## TypeScript SDK
14
+
15
+ Install: `npm install cloudflare`
16
+
17
+ ```typescript
18
+ import Cloudflare from 'cloudflare'
19
+
20
+ const cf = new Cloudflare({
21
+ apiToken: process.env.CF_API_TOKEN,
22
+ })
23
+
24
+ const accountId = process.env.CF_ACCOUNT_ID
25
+ ```
26
+
27
+ ## Create Tunnel
28
+
29
+ ### cURL
30
+
31
+ ```bash
32
+ curl -X POST "https://api.cloudflare.com/client/v4/accounts/{account_id}/tunnels" \
33
+ -H "Authorization: Bearer ${CF_API_TOKEN}" \
34
+ -H "Content-Type: application/json" \
35
+ --data '{
36
+ "name": "my-tunnel",
37
+ "tunnel_secret": "<base64-secret>"
38
+ }'
39
+ ```
40
+
41
+ ### TypeScript
42
+
43
+ ```typescript
44
+ const tunnel = await cf.zeroTrust.tunnels.create({
45
+ account_id: accountId,
46
+ name: 'my-tunnel',
47
+ tunnel_secret: Buffer.from(crypto.randomBytes(32)).toString('base64'),
48
+ })
49
+
50
+ console.log(`Tunnel ID: ${tunnel.id}`)
51
+ ```
52
+
53
+ ## List Tunnels
54
+
55
+ ### cURL
56
+
57
+ ```bash
58
+ curl -X GET "https://api.cloudflare.com/client/v4/accounts/{account_id}/tunnels" \
59
+ -H "Authorization: Bearer ${CF_API_TOKEN}"
60
+ ```
61
+
62
+ ### TypeScript
63
+
64
+ ```typescript
65
+ const tunnels = await cf.zeroTrust.tunnels.list({
66
+ account_id: accountId,
67
+ })
68
+
69
+ for (const tunnel of tunnels.result) {
70
+ console.log(`${tunnel.name}: ${tunnel.id}`)
71
+ }
72
+ ```
73
+
74
+ ## Get Tunnel Info
75
+
76
+ ### cURL
77
+
78
+ ```bash
79
+ curl -X GET "https://api.cloudflare.com/client/v4/accounts/{account_id}/tunnels/{tunnel_id}" \
80
+ -H "Authorization: Bearer ${CF_API_TOKEN}"
81
+ ```
82
+
83
+ ### TypeScript
84
+
85
+ ```typescript
86
+ const tunnel = await cf.zeroTrust.tunnels.get(tunnelId, {
87
+ account_id: accountId,
88
+ })
89
+
90
+ console.log(`Status: ${tunnel.status}`)
91
+ console.log(`Connections: ${tunnel.connections?.length || 0}`)
92
+ ```
93
+
94
+ ## Update Tunnel Config
95
+
96
+ ### cURL
97
+
98
+ ```bash
99
+ curl -X PUT "https://api.cloudflare.com/client/v4/accounts/{account_id}/tunnels/{tunnel_id}/configurations" \
100
+ -H "Authorization: Bearer ${CF_API_TOKEN}" \
101
+ -H "Content-Type: application/json" \
102
+ --data '{
103
+ "config": {
104
+ "ingress": [
105
+ {"hostname": "app.example.com", "service": "http://localhost:8000"},
106
+ {"service": "http_status:404"}
107
+ ]
108
+ }
109
+ }'
110
+ ```
111
+
112
+ ### TypeScript
113
+
114
+ ```typescript
115
+ const config = await cf.zeroTrust.tunnels.configurations.update(tunnelId, {
116
+ account_id: accountId,
117
+ config: {
118
+ ingress: [
119
+ { hostname: 'app.example.com', service: 'http://localhost:8000' },
120
+ { service: 'http_status:404' },
121
+ ],
122
+ },
123
+ })
124
+ ```
125
+
126
+ ## Delete Tunnel
127
+
128
+ ### cURL
129
+
130
+ ```bash
131
+ curl -X DELETE "https://api.cloudflare.com/client/v4/accounts/{account_id}/tunnels/{tunnel_id}" \
132
+ -H "Authorization: Bearer ${CF_API_TOKEN}"
133
+ ```
134
+
135
+ ### TypeScript
136
+
137
+ ```typescript
138
+ await cf.zeroTrust.tunnels.delete(tunnelId, {
139
+ account_id: accountId,
140
+ })
141
+ ```
142
+
143
+ ## Token-Based Tunnels (Config Source: Cloudflare)
144
+
145
+ Token-based tunnels store config in Cloudflare dashboard instead of local files.
146
+
147
+ ### Via Dashboard
148
+
149
+ 1. **Zero Trust** > **Networks** > **Tunnels**
150
+ 2. **Create a tunnel** > **Cloudflared**
151
+ 3. Configure routes in dashboard
152
+ 4. Copy token
153
+ 5. Run on origin:
154
+
155
+ ```bash
156
+ cloudflared service install <TOKEN>
157
+ ```
158
+
159
+ ### Via Token
160
+
161
+ ```bash
162
+ # Run with token (no config file needed)
163
+ cloudflared tunnel --no-autoupdate run --token ${TUNNEL_TOKEN}
164
+
165
+ # Docker
166
+ docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token ${TUNNEL_TOKEN}
167
+ ```
168
+
169
+ ### Get Tunnel Token (TypeScript)
170
+
171
+ ```typescript
172
+ // Get tunnel to retrieve token
173
+ const tunnel = await cf.zeroTrust.tunnels.get(tunnelId, {
174
+ account_id: accountId,
175
+ })
176
+
177
+ // Token available in tunnel.token (only for config source: cloudflare)
178
+ const token = tunnel.token
179
+ ```
180
+
181
+ ## DNS Routes API
182
+
183
+ ```bash
184
+ # Create DNS route
185
+ curl -X POST "https://api.cloudflare.com/client/v4/accounts/{account_id}/tunnels/{tunnel_id}/connections" \
186
+ -H "Authorization: Bearer ${CF_API_TOKEN}" \
187
+ --data '{"hostname": "app.example.com"}'
188
+
189
+ # Delete route
190
+ curl -X DELETE "https://api.cloudflare.com/client/v4/accounts/{account_id}/tunnels/{tunnel_id}/connections/{route_id}" \
191
+ -H "Authorization: Bearer ${CF_API_TOKEN}"
192
+ ```
193
+
194
+ ## Private Network Routes API
195
+
196
+ ```bash
197
+ # Add IP route
198
+ curl -X POST "https://api.cloudflare.com/client/v4/accounts/{account_id}/tunnels/{tunnel_id}/routes" \
199
+ -H "Authorization: Bearer ${CF_API_TOKEN}" \
200
+ --data '{"ip_network": "10.0.0.0/8"}'
201
+
202
+ # List IP routes
203
+ curl -X GET "https://api.cloudflare.com/client/v4/accounts/{account_id}/tunnels/{tunnel_id}/routes" \
204
+ -H "Authorization: Bearer ${CF_API_TOKEN}"
205
+ ```