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,80 @@
1
+ ---
2
+ title: "Managed Dedicated: Federated Gateways"
3
+ sidebar_label: Federated Gateways
4
+ ---
5
+
6
+ :::note{title="Beta Feature"}
7
+
8
+ This feature is in Beta - please use with care and provide feedback to the team
9
+ if you encounter any issues.
10
+
11
+ :::
12
+
13
+ <EnterpriseFeature name="Federated Gateways" />
14
+
15
+ With a managed dedicated Zuplo instance you can create a federated gateway that
16
+ allows you to connect multiple Zuplo projects together. This is useful for
17
+ creating a single API Gateway that can route requests to multiple backend
18
+ services, each running on its own Zuplo instance.
19
+
20
+ ## Reasons to Use Federated Gateways
21
+
22
+ Federated gateways are useful for several reasons:
23
+
24
+ - **Separation of Product Areas**: Depending on your organizational structure,
25
+ you may want to separate different product areas into their own Zuplo
26
+ projects. This allows teams to work independently while still being able to
27
+ route requests through a single gateway. Each team can manage their own
28
+ portion of the API without affecting others. Each team creates its own Zuplo
29
+ Project with its own git repository, environment variables, etc.
30
+ - **Versioning**: You can use federated gateways to manage different versions of
31
+ your API. For example, if you wanted to run a new version of your API
32
+ alongside the old one and route requests to specific versions based on user or
33
+ other context you can keep different versions in separate Zuplo projects.
34
+ - **Risk Minimization**: By separating different parts of your API into
35
+ different Zuplo projects, you can reduce the risk of causing inadvertent
36
+ changes to other parts of the API. This can be especially useful if your API
37
+ is particularly large or complex.
38
+
39
+ ## How to Create a Federated Gateway
40
+
41
+ Managed dedicated Zuplo environments can call other Zuplo environments deployed
42
+ in the same instance. To make a call to another Zuplo environment, you simply
43
+ make a normal HTTP request to the other environment using the URL protocol
44
+ `local` with the environment name. For example, if your environment is named
45
+ `my-api-main-2s93j2`, then you would make a request to
46
+ `local://my-api-main-2s93j2`.
47
+
48
+ You can use most Zuplo request handlers to make these requests (the Lambda
49
+ handler isn't supported).
50
+
51
+ For example, to create a federated gateway that forwards requests to another
52
+ Zuplo environment, you can use the URL Forward handler. Here is an example
53
+ configuration for a route that forwards requests to another Zuplo environment:
54
+
55
+ ```json
56
+ {
57
+ "handler": {
58
+ "export": "urlForwardHandler",
59
+ "module": "$import(@zuplo/runtime)",
60
+ "options": {
61
+ "baseUrl": "local://my-api-main-2s93j2"
62
+ }
63
+ }
64
+ }
65
+ ```
66
+
67
+ :::caution
68
+
69
+ Currently, federated gateways are still exposed externally, so you should ensure
70
+ that you have proper authentication and authorization in place to prevent
71
+ unauthorized access to your federated gateway.
72
+
73
+ This can be done using the standard Zuplo authentication and authorization
74
+ mechanisms, such as API keys, JWTs, or OAuth2.
75
+
76
+ Soon you will be able to restrict access to federated gateways, which will make
77
+ it easier to secure your federated gateway without needing to implement
78
+ additional authentication mechanisms.
79
+
80
+ :::
@@ -0,0 +1,69 @@
1
+ ---
2
+ title: "Managed Dedicated: Networking"
3
+ sidebar_label: Networking
4
+ ---
5
+
6
+ Your dedicated managed instance of Zuplo will be deployed to the cloud provider
7
+ of your choice. Network connectivity can be customized to meet your specific
8
+ requirements.
9
+
10
+ Common configurations include:
11
+
12
+ - Using Zuplo as the public ingress to your API and using network connectivity
13
+ such as AWS Transit Gateway, PrivateLink, or VPC Peering to connect to your
14
+ backend services.
15
+ - Restricting access to the public internet by configuring your API Gateway to
16
+ only accept traffic from specific IP ranges or VPCs allowing you to put WAFs,
17
+ IDS/IPS, or other security appliances in front of your API Gateway.
18
+ - Multiple dedicated managed instances of Zuplo can be deployed across multiple
19
+ regions to provide high availability and disaster recovery.
20
+
21
+ To discuss your networking requirements, please contact your account manager.
22
+
23
+ ## Zuplo Ingress to Customer VPC
24
+
25
+ The default setup for dedicated managed Zuplo is to use your Zuplo API Gateway
26
+ as the public ingress to your API. This is the simplest setup and allows Zuplo
27
+ to manage things like SSL certificates on your behalf.
28
+
29
+ In this setup your VPC isn't exposed to the public internet at all. Instead,
30
+ your Zuplo API Gateway will use a network connection such as AWS Transit
31
+ Gateway, PrivateLink, or VPC Peering to connect to your backend services.
32
+
33
+ <Diagram height="h-48">
34
+ <DiagramNode id="client">Client</DiagramNode>
35
+ <DiagramGroup id="dedicated-vpc" label="Dedicated VPC">
36
+ <DiagramNode id="gateway" variant="zuplo">
37
+ Zuplo API Gateway
38
+ </DiagramNode>
39
+ </DiagramGroup>
40
+ <DiagramGroup id="customer-vpc" label="Customer VPC">
41
+ <DiagramNode id="backend">Backend</DiagramNode>
42
+ </DiagramGroup>
43
+ <DiagramEdge from="client" to="gateway" />
44
+ <DiagramEdge from="gateway" to="backend" />
45
+ </Diagram>
46
+
47
+ ## Customer VPC Ingress to Zuplo API Gateway
48
+
49
+ If you have custom networking requirements, such as using a static IP address
50
+ you already own, or if you want to run services such as WAFs, IDS/IPS, or other
51
+ security products in front of your API Gateway, Zuplo can be configured to
52
+ accept traffic from your VPC then route it to your backend. Your backend could
53
+ be in the same VPC as your ingress or in another VPC.
54
+
55
+ <Diagram height="h-64">
56
+ <DiagramNode id="client">Client</DiagramNode>
57
+ <DiagramGroup id="customer-vpc" label="Customer VPC">
58
+ <DiagramNode id="waf">WAF</DiagramNode>
59
+ <DiagramNode id="backend">Backend</DiagramNode>
60
+ </DiagramGroup>
61
+ <DiagramGroup id="dedicated-vpc" label="Dedicated VPC">
62
+ <DiagramNode id="gateway" variant="zuplo">
63
+ Zuplo API Gateway
64
+ </DiagramNode>
65
+ </DiagramGroup>
66
+ <DiagramEdge from="client" to="waf" />
67
+ <DiagramEdge from="waf" to="gateway" />
68
+ <DiagramEdge from="gateway" to="backend" fromSide="left" toSide="right" />
69
+ </Diagram>
@@ -0,0 +1,80 @@
1
+ ---
2
+ title: Zuplo Managed Dedicated
3
+ sidebar_label: Overview
4
+ ---
5
+
6
+ Zuplo Managed Dedicated is a deployment model where Zuplo runs one or more
7
+ instances of the Zuplo platform on the hosting provider of your choice. This
8
+ deployment model is ideal for organizations that require custom networking
9
+ configurations or have strict security or compliance requirements.
10
+
11
+ Managed Dedicated hosting might be the right choice for you if you need:
12
+
13
+ - To run your API Gateway on the cloud provider of your choice
14
+ - To customize networking configurations, such as restricting access to the
15
+ public internet
16
+ - Have geographical deployment requirements where the
17
+ [Managed Edge](../articles/hosting-options.mdx#1-managed-edge) hosting option
18
+ isn't feasible
19
+ - Have regulatory or compliance requirements that necessitate a dedicated
20
+ instance of Zuplo
21
+ - To meet data sovereignty requirements by choosing specific regions for your
22
+ service hosting
23
+
24
+ ## Cloud Providers
25
+
26
+ Zuplo Managed Dedicated can be deployed on a wide range of cloud providers and
27
+ hosting platforms, including:
28
+
29
+ - **Akamai Connected Cloud** - Leverage Akamai's global network infrastructure
30
+ - **AWS** - Deploy to Amazon Web Services with full VPC integration
31
+ - **Azure** - Run on Microsoft Azure with private networking support
32
+ - **GCP** - Deploy to Google Cloud Platform with custom networking
33
+ - **Equinix** - Use Equinix data centers for colocation and connectivity
34
+ - **TerraSwitch** - Deploy to TerraSwitch infrastructure
35
+ - **Other providers** - Contact us to discuss support for additional providers
36
+
37
+ You can choose the regions where you want your service hosted to meet any
38
+ sovereignty or data residency concerns.
39
+
40
+ ## Features
41
+
42
+ The managed dedicated hosting model provides the same core features as other
43
+ Zuplo deployment models. You can use all the same policies, integrations, and
44
+ features as you would with edge-based deployments.
45
+
46
+ ### Networking and Security
47
+
48
+ In addition to the standard features, managed dedicated hosting provides:
49
+
50
+ - **Custom Networking Configurations** - Configure your API Gateway to only be
51
+ accessible from specific VPCs or IP ranges
52
+ - **Private Networking Options** - Support for AWS PrivateLink, Azure Private
53
+ Link, and GCP Private Service Connect for both inbound and outbound
54
+ connections
55
+ - **Isolated VPC Deployment** - Your gateway runs in a dedicated, isolated VPC
56
+ for maximum security and isolation
57
+ - **Custom Ingress Options** - Use your own static IP addresses or security
58
+ appliances (WAFs, IDS/IPS) in front of your API Gateway
59
+
60
+ ### High Availability
61
+
62
+ - **Multi-Region Deployment** - Deploy multiple dedicated instances across
63
+ multiple regions for high availability and disaster recovery
64
+ - **Automatic Failover** - Configure automatic failover between regions
65
+ - **Custom Availability Zones** - Choose specific availability zones to meet
66
+ your redundancy requirements
67
+
68
+ ### Control and Compliance
69
+
70
+ - **Dedicated Instance** - Your own isolated instance of Zuplo, ensuring no
71
+ resource sharing with other customers
72
+ - **Full Feature Parity** - Access to all Zuplo policies, integrations, and
73
+ features
74
+ - **Compliance Support** - Meet regulatory and compliance requirements that
75
+ necessitate dedicated infrastructure
76
+
77
+ ## Getting Started
78
+
79
+ To learn more about Zuplo Managed Dedicated or to discuss your specific
80
+ requirements, [schedule some time to talk with us](https://book.zuplo.com).
@@ -0,0 +1,63 @@
1
+ ---
2
+ title: "Managed Dedicated: Source Control"
3
+ sidebar_label: "Source Control"
4
+ ---
5
+
6
+ Zuplo supports GitOps workflows for managing your API Gateway configuration.
7
+ This means that you can store all of your API Gateway configuration in a Git
8
+ repository and use Git to manage changes to your configuration. This allows you
9
+ to track changes to your configuration over time, collaborate with others, and
10
+ easily roll back changes if needed.
11
+
12
+ You will use the Zuplo CLI to deploy your API using CI/CD pipelines or using one
13
+ of the Zuplo's [Git integrations](../articles/source-control.mdx).
14
+
15
+ ## Create a Local Project
16
+
17
+ To begin developing your API, you will need to create a local project. You can
18
+ find the full documentation for
19
+ [local development here](../articles/local-development.mdx).
20
+
21
+ ```bash
22
+ npx create-zuplo-api@latest
23
+ ```
24
+
25
+ This command will prompt you to enter a project name and options for your
26
+ project.
27
+
28
+ ## Create a Git Repository
29
+
30
+ Next, you will need to create a Git repository to store your API Gateway
31
+ configuration. You can use a service like GitHub, GitLab, or Bitbucket to create
32
+ a new repository.
33
+
34
+ Your new Zuplo project is already initialized as a git repo, so you just need to
35
+ add a remote repository and push your changes.
36
+
37
+ ```bash
38
+ git remote add origin https://github.com/my-org/my-repo
39
+ git commit -m "Initial commit"
40
+ git push -u origin main
41
+ ```
42
+
43
+ ## GitHub: Connect Zuplo to your Repository
44
+
45
+ If you are using GitHub, you can connect your Zuplo project to your GitHub
46
+ repository using the Zuplo integration. This will configure Zuplo to
47
+ automatically deploy your API Gateway when you push changes to your repository.
48
+
49
+ For the full instructions on how to connect your Zuplo project to GitHub, see
50
+ [GitHub Integration](../articles/source-control-setup-github.mdx).
51
+
52
+ ## Custom CI: Deploy your API
53
+
54
+ If you aren't using GitHub, or would like to set up a custom CI/CD pipeline, you
55
+ can use the Zuplo CLI to deploy your API Gateway.
56
+
57
+ ```bash
58
+ npx zuplo deploy --api-key $ZUPLO_API_KEY --project your-project-name --environment my-env
59
+ ```
60
+
61
+ For more information on setting up a CI/CD pipeline, see
62
+ [CI/CD](../articles/custom-ci-cd.mdx) and the
63
+ [Zuplo CLI Deployment](../cli/deploy.mdx) docs.
@@ -0,0 +1,134 @@
1
+ ---
2
+ title: Create an API Key Consumer on Login
3
+ sidebar_label: Create API Key on Auth
4
+ navigation_icon: id-card-lanyard
5
+ description:
6
+ Learn how to automatically create an API Key Consumer for users upon login to
7
+ your Developer Portal using Auth0 actions. This guide provides step-by-step
8
+ instructions for integrating with the Dev Portal.
9
+ ---
10
+
11
+ By default, users who log into your Zuplo powered Developer Portal won't have an
12
+ API Consumer. This is by design as it allows you to control who has access to
13
+ your API, what their permissions or quotas are, etc. However, some APIs are open
14
+ to any user who can login. This might mean you let anyone login and create an
15
+ account or it might mean you use authorization policies with your identity
16
+ provider to control who can access the portal.
17
+
18
+ This article explains how to use Auth0 actions to automatically create an API
19
+ Key Consumer for your users when they sign into your developer portal.
20
+
21
+ :::tip
22
+
23
+ You don't need to set this up if using the built-in Zuplo monetization feature.
24
+ We do this all for you in that flow.
25
+
26
+ :::
27
+
28
+ Before you begin, you will need to
29
+ [set up custom authentication](./zudoku/configuration/authentication.mdx) for
30
+ the developer portal - you can't use the built-in "demo" provider for this
31
+ tutorial.
32
+
33
+ To begin, open the [Auth0 management portal](https://manage.auth0.com) and
34
+ navigate to **Actions** > **Library**. Then click the button **Build Custom**.
35
+
36
+ Set a name for your custom action and select the **Login / Post Login** trigger.
37
+ Select Node.js version 16 or greater.
38
+
39
+ ![Create an action](../../public/media/dev-portal-create-consumer-on-auth/a46eabb3-4c22-476b-acc3-c5ab330d451e.png)
40
+
41
+ Next, add the Node module [`undici`](https://www.npmjs.com/package/undici) as a
42
+ package to the custom action. To open the module editor click the box icon on
43
+ the side bar, then click **Add Dependency**. Enter the name `undici` and a
44
+ specific version of the module, in this case `5.22.1`. Click **Create** when
45
+ finished.
46
+
47
+ ![Add dependency](../../public/media/dev-portal-create-consumer-on-auth/0daf1916-3fac-4bed-b00d-55694236619c.png)
48
+
49
+ In order to authenticate to Zuplo's Developer API, you will need to get your API
50
+ Key. See [Account API Keys](../articles/accounts/zuplo-api-keys.mdx) for
51
+ instructions on finding your API Key. Once you have retrieved your secret, click
52
+ the key icon on the Auth0 editor sidebar and click **Add Secret**. Name the
53
+ secret `API_KEY` and set the value.
54
+
55
+ ![Define a secret](../../public/media/dev-portal-create-consumer-on-auth/2cf32602-9716-4b8d-9641-3830500e01c1.png)
56
+
57
+ :::info
58
+
59
+ In the code below set the variable `BUCKET_NAME` to the bucket being used by
60
+ your Zuplo Gateway. If you don't know the name of your bucket, you can
61
+ [list your buckets using the Developer API](https://dev.zuplo.com/docs/routes#apikeybucketsservice_list).
62
+
63
+ :::
64
+
65
+ Next, add the following code to your custom action. Be sure to replace the
66
+ placeholder values with your actual account and bucket names. Click the
67
+ **Deploy** button when you are finished.
68
+
69
+ ```ts
70
+ const { fetch } = require("undici");
71
+ const { randomUUID } = require("crypto");
72
+
73
+ const ZUPLO_ACCOUNT = "my-zuplo-account";
74
+ const API_KEY_BUCKET = "my-bucket";
75
+
76
+ /**
77
+ * Handler that will be called during the execution of a PostLogin flow.
78
+ *
79
+ * @param {Event} event - Details about the user and the context in which they are logging in.
80
+ * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.
81
+ */
82
+ exports.onExecutePostLogin = async (event, api) => {
83
+ if (event.user.app_metadata.api_consumer) {
84
+ console.log(
85
+ `Skipping creating of API consumer. Already exists: ${event.user.app_metadata.api_consumer}`,
86
+ );
87
+ return;
88
+ }
89
+
90
+ const body = {
91
+ description: `Consumer for ${event.user.name}`,
92
+ managers: [event.user.email],
93
+ metadata: {
94
+ // Any metadata here
95
+ user_id: event.user.user_id,
96
+ },
97
+ name: `c-${randomUUID()}`,
98
+ };
99
+
100
+ try {
101
+ // Create the consumer
102
+ const response = await fetch(
103
+ `https://dev.zuplo.com/v1/accounts/${ZUPLO_ACCOUNT}/key-buckets/${API_KEY_BUCKET}/consumers?with-api-key=true`,
104
+ {
105
+ method: "POST",
106
+ body: JSON.stringify(body),
107
+ headers: {
108
+ Authorization: `Bearer ${event.secrets.API_KEY}`,
109
+ "content-type": "application/json",
110
+ },
111
+ },
112
+ );
113
+ const result = await response.json();
114
+ if (response.status !== 200) {
115
+ console.error(result);
116
+ throw new Error("Error creating API consumer");
117
+ }
118
+ // Set the consumer in the user's metadata
119
+ api.user.setAppMetadata("api_consumer", result.id);
120
+ } catch (err) {
121
+ // Catching error to not block the user's login to the portal
122
+ console.error(err);
123
+ }
124
+ };
125
+ ```
126
+
127
+ Last, on the Auth0 side navigation bar, open **Actions** > **Flows**, then
128
+ select **Login**. Add the action to the workflow by selecting **Custom** and
129
+ dragging your custom action to the flow and then click **Apply**.
130
+
131
+ ![Applying the action](../../public/media/dev-portal-create-consumer-on-auth/a928c966-1636-47ad-af23-9f265e9eb590.png)
132
+
133
+ Now, login to your developer portal with a new user and you will see a consumer
134
+ has already been created.
@@ -0,0 +1,65 @@
1
+ ---
2
+ title: Introduction
3
+ description: Introduction to Zuplo's beautiful, auto-generated developer portal.
4
+ ---
5
+
6
+ Every API deserves beautiful and powerful documentation. The Zuplo Developer
7
+ Portal powers this documentation site and is available for all Zuplo users.
8
+
9
+ ![Zuplo Dev Portal](../../public/media/introduction/image-1.png)
10
+
11
+ ## What is the Dev Portal?
12
+
13
+ The Developer Portal is a powerful tool that allows you to create and manage
14
+ beautiful API documentation. It is built on top of the Zuplo platform and
15
+ provides a seamless experience for developers to consume your APIs.
16
+
17
+ ## Why the new Dev Portal?
18
+
19
+ The new Developer Portal is rewritten from the ground up to provide a more
20
+ customizable experience. It is easy to use out of the box, but also allows for
21
+ advanced customization for those who want to take it to the next level. The new
22
+ Developer Portal is built on top of Zudoku, which is a powerful static site
23
+ generator that allows for advanced customization and theming. Zudoku is built on
24
+ Vite which allows for fast builds and a great developer experience.
25
+
26
+ ## What Features are available?
27
+
28
+ The new Developer Portal is packed with features that make it easy to create and
29
+ manage your API documentation. Some of the key features include:
30
+
31
+ - **Markdown Documentation**: Write your documentation in Markdown and have it
32
+ automatically converted to HTML.
33
+ - **API Documentation**: Automatically generate API documentation from your
34
+ OpenAPI specifications.
35
+ - **API Explorer**: Explore and test your API directly from the documentation.
36
+ - **Custom Pages**: Create custom pages for your documentation using Markdown,
37
+ MDX, or even React.
38
+ - **Custom Modules**: Install custom modules to extend the functionality of your
39
+ documentation.
40
+ - **API Key Management**: When using Zuplo's API Key management, manage API keys
41
+ directly from the documentation.
42
+ - **Built-in Analytics**: End users can see how they are using the API, monitor
43
+ usage of their API keys, and more right from inside the portal.
44
+
45
+ ## How to get started?
46
+
47
+ To get started, sign up for a Zuplo account and create a new project. Follow the
48
+ [migration guide](./migration.mdx) to enable the Developer Portal on an existing
49
+ project.
50
+
51
+ ## Build, Deploy, and Hosting
52
+
53
+ Zuplo manages the build, deploy, and hosting of your developer portal for you.
54
+ Simply sign up for Zuplo, create a new project, and you will have a fully
55
+ functioning developer portal in minutes. Zuplo handles all the hosting and
56
+ deployment for you, so you can focus on building your API and documentation.
57
+
58
+ You can also configure a custom domain for your Developer Portal to match your
59
+ brand. Learn more in the
60
+ [Custom Domains documentation](/docs/articles/custom-domains).
61
+
62
+ ## Feedback
63
+
64
+ The Developer Portal is continuously improving. For suggestions or feedback,
65
+ email [support@zuplo.com](mailto:support@zuplo.com).
@@ -0,0 +1,72 @@
1
+ ---
2
+ title: Local Development
3
+ description:
4
+ Learn how to work on the Dev Portal locally with live updates and hot
5
+ reloading.
6
+ ---
7
+
8
+ Developing the Dev Portal locally is straightforward and provides a great
9
+ developer experience with live updates and hot reloading. Follow these steps to
10
+ get started.
11
+
12
+ ## Prerequisites
13
+
14
+ - [Node.js](https://nodejs.org) `>=v22.7.0` (or `>=20.19` will work as well)
15
+ - [Git](https://git-scm.com)
16
+
17
+ ## Getting Started
18
+
19
+ <Stepper>
20
+
21
+ 1. **Clone the Zuplo repository**
22
+
23
+ ```bash
24
+ git clone <repository-url>
25
+ ```
26
+
27
+ 1. **Install dependencies**
28
+
29
+ ```bash
30
+ npm install
31
+ ```
32
+
33
+ 1. **Navigate to the docs directory**
34
+
35
+ ```bash
36
+ cd docs
37
+ ```
38
+
39
+ 1. **Start the development server**
40
+
41
+ ```bash
42
+ npm run dev
43
+ ```
44
+
45
+ 1. **Open your browser**
46
+
47
+ Navigate to [http://localhost:3000](http://localhost:3000) to see your Dev
48
+ Portal.
49
+
50
+ </Stepper>
51
+
52
+ ## Development Workflow
53
+
54
+ Once the development server is running, you can:
55
+
56
+ - **Edit content**: Make changes to any Markdown, MDX, or configuration files
57
+ - **Live updates**: Your browser will automatically refresh when you save
58
+ changes
59
+ - **Hot reloading**: Most changes will be reflected instantly without a full
60
+ page reload
61
+ - **Real-time feedback**: See your changes immediately as you develop
62
+
63
+ The development server watches for file changes and automatically rebuilds the
64
+ site, providing an excellent developer experience for creating and maintaining
65
+ your documentation.
66
+
67
+ ## What's Next?
68
+
69
+ - Learn about [writing content](./zudoku/writing.mdx)
70
+ - Check out [the configuration file](./zudoku/configuration/overview)
71
+ - See how you can
72
+ [customize the Dev Portal](./zudoku/customization/colors-theme)