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,208 @@
1
+ # Common Patterns
2
+
3
+ ## List All with Auto-Pagination
4
+
5
+ **Problem:** API returns paginated results. Default page size is 20.
6
+
7
+ **Solution:** Use SDK auto-pagination to iterate all results.
8
+
9
+ ```typescript
10
+ // TypeScript
11
+ for await (const zone of client.zones.list()) {
12
+ console.log(zone.name)
13
+ }
14
+ ```
15
+
16
+ ```python
17
+ # Python
18
+ for zone in client.zones.list():
19
+ print(zone.name)
20
+ ```
21
+
22
+ ```go
23
+ // Go
24
+ iter := client.Zones.ListAutoPaging(ctx, cloudflare.ZoneListParams{})
25
+ for iter.Next() {
26
+ fmt.Println(iter.Current().Name)
27
+ }
28
+ ```
29
+
30
+ ## Error Handling with Retry
31
+
32
+ **Problem:** Rate limits (429) and transient errors need retry.
33
+
34
+ **Solution:** SDKs auto-retry with exponential backoff. Customize as needed.
35
+
36
+ ```typescript
37
+ // Increase retries for rate-limit-heavy operations
38
+ const client = new Cloudflare({ maxRetries: 5 })
39
+
40
+ try {
41
+ const zone = await client.zones.create({
42
+ /* ... */
43
+ })
44
+ } catch (err) {
45
+ if (err instanceof Cloudflare.RateLimitError) {
46
+ // Already retried 5 times with backoff
47
+ const retryAfter = err.headers['retry-after']
48
+ console.log(`Rate limited. Retry after ${retryAfter}s`)
49
+ }
50
+ }
51
+ ```
52
+
53
+ ## Batch Parallel Operations
54
+
55
+ **Problem:** Need to create multiple resources quickly.
56
+
57
+ **Solution:** Use `Promise.all()` for parallel requests (respect rate limits).
58
+
59
+ ```typescript
60
+ // Create multiple DNS records in parallel
61
+ const records = ['www', 'api', 'cdn'].map((subdomain) =>
62
+ client.dns.records.create({
63
+ zone_id: 'zone-id',
64
+ type: 'A',
65
+ name: `${subdomain}.example.com`,
66
+ content: '192.0.2.1',
67
+ })
68
+ )
69
+ await Promise.all(records)
70
+ ```
71
+
72
+ **Controlled concurrency** (avoid rate limits):
73
+
74
+ ```typescript
75
+ import pLimit from 'p-limit'
76
+ const limit = pLimit(10) // Max 10 concurrent
77
+
78
+ const subdomains = ['www', 'api', 'cdn' /* many more */]
79
+ const records = subdomains.map((subdomain) =>
80
+ limit(() =>
81
+ client.dns.records.create({
82
+ zone_id: 'zone-id',
83
+ type: 'A',
84
+ name: `${subdomain}.example.com`,
85
+ content: '192.0.2.1',
86
+ })
87
+ )
88
+ )
89
+ await Promise.all(records)
90
+ ```
91
+
92
+ ## Zone CRUD Workflow
93
+
94
+ ```typescript
95
+ // Create
96
+ const zone = await client.zones.create({
97
+ account: { id: 'account-id' },
98
+ name: 'example.com',
99
+ type: 'full',
100
+ })
101
+
102
+ // Read
103
+ const fetched = await client.zones.get({ zone_id: zone.id })
104
+
105
+ // Update
106
+ await client.zones.edit(zone.id, { paused: false })
107
+
108
+ // Delete
109
+ await client.zones.delete(zone.id)
110
+ ```
111
+
112
+ ## DNS Bulk Update
113
+
114
+ ```typescript
115
+ // Fetch all A records
116
+ const records = []
117
+ for await (const record of client.dns.records.list({
118
+ zone_id: 'zone-id',
119
+ type: 'A',
120
+ })) {
121
+ records.push(record)
122
+ }
123
+
124
+ // Update all to new IP
125
+ await Promise.all(
126
+ records.map((record) =>
127
+ client.dns.records.update({
128
+ zone_id: 'zone-id',
129
+ dns_record_id: record.id,
130
+ type: 'A',
131
+ name: record.name,
132
+ content: '203.0.113.1', // New IP
133
+ proxied: record.proxied,
134
+ ttl: record.ttl,
135
+ })
136
+ )
137
+ )
138
+ ```
139
+
140
+ ## Filter and Collect Results
141
+
142
+ ```typescript
143
+ // Find all proxied A records
144
+ const proxiedRecords = []
145
+ for await (const record of client.dns.records.list({
146
+ zone_id: 'zone-id',
147
+ type: 'A',
148
+ })) {
149
+ if (record.proxied) {
150
+ proxiedRecords.push(record)
151
+ }
152
+ }
153
+ ```
154
+
155
+ ## Error Recovery Pattern
156
+
157
+ ```typescript
158
+ async function createZoneWithRetry(name: string, maxAttempts = 3) {
159
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
160
+ try {
161
+ return await client.zones.create({
162
+ account: { id: 'account-id' },
163
+ name,
164
+ type: 'full',
165
+ })
166
+ } catch (err) {
167
+ if (err instanceof Cloudflare.RateLimitError && attempt < maxAttempts) {
168
+ const retryAfter = parseInt(err.headers['retry-after'] || '5')
169
+ console.log(`Rate limited, waiting ${retryAfter}s (retry ${attempt}/${maxAttempts})`)
170
+ await new Promise((resolve) => setTimeout(resolve, retryAfter * 1000))
171
+ } else {
172
+ throw err
173
+ }
174
+ }
175
+ }
176
+ }
177
+ ```
178
+
179
+ ## Conditional Update Pattern
180
+
181
+ ```typescript
182
+ // Only update if zone is active
183
+ const zone = await client.zones.get({ zone_id: 'zone-id' })
184
+ if (zone.status === 'active') {
185
+ await client.zones.edit(zone.id, { paused: false })
186
+ }
187
+ ```
188
+
189
+ ## Batch with Error Handling
190
+
191
+ ```typescript
192
+ // Process multiple zones, continue on errors
193
+ const results = await Promise.allSettled(zoneIds.map((id) => client.zones.get({ zone_id: id })))
194
+
195
+ results.forEach((result, i) => {
196
+ if (result.status === 'fulfilled') {
197
+ console.log(`Zone ${i}: ${result.value.name}`)
198
+ } else {
199
+ console.error(`Zone ${i} failed:`, result.reason.message)
200
+ }
201
+ })
202
+ ```
203
+
204
+ ## See Also
205
+
206
+ - [api.md](./api.md) - SDK client initialization, basic operations
207
+ - [gotchas.md](./gotchas.md) - Rate limits, common errors
208
+ - [configuration.md](./configuration.md) - SDK configuration options
@@ -0,0 +1,44 @@
1
+ # Cloudflare API Shield Reference
2
+
3
+ Expert guidance for API Shield - comprehensive API security suite for discovery, protection, and monitoring.
4
+
5
+ ## Reading Order
6
+
7
+ | Task | Files to Read |
8
+ | ------------------------ | ------------------------------ |
9
+ | Initial setup | README → configuration.md |
10
+ | Implement JWT validation | configuration.md → api.md |
11
+ | Add schema validation | configuration.md → patterns.md |
12
+ | Detect API attacks | patterns.md → api.md |
13
+ | Debug issues | gotchas.md |
14
+
15
+ ## Feature Selection
16
+
17
+ What protection do you need?
18
+
19
+ ```
20
+ ├─ Validate request/response structure → Schema Validation 2.0 (configuration.md)
21
+ ├─ Verify auth tokens → JWT Validation (configuration.md)
22
+ ├─ Client certificates → mTLS (configuration.md)
23
+ ├─ Detect BOLA attacks → BOLA Detection (patterns.md)
24
+ ├─ Track auth coverage → Auth Posture (patterns.md)
25
+ ├─ Stop volumetric abuse → Abuse Detection (patterns.md)
26
+ └─ Discover shadow APIs → API Discovery (api.md)
27
+ ```
28
+
29
+ ## In This Reference
30
+
31
+ - **[configuration.md](configuration.md)** - Setup, session identifiers, rules, token/mTLS configs
32
+ - **[api.md](api.md)** - Endpoint management, discovery, validation APIs, GraphQL operations
33
+ - **[patterns.md](patterns.md)** - Common patterns, progressive rollout, OWASP mappings, workflows
34
+ - **[gotchas.md](gotchas.md)** - Troubleshooting, false positives, performance, best practices
35
+
36
+ ## Quick Start
37
+
38
+ API Shield: Enterprise-grade API security (Discovery, Schema Validation 2.0, JWT, mTLS, BOLA Detection, Auth Posture). Available as Enterprise add-on with preview access.
39
+
40
+ ## See Also
41
+
42
+ - [API Shield Docs](https://developers.cloudflare.com/api-shield/)
43
+ - [API Reference](https://developers.cloudflare.com/api/resources/api_gateway/)
44
+ - [OWASP API Security Top 10](https://owasp.org/www-project-api-security/)
@@ -0,0 +1,153 @@
1
+ # API Reference
2
+
3
+ Base: `/zones/{zone_id}/api_gateway`
4
+
5
+ ## Endpoints
6
+
7
+ ```bash
8
+ GET /operations # List
9
+ GET /operations/{op_id} # Get single
10
+ POST /operations/item # Create: {endpoint,host,method}
11
+ POST /operations # Bulk: {operations:[{endpoint,host,method}]}
12
+ DELETE /operations/{op_id} # Delete
13
+ DELETE /operations # Bulk delete: {operation_ids:[...]}
14
+ ```
15
+
16
+ ## Discovery
17
+
18
+ ```bash
19
+ GET /discovery/operations # List discovered
20
+ PATCH /discovery/operations/{op_id} # Update: {state:"saved"|"ignored"}
21
+ PATCH /discovery/operations # Bulk: {operation_ids:{id:{state}}}
22
+ GET /discovery # OpenAPI export
23
+ ```
24
+
25
+ ## Config
26
+
27
+ ```bash
28
+ GET /configuration # Get session ID config
29
+ PUT /configuration # Update: {auth_id_characteristics:[{name,type:"header"|"cookie"}]}
30
+ ```
31
+
32
+ ## Token Validation
33
+
34
+ ```bash
35
+ GET /token_validation # List
36
+ POST /token_validation # Create: {name,location:{header:"..."},jwks:"..."}
37
+ POST /jwt_validation_rules # Rule: {name,hostname,token_validation_id,action:"block"}
38
+ ```
39
+
40
+ ## Workers Integration
41
+
42
+ ### Access JWT Claims
43
+
44
+ ```js
45
+ export default {
46
+ async fetch(req, env) {
47
+ // Access validated JWT payload
48
+ const jwt = req.cf?.jwt?.payload?.[env.JWT_CONFIG_ID]?.[0]
49
+ if (jwt) {
50
+ const userId = jwt.sub
51
+ const role = jwt.role
52
+ }
53
+ },
54
+ }
55
+ ```
56
+
57
+ ### Access mTLS Info
58
+
59
+ ```js
60
+ export default {
61
+ async fetch(req, env) {
62
+ const tls = req.cf?.tlsClientAuth
63
+ if (tls?.certVerified === 'SUCCESS') {
64
+ const fingerprint = tls.certFingerprintSHA256
65
+ // Authenticated client
66
+ }
67
+ },
68
+ }
69
+ ```
70
+
71
+ ### Dynamic JWKS Update
72
+
73
+ ```js
74
+ export default {
75
+ async scheduled(event, env) {
76
+ const jwks = await (await fetch('https://auth.example.com/.well-known/jwks.json')).json()
77
+ await fetch(
78
+ `https://api.cloudflare.com/client/v4/zones/${env.ZONE_ID}/api_gateway/token_validation/${env.CONFIG_ID}`,
79
+ {
80
+ method: 'PATCH',
81
+ headers: {
82
+ Authorization: `Bearer ${env.CF_API_TOKEN}`,
83
+ 'Content-Type': 'application/json',
84
+ },
85
+ body: JSON.stringify({ jwks: JSON.stringify(jwks) }),
86
+ }
87
+ )
88
+ },
89
+ }
90
+ ```
91
+
92
+ ## Firewall Fields
93
+
94
+ ### Core Fields
95
+
96
+ ```js
97
+ cf.api_gateway.auth_id_present // Session ID present
98
+ cf.api_gateway.request_violates_schema // Schema violation
99
+ cf.api_gateway.fallthrough_triggered // No endpoint match
100
+ cf.tls_client_auth.cert_verified // mTLS cert valid
101
+ cf.tls_client_auth.cert_fingerprint_sha256
102
+ ```
103
+
104
+ ### JWT Validation (2026)
105
+
106
+ ```js
107
+ // Modern validation syntax
108
+ is_jwt_valid(http.request.jwt.payload['{config_id}'][0])
109
+
110
+ // Legacy (still supported)
111
+ cf.api_gateway.jwt_claims_valid
112
+
113
+ // Extract claims
114
+ lookup_json_string(http.request.jwt.payload['{config_id}'][0], 'claim_name')
115
+ ```
116
+
117
+ ### Risk Labels (2026)
118
+
119
+ ```js
120
+ // BOLA detection
121
+ cf.api_gateway.cf - risk - bola - enumeration // Sequential resource access detected
122
+ cf.api_gateway.cf - risk - bola - pollution // Parameter pollution detected
123
+
124
+ // Authentication posture
125
+ cf.api_gateway.cf - risk - missing - auth // Endpoint lacks authentication
126
+ cf.api_gateway.cf - risk - mixed - auth // Inconsistent auth patterns
127
+ ```
128
+
129
+ ## BOLA Detection
130
+
131
+ ```bash
132
+ GET /user_schemas/{schema_id}/bola # Get BOLA config
133
+ PATCH /user_schemas/{schema_id}/bola # Update: {enabled:true}
134
+ ```
135
+
136
+ ## Auth Posture
137
+
138
+ ```bash
139
+ GET /discovery/authentication_posture # List unprotected endpoints
140
+ ```
141
+
142
+ ## GraphQL Protection
143
+
144
+ ```bash
145
+ GET /settings/graphql_protection # Get limits
146
+ PUT /settings/graphql_protection # Set: {max_depth,max_size}
147
+ ```
148
+
149
+ ## See Also
150
+
151
+ - [configuration.md](configuration.md) - Setup guides for all features
152
+ - [patterns.md](patterns.md) - Firewall rules and common patterns
153
+ - [API Gateway API Docs](https://developers.cloudflare.com/api/resources/api_gateway/)
@@ -0,0 +1,210 @@
1
+ # Configuration
2
+
3
+ ## Schema Validation 2.0 Setup
4
+
5
+ > ⚠️ **Classic Schema Validation deprecated.** Use Schema Validation 2.0.
6
+
7
+ **Upload schema (Dashboard):**
8
+
9
+ ```
10
+ Security > API Shield > Schema Validation > Add validation
11
+ - Upload .yml/.yaml/.json (OpenAPI v3.0)
12
+ - Endpoints auto-added to Endpoint Management
13
+ - Action: Log | Block | None
14
+ - Body inspection: JSON payloads
15
+ ```
16
+
17
+ **Change validation action:**
18
+
19
+ ```
20
+ Security > API Shield > Settings > Schema Validation
21
+ Per-endpoint: Filter → ellipses → Change action
22
+ Default action: Set global mitigation action
23
+ ```
24
+
25
+ **Migration from Classic:**
26
+
27
+ ```
28
+ 1. Export existing schema (if available)
29
+ 2. Delete all Classic schema validation rules
30
+ 3. Wait 5 min for cache clear
31
+ 4. Re-upload via Schema Validation 2.0 interface
32
+ 5. Verify in Security > Events
33
+ ```
34
+
35
+ **Fallthrough rule** (catch-all unknown endpoints):
36
+
37
+ ```
38
+ Security > API Shield > Settings > Fallthrough > Use Template
39
+ - Select hostnames
40
+ - Create rule with cf.api_gateway.fallthrough_triggered
41
+ - Action: Log (discover) or Block (strict)
42
+ ```
43
+
44
+ **Body inspection:** Supports `application/json`, `*/*`, `application/*`. Disable origin MIME sniffing to prevent bypasses.
45
+
46
+ ## JWT Validation
47
+
48
+ **Setup token config:**
49
+
50
+ ```
51
+ Security > API Shield > Settings > JWT Settings > Add configuration
52
+ - Name: "Auth0 JWT Config"
53
+ - Location: Header/Cookie + name (e.g., "Authorization")
54
+ - JWKS: Paste public keys from IdP
55
+ ```
56
+
57
+ **Create validation rule:**
58
+
59
+ ```
60
+ Security > API Shield > API Rules > Add rule
61
+ - Hostname: api.example.com
62
+ - Deselect endpoints to ignore
63
+ - Token config: Select config
64
+ - Enforce presence: Ignore or Mark as non-compliant
65
+ - Action: Log/Block/Challenge
66
+ ```
67
+
68
+ **Rate limit by JWT claim:**
69
+
70
+ ```wirefilter
71
+ lookup_json_string(http.request.jwt.claims["{config_id}"][0], "sub")
72
+ ```
73
+
74
+ **Special cases:**
75
+
76
+ - Two JWTs, different IdPs: Create 2 configs, select both, "Validate all"
77
+ - IdP migration: 2 configs + 2 rules, adjust actions per state
78
+ - Bearer prefix: API Shield handles with/without
79
+ - Nested claims: Dot notation `user.email`
80
+
81
+ ## Mutual TLS (mTLS)
82
+
83
+ **Setup:**
84
+
85
+ ```
86
+ SSL/TLS > Client Certificates > Create Certificate
87
+ - Generate CF-managed CA (all plans)
88
+ - Upload custom CA (Enterprise, max 5)
89
+ ```
90
+
91
+ **Configure mTLS rule:**
92
+
93
+ ```
94
+ Security > API Shield > mTLS
95
+ - Select hostname(s)
96
+ - Choose certificate(s)
97
+ - Action: Block/Log/Challenge
98
+ ```
99
+
100
+ **Test:**
101
+
102
+ ```bash
103
+ openssl req -x509 -newkey rsa:4096 -keyout client-key.pem -out client-cert.pem -days 365
104
+ curl https://api.example.com/endpoint --cert client-cert.pem --key client-key.pem
105
+ ```
106
+
107
+ ## Session Identifiers
108
+
109
+ Critical for BOLA Detection, Sequence Mitigation, and analytics. Configure header/cookie that uniquely IDs API users.
110
+
111
+ **Examples:** JWT sub claim, session token, API key, custom user ID header
112
+
113
+ **Configure:**
114
+
115
+ ```
116
+ Security > API Shield > Settings > Session Identifiers
117
+ - Type: Header/Cookie
118
+ - Name: "X-User-ID" or "Authorization"
119
+ ```
120
+
121
+ ## BOLA Detection
122
+
123
+ Detects Broken Object Level Authorization attacks (enumeration + parameter pollution).
124
+
125
+ **Enable:**
126
+
127
+ ```
128
+ Security > API Shield > Schema Validation > [Select Schema] > BOLA Detection
129
+ - Enable detection
130
+ - Threshold: Sensitivity level (Low/Medium/High)
131
+ - Action: Log or Block
132
+ ```
133
+
134
+ **Requirements:**
135
+
136
+ - Schema Validation 2.0 enabled
137
+ - Session identifiers configured
138
+ - Minimum traffic: 1000+ requests/day per endpoint
139
+
140
+ ## Authentication Posture
141
+
142
+ Identifies unprotected or inconsistently protected endpoints.
143
+
144
+ **View report:**
145
+
146
+ ```
147
+ Security > API Shield > Authentication Posture
148
+ - Shows endpoints lacking JWT/mTLS
149
+ - Highlights mixed authentication patterns
150
+ ```
151
+
152
+ **Remediate:**
153
+
154
+ 1. Review flagged endpoints
155
+ 2. Add JWT validation rules
156
+ 3. Configure mTLS for sensitive endpoints
157
+ 4. Monitor posture score
158
+
159
+ ## Volumetric Abuse + GraphQL
160
+
161
+ **Volumetric Abuse Detection:**
162
+ `Security > API Shield > Settings > Volumetric Abuse Detection`
163
+
164
+ - Enable per-endpoint monitoring, set thresholds, action: Log | Challenge | Block
165
+
166
+ **GraphQL Protection:**
167
+ `Security > API Shield > Settings > GraphQL Protection`
168
+
169
+ - Max query depth: 10, max size: 100KB, block introspection (production)
170
+
171
+ ## Terraform
172
+
173
+ ```hcl
174
+ # Session identifier
175
+ resource "cloudflare_api_shield" "main" {
176
+ zone_id = var.zone_id
177
+ auth_id_characteristics {
178
+ type = "header"
179
+ name = "Authorization"
180
+ }
181
+ }
182
+
183
+ # Add endpoint
184
+ resource "cloudflare_api_shield_operation" "users_get" {
185
+ zone_id = var.zone_id
186
+ method = "GET"
187
+ host = "api.example.com"
188
+ endpoint = "/api/users/{id}"
189
+ }
190
+
191
+ # JWT validation rule
192
+ resource "cloudflare_ruleset" "jwt_validation" {
193
+ zone_id = var.zone_id
194
+ name = "API JWT Validation"
195
+ kind = "zone"
196
+ phase = "http_request_firewall_custom"
197
+
198
+ rules {
199
+ action = "block"
200
+ expression = "(http.host eq \"api.example.com\" and not is_jwt_valid(http.request.jwt.payload[\"{config_id}\"][0]))"
201
+ description = "Block invalid JWTs"
202
+ }
203
+ }
204
+ ```
205
+
206
+ ## See Also
207
+
208
+ - [api.md](api.md) - API endpoints and Workers integration
209
+ - [patterns.md](patterns.md) - Firewall rules and deployment patterns
210
+ - [gotchas.md](gotchas.md) - Troubleshooting and limits