zuplo 6.67.32 → 6.68.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 (644) hide show
  1. package/README.md +9 -0
  2. package/docs/_index.md +44 -0
  3. package/docs/ai-gateway/apps.mdx +28 -0
  4. package/docs/ai-gateway/custom-providers.mdx +54 -0
  5. package/docs/ai-gateway/getting-started.mdx +224 -0
  6. package/docs/ai-gateway/guardrails.mdx +65 -0
  7. package/docs/ai-gateway/integrations/ai-sdk.mdx +109 -0
  8. package/docs/ai-gateway/integrations/claude-code.mdx +49 -0
  9. package/docs/ai-gateway/integrations/codex.mdx +78 -0
  10. package/docs/ai-gateway/integrations/goose.mdx +104 -0
  11. package/docs/ai-gateway/integrations/langchain.mdx +66 -0
  12. package/docs/ai-gateway/integrations/openai.mdx +99 -0
  13. package/docs/ai-gateway/introduction.mdx +85 -0
  14. package/docs/ai-gateway/managing-apps.mdx +46 -0
  15. package/docs/ai-gateway/managing-providers.mdx +66 -0
  16. package/docs/ai-gateway/managing-teams.mdx +63 -0
  17. package/docs/ai-gateway/policies/akamai-ai-firewall.mdx +125 -0
  18. package/docs/ai-gateway/policies/comet-opik-tracing.mdx +139 -0
  19. package/docs/ai-gateway/policies/galileo-tracing.mdx +147 -0
  20. package/docs/ai-gateway/providers.mdx +32 -0
  21. package/docs/ai-gateway/teams.mdx +38 -0
  22. package/docs/ai-gateway/universal-api.mdx +43 -0
  23. package/docs/ai-gateway/usage-limits.mdx +89 -0
  24. package/docs/api-management/introduction.md +127 -0
  25. package/docs/articles/accounts/audit-logs.mdx +227 -0
  26. package/docs/articles/accounts/billing.mdx +25 -0
  27. package/docs/articles/accounts/default-api-key.mdx +30 -0
  28. package/docs/articles/accounts/delete-account.mdx +36 -0
  29. package/docs/articles/accounts/enterprise-sso.mdx +116 -0
  30. package/docs/articles/accounts/managing-account-members.mdx +45 -0
  31. package/docs/articles/accounts/managing-project-members.mdx +37 -0
  32. package/docs/articles/accounts/members-and-roles.mdx +21 -0
  33. package/docs/articles/accounts/roles-and-permissions.mdx +115 -0
  34. package/docs/articles/accounts/zuplo-api-keys.mdx +94 -0
  35. package/docs/articles/add-api-to-backstage.mdx +216 -0
  36. package/docs/articles/advanced-path-matching.mdx +139 -0
  37. package/docs/articles/api-key-administration.mdx +47 -0
  38. package/docs/articles/api-key-api.mdx +220 -0
  39. package/docs/articles/api-key-authentication.mdx +195 -0
  40. package/docs/articles/api-key-buckets.mdx +61 -0
  41. package/docs/articles/api-key-end-users.mdx +52 -0
  42. package/docs/articles/api-key-leak-detection.mdx +75 -0
  43. package/docs/articles/api-key-management.mdx +100 -0
  44. package/docs/articles/api-key-react-component.mdx +90 -0
  45. package/docs/articles/api-key-service-limits.mdx +14 -0
  46. package/docs/articles/archiving-requests-to-storage.mdx +119 -0
  47. package/docs/articles/branch-based-deployments.mdx +184 -0
  48. package/docs/articles/bypass-policy-for-testing.mdx +117 -0
  49. package/docs/articles/check-ip-address.mdx +17 -0
  50. package/docs/articles/ci-cd-azure/basic-deployment.mdx +49 -0
  51. package/docs/articles/ci-cd-azure/deploy-and-test.mdx +47 -0
  52. package/docs/articles/ci-cd-azure/local-testing.mdx +59 -0
  53. package/docs/articles/ci-cd-azure/multi-stage-deployment.mdx +88 -0
  54. package/docs/articles/ci-cd-azure/pr-preview-environments.mdx +50 -0
  55. package/docs/articles/ci-cd-azure/tag-based-releases.mdx +37 -0
  56. package/docs/articles/ci-cd-bitbucket/basic-deployment.mdx +27 -0
  57. package/docs/articles/ci-cd-bitbucket/deploy-and-test.mdx +41 -0
  58. package/docs/articles/ci-cd-bitbucket/local-testing.mdx +34 -0
  59. package/docs/articles/ci-cd-bitbucket/multi-stage-deployment.mdx +52 -0
  60. package/docs/articles/ci-cd-bitbucket/pr-preview-environments.mdx +46 -0
  61. package/docs/articles/ci-cd-bitbucket/tag-based-releases.mdx +27 -0
  62. package/docs/articles/ci-cd-circleci/basic-deployment.mdx +34 -0
  63. package/docs/articles/ci-cd-circleci/deploy-and-test.mdx +44 -0
  64. package/docs/articles/ci-cd-circleci/local-testing.mdx +50 -0
  65. package/docs/articles/ci-cd-circleci/multi-stage-deployment.mdx +82 -0
  66. package/docs/articles/ci-cd-circleci/pr-preview-environments.mdx +47 -0
  67. package/docs/articles/ci-cd-circleci/tag-based-releases.mdx +38 -0
  68. package/docs/articles/ci-cd-github/basic-deployment.mdx +48 -0
  69. package/docs/articles/ci-cd-github/cleanup-on-branch-delete.mdx +123 -0
  70. package/docs/articles/ci-cd-github/deploy-and-test.mdx +82 -0
  71. package/docs/articles/ci-cd-github/local-testing.mdx +102 -0
  72. package/docs/articles/ci-cd-github/multi-stage-deployment.mdx +136 -0
  73. package/docs/articles/ci-cd-github/pr-preview-environments.mdx +106 -0
  74. package/docs/articles/ci-cd-github/tag-based-releases.mdx +99 -0
  75. package/docs/articles/ci-cd-gitlab/basic-deployment.mdx +28 -0
  76. package/docs/articles/ci-cd-gitlab/deploy-and-test.mdx +44 -0
  77. package/docs/articles/ci-cd-gitlab/local-testing.mdx +39 -0
  78. package/docs/articles/ci-cd-gitlab/mr-preview-environments.mdx +52 -0
  79. package/docs/articles/ci-cd-gitlab/multi-stage-deployment.mdx +64 -0
  80. package/docs/articles/ci-cd-gitlab/tag-based-releases.mdx +28 -0
  81. package/docs/articles/composite-policy-reference.mdx +284 -0
  82. package/docs/articles/configuring-auth0-for-mcp-auth.mdx +186 -0
  83. package/docs/articles/configuring-okta-for-mcp-auth.mdx +208 -0
  84. package/docs/articles/convert-urls-to-openapi.mdx +62 -0
  85. package/docs/articles/cors.mdx +447 -0
  86. package/docs/articles/custom-audit-log-policy.mdx +95 -0
  87. package/docs/articles/custom-ci-cd-azure.mdx +81 -0
  88. package/docs/articles/custom-ci-cd-bitbucket.mdx +80 -0
  89. package/docs/articles/custom-ci-cd-circleci.mdx +78 -0
  90. package/docs/articles/custom-ci-cd-github.mdx +99 -0
  91. package/docs/articles/custom-ci-cd-gitlab.mdx +79 -0
  92. package/docs/articles/custom-ci-cd.mdx +82 -0
  93. package/docs/articles/custom-code-patterns.md +418 -0
  94. package/docs/articles/custom-domains.mdx +258 -0
  95. package/docs/articles/custom-logging-example.mdx +139 -0
  96. package/docs/articles/ddos-protection.mdx +138 -0
  97. package/docs/articles/development-options.mdx +49 -0
  98. package/docs/articles/environment-variables.mdx +134 -0
  99. package/docs/articles/environments.mdx +143 -0
  100. package/docs/articles/fastly-zuplo-host-setup.mdx +41 -0
  101. package/docs/articles/github-deployment-testing.mdx +101 -0
  102. package/docs/articles/gke-with-upstream-auth-policy.mdx +192 -0
  103. package/docs/articles/graphql-security.mdx +180 -0
  104. package/docs/articles/handling-form-data.mdx +61 -0
  105. package/docs/articles/health-checks.mdx +109 -0
  106. package/docs/articles/hosting-options.mdx +70 -0
  107. package/docs/articles/lazy-load-configuration-into-cache.mdx +92 -0
  108. package/docs/articles/limits.mdx +98 -0
  109. package/docs/articles/local-development-debugging.mdx +44 -0
  110. package/docs/articles/local-development-env-variables.mdx +23 -0
  111. package/docs/articles/local-development-installing-packages.mdx +23 -0
  112. package/docs/articles/local-development-routes-designer.mdx +27 -0
  113. package/docs/articles/local-development-services.mdx +40 -0
  114. package/docs/articles/local-development-troubleshooting.mdx +56 -0
  115. package/docs/articles/local-development.mdx +81 -0
  116. package/docs/articles/log-plugin-aws-cloudwatch.mdx +83 -0
  117. package/docs/articles/log-plugin-datadog.mdx +84 -0
  118. package/docs/articles/log-plugin-dynatrace.mdx +75 -0
  119. package/docs/articles/log-plugin-gcp.mdx +75 -0
  120. package/docs/articles/log-plugin-loki.mdx +136 -0
  121. package/docs/articles/log-plugin-new-relic.mdx +84 -0
  122. package/docs/articles/log-plugin-splunk.mdx +104 -0
  123. package/docs/articles/log-plugin-sumo.mdx +73 -0
  124. package/docs/articles/log-plugin-vmware-log-insight.mdx +154 -0
  125. package/docs/articles/log-request-response-data.mdx +398 -0
  126. package/docs/articles/logging.mdx +115 -0
  127. package/docs/articles/manual-mcp-oauth-testing.mdx +193 -0
  128. package/docs/articles/mcp-quickstart.mdx +135 -0
  129. package/docs/articles/metrics-plugins.mdx +371 -0
  130. package/docs/articles/migrate-from-apigee.md +408 -0
  131. package/docs/articles/migrate-from-aws-api-gateway.md +248 -0
  132. package/docs/articles/migrate-from-azure-apim.md +292 -0
  133. package/docs/articles/migrate-from-kong.md +300 -0
  134. package/docs/articles/migration-overview.md +81 -0
  135. package/docs/articles/monetization/api-access.mdx +69 -0
  136. package/docs/articles/monetization/billing-models.md +520 -0
  137. package/docs/articles/monetization/developer-portal.md +167 -0
  138. package/docs/articles/monetization/features.mdx +98 -0
  139. package/docs/articles/monetization/index.mdx +113 -0
  140. package/docs/articles/monetization/meters.mdx +135 -0
  141. package/docs/articles/monetization/monetization-policy.md +314 -0
  142. package/docs/articles/monetization/plan-examples.mdx +366 -0
  143. package/docs/articles/monetization/plans.mdx +266 -0
  144. package/docs/articles/monetization/pricing-models.mdx +225 -0
  145. package/docs/articles/monetization/private-plans.md +154 -0
  146. package/docs/articles/monetization/quickstart.md +355 -0
  147. package/docs/articles/monetization/rate-cards.mdx +171 -0
  148. package/docs/articles/monetization/stripe-integration.md +195 -0
  149. package/docs/articles/monetization/subscription-lifecycle.md +298 -0
  150. package/docs/articles/monetization/tax-collection.md +166 -0
  151. package/docs/articles/monetization/troubleshooting.md +272 -0
  152. package/docs/articles/monetization-custom.mdx +71 -0
  153. package/docs/articles/monetization-integrations.mdx +104 -0
  154. package/docs/articles/monitoring-your-gateway.mdx +53 -0
  155. package/docs/articles/monorepo-deployment.mdx +350 -0
  156. package/docs/articles/multiple-auth-policies.mdx +81 -0
  157. package/docs/articles/non-standard-ports.mdx +30 -0
  158. package/docs/articles/oauth-authentication.mdx +54 -0
  159. package/docs/articles/openapi-server-urls.mdx +60 -0
  160. package/docs/articles/openapi.mdx +130 -0
  161. package/docs/articles/opentelemetry.mdx +250 -0
  162. package/docs/articles/per-user-rate-limits-using-db.mdx +112 -0
  163. package/docs/articles/performance-testing.mdx +304 -0
  164. package/docs/articles/plugin-akamai-api-security.mdx +76 -0
  165. package/docs/articles/plugin-azure-blob.mdx +73 -0
  166. package/docs/articles/plugin-azure-event-hubs.mdx +64 -0
  167. package/docs/articles/plugin-hydrolix-traffic-peak.mdx +147 -0
  168. package/docs/articles/policies.mdx +33 -0
  169. package/docs/articles/rename-or-move-project.mdx +39 -0
  170. package/docs/articles/rick-and-morty-api-developer-portal-example.mdx +23 -0
  171. package/docs/articles/routing.mdx +193 -0
  172. package/docs/articles/s3-signed-url-uploads.mdx +521 -0
  173. package/docs/articles/secure-tunnel.mdx +84 -0
  174. package/docs/articles/securing-backend-mtls.mdx +268 -0
  175. package/docs/articles/securing-your-backend.mdx +148 -0
  176. package/docs/articles/security.mdx +105 -0
  177. package/docs/articles/sharing-code-across-projects.mdx +412 -0
  178. package/docs/articles/source-control-setup-azure.mdx +13 -0
  179. package/docs/articles/source-control-setup-bitbucket.mdx +43 -0
  180. package/docs/articles/source-control-setup-github.mdx +172 -0
  181. package/docs/articles/source-control-setup-gitlab.mdx +12 -0
  182. package/docs/articles/source-control.mdx +80 -0
  183. package/docs/articles/step-1-setup-basic-gateway-local.mdx +136 -0
  184. package/docs/articles/step-1-setup-basic-gateway.mdx +118 -0
  185. package/docs/articles/step-2-add-rate-limiting-local.mdx +126 -0
  186. package/docs/articles/step-2-add-rate-limiting.mdx +82 -0
  187. package/docs/articles/step-3-add-api-key-auth-local.mdx +199 -0
  188. package/docs/articles/step-3-add-api-key-auth.mdx +166 -0
  189. package/docs/articles/step-4-deploying-to-the-edge.mdx +220 -0
  190. package/docs/articles/step-5-dynamic-rate-limiting.mdx +167 -0
  191. package/docs/articles/support.mdx +144 -0
  192. package/docs/articles/terraform.mdx +114 -0
  193. package/docs/articles/testing-graphql.mdx +34 -0
  194. package/docs/articles/testing.mdx +522 -0
  195. package/docs/articles/troubleshooting-slow-responses.mdx +301 -0
  196. package/docs/articles/troubleshooting.md +302 -0
  197. package/docs/articles/tsconfig.mdx +105 -0
  198. package/docs/articles/tunnel-setup.mdx +195 -0
  199. package/docs/articles/tunnel-troubleshooting.mdx +50 -0
  200. package/docs/articles/update-zup-in-github-action.mdx +110 -0
  201. package/docs/articles/use-openapi-extension-data.mdx +79 -0
  202. package/docs/articles/users/multifactor-authentication.mdx +64 -0
  203. package/docs/articles/users/profile.mdx +13 -0
  204. package/docs/articles/versioning-on-zuplo.mdx +89 -0
  205. package/docs/articles/waf-ddos-akamai.md +133 -0
  206. package/docs/articles/waf-ddos-aws-waf-shield.mdx +85 -0
  207. package/docs/articles/waf-ddos-fastly.mdx +251 -0
  208. package/docs/articles/waf-ddos.mdx +140 -0
  209. package/docs/articles/zuplo-waf.mdx +156 -0
  210. package/docs/ask.mdx +3 -0
  211. package/docs/cli/authentication.mdx +56 -0
  212. package/docs/cli/connectivity.mdx +38 -0
  213. package/docs/cli/create-zuplo-api.mdx +80 -0
  214. package/docs/cli/delete.mdx +79 -0
  215. package/docs/cli/deploy.mdx +156 -0
  216. package/docs/cli/deploy.partial.mdx +46 -0
  217. package/docs/cli/dev.mdx +115 -0
  218. package/docs/cli/docs.mdx +66 -0
  219. package/docs/cli/editor.mdx +50 -0
  220. package/docs/cli/global-options.mdx +19 -0
  221. package/docs/cli/init.mdx +74 -0
  222. package/docs/cli/link.mdx +74 -0
  223. package/docs/cli/list.mdx +55 -0
  224. package/docs/cli/mtls-certificate-create.mdx +94 -0
  225. package/docs/cli/mtls-certificate-delete.mdx +55 -0
  226. package/docs/cli/mtls-certificate-describe.mdx +55 -0
  227. package/docs/cli/mtls-certificate-disable.mdx +55 -0
  228. package/docs/cli/mtls-certificate-list.mdx +47 -0
  229. package/docs/cli/mtls-certificate-update.mdx +72 -0
  230. package/docs/cli/openapi-convert.mdx +111 -0
  231. package/docs/cli/openapi-merge.mdx +138 -0
  232. package/docs/cli/openapi-merge.partial.mdx +29 -0
  233. package/docs/cli/openapi-overlay.mdx +123 -0
  234. package/docs/cli/overview.mdx +78 -0
  235. package/docs/cli/project-create.mdx +43 -0
  236. package/docs/cli/source-migrate.mdx +18 -0
  237. package/docs/cli/source-upgrade.mdx +41 -0
  238. package/docs/cli/test.mdx +70 -0
  239. package/docs/cli/test.partial.mdx +7 -0
  240. package/docs/cli/tunnel-create.mdx +53 -0
  241. package/docs/cli/tunnel-create.partial.mdx +9 -0
  242. package/docs/cli/tunnel-delete.mdx +35 -0
  243. package/docs/cli/tunnel-delete.partial.mdx +9 -0
  244. package/docs/cli/tunnel-describe.mdx +45 -0
  245. package/docs/cli/tunnel-describe.partial.mdx +5 -0
  246. package/docs/cli/tunnel-list.mdx +35 -0
  247. package/docs/cli/tunnel-list.partial.mdx +9 -0
  248. package/docs/cli/tunnel-rate-token.partial.mdx +9 -0
  249. package/docs/cli/tunnel-rotate-token.mdx +39 -0
  250. package/docs/cli/tunnel-services-describe.mdx +45 -0
  251. package/docs/cli/tunnel-services-describe.partial.mdx +9 -0
  252. package/docs/cli/tunnel-services-update.mdx +48 -0
  253. package/docs/cli/variable-create.mdx +91 -0
  254. package/docs/cli/variable-create.partial.mdx +5 -0
  255. package/docs/cli/variable-update.mdx +75 -0
  256. package/docs/cli/variable-update.partial.mdx +5 -0
  257. package/docs/concepts/api-keys.md +146 -0
  258. package/docs/concepts/authentication.mdx +109 -0
  259. package/docs/concepts/how-zuplo-works.mdx +120 -0
  260. package/docs/concepts/project-structure.mdx +174 -0
  261. package/docs/concepts/rate-limiting.md +246 -0
  262. package/docs/concepts/request-lifecycle.mdx +56 -0
  263. package/docs/concepts/source-control-and-deployment.mdx +229 -0
  264. package/docs/conferences/conference-prize-terms.mdx +80 -0
  265. package/docs/dedicated/akamai/ai-powered-applications.mdx +223 -0
  266. package/docs/dedicated/akamai/architecture.mdx +280 -0
  267. package/docs/dedicated/akamai/caching.mdx +212 -0
  268. package/docs/dedicated/akamai/cdn.mdx +156 -0
  269. package/docs/dedicated/architecture.mdx +208 -0
  270. package/docs/dedicated/custom-domains.mdx +31 -0
  271. package/docs/dedicated/federated-gateways.mdx +80 -0
  272. package/docs/dedicated/networking.mdx +69 -0
  273. package/docs/dedicated/overview.mdx +80 -0
  274. package/docs/dedicated/source-control.mdx +63 -0
  275. package/docs/dev-portal/dev-portal-create-consumer-on-auth.mdx +134 -0
  276. package/docs/dev-portal/introduction.mdx +65 -0
  277. package/docs/dev-portal/local-development.mdx +72 -0
  278. package/docs/dev-portal/migration.mdx +526 -0
  279. package/docs/dev-portal/node-modules.mdx +45 -0
  280. package/docs/dev-portal/updating.mdx +28 -0
  281. package/docs/dev-portal/zudoku/components/alert.mdx +130 -0
  282. package/docs/dev-portal/zudoku/components/badge.mdx +70 -0
  283. package/docs/dev-portal/zudoku/components/button.mdx +132 -0
  284. package/docs/dev-portal/zudoku/components/callout.mdx +112 -0
  285. package/docs/dev-portal/zudoku/components/card.mdx +104 -0
  286. package/docs/dev-portal/zudoku/components/checkbox.mdx +72 -0
  287. package/docs/dev-portal/zudoku/components/client-only.mdx +79 -0
  288. package/docs/dev-portal/zudoku/components/code-tabs.mdx +179 -0
  289. package/docs/dev-portal/zudoku/components/dialog.mdx +167 -0
  290. package/docs/dev-portal/zudoku/components/head.mdx +199 -0
  291. package/docs/dev-portal/zudoku/components/icons.mdx +27 -0
  292. package/docs/dev-portal/zudoku/components/input.mdx +96 -0
  293. package/docs/dev-portal/zudoku/components/label.mdx +86 -0
  294. package/docs/dev-portal/zudoku/components/link.mdx +242 -0
  295. package/docs/dev-portal/zudoku/components/markdown.mdx +151 -0
  296. package/docs/dev-portal/zudoku/components/mermaid.mdx +81 -0
  297. package/docs/dev-portal/zudoku/components/playground.mdx +87 -0
  298. package/docs/dev-portal/zudoku/components/secret.mdx +78 -0
  299. package/docs/dev-portal/zudoku/components/select.mdx +176 -0
  300. package/docs/dev-portal/zudoku/components/shadcn.mdx +73 -0
  301. package/docs/dev-portal/zudoku/components/slider.mdx +108 -0
  302. package/docs/dev-portal/zudoku/components/slot.mdx +119 -0
  303. package/docs/dev-portal/zudoku/components/stepper.mdx +138 -0
  304. package/docs/dev-portal/zudoku/components/switch.mdx +96 -0
  305. package/docs/dev-portal/zudoku/components/syntax-highlight.mdx +602 -0
  306. package/docs/dev-portal/zudoku/components/textarea.mdx +78 -0
  307. package/docs/dev-portal/zudoku/components/tooltip.mdx +195 -0
  308. package/docs/dev-portal/zudoku/components/typography.mdx +61 -0
  309. package/docs/dev-portal/zudoku/configuration/ai-assistants.md +64 -0
  310. package/docs/dev-portal/zudoku/configuration/api-catalog.md +108 -0
  311. package/docs/dev-portal/zudoku/configuration/api-reference.md +397 -0
  312. package/docs/dev-portal/zudoku/configuration/authentication-auth0.md +173 -0
  313. package/docs/dev-portal/zudoku/configuration/authentication-azure-ad.md +238 -0
  314. package/docs/dev-portal/zudoku/configuration/authentication-clerk.md +110 -0
  315. package/docs/dev-portal/zudoku/configuration/authentication-firebase.md +61 -0
  316. package/docs/dev-portal/zudoku/configuration/authentication-pingfederate.md +136 -0
  317. package/docs/dev-portal/zudoku/configuration/authentication-supabase.md +225 -0
  318. package/docs/dev-portal/zudoku/configuration/authentication.md +199 -0
  319. package/docs/dev-portal/zudoku/configuration/build-configuration.mdx +147 -0
  320. package/docs/dev-portal/zudoku/configuration/docs.md +282 -0
  321. package/docs/dev-portal/zudoku/configuration/footer.mdx +214 -0
  322. package/docs/dev-portal/zudoku/configuration/llms.md +89 -0
  323. package/docs/dev-portal/zudoku/configuration/navigation.mdx +408 -0
  324. package/docs/dev-portal/zudoku/configuration/overview.md +380 -0
  325. package/docs/dev-portal/zudoku/configuration/protected-routes.md +149 -0
  326. package/docs/dev-portal/zudoku/configuration/search.md +169 -0
  327. package/docs/dev-portal/zudoku/configuration/sentry.mdx +44 -0
  328. package/docs/dev-portal/zudoku/configuration/site.md +124 -0
  329. package/docs/dev-portal/zudoku/configuration/slots.mdx +124 -0
  330. package/docs/dev-portal/zudoku/configuration/vite-config.md +18 -0
  331. package/docs/dev-portal/zudoku/custom-plugins.md +287 -0
  332. package/docs/dev-portal/zudoku/customization/colors-theme.mdx +275 -0
  333. package/docs/dev-portal/zudoku/customization/fonts.md +110 -0
  334. package/docs/dev-portal/zudoku/extending/events.md +124 -0
  335. package/docs/dev-portal/zudoku/guides/custom-pages.md +106 -0
  336. package/docs/dev-portal/zudoku/guides/environment-variables.md +99 -0
  337. package/docs/dev-portal/zudoku/guides/mermaid.mdx +70 -0
  338. package/docs/dev-portal/zudoku/guides/navigation-migration.md +87 -0
  339. package/docs/dev-portal/zudoku/guides/navigation-rules.mdx +197 -0
  340. package/docs/dev-portal/zudoku/guides/processors.mdx +234 -0
  341. package/docs/dev-portal/zudoku/guides/static-files.md +55 -0
  342. package/docs/dev-portal/zudoku/guides/transforming-examples.md +156 -0
  343. package/docs/dev-portal/zudoku/guides/using-multiple-apis.md +87 -0
  344. package/docs/dev-portal/zudoku/markdown/admonitions.md +128 -0
  345. package/docs/dev-portal/zudoku/markdown/code-blocks.md +196 -0
  346. package/docs/dev-portal/zudoku/markdown/frontmatter.md +172 -0
  347. package/docs/dev-portal/zudoku/markdown/mdx.md +68 -0
  348. package/docs/dev-portal/zudoku/markdown/overview.md +275 -0
  349. package/docs/dev-portal/zudoku/plugins.md +5 -0
  350. package/docs/dev-portal/zudoku/writing.mdx +72 -0
  351. package/docs/errors/bad-request.mdx +39 -0
  352. package/docs/errors/build-error.mdx +45 -0
  353. package/docs/errors/fatal-project-error.mdx +39 -0
  354. package/docs/errors/gateway-timeout.mdx +33 -0
  355. package/docs/errors/get-head-body-error.mdx +41 -0
  356. package/docs/errors/main-mod-error.mdx +40 -0
  357. package/docs/errors/no-project-set.mdx +41 -0
  358. package/docs/errors/not-found.mdx +43 -0
  359. package/docs/errors/rate-limit-exceeded.mdx +31 -0
  360. package/docs/errors/schema-validation-failed.mdx +51 -0
  361. package/docs/errors/system-configuration-error.mdx +44 -0
  362. package/docs/errors/unauthorized.mdx +50 -0
  363. package/docs/errors/unknown-error.mdx +42 -0
  364. package/docs/errors.mdx +14 -0
  365. package/docs/guides/canary-routing-for-employees.mdx +385 -0
  366. package/docs/guides/geolocation-backend-routing.mdx +404 -0
  367. package/docs/guides/modify-openapi-paths.mdx +371 -0
  368. package/docs/guides/openapi-overlays.mdx +492 -0
  369. package/docs/guides/overview.mdx +12 -0
  370. package/docs/guides/user-based-backend-routing.mdx +437 -0
  371. package/docs/handlers/aws-lambda.mdx +201 -0
  372. package/docs/handlers/custom-handler.mdx +112 -0
  373. package/docs/handlers/legacy-dev-portal-handler.mdx +135 -0
  374. package/docs/handlers/mcp-server.mdx +730 -0
  375. package/docs/handlers/openapi.mdx +78 -0
  376. package/docs/handlers/redirect.mdx +115 -0
  377. package/docs/handlers/system-handlers.mdx +41 -0
  378. package/docs/handlers/url-forward.mdx +204 -0
  379. package/docs/handlers/url-rewrite.mdx +224 -0
  380. package/docs/handlers/websocket-handler.mdx +154 -0
  381. package/docs/home.mdx +6 -0
  382. package/docs/managed-edge/overview.md +78 -0
  383. package/docs/mcp-server/configuration-migration-guide.mdx +344 -0
  384. package/docs/mcp-server/custom-tools.mdx +487 -0
  385. package/docs/mcp-server/graphql.mdx +241 -0
  386. package/docs/mcp-server/introduction.mdx +122 -0
  387. package/docs/mcp-server/openai-apps-sdk.mdx +160 -0
  388. package/docs/mcp-server/prompts.mdx +283 -0
  389. package/docs/mcp-server/resources.mdx +288 -0
  390. package/docs/mcp-server/testing.mdx +53 -0
  391. package/docs/mcp-server/tools.mdx +306 -0
  392. package/docs/policies/_index.md +92 -0
  393. package/docs/policies/ab-test-inbound/intro.md +8 -0
  394. package/docs/policies/ab-test-inbound/policy.ts +14 -0
  395. package/docs/policies/ab-test-inbound/schema.json +27 -0
  396. package/docs/policies/ab-test-outbound/intro.md +8 -0
  397. package/docs/policies/ab-test-outbound/policy.ts +26 -0
  398. package/docs/policies/ab-test-outbound/schema.json +27 -0
  399. package/docs/policies/acl-policy-inbound/intro.md +5 -0
  400. package/docs/policies/acl-policy-inbound/policy.ts +32 -0
  401. package/docs/policies/acl-policy-inbound/schema.json +52 -0
  402. package/docs/policies/akamai-ai-firewall/schema.json +98 -0
  403. package/docs/policies/amberflo-metering-inbound/doc.md +183 -0
  404. package/docs/policies/amberflo-metering-inbound/intro.md +20 -0
  405. package/docs/policies/amberflo-metering-inbound/schema.json +108 -0
  406. package/docs/policies/api-key-inbound/doc.md +77 -0
  407. package/docs/policies/api-key-inbound/intro.md +30 -0
  408. package/docs/policies/api-key-inbound/schema.json +84 -0
  409. package/docs/policies/archive-request-aws-s3-inbound/intro.md +4 -0
  410. package/docs/policies/archive-request-aws-s3-inbound/policy.ts +58 -0
  411. package/docs/policies/archive-request-aws-s3-inbound/schema.json +68 -0
  412. package/docs/policies/archive-request-azure-storage-inbound/doc.md +31 -0
  413. package/docs/policies/archive-request-azure-storage-inbound/intro.md +4 -0
  414. package/docs/policies/archive-request-azure-storage-inbound/policy.ts +54 -0
  415. package/docs/policies/archive-request-azure-storage-inbound/schema.json +53 -0
  416. package/docs/policies/archive-request-gcp-storage-inbound/doc.md +63 -0
  417. package/docs/policies/archive-request-gcp-storage-inbound/intro.md +4 -0
  418. package/docs/policies/archive-request-gcp-storage-inbound/policy.ts +68 -0
  419. package/docs/policies/archive-request-gcp-storage-inbound/schema.json +47 -0
  420. package/docs/policies/archive-response-aws-s3-outbound/intro.md +2 -0
  421. package/docs/policies/archive-response-aws-s3-outbound/policy.ts +59 -0
  422. package/docs/policies/archive-response-aws-s3-outbound/schema.json +68 -0
  423. package/docs/policies/archive-response-azure-storage-outbound/doc.md +31 -0
  424. package/docs/policies/archive-response-azure-storage-outbound/intro.md +3 -0
  425. package/docs/policies/archive-response-azure-storage-outbound/policy.ts +54 -0
  426. package/docs/policies/archive-response-azure-storage-outbound/schema.json +53 -0
  427. package/docs/policies/audit-log-inbound/doc.md +78 -0
  428. package/docs/policies/audit-log-inbound/intro.md +10 -0
  429. package/docs/policies/audit-log-inbound/schema.json +81 -0
  430. package/docs/policies/auth0-jwt-auth-inbound/doc.md +125 -0
  431. package/docs/policies/auth0-jwt-auth-inbound/intro.md +17 -0
  432. package/docs/policies/auth0-jwt-auth-inbound/schema.json +74 -0
  433. package/docs/policies/authzen-inbound/doc.md +24 -0
  434. package/docs/policies/authzen-inbound/intro.md +31 -0
  435. package/docs/policies/authzen-inbound/schema.json +126 -0
  436. package/docs/policies/axiomatics-authz-inbound/doc.md +144 -0
  437. package/docs/policies/axiomatics-authz-inbound/intro.md +11 -0
  438. package/docs/policies/axiomatics-authz-inbound/schema.json +161 -0
  439. package/docs/policies/basic-auth-inbound/intro.md +9 -0
  440. package/docs/policies/basic-auth-inbound/schema.json +99 -0
  441. package/docs/policies/bot-detection-inbound/intro.md +4 -0
  442. package/docs/policies/bot-detection-inbound/schema.json +56 -0
  443. package/docs/policies/brownout-inbound/doc.md +55 -0
  444. package/docs/policies/brownout-inbound/intro.md +12 -0
  445. package/docs/policies/brownout-inbound/schema.json +115 -0
  446. package/docs/policies/caching-inbound/doc.md +209 -0
  447. package/docs/policies/caching-inbound/intro.md +23 -0
  448. package/docs/policies/caching-inbound/schema.json +98 -0
  449. package/docs/policies/change-method-inbound/schema.json +56 -0
  450. package/docs/policies/clear-headers-inbound/schema.json +59 -0
  451. package/docs/policies/clear-headers-outbound/schema.json +59 -0
  452. package/docs/policies/clerk-jwt-auth-inbound/doc.md +85 -0
  453. package/docs/policies/clerk-jwt-auth-inbound/intro.md +4 -0
  454. package/docs/policies/clerk-jwt-auth-inbound/schema.json +68 -0
  455. package/docs/policies/cognito-jwt-auth-inbound/intro.md +7 -0
  456. package/docs/policies/cognito-jwt-auth-inbound/schema.json +74 -0
  457. package/docs/policies/comet-opik-tracing-inbound/schema.json +65 -0
  458. package/docs/policies/complex-rate-limit-inbound/doc.md +20 -0
  459. package/docs/policies/complex-rate-limit-inbound/intro.md +23 -0
  460. package/docs/policies/complex-rate-limit-inbound/schema.json +142 -0
  461. package/docs/policies/composite-inbound/doc.md +69 -0
  462. package/docs/policies/composite-inbound/intro.md +15 -0
  463. package/docs/policies/composite-inbound/schema.json +59 -0
  464. package/docs/policies/composite-outbound/intro.md +6 -0
  465. package/docs/policies/composite-outbound/schema.json +59 -0
  466. package/docs/policies/curity-phantom-token-inbound/doc.md +109 -0
  467. package/docs/policies/curity-phantom-token-inbound/intro.md +3 -0
  468. package/docs/policies/curity-phantom-token-inbound/schema.json +68 -0
  469. package/docs/policies/custom-code-inbound/doc.md +267 -0
  470. package/docs/policies/custom-code-inbound/intro.md +2 -0
  471. package/docs/policies/custom-code-inbound/schema.json +48 -0
  472. package/docs/policies/custom-code-outbound/doc.md +235 -0
  473. package/docs/policies/custom-code-outbound/intro.md +2 -0
  474. package/docs/policies/custom-code-outbound/schema.json +43 -0
  475. package/docs/policies/firebase-jwt-inbound/intro.md +6 -0
  476. package/docs/policies/firebase-jwt-inbound/schema.json +68 -0
  477. package/docs/policies/formdata-to-json-inbound/schema.json +60 -0
  478. package/docs/policies/galileo-tracing-inbound/schema.json +65 -0
  479. package/docs/policies/geo-filter-inbound/doc.md +33 -0
  480. package/docs/policies/geo-filter-inbound/schema.json +108 -0
  481. package/docs/policies/graphql-complexity-limit-inbound/doc.md +48 -0
  482. package/docs/policies/graphql-complexity-limit-inbound/intro.md +2 -0
  483. package/docs/policies/graphql-complexity-limit-inbound/schema.json +90 -0
  484. package/docs/policies/graphql-disable-introspection-inbound/doc.md +66 -0
  485. package/docs/policies/graphql-disable-introspection-inbound/intro.md +15 -0
  486. package/docs/policies/graphql-disable-introspection-inbound/schema.json +48 -0
  487. package/docs/policies/graphql-introspection-filter-outbound/doc.md +148 -0
  488. package/docs/policies/graphql-introspection-filter-outbound/schema.json +79 -0
  489. package/docs/policies/hmac-auth-inbound/doc.md +30 -0
  490. package/docs/policies/hmac-auth-inbound/intro.md +10 -0
  491. package/docs/policies/hmac-auth-inbound/policy.ts +70 -0
  492. package/docs/policies/hmac-auth-inbound/schema.json +53 -0
  493. package/docs/policies/http-deprecation-outbound/doc.md +73 -0
  494. package/docs/policies/http-deprecation-outbound/schema.json +83 -0
  495. package/docs/policies/ip-restriction-inbound/intro.md +8 -0
  496. package/docs/policies/ip-restriction-inbound/policy.ts +40 -0
  497. package/docs/policies/ip-restriction-inbound/schema.json +58 -0
  498. package/docs/policies/jwt-scopes-inbound/schema.json +59 -0
  499. package/docs/policies/ldap-auth-inbound/schema.json +56 -0
  500. package/docs/policies/mock-api-inbound/schema.json +72 -0
  501. package/docs/policies/moesif-inbound/doc.md +44 -0
  502. package/docs/policies/moesif-inbound/intro.md +6 -0
  503. package/docs/policies/moesif-inbound/schema.json +68 -0
  504. package/docs/policies/monetization-inbound/doc.md +87 -0
  505. package/docs/policies/monetization-inbound/intro.md +6 -0
  506. package/docs/policies/monetization-inbound/schema.json +102 -0
  507. package/docs/policies/mtls-auth-inbound/intro.md +6 -0
  508. package/docs/policies/mtls-auth-inbound/schema.json +68 -0
  509. package/docs/policies/okta-fga-authz-inbound/doc.md +181 -0
  510. package/docs/policies/okta-fga-authz-inbound/intro.md +20 -0
  511. package/docs/policies/okta-fga-authz-inbound/schema.json +104 -0
  512. package/docs/policies/okta-jwt-auth-inbound/intro.md +7 -0
  513. package/docs/policies/okta-jwt-auth-inbound/schema.json +74 -0
  514. package/docs/policies/open-id-jwt-auth-inbound/doc.md +58 -0
  515. package/docs/policies/open-id-jwt-auth-inbound/intro.md +30 -0
  516. package/docs/policies/open-id-jwt-auth-inbound/schema.json +128 -0
  517. package/docs/policies/openfga-authz-inbound/doc.md +207 -0
  518. package/docs/policies/openfga-authz-inbound/intro.md +17 -0
  519. package/docs/policies/openfga-authz-inbound/schema.json +191 -0
  520. package/docs/policies/openmeter-inbound/doc.md +163 -0
  521. package/docs/policies/openmeter-inbound/intro.md +18 -0
  522. package/docs/policies/openmeter-inbound/schema.json +183 -0
  523. package/docs/policies/prompt-injection-outbound/doc.md +106 -0
  524. package/docs/policies/prompt-injection-outbound/intro.md +4 -0
  525. package/docs/policies/prompt-injection-outbound/schema.json +74 -0
  526. package/docs/policies/propel-auth-jwt-inbound/doc.md +88 -0
  527. package/docs/policies/propel-auth-jwt-inbound/intro.md +4 -0
  528. package/docs/policies/propel-auth-jwt-inbound/schema.json +74 -0
  529. package/docs/policies/query-param-to-header-inbound/doc.md +70 -0
  530. package/docs/policies/query-param-to-header-inbound/intro.md +5 -0
  531. package/docs/policies/query-param-to-header-inbound/schema.json +74 -0
  532. package/docs/policies/quota-inbound/doc.md +235 -0
  533. package/docs/policies/quota-inbound/intro.md +7 -0
  534. package/docs/policies/quota-inbound/schema.json +133 -0
  535. package/docs/policies/rate-limit-inbound/doc.md +78 -0
  536. package/docs/policies/rate-limit-inbound/intro.md +30 -0
  537. package/docs/policies/rate-limit-inbound/schema.json +134 -0
  538. package/docs/policies/rbac-policy-inbound/intro.md +3 -0
  539. package/docs/policies/rbac-policy-inbound/policy.ts +42 -0
  540. package/docs/policies/rbac-policy-inbound/schema.json +52 -0
  541. package/docs/policies/readme-metrics-inbound/doc.md +1 -0
  542. package/docs/policies/readme-metrics-inbound/intro.md +3 -0
  543. package/docs/policies/readme-metrics-inbound/schema.json +84 -0
  544. package/docs/policies/remove-headers-inbound/schema.json +59 -0
  545. package/docs/policies/remove-headers-outbound/schema.json +59 -0
  546. package/docs/policies/remove-query-params-inbound/schema.json +59 -0
  547. package/docs/policies/replace-string-outbound/schema.json +69 -0
  548. package/docs/policies/request-size-limit-inbound/schema.json +60 -0
  549. package/docs/policies/request-validation-inbound/doc.md +72 -0
  550. package/docs/policies/request-validation-inbound/intro.md +24 -0
  551. package/docs/policies/request-validation-inbound/schema.json +98 -0
  552. package/docs/policies/require-origin-inbound/intro.md +12 -0
  553. package/docs/policies/require-origin-inbound/schema.json +65 -0
  554. package/docs/policies/secret-masking-outbound/doc.md +41 -0
  555. package/docs/policies/secret-masking-outbound/intro.md +13 -0
  556. package/docs/policies/secret-masking-outbound/schema.json +65 -0
  557. package/docs/policies/semantic-cache-inbound/doc.md +63 -0
  558. package/docs/policies/semantic-cache-inbound/intro.md +4 -0
  559. package/docs/policies/semantic-cache-inbound/schema.json +179 -0
  560. package/docs/policies/set-body-inbound/intro.md +7 -0
  561. package/docs/policies/set-body-inbound/schema.json +56 -0
  562. package/docs/policies/set-headers-inbound/doc.md +41 -0
  563. package/docs/policies/set-headers-inbound/intro.md +2 -0
  564. package/docs/policies/set-headers-inbound/schema.json +83 -0
  565. package/docs/policies/set-headers-outbound/schema.json +83 -0
  566. package/docs/policies/set-query-params-inbound/schema.json +83 -0
  567. package/docs/policies/set-status-outbound/schema.json +62 -0
  568. package/docs/policies/sleep-inbound/schema.json +56 -0
  569. package/docs/policies/stripe-webhook-verification-inbound/intro.md +2 -0
  570. package/docs/policies/stripe-webhook-verification-inbound/schema.json +60 -0
  571. package/docs/policies/supabase-jwt-auth-inbound/doc.md +29 -0
  572. package/docs/policies/supabase-jwt-auth-inbound/intro.md +12 -0
  573. package/docs/policies/supabase-jwt-auth-inbound/schema.json +86 -0
  574. package/docs/policies/transform-body-inbound/intro.md +8 -0
  575. package/docs/policies/transform-body-inbound/policy.ts +16 -0
  576. package/docs/policies/transform-body-inbound/schema.json +27 -0
  577. package/docs/policies/transform-body-outbound/intro.md +8 -0
  578. package/docs/policies/transform-body-outbound/policy.ts +19 -0
  579. package/docs/policies/transform-body-outbound/schema.json +27 -0
  580. package/docs/policies/upstream-azure-ad-service-auth-inbound/doc.md +82 -0
  581. package/docs/policies/upstream-azure-ad-service-auth-inbound/intro.md +20 -0
  582. package/docs/policies/upstream-azure-ad-service-auth-inbound/schema.json +84 -0
  583. package/docs/policies/upstream-firebase-admin-auth-inbound/intro.md +10 -0
  584. package/docs/policies/upstream-firebase-admin-auth-inbound/schema.json +68 -0
  585. package/docs/policies/upstream-firebase-user-auth-inbound/intro.md +2 -0
  586. package/docs/policies/upstream-firebase-user-auth-inbound/schema.json +113 -0
  587. package/docs/policies/upstream-gcp-federated-auth-inbound/doc.md +139 -0
  588. package/docs/policies/upstream-gcp-federated-auth-inbound/intro.md +21 -0
  589. package/docs/policies/upstream-gcp-federated-auth-inbound/schema.json +96 -0
  590. package/docs/policies/upstream-gcp-jwt-inbound/intro.md +10 -0
  591. package/docs/policies/upstream-gcp-jwt-inbound/schema.json +62 -0
  592. package/docs/policies/upstream-gcp-service-auth-inbound/doc.md +132 -0
  593. package/docs/policies/upstream-gcp-service-auth-inbound/intro.md +25 -0
  594. package/docs/policies/upstream-gcp-service-auth-inbound/schema.json +95 -0
  595. package/docs/policies/upstream-zuplo-jwt-auth-inbound/doc.md +213 -0
  596. package/docs/policies/upstream-zuplo-jwt-auth-inbound/intro.md +16 -0
  597. package/docs/policies/upstream-zuplo-jwt-auth-inbound/schema.json +101 -0
  598. package/docs/policies/validate-json-schema-inbound/doc.md +129 -0
  599. package/docs/policies/validate-json-schema-inbound/intro.md +7 -0
  600. package/docs/policies/validate-json-schema-inbound/schema.json +56 -0
  601. package/docs/policies/web-bot-auth-inbound/doc.md +104 -0
  602. package/docs/policies/web-bot-auth-inbound/intro.md +16 -0
  603. package/docs/policies/web-bot-auth-inbound/schema.json +76 -0
  604. package/docs/policies/xml-to-json-outbound/doc.md +71 -0
  605. package/docs/policies/xml-to-json-outbound/intro.md +4 -0
  606. package/docs/policies/xml-to-json-outbound/schema.json +117 -0
  607. package/docs/programmable-api/audit-log.mdx +74 -0
  608. package/docs/programmable-api/background-dispatcher.mdx +124 -0
  609. package/docs/programmable-api/background-loader.mdx +104 -0
  610. package/docs/programmable-api/cache.mdx +186 -0
  611. package/docs/programmable-api/compatibility-dates.mdx +201 -0
  612. package/docs/programmable-api/console-logging.mdx +48 -0
  613. package/docs/programmable-api/context-data.mdx +127 -0
  614. package/docs/programmable-api/custom-cors-policy.mdx +64 -0
  615. package/docs/programmable-api/environment.mdx +328 -0
  616. package/docs/programmable-api/hooks.mdx +569 -0
  617. package/docs/programmable-api/http-problems.mdx +385 -0
  618. package/docs/programmable-api/jwt-service-plugin.mdx +420 -0
  619. package/docs/programmable-api/logger.mdx +223 -0
  620. package/docs/programmable-api/memory-zone-read-through-cache.mdx +96 -0
  621. package/docs/programmable-api/node-modules.mdx +67 -0
  622. package/docs/programmable-api/not-found-handler.mdx +47 -0
  623. package/docs/programmable-api/oauth-protected-resource-plugin.mdx +46 -0
  624. package/docs/programmable-api/overview.mdx +213 -0
  625. package/docs/programmable-api/problem-response-formatter.mdx +183 -0
  626. package/docs/programmable-api/request-user.mdx +289 -0
  627. package/docs/programmable-api/reusing-code.mdx +26 -0
  628. package/docs/programmable-api/route-raw.mdx +55 -0
  629. package/docs/programmable-api/runtime-behaviors.mdx +25 -0
  630. package/docs/programmable-api/runtime-errors.mdx +246 -0
  631. package/docs/programmable-api/runtime-extensions.mdx +340 -0
  632. package/docs/programmable-api/safely-clone-a-request-or-response.mdx +57 -0
  633. package/docs/programmable-api/streaming-zone-cache.mdx +155 -0
  634. package/docs/programmable-api/web-crypto-apis.mdx +219 -0
  635. package/docs/programmable-api/web-standard-apis.mdx +109 -0
  636. package/docs/programmable-api/zone-cache.mdx +131 -0
  637. package/docs/programmable-api/zp-body-removed.mdx +32 -0
  638. package/docs/programmable-api/zuplo-context.mdx +414 -0
  639. package/docs/programmable-api/zuplo-id-token.mdx +90 -0
  640. package/docs/programmable-api/zuplo-json.mdx +91 -0
  641. package/docs/programmable-api/zuplo-request.mdx +200 -0
  642. package/docs/sample-apis.mdx +78 -0
  643. package/docs/self-hosted/overview.md +60 -0
  644. package/package.json +6 -5
@@ -0,0 +1,96 @@
1
+ ---
2
+ title: MemoryZoneReadThroughCache
3
+ sidebar_label: MemoryZoneReadThroughCache
4
+ ---
5
+
6
+ The `MemoryZoneReadThroughCache` class provides an in-memory caching solution
7
+ with automatic read-through capabilities. This cache stores data in memory for
8
+ fast access and automatically handles cache misses.
9
+
10
+ ## Constructor
11
+
12
+ ```ts
13
+ new MemoryZoneReadThroughCache<T = unknown>(name: string, context: ZuploContext)
14
+ ```
15
+
16
+ Creates a new instance of the memory cache with read-through capabilities.
17
+
18
+ - `name` - A unique identifier for the cache instance
19
+ - `context` - The [ZuploContext](./zuplo-context.mdx) object
20
+ - `T` - The type of data stored in the cache (defaults to `unknown`)
21
+
22
+ ## Methods
23
+
24
+ **`get`**
25
+
26
+ Retrieves a value from the cache by its key. Returns `undefined` if not found.
27
+
28
+ ```ts
29
+ get(key: string): Promise<T | undefined>
30
+ ```
31
+
32
+ **`put`**
33
+
34
+ Stores a value in the cache with a time-to-live (TTL) in seconds.
35
+
36
+ ```ts
37
+ put(key: string, data: T, ttlSeconds: number): void
38
+ ```
39
+
40
+ **`delete`**
41
+
42
+ Removes a value from the cache.
43
+
44
+ ```ts
45
+ delete(key: string): Promise<void>
46
+ ```
47
+
48
+ ## Example
49
+
50
+ ```ts
51
+ import {
52
+ MemoryZoneReadThroughCache,
53
+ ZuploContext,
54
+ ZuploRequest,
55
+ } from "@zuplo/runtime";
56
+
57
+ export default async function handler(
58
+ request: ZuploRequest,
59
+ context: ZuploContext,
60
+ ) {
61
+ // Create a cache instance for user data
62
+ const userCache = new MemoryZoneReadThroughCache<{
63
+ name: string;
64
+ email: string;
65
+ }>("user-cache", context);
66
+
67
+ // Try to get user from cache
68
+ const userId = "user-123";
69
+ let user = await userCache.get(userId);
70
+
71
+ if (!user) {
72
+ // User not in cache, fetch from database
73
+ user = await fetchUserFromDatabase(userId);
74
+
75
+ // Cache the user data for 5 minutes (300 seconds)
76
+ userCache.put(userId, user, 300);
77
+ }
78
+
79
+ return new Response(JSON.stringify(user));
80
+ }
81
+ ```
82
+
83
+ ## Best Practices
84
+
85
+ - Use descriptive cache names to avoid collisions between different cache
86
+ instances
87
+ - Set appropriate TTL values based on your data freshness requirements
88
+ - Consider memory usage when caching large objects
89
+ - The cache is scoped to the current worker instance and not shared across
90
+ instances
91
+
92
+ ## See Also
93
+
94
+ - [ZoneCache](./zone-cache.mdx) - For distributed caching across zones
95
+ - [StreamingZoneCache](./streaming-zone-cache.mdx) - For caching streaming data
96
+ - [BackgroundLoader](./background-loader.mdx) - For automatic cache population
@@ -0,0 +1,67 @@
1
+ ---
2
+ title: Node Modules
3
+ sidebar_label: Node Modules
4
+ ---
5
+
6
+ Zuplo itself doesn't run Node.js, but instead runs a custom JavaScript engine
7
+ that's designed to be fast and secure. However, the Zuplo engine is compatible
8
+ with certain node modules that don't use native code or certain Node.js specific
9
+ features like the file system.
10
+
11
+ ## Custom Modules
12
+
13
+ If you would like to use a node module, you can bundle modules inside of your
14
+ own project. This process is straightforward using standard tools like
15
+ [ESBuild](https://esbuild.github.io/) or [TSDown](https://tsdown.dev) to bundle
16
+ your code along with any dependencies into a single file that's included in your
17
+ Zuplo project.
18
+
19
+ You can find a complete example of how to bundle your own node modules in the
20
+ [Bundling Custom Node Modules example](https://github.com/zuplo/zuplo/tree/main/examples/custom-module).
21
+
22
+ The process is typically as quick as running the following commands:
23
+
24
+ ```bash
25
+ npm install your-package-name
26
+ npx tsdown ./node_modules/your-package-name --format esm --platform browser --out-dir ./modules/third-party/your-package-name
27
+ ```
28
+
29
+ The module can then be imported and used in your Zuplo project like so:
30
+
31
+ ```ts
32
+ import { YourPackage } from "./modules/third-party/your-package-name.mjs";
33
+ ```
34
+
35
+ Be sure to test your bundled code thoroughly to ensure it works as expected in
36
+ the Zuplo environment.
37
+
38
+ ## Bundled Node Modules
39
+
40
+ :::danger{title="Deprecated"}
41
+
42
+ Using the bundled node modules is no longer recommended. As these modules are
43
+ used by multiple customers, they may not be the version you need or may not work
44
+ as you expect. Instead, we recommend bundling your own node modules inside of
45
+ your project. See the section on [custom modules](#custom-modules)
46
+
47
+ :::
48
+
49
+ Below are the currently installed modules.
50
+
51
+ :::caution{title="Test Carefully"}
52
+
53
+ It's important to test your use of any node module carefully. Zuplo doesn't run
54
+ Node.js, it runs a custom JavaScript engine that's designed to be fast and
55
+ secure. This means that these modules may not work as you expect or certain
56
+ functionality in these modules may not work at all. Even when we say a module is
57
+ "Working", that doesn't guarantee it will work in your specific use case. Test
58
+ your code thoroughly before deploying it to production.
59
+
60
+ :::
61
+
62
+ When developing in the Zuplo portal using the bundled modules, you will see a
63
+ red underline on the module types. We do not provide type definitions for these
64
+ modules. You can ignore these editor errors as this won't impact the build
65
+ (assuming the modules are used correctly).
66
+
67
+ <BundlesTable />
@@ -0,0 +1,47 @@
1
+ ---
2
+ title: Custom Not Found Handler
3
+ ---
4
+
5
+ By default, Zuplo will return a 404 (using
6
+ [problem details](./http-problems.mdx)) if no matching `path/method` combination
7
+ is found. You can override this behavior by adding code to the
8
+ `zuplo.runtime.ts` file (see [runtime extensions](./runtime-extensions.mdx)).
9
+
10
+ For example - a custom not found handler can be used to return a
11
+ `405 - Method Not Allowed` if a matching path is found, but no matching METHOD,
12
+ here is an example function that would implement this behavior:
13
+
14
+ ```ts
15
+ import { HttpProblems, RuntimeExtensions } from "@zuplo/runtime";
16
+
17
+ export function runtimeInit(runtime: RuntimeExtensions) {
18
+ //add a custom not found handler
19
+ runtime.notFoundHandler = async (request, context, notFoundOptions) => {
20
+ if (notFoundOptions.routesMatchedByPathOnly.length > 0) {
21
+ // It's required to have an 'Allow' header with a 405 response
22
+ // Generate a string of allowed methods
23
+ const allowedMethods = notFoundOptions.routesMatchedByPathOnly
24
+ .map((route) => route.methods)
25
+ .reduce((acc, val) => acc.concat(val), [])
26
+ .join(", ");
27
+
28
+ return HttpProblems.methodNotAllowed(
29
+ request,
30
+ context,
31
+ {},
32
+ { allow: allowedMethods },
33
+ );
34
+ }
35
+
36
+ return HttpProblems.notFound(request, context);
37
+ };
38
+ }
39
+ ```
40
+
41
+ :::warning
42
+
43
+ An error in your `zuplo.runtime.ts` can break your gateway for all requests. Be
44
+ sure to carefully review any custom code in this file and add generous error
45
+ handling where appropriate.
46
+
47
+ :::
@@ -0,0 +1,46 @@
1
+ ---
2
+ title: OAuth Protected Resource Plugin
3
+ ---
4
+
5
+ The `OAuthProtectedResourcePlugin` allows you to configure your Zuplo gateway to
6
+ support OAuth protected resources through the
7
+ `.well-known/oauth-protected-resource` endpoint. See
8
+ [RFC9728](https://datatracker.ietf.org/doc/rfc9728/) for more details.
9
+
10
+ This is particularly useful when building an MCP Server on Zuplo. See the
11
+ [MCP Server Handler docs](../handlers/mcp-server.mdx#oauth-authentication) for
12
+ more details.
13
+
14
+ ## Usage
15
+
16
+ This runtime plugin will register the `.well-known/oauth-protected-resource`
17
+ route on your behalf. If you configure an
18
+ [OAuth Policy](../articles/oauth-authentication.mdx) on a route with the
19
+ `oAuthResourceMetadataEnabled` option set to `true`, then the OAuth policy will
20
+ automatically add the necessary `WWW-Authenticate` header to 401 responses, with
21
+ the `resource_metadata` parameter set to the URL of the
22
+ `.well-known/oauth-protected-resource` endpoint.
23
+
24
+ ```ts
25
+ import {
26
+ RuntimeExtensions,
27
+ OAuthProtectedResourcePlugin,
28
+ } from "@zuplo/runtime";
29
+
30
+ export function runtimeInit(runtime: RuntimeExtensions) {
31
+ runtime.addPlugin(
32
+ new OAuthProtectedResourcePlugin({
33
+ authorizationServers: ["https://your-auth0-domain.us.auth0.com"],
34
+ resourceName: "My MCP OAuth Resource",
35
+ }),
36
+ );
37
+ }
38
+ ```
39
+
40
+ As per the MCP OAuth specification, you _must_ use the canonical URL of your
41
+ authorization server as the `authorizationServers` value. The `resourceName` is
42
+ a human readable name for the resource.
43
+
44
+ Note that the `.well-known/oauth-protected-resource` endpoint explicitly has a
45
+ CORS policy of `anything-goes` since this is a public endpoint that should be
46
+ accessible to anyone to check the server's OAuth configuration.
@@ -0,0 +1,213 @@
1
+ ---
2
+ title: Programmable API
3
+ sidebar_label: Overview
4
+ description:
5
+ "This section provides a comprehensive index of all public APIs available in
6
+ the Zuplo runtime. The APIs are organized by category for easy reference."
7
+ ---
8
+
9
+ This section provides a comprehensive index of all public APIs available in the
10
+ Zuplo runtime. The APIs are organized by category for easy reference.
11
+
12
+ ## Core Request/Response APIs
13
+
14
+ ### ZuploRequest
15
+
16
+ - **Status**: Documented ([ZuploRequest](./zuplo-request.mdx))
17
+ - **Description**: Extended Request class with additional properties for
18
+ parameters, query, and user data
19
+ - **Key Features**: Type-safe parameters and query access, user authentication
20
+ data
21
+
22
+ ### ZuploContext
23
+
24
+ - **Status**: Documented ([ZuploContext](./zuplo-context.mdx))
25
+ - **Description**: Context object available in all handlers and policies
26
+ - **Key Features**: Request ID, logging, route information, event hooks
27
+
28
+ ### HttpProblems
29
+
30
+ - **Status**: Documented ([HttpProblems](./http-problems.mdx))
31
+ - **Description**: Utility class for generating RFC 7807 compliant problem
32
+ responses
33
+ - **Methods**: Static methods for all HTTP status codes (for example,
34
+ `badRequest`, `unauthorized`, `notFound`)
35
+
36
+ ### HttpStatusCode
37
+
38
+ - **Status**: Documented ([HttpProblems](./http-problems.mdx))
39
+ - **Description**: All standard HTTP status codes
40
+
41
+ ### ProblemResponseFormatter
42
+
43
+ - **Status**: Documented
44
+ ([ProblemResponseFormatter](./problem-response-formatter.mdx))
45
+ - **Description**: Utility class for formatting RFC 7807 compliant problem
46
+ responses
47
+ - **Methods**: `format` - Formats problem details into standard responses
48
+
49
+ ## Handlers
50
+
51
+ See the [Handlers documentation](../handlers/url-forward.mdx) for information
52
+ about built-in request handlers.
53
+
54
+ ### Available Handlers
55
+
56
+ - `awsLambdaHandler` - [AWS Lambda Handler](/docs/handlers/aws-lambda)
57
+ - `mcpServerHandler` - [MCP Server Handler](/docs/handlers/mcp-server)
58
+ - `openApiSpecHandler` - [OpenAPI Spec Handler](/docs/handlers/openapi)
59
+ - `redirectHandler` - [Redirect Handler](/docs/handlers/redirect)
60
+ - `urlForwardHandler` - [URL Forward Handler](/docs/handlers/url-forward)
61
+ - `urlRewriteHandler` - [URL Rewrite Handler](/docs/handlers/url-rewrite)
62
+ - `webSocketHandler` - [WebSocket Handler](/docs/handlers/websocket-handler)
63
+ - Custom handlers - [Function Handler](/docs/handlers/custom-handler)
64
+
65
+ ## Caching APIs
66
+
67
+ ### ZoneCache
68
+
69
+ - **Status**: Documented ([Zone Cache](./zone-cache.mdx))
70
+ - **Description**: Key-value cache with zone-level storage
71
+ - **Key Methods**: `get`, `put`, `delete`
72
+
73
+ ### MemoryZoneReadThroughCache
74
+
75
+ - **Status**: Documented
76
+ ([Memory Zone Read Through Cache](./memory-zone-read-through-cache.mdx))
77
+ - **Description**: In-memory cache with automatic loading
78
+ - **Key Methods**: `get`, `put`
79
+
80
+ ### StreamingZoneCache
81
+
82
+ - **Status**: Documented ([Streaming Zone Cache](./streaming-zone-cache.mdx))
83
+ - **Description**: Cache for streaming responses
84
+ - **Key Methods**: `get`, `put`, `delete`
85
+
86
+ ## Data Management
87
+
88
+ ### ContextData
89
+
90
+ - **Status**: Documented ([Context Data](./context-data.mdx))
91
+ - **Description**: Type-safe context data storage
92
+ - **Key Methods**: `get`, `set`
93
+
94
+ ### BackgroundLoader
95
+
96
+ - **Status**: Documented ([Background Loader](./background-loader.mdx))
97
+ - **Description**: Background data loading with caching
98
+ - **Key Methods**: `get`
99
+
100
+ ### BackgroundDispatcher
101
+
102
+ - **Status**: Documented ([Background Dispatcher](./background-dispatcher.mdx))
103
+ - **Description**: Batch processing for background tasks
104
+ - **Key Methods**: `enqueue`
105
+
106
+ ## Runtime Extensions
107
+
108
+ ### RuntimeExtensions
109
+
110
+ - **Status**: Documented ([Runtime Extensions](./runtime-extensions.mdx))
111
+ - **Description**: API for extending runtime behavior
112
+ - **Key Features**: Plugin support, request/response hooks, custom error
113
+ handling
114
+
115
+ ### RuntimeError
116
+
117
+ - **Status**: Documented ([Runtime Errors](./runtime-errors.mdx))
118
+ - **Description**: Base error class for runtime errors
119
+
120
+ ### ConfigurationError
121
+
122
+ - **Status**: Documented ([Runtime Errors](./runtime-errors.mdx))
123
+ - **Description**: Error class for configuration issues
124
+
125
+ ## Plugins
126
+
127
+ ### AuditLogPlugin
128
+
129
+ - **Status**: Documented ([Audit Log](./audit-log.mdx))
130
+ - **Description**: Comprehensive request/response logging
131
+ - **Key Features**: Configurable request/response capture, custom output
132
+ providers
133
+
134
+ ### Logging Plugins
135
+
136
+ See [Logging documentation](/docs/articles/logging.mdx) for details on logging
137
+ plugins:
138
+
139
+ - `AWSLoggingPlugin` - AWS CloudWatch logging
140
+ - `DataDogLoggingPlugin` - Datadog logging
141
+ - `DynaTraceLoggingPlugin` - Dynatrace logging
142
+ - `GoogleCloudLoggingPlugin` - Google Cloud logging
143
+ - `LokiLoggingPlugin` - Grafana Loki logging
144
+ - `NewRelicLoggingPlugin` - New Relic logging
145
+ - `SplunkLoggingPlugin` - Splunk logging
146
+ - `SumoLogicLoggingPlugin` - Sumo Logic logging
147
+ - `VMWareLogInsightLoggingPlugin` - VMware Log Insight logging
148
+
149
+ ### Metrics Plugins
150
+
151
+ See [Metrics documentation](/docs/articles/metrics-plugins.mdx) for details on
152
+ metrics plugins:
153
+
154
+ - `DataDogMetricsPlugin` - Datadog metrics
155
+ - `DynatraceMetricsPlugin` - Dynatrace metrics
156
+ - `NewRelicMetricsPlugin` - New Relic metrics
157
+
158
+ ### Storage Plugins
159
+
160
+ - `AzureBlobPlugin` - Azure Blob Storage integration
161
+ - `AzureEventHubsRequestLoggerPlugin` - Azure Event Hubs logging
162
+ - `HydrolixRequestLoggerPlugin` - Hydrolix data platform integration
163
+
164
+ ### Special Plugins
165
+
166
+ - `AkamaiApiSecurityPlugin` - Akamai API security integration
167
+ - `StripeMonetizationPlugin` - Stripe billing integration
168
+
169
+ ## Utility APIs
170
+
171
+ ### environment
172
+
173
+ - **Status**: Documented ([Environment Variables](./environment.mdx))
174
+ - **Description**: Access to environment variables
175
+
176
+ ### ZuploServices
177
+
178
+ - **Status**: Documented ([Zuplo ID Token](./zuplo-id-token.mdx))
179
+ - **Description**: Zuplo platform services
180
+
181
+ ## Types and Interfaces
182
+
183
+ ### RequestUser
184
+
185
+ - **Status**: Documented ([Request User](./request-user.mdx))
186
+ - **Description**: User data structure for authenticated requests
187
+
188
+ ### Logger
189
+
190
+ - **Status**: Documented ([Logger](./logger.mdx))
191
+ - **Description**: Structured logging interface
192
+
193
+ ### ContextData
194
+
195
+ - **Status**: Documented ([Context Data](./context-data.mdx))
196
+ - **Description**: Type-safe context data storage
197
+
198
+ ### CorsPolicyConfiguration
199
+
200
+ - **Status**: Documented ([Custom CORS Policy](./custom-cors-policy.mdx))
201
+ - **Description**: CORS policy configuration
202
+
203
+ ## Hooks and Events
204
+
205
+ ### ZuploContextHooks
206
+
207
+ - **Status**: Documented ([Hooks](./hooks.mdx))
208
+ - **Description**: Request/response lifecycle hooks
209
+
210
+ ---
211
+
212
+ This index provides an overview of the runtime APIs available in Zuplo. For
213
+ detailed information about each API, follow the documentation links provided.
@@ -0,0 +1,183 @@
1
+ ---
2
+ title: ProblemResponseFormatter
3
+ sidebar_label: ProblemResponseFormatter
4
+ ---
5
+
6
+ The `ProblemResponseFormatter` class provides a way to customize the format of
7
+ problem responses in your API. This allows you to maintain consistent error
8
+ response formats across your API while adhering to the
9
+ [RFC 7807 Problem Details](https://httpproblems.com/) specification.
10
+
11
+ ## Overview
12
+
13
+ The `ProblemResponseFormatter` class works in conjunction with the
14
+ `HttpProblems` helper to format error responses. It can be used to customize how
15
+ problem details are serialized and presented to API consumers.
16
+
17
+ ## Static Methods
18
+
19
+ ### format
20
+
21
+ Formats a problem response with the provided details.
22
+
23
+ ```typescript
24
+ static format(
25
+ problemDetails: ProblemResponseDetails,
26
+ request: ZuploRequest,
27
+ context: ZuploContext
28
+ ): Promise<Response>
29
+ ```
30
+
31
+ #### Parameters
32
+
33
+ - **problemDetails**: `ProblemResponseDetails` - The problem details to format
34
+ - **request**: `ZuploRequest` - The current request object
35
+ - **context**: `ZuploContext` - The current context object
36
+
37
+ #### Returns
38
+
39
+ A `Promise<Response>` containing the formatted problem response.
40
+
41
+ ## Usage
42
+
43
+ ### Basic Usage
44
+
45
+ ```typescript
46
+ import {
47
+ ProblemResponseFormatter,
48
+ ZuploRequest,
49
+ ZuploContext,
50
+ } from "@zuplo/runtime";
51
+
52
+ export default async function handler(
53
+ request: ZuploRequest,
54
+ context: ZuploContext,
55
+ ) {
56
+ try {
57
+ // Your handler logic
58
+ } catch (error) {
59
+ const problemDetails = {
60
+ type: "https://example.com/errors/validation-failed",
61
+ title: "Validation Failed",
62
+ status: 400,
63
+ detail: "The request body contains invalid fields",
64
+ instance: request.url,
65
+ };
66
+
67
+ return ProblemResponseFormatter.format(problemDetails, request, context);
68
+ }
69
+ }
70
+ ```
71
+
72
+ ### Custom Error Handler
73
+
74
+ ```typescript
75
+ import {
76
+ ProblemResponseFormatter,
77
+ RuntimeExtensions,
78
+ ProblemResponseDetails,
79
+ } from "@zuplo/runtime";
80
+
81
+ export function runtimeInit(runtime: RuntimeExtensions) {
82
+ runtime.addErrorHandler(async (error, request, context) => {
83
+ // Map errors to problem details
84
+ const problemDetails: ProblemResponseDetails = {
85
+ type: "https://api.example.com/errors/internal",
86
+ title: "Internal Server Error",
87
+ status: 500,
88
+ detail: error.message,
89
+ instance: request.url,
90
+ // Add custom extensions
91
+ extensions: {
92
+ errorId: crypto.randomUUID(),
93
+ timestamp: new Date().toISOString(),
94
+ },
95
+ };
96
+
97
+ return ProblemResponseFormatter.format(problemDetails, request, context);
98
+ });
99
+ }
100
+ ```
101
+
102
+ ## Problem Response Details Interface
103
+
104
+ The `ProblemResponseDetails` interface defines the structure of problem details:
105
+
106
+ ```typescript
107
+ interface ProblemResponseDetails {
108
+ type?: string; // URI reference for the problem type
109
+ title: string; // Short, human-readable summary
110
+ status: number; // HTTP status code
111
+ detail?: string; // Human-readable explanation
112
+ instance?: string; // URI reference for the specific occurrence
113
+ extensions?: Record<string, any>; // Additional problem-specific details
114
+ }
115
+ ```
116
+
117
+ ## Integration with HttpProblems
118
+
119
+ The `ProblemResponseFormatter` is used internally by the `HttpProblems` helper
120
+ class. When you use `HttpProblems` methods, they utilize
121
+ `ProblemResponseFormatter` to ensure consistent formatting:
122
+
123
+ ```typescript
124
+ // This internally uses ProblemResponseFormatter
125
+ return HttpProblems.badRequest(request, context, {
126
+ detail: "Invalid request parameters",
127
+ });
128
+ ```
129
+
130
+ ## Custom Formatting Example
131
+
132
+ You can extend problem responses with custom fields:
133
+
134
+ ```typescript
135
+ import { ProblemResponseFormatter } from "@zuplo/runtime";
136
+
137
+ export async function customErrorHandler(
138
+ error: Error,
139
+ request: ZuploRequest,
140
+ context: ZuploContext,
141
+ ) {
142
+ const problemDetails = {
143
+ type: "https://api.example.com/errors/business-rule",
144
+ title: "Business Rule Violation",
145
+ status: 422,
146
+ detail: error.message,
147
+ instance: request.url,
148
+ // Custom extensions
149
+ extensions: {
150
+ code: "BRV_001",
151
+ timestamp: new Date().toISOString(),
152
+ requestId: context.requestId,
153
+ supportUrl: "https://support.example.com",
154
+ },
155
+ };
156
+
157
+ return ProblemResponseFormatter.format(problemDetails, request, context);
158
+ }
159
+ ```
160
+
161
+ ## Response Format
162
+
163
+ The formatter produces responses in the standard Problem Details format:
164
+
165
+ ```json
166
+ {
167
+ "type": "https://api.example.com/errors/validation-failed",
168
+ "title": "Validation Failed",
169
+ "status": 400,
170
+ "detail": "The 'email' field is invalid",
171
+ "instance": "/api/users",
172
+ "code": "VAL_001",
173
+ "timestamp": "2024-01-15T10:30:00Z",
174
+ "requestId": "req_123abc"
175
+ }
176
+ ```
177
+
178
+ ## See Also
179
+
180
+ - [HttpProblems](./http-problems.mdx)
181
+ - [Runtime Extensions](./runtime-extensions.mdx)
182
+ - [Runtime Errors](./runtime-errors.mdx) - Error handling with RuntimeError and
183
+ ConfigurationError