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.
- package/README.md +9 -0
- package/docs/_index.md +44 -0
- package/docs/ai-gateway/apps.mdx +28 -0
- package/docs/ai-gateway/custom-providers.mdx +54 -0
- package/docs/ai-gateway/getting-started.mdx +224 -0
- package/docs/ai-gateway/guardrails.mdx +65 -0
- package/docs/ai-gateway/integrations/ai-sdk.mdx +109 -0
- package/docs/ai-gateway/integrations/claude-code.mdx +49 -0
- package/docs/ai-gateway/integrations/codex.mdx +78 -0
- package/docs/ai-gateway/integrations/goose.mdx +104 -0
- package/docs/ai-gateway/integrations/langchain.mdx +66 -0
- package/docs/ai-gateway/integrations/openai.mdx +99 -0
- package/docs/ai-gateway/introduction.mdx +85 -0
- package/docs/ai-gateway/managing-apps.mdx +46 -0
- package/docs/ai-gateway/managing-providers.mdx +66 -0
- package/docs/ai-gateway/managing-teams.mdx +63 -0
- package/docs/ai-gateway/policies/akamai-ai-firewall.mdx +125 -0
- package/docs/ai-gateway/policies/comet-opik-tracing.mdx +139 -0
- package/docs/ai-gateway/policies/galileo-tracing.mdx +147 -0
- package/docs/ai-gateway/providers.mdx +32 -0
- package/docs/ai-gateway/teams.mdx +38 -0
- package/docs/ai-gateway/universal-api.mdx +43 -0
- package/docs/ai-gateway/usage-limits.mdx +89 -0
- package/docs/api-management/introduction.md +127 -0
- package/docs/articles/accounts/audit-logs.mdx +227 -0
- package/docs/articles/accounts/billing.mdx +25 -0
- package/docs/articles/accounts/default-api-key.mdx +30 -0
- package/docs/articles/accounts/delete-account.mdx +36 -0
- package/docs/articles/accounts/enterprise-sso.mdx +116 -0
- package/docs/articles/accounts/managing-account-members.mdx +45 -0
- package/docs/articles/accounts/managing-project-members.mdx +37 -0
- package/docs/articles/accounts/members-and-roles.mdx +21 -0
- package/docs/articles/accounts/roles-and-permissions.mdx +115 -0
- package/docs/articles/accounts/zuplo-api-keys.mdx +94 -0
- package/docs/articles/add-api-to-backstage.mdx +216 -0
- package/docs/articles/advanced-path-matching.mdx +139 -0
- package/docs/articles/api-key-administration.mdx +47 -0
- package/docs/articles/api-key-api.mdx +220 -0
- package/docs/articles/api-key-authentication.mdx +195 -0
- package/docs/articles/api-key-buckets.mdx +61 -0
- package/docs/articles/api-key-end-users.mdx +52 -0
- package/docs/articles/api-key-leak-detection.mdx +75 -0
- package/docs/articles/api-key-management.mdx +100 -0
- package/docs/articles/api-key-react-component.mdx +90 -0
- package/docs/articles/api-key-service-limits.mdx +14 -0
- package/docs/articles/archiving-requests-to-storage.mdx +119 -0
- package/docs/articles/branch-based-deployments.mdx +184 -0
- package/docs/articles/bypass-policy-for-testing.mdx +117 -0
- package/docs/articles/check-ip-address.mdx +17 -0
- package/docs/articles/ci-cd-azure/basic-deployment.mdx +49 -0
- package/docs/articles/ci-cd-azure/deploy-and-test.mdx +47 -0
- package/docs/articles/ci-cd-azure/local-testing.mdx +59 -0
- package/docs/articles/ci-cd-azure/multi-stage-deployment.mdx +88 -0
- package/docs/articles/ci-cd-azure/pr-preview-environments.mdx +50 -0
- package/docs/articles/ci-cd-azure/tag-based-releases.mdx +37 -0
- package/docs/articles/ci-cd-bitbucket/basic-deployment.mdx +27 -0
- package/docs/articles/ci-cd-bitbucket/deploy-and-test.mdx +41 -0
- package/docs/articles/ci-cd-bitbucket/local-testing.mdx +34 -0
- package/docs/articles/ci-cd-bitbucket/multi-stage-deployment.mdx +52 -0
- package/docs/articles/ci-cd-bitbucket/pr-preview-environments.mdx +46 -0
- package/docs/articles/ci-cd-bitbucket/tag-based-releases.mdx +27 -0
- package/docs/articles/ci-cd-circleci/basic-deployment.mdx +34 -0
- package/docs/articles/ci-cd-circleci/deploy-and-test.mdx +44 -0
- package/docs/articles/ci-cd-circleci/local-testing.mdx +50 -0
- package/docs/articles/ci-cd-circleci/multi-stage-deployment.mdx +82 -0
- package/docs/articles/ci-cd-circleci/pr-preview-environments.mdx +47 -0
- package/docs/articles/ci-cd-circleci/tag-based-releases.mdx +38 -0
- package/docs/articles/ci-cd-github/basic-deployment.mdx +48 -0
- package/docs/articles/ci-cd-github/cleanup-on-branch-delete.mdx +123 -0
- package/docs/articles/ci-cd-github/deploy-and-test.mdx +82 -0
- package/docs/articles/ci-cd-github/local-testing.mdx +102 -0
- package/docs/articles/ci-cd-github/multi-stage-deployment.mdx +136 -0
- package/docs/articles/ci-cd-github/pr-preview-environments.mdx +106 -0
- package/docs/articles/ci-cd-github/tag-based-releases.mdx +99 -0
- package/docs/articles/ci-cd-gitlab/basic-deployment.mdx +28 -0
- package/docs/articles/ci-cd-gitlab/deploy-and-test.mdx +44 -0
- package/docs/articles/ci-cd-gitlab/local-testing.mdx +39 -0
- package/docs/articles/ci-cd-gitlab/mr-preview-environments.mdx +52 -0
- package/docs/articles/ci-cd-gitlab/multi-stage-deployment.mdx +64 -0
- package/docs/articles/ci-cd-gitlab/tag-based-releases.mdx +28 -0
- package/docs/articles/composite-policy-reference.mdx +284 -0
- package/docs/articles/configuring-auth0-for-mcp-auth.mdx +186 -0
- package/docs/articles/configuring-okta-for-mcp-auth.mdx +208 -0
- package/docs/articles/convert-urls-to-openapi.mdx +62 -0
- package/docs/articles/cors.mdx +447 -0
- package/docs/articles/custom-audit-log-policy.mdx +95 -0
- package/docs/articles/custom-ci-cd-azure.mdx +81 -0
- package/docs/articles/custom-ci-cd-bitbucket.mdx +80 -0
- package/docs/articles/custom-ci-cd-circleci.mdx +78 -0
- package/docs/articles/custom-ci-cd-github.mdx +99 -0
- package/docs/articles/custom-ci-cd-gitlab.mdx +79 -0
- package/docs/articles/custom-ci-cd.mdx +82 -0
- package/docs/articles/custom-code-patterns.md +418 -0
- package/docs/articles/custom-domains.mdx +258 -0
- package/docs/articles/custom-logging-example.mdx +139 -0
- package/docs/articles/ddos-protection.mdx +138 -0
- package/docs/articles/development-options.mdx +49 -0
- package/docs/articles/environment-variables.mdx +134 -0
- package/docs/articles/environments.mdx +143 -0
- package/docs/articles/fastly-zuplo-host-setup.mdx +41 -0
- package/docs/articles/github-deployment-testing.mdx +101 -0
- package/docs/articles/gke-with-upstream-auth-policy.mdx +192 -0
- package/docs/articles/graphql-security.mdx +180 -0
- package/docs/articles/handling-form-data.mdx +61 -0
- package/docs/articles/health-checks.mdx +109 -0
- package/docs/articles/hosting-options.mdx +70 -0
- package/docs/articles/lazy-load-configuration-into-cache.mdx +92 -0
- package/docs/articles/limits.mdx +98 -0
- package/docs/articles/local-development-debugging.mdx +44 -0
- package/docs/articles/local-development-env-variables.mdx +23 -0
- package/docs/articles/local-development-installing-packages.mdx +23 -0
- package/docs/articles/local-development-routes-designer.mdx +27 -0
- package/docs/articles/local-development-services.mdx +40 -0
- package/docs/articles/local-development-troubleshooting.mdx +56 -0
- package/docs/articles/local-development.mdx +81 -0
- package/docs/articles/log-plugin-aws-cloudwatch.mdx +83 -0
- package/docs/articles/log-plugin-datadog.mdx +84 -0
- package/docs/articles/log-plugin-dynatrace.mdx +75 -0
- package/docs/articles/log-plugin-gcp.mdx +75 -0
- package/docs/articles/log-plugin-loki.mdx +136 -0
- package/docs/articles/log-plugin-new-relic.mdx +84 -0
- package/docs/articles/log-plugin-splunk.mdx +104 -0
- package/docs/articles/log-plugin-sumo.mdx +73 -0
- package/docs/articles/log-plugin-vmware-log-insight.mdx +154 -0
- package/docs/articles/log-request-response-data.mdx +398 -0
- package/docs/articles/logging.mdx +115 -0
- package/docs/articles/manual-mcp-oauth-testing.mdx +193 -0
- package/docs/articles/mcp-quickstart.mdx +135 -0
- package/docs/articles/metrics-plugins.mdx +371 -0
- package/docs/articles/migrate-from-apigee.md +408 -0
- package/docs/articles/migrate-from-aws-api-gateway.md +248 -0
- package/docs/articles/migrate-from-azure-apim.md +292 -0
- package/docs/articles/migrate-from-kong.md +300 -0
- package/docs/articles/migration-overview.md +81 -0
- package/docs/articles/monetization/api-access.mdx +69 -0
- package/docs/articles/monetization/billing-models.md +520 -0
- package/docs/articles/monetization/developer-portal.md +167 -0
- package/docs/articles/monetization/features.mdx +98 -0
- package/docs/articles/monetization/index.mdx +113 -0
- package/docs/articles/monetization/meters.mdx +135 -0
- package/docs/articles/monetization/monetization-policy.md +314 -0
- package/docs/articles/monetization/plan-examples.mdx +366 -0
- package/docs/articles/monetization/plans.mdx +266 -0
- package/docs/articles/monetization/pricing-models.mdx +225 -0
- package/docs/articles/monetization/private-plans.md +154 -0
- package/docs/articles/monetization/quickstart.md +355 -0
- package/docs/articles/monetization/rate-cards.mdx +171 -0
- package/docs/articles/monetization/stripe-integration.md +195 -0
- package/docs/articles/monetization/subscription-lifecycle.md +298 -0
- package/docs/articles/monetization/tax-collection.md +166 -0
- package/docs/articles/monetization/troubleshooting.md +272 -0
- package/docs/articles/monetization-custom.mdx +71 -0
- package/docs/articles/monetization-integrations.mdx +104 -0
- package/docs/articles/monitoring-your-gateway.mdx +53 -0
- package/docs/articles/monorepo-deployment.mdx +350 -0
- package/docs/articles/multiple-auth-policies.mdx +81 -0
- package/docs/articles/non-standard-ports.mdx +30 -0
- package/docs/articles/oauth-authentication.mdx +54 -0
- package/docs/articles/openapi-server-urls.mdx +60 -0
- package/docs/articles/openapi.mdx +130 -0
- package/docs/articles/opentelemetry.mdx +250 -0
- package/docs/articles/per-user-rate-limits-using-db.mdx +112 -0
- package/docs/articles/performance-testing.mdx +304 -0
- package/docs/articles/plugin-akamai-api-security.mdx +76 -0
- package/docs/articles/plugin-azure-blob.mdx +73 -0
- package/docs/articles/plugin-azure-event-hubs.mdx +64 -0
- package/docs/articles/plugin-hydrolix-traffic-peak.mdx +147 -0
- package/docs/articles/policies.mdx +33 -0
- package/docs/articles/rename-or-move-project.mdx +39 -0
- package/docs/articles/rick-and-morty-api-developer-portal-example.mdx +23 -0
- package/docs/articles/routing.mdx +193 -0
- package/docs/articles/s3-signed-url-uploads.mdx +521 -0
- package/docs/articles/secure-tunnel.mdx +84 -0
- package/docs/articles/securing-backend-mtls.mdx +268 -0
- package/docs/articles/securing-your-backend.mdx +148 -0
- package/docs/articles/security.mdx +105 -0
- package/docs/articles/sharing-code-across-projects.mdx +412 -0
- package/docs/articles/source-control-setup-azure.mdx +13 -0
- package/docs/articles/source-control-setup-bitbucket.mdx +43 -0
- package/docs/articles/source-control-setup-github.mdx +172 -0
- package/docs/articles/source-control-setup-gitlab.mdx +12 -0
- package/docs/articles/source-control.mdx +80 -0
- package/docs/articles/step-1-setup-basic-gateway-local.mdx +136 -0
- package/docs/articles/step-1-setup-basic-gateway.mdx +118 -0
- package/docs/articles/step-2-add-rate-limiting-local.mdx +126 -0
- package/docs/articles/step-2-add-rate-limiting.mdx +82 -0
- package/docs/articles/step-3-add-api-key-auth-local.mdx +199 -0
- package/docs/articles/step-3-add-api-key-auth.mdx +166 -0
- package/docs/articles/step-4-deploying-to-the-edge.mdx +220 -0
- package/docs/articles/step-5-dynamic-rate-limiting.mdx +167 -0
- package/docs/articles/support.mdx +144 -0
- package/docs/articles/terraform.mdx +114 -0
- package/docs/articles/testing-graphql.mdx +34 -0
- package/docs/articles/testing.mdx +522 -0
- package/docs/articles/troubleshooting-slow-responses.mdx +301 -0
- package/docs/articles/troubleshooting.md +302 -0
- package/docs/articles/tsconfig.mdx +105 -0
- package/docs/articles/tunnel-setup.mdx +195 -0
- package/docs/articles/tunnel-troubleshooting.mdx +50 -0
- package/docs/articles/update-zup-in-github-action.mdx +110 -0
- package/docs/articles/use-openapi-extension-data.mdx +79 -0
- package/docs/articles/users/multifactor-authentication.mdx +64 -0
- package/docs/articles/users/profile.mdx +13 -0
- package/docs/articles/versioning-on-zuplo.mdx +89 -0
- package/docs/articles/waf-ddos-akamai.md +133 -0
- package/docs/articles/waf-ddos-aws-waf-shield.mdx +85 -0
- package/docs/articles/waf-ddos-fastly.mdx +251 -0
- package/docs/articles/waf-ddos.mdx +140 -0
- package/docs/articles/zuplo-waf.mdx +156 -0
- package/docs/ask.mdx +3 -0
- package/docs/cli/authentication.mdx +56 -0
- package/docs/cli/connectivity.mdx +38 -0
- package/docs/cli/create-zuplo-api.mdx +80 -0
- package/docs/cli/delete.mdx +79 -0
- package/docs/cli/deploy.mdx +156 -0
- package/docs/cli/deploy.partial.mdx +46 -0
- package/docs/cli/dev.mdx +115 -0
- package/docs/cli/docs.mdx +66 -0
- package/docs/cli/editor.mdx +50 -0
- package/docs/cli/global-options.mdx +19 -0
- package/docs/cli/init.mdx +74 -0
- package/docs/cli/link.mdx +74 -0
- package/docs/cli/list.mdx +55 -0
- package/docs/cli/mtls-certificate-create.mdx +94 -0
- package/docs/cli/mtls-certificate-delete.mdx +55 -0
- package/docs/cli/mtls-certificate-describe.mdx +55 -0
- package/docs/cli/mtls-certificate-disable.mdx +55 -0
- package/docs/cli/mtls-certificate-list.mdx +47 -0
- package/docs/cli/mtls-certificate-update.mdx +72 -0
- package/docs/cli/openapi-convert.mdx +111 -0
- package/docs/cli/openapi-merge.mdx +138 -0
- package/docs/cli/openapi-merge.partial.mdx +29 -0
- package/docs/cli/openapi-overlay.mdx +123 -0
- package/docs/cli/overview.mdx +78 -0
- package/docs/cli/project-create.mdx +43 -0
- package/docs/cli/source-migrate.mdx +18 -0
- package/docs/cli/source-upgrade.mdx +41 -0
- package/docs/cli/test.mdx +70 -0
- package/docs/cli/test.partial.mdx +7 -0
- package/docs/cli/tunnel-create.mdx +53 -0
- package/docs/cli/tunnel-create.partial.mdx +9 -0
- package/docs/cli/tunnel-delete.mdx +35 -0
- package/docs/cli/tunnel-delete.partial.mdx +9 -0
- package/docs/cli/tunnel-describe.mdx +45 -0
- package/docs/cli/tunnel-describe.partial.mdx +5 -0
- package/docs/cli/tunnel-list.mdx +35 -0
- package/docs/cli/tunnel-list.partial.mdx +9 -0
- package/docs/cli/tunnel-rate-token.partial.mdx +9 -0
- package/docs/cli/tunnel-rotate-token.mdx +39 -0
- package/docs/cli/tunnel-services-describe.mdx +45 -0
- package/docs/cli/tunnel-services-describe.partial.mdx +9 -0
- package/docs/cli/tunnel-services-update.mdx +48 -0
- package/docs/cli/variable-create.mdx +91 -0
- package/docs/cli/variable-create.partial.mdx +5 -0
- package/docs/cli/variable-update.mdx +75 -0
- package/docs/cli/variable-update.partial.mdx +5 -0
- package/docs/concepts/api-keys.md +146 -0
- package/docs/concepts/authentication.mdx +109 -0
- package/docs/concepts/how-zuplo-works.mdx +120 -0
- package/docs/concepts/project-structure.mdx +174 -0
- package/docs/concepts/rate-limiting.md +246 -0
- package/docs/concepts/request-lifecycle.mdx +56 -0
- package/docs/concepts/source-control-and-deployment.mdx +229 -0
- package/docs/conferences/conference-prize-terms.mdx +80 -0
- package/docs/dedicated/akamai/ai-powered-applications.mdx +223 -0
- package/docs/dedicated/akamai/architecture.mdx +280 -0
- package/docs/dedicated/akamai/caching.mdx +212 -0
- package/docs/dedicated/akamai/cdn.mdx +156 -0
- package/docs/dedicated/architecture.mdx +208 -0
- package/docs/dedicated/custom-domains.mdx +31 -0
- package/docs/dedicated/federated-gateways.mdx +80 -0
- package/docs/dedicated/networking.mdx +69 -0
- package/docs/dedicated/overview.mdx +80 -0
- package/docs/dedicated/source-control.mdx +63 -0
- package/docs/dev-portal/dev-portal-create-consumer-on-auth.mdx +134 -0
- package/docs/dev-portal/introduction.mdx +65 -0
- package/docs/dev-portal/local-development.mdx +72 -0
- package/docs/dev-portal/migration.mdx +526 -0
- package/docs/dev-portal/node-modules.mdx +45 -0
- package/docs/dev-portal/updating.mdx +28 -0
- package/docs/dev-portal/zudoku/components/alert.mdx +130 -0
- package/docs/dev-portal/zudoku/components/badge.mdx +70 -0
- package/docs/dev-portal/zudoku/components/button.mdx +132 -0
- package/docs/dev-portal/zudoku/components/callout.mdx +112 -0
- package/docs/dev-portal/zudoku/components/card.mdx +104 -0
- package/docs/dev-portal/zudoku/components/checkbox.mdx +72 -0
- package/docs/dev-portal/zudoku/components/client-only.mdx +79 -0
- package/docs/dev-portal/zudoku/components/code-tabs.mdx +179 -0
- package/docs/dev-portal/zudoku/components/dialog.mdx +167 -0
- package/docs/dev-portal/zudoku/components/head.mdx +199 -0
- package/docs/dev-portal/zudoku/components/icons.mdx +27 -0
- package/docs/dev-portal/zudoku/components/input.mdx +96 -0
- package/docs/dev-portal/zudoku/components/label.mdx +86 -0
- package/docs/dev-portal/zudoku/components/link.mdx +242 -0
- package/docs/dev-portal/zudoku/components/markdown.mdx +151 -0
- package/docs/dev-portal/zudoku/components/mermaid.mdx +81 -0
- package/docs/dev-portal/zudoku/components/playground.mdx +87 -0
- package/docs/dev-portal/zudoku/components/secret.mdx +78 -0
- package/docs/dev-portal/zudoku/components/select.mdx +176 -0
- package/docs/dev-portal/zudoku/components/shadcn.mdx +73 -0
- package/docs/dev-portal/zudoku/components/slider.mdx +108 -0
- package/docs/dev-portal/zudoku/components/slot.mdx +119 -0
- package/docs/dev-portal/zudoku/components/stepper.mdx +138 -0
- package/docs/dev-portal/zudoku/components/switch.mdx +96 -0
- package/docs/dev-portal/zudoku/components/syntax-highlight.mdx +602 -0
- package/docs/dev-portal/zudoku/components/textarea.mdx +78 -0
- package/docs/dev-portal/zudoku/components/tooltip.mdx +195 -0
- package/docs/dev-portal/zudoku/components/typography.mdx +61 -0
- package/docs/dev-portal/zudoku/configuration/ai-assistants.md +64 -0
- package/docs/dev-portal/zudoku/configuration/api-catalog.md +108 -0
- package/docs/dev-portal/zudoku/configuration/api-reference.md +397 -0
- package/docs/dev-portal/zudoku/configuration/authentication-auth0.md +173 -0
- package/docs/dev-portal/zudoku/configuration/authentication-azure-ad.md +238 -0
- package/docs/dev-portal/zudoku/configuration/authentication-clerk.md +110 -0
- package/docs/dev-portal/zudoku/configuration/authentication-firebase.md +61 -0
- package/docs/dev-portal/zudoku/configuration/authentication-pingfederate.md +136 -0
- package/docs/dev-portal/zudoku/configuration/authentication-supabase.md +225 -0
- package/docs/dev-portal/zudoku/configuration/authentication.md +199 -0
- package/docs/dev-portal/zudoku/configuration/build-configuration.mdx +147 -0
- package/docs/dev-portal/zudoku/configuration/docs.md +282 -0
- package/docs/dev-portal/zudoku/configuration/footer.mdx +214 -0
- package/docs/dev-portal/zudoku/configuration/llms.md +89 -0
- package/docs/dev-portal/zudoku/configuration/navigation.mdx +408 -0
- package/docs/dev-portal/zudoku/configuration/overview.md +380 -0
- package/docs/dev-portal/zudoku/configuration/protected-routes.md +149 -0
- package/docs/dev-portal/zudoku/configuration/search.md +169 -0
- package/docs/dev-portal/zudoku/configuration/sentry.mdx +44 -0
- package/docs/dev-portal/zudoku/configuration/site.md +124 -0
- package/docs/dev-portal/zudoku/configuration/slots.mdx +124 -0
- package/docs/dev-portal/zudoku/configuration/vite-config.md +18 -0
- package/docs/dev-portal/zudoku/custom-plugins.md +287 -0
- package/docs/dev-portal/zudoku/customization/colors-theme.mdx +275 -0
- package/docs/dev-portal/zudoku/customization/fonts.md +110 -0
- package/docs/dev-portal/zudoku/extending/events.md +124 -0
- package/docs/dev-portal/zudoku/guides/custom-pages.md +106 -0
- package/docs/dev-portal/zudoku/guides/environment-variables.md +99 -0
- package/docs/dev-portal/zudoku/guides/mermaid.mdx +70 -0
- package/docs/dev-portal/zudoku/guides/navigation-migration.md +87 -0
- package/docs/dev-portal/zudoku/guides/navigation-rules.mdx +197 -0
- package/docs/dev-portal/zudoku/guides/processors.mdx +234 -0
- package/docs/dev-portal/zudoku/guides/static-files.md +55 -0
- package/docs/dev-portal/zudoku/guides/transforming-examples.md +156 -0
- package/docs/dev-portal/zudoku/guides/using-multiple-apis.md +87 -0
- package/docs/dev-portal/zudoku/markdown/admonitions.md +128 -0
- package/docs/dev-portal/zudoku/markdown/code-blocks.md +196 -0
- package/docs/dev-portal/zudoku/markdown/frontmatter.md +172 -0
- package/docs/dev-portal/zudoku/markdown/mdx.md +68 -0
- package/docs/dev-portal/zudoku/markdown/overview.md +275 -0
- package/docs/dev-portal/zudoku/plugins.md +5 -0
- package/docs/dev-portal/zudoku/writing.mdx +72 -0
- package/docs/errors/bad-request.mdx +39 -0
- package/docs/errors/build-error.mdx +45 -0
- package/docs/errors/fatal-project-error.mdx +39 -0
- package/docs/errors/gateway-timeout.mdx +33 -0
- package/docs/errors/get-head-body-error.mdx +41 -0
- package/docs/errors/main-mod-error.mdx +40 -0
- package/docs/errors/no-project-set.mdx +41 -0
- package/docs/errors/not-found.mdx +43 -0
- package/docs/errors/rate-limit-exceeded.mdx +31 -0
- package/docs/errors/schema-validation-failed.mdx +51 -0
- package/docs/errors/system-configuration-error.mdx +44 -0
- package/docs/errors/unauthorized.mdx +50 -0
- package/docs/errors/unknown-error.mdx +42 -0
- package/docs/errors.mdx +14 -0
- package/docs/guides/canary-routing-for-employees.mdx +385 -0
- package/docs/guides/geolocation-backend-routing.mdx +404 -0
- package/docs/guides/modify-openapi-paths.mdx +371 -0
- package/docs/guides/openapi-overlays.mdx +492 -0
- package/docs/guides/overview.mdx +12 -0
- package/docs/guides/user-based-backend-routing.mdx +437 -0
- package/docs/handlers/aws-lambda.mdx +201 -0
- package/docs/handlers/custom-handler.mdx +112 -0
- package/docs/handlers/legacy-dev-portal-handler.mdx +135 -0
- package/docs/handlers/mcp-server.mdx +730 -0
- package/docs/handlers/openapi.mdx +78 -0
- package/docs/handlers/redirect.mdx +115 -0
- package/docs/handlers/system-handlers.mdx +41 -0
- package/docs/handlers/url-forward.mdx +204 -0
- package/docs/handlers/url-rewrite.mdx +224 -0
- package/docs/handlers/websocket-handler.mdx +154 -0
- package/docs/home.mdx +6 -0
- package/docs/managed-edge/overview.md +78 -0
- package/docs/mcp-server/configuration-migration-guide.mdx +344 -0
- package/docs/mcp-server/custom-tools.mdx +487 -0
- package/docs/mcp-server/graphql.mdx +241 -0
- package/docs/mcp-server/introduction.mdx +122 -0
- package/docs/mcp-server/openai-apps-sdk.mdx +160 -0
- package/docs/mcp-server/prompts.mdx +283 -0
- package/docs/mcp-server/resources.mdx +288 -0
- package/docs/mcp-server/testing.mdx +53 -0
- package/docs/mcp-server/tools.mdx +306 -0
- package/docs/policies/_index.md +92 -0
- package/docs/policies/ab-test-inbound/intro.md +8 -0
- package/docs/policies/ab-test-inbound/policy.ts +14 -0
- package/docs/policies/ab-test-inbound/schema.json +27 -0
- package/docs/policies/ab-test-outbound/intro.md +8 -0
- package/docs/policies/ab-test-outbound/policy.ts +26 -0
- package/docs/policies/ab-test-outbound/schema.json +27 -0
- package/docs/policies/acl-policy-inbound/intro.md +5 -0
- package/docs/policies/acl-policy-inbound/policy.ts +32 -0
- package/docs/policies/acl-policy-inbound/schema.json +52 -0
- package/docs/policies/akamai-ai-firewall/schema.json +98 -0
- package/docs/policies/amberflo-metering-inbound/doc.md +183 -0
- package/docs/policies/amberflo-metering-inbound/intro.md +20 -0
- package/docs/policies/amberflo-metering-inbound/schema.json +108 -0
- package/docs/policies/api-key-inbound/doc.md +77 -0
- package/docs/policies/api-key-inbound/intro.md +30 -0
- package/docs/policies/api-key-inbound/schema.json +84 -0
- package/docs/policies/archive-request-aws-s3-inbound/intro.md +4 -0
- package/docs/policies/archive-request-aws-s3-inbound/policy.ts +58 -0
- package/docs/policies/archive-request-aws-s3-inbound/schema.json +68 -0
- package/docs/policies/archive-request-azure-storage-inbound/doc.md +31 -0
- package/docs/policies/archive-request-azure-storage-inbound/intro.md +4 -0
- package/docs/policies/archive-request-azure-storage-inbound/policy.ts +54 -0
- package/docs/policies/archive-request-azure-storage-inbound/schema.json +53 -0
- package/docs/policies/archive-request-gcp-storage-inbound/doc.md +63 -0
- package/docs/policies/archive-request-gcp-storage-inbound/intro.md +4 -0
- package/docs/policies/archive-request-gcp-storage-inbound/policy.ts +68 -0
- package/docs/policies/archive-request-gcp-storage-inbound/schema.json +47 -0
- package/docs/policies/archive-response-aws-s3-outbound/intro.md +2 -0
- package/docs/policies/archive-response-aws-s3-outbound/policy.ts +59 -0
- package/docs/policies/archive-response-aws-s3-outbound/schema.json +68 -0
- package/docs/policies/archive-response-azure-storage-outbound/doc.md +31 -0
- package/docs/policies/archive-response-azure-storage-outbound/intro.md +3 -0
- package/docs/policies/archive-response-azure-storage-outbound/policy.ts +54 -0
- package/docs/policies/archive-response-azure-storage-outbound/schema.json +53 -0
- package/docs/policies/audit-log-inbound/doc.md +78 -0
- package/docs/policies/audit-log-inbound/intro.md +10 -0
- package/docs/policies/audit-log-inbound/schema.json +81 -0
- package/docs/policies/auth0-jwt-auth-inbound/doc.md +125 -0
- package/docs/policies/auth0-jwt-auth-inbound/intro.md +17 -0
- package/docs/policies/auth0-jwt-auth-inbound/schema.json +74 -0
- package/docs/policies/authzen-inbound/doc.md +24 -0
- package/docs/policies/authzen-inbound/intro.md +31 -0
- package/docs/policies/authzen-inbound/schema.json +126 -0
- package/docs/policies/axiomatics-authz-inbound/doc.md +144 -0
- package/docs/policies/axiomatics-authz-inbound/intro.md +11 -0
- package/docs/policies/axiomatics-authz-inbound/schema.json +161 -0
- package/docs/policies/basic-auth-inbound/intro.md +9 -0
- package/docs/policies/basic-auth-inbound/schema.json +99 -0
- package/docs/policies/bot-detection-inbound/intro.md +4 -0
- package/docs/policies/bot-detection-inbound/schema.json +56 -0
- package/docs/policies/brownout-inbound/doc.md +55 -0
- package/docs/policies/brownout-inbound/intro.md +12 -0
- package/docs/policies/brownout-inbound/schema.json +115 -0
- package/docs/policies/caching-inbound/doc.md +209 -0
- package/docs/policies/caching-inbound/intro.md +23 -0
- package/docs/policies/caching-inbound/schema.json +98 -0
- package/docs/policies/change-method-inbound/schema.json +56 -0
- package/docs/policies/clear-headers-inbound/schema.json +59 -0
- package/docs/policies/clear-headers-outbound/schema.json +59 -0
- package/docs/policies/clerk-jwt-auth-inbound/doc.md +85 -0
- package/docs/policies/clerk-jwt-auth-inbound/intro.md +4 -0
- package/docs/policies/clerk-jwt-auth-inbound/schema.json +68 -0
- package/docs/policies/cognito-jwt-auth-inbound/intro.md +7 -0
- package/docs/policies/cognito-jwt-auth-inbound/schema.json +74 -0
- package/docs/policies/comet-opik-tracing-inbound/schema.json +65 -0
- package/docs/policies/complex-rate-limit-inbound/doc.md +20 -0
- package/docs/policies/complex-rate-limit-inbound/intro.md +23 -0
- package/docs/policies/complex-rate-limit-inbound/schema.json +142 -0
- package/docs/policies/composite-inbound/doc.md +69 -0
- package/docs/policies/composite-inbound/intro.md +15 -0
- package/docs/policies/composite-inbound/schema.json +59 -0
- package/docs/policies/composite-outbound/intro.md +6 -0
- package/docs/policies/composite-outbound/schema.json +59 -0
- package/docs/policies/curity-phantom-token-inbound/doc.md +109 -0
- package/docs/policies/curity-phantom-token-inbound/intro.md +3 -0
- package/docs/policies/curity-phantom-token-inbound/schema.json +68 -0
- package/docs/policies/custom-code-inbound/doc.md +267 -0
- package/docs/policies/custom-code-inbound/intro.md +2 -0
- package/docs/policies/custom-code-inbound/schema.json +48 -0
- package/docs/policies/custom-code-outbound/doc.md +235 -0
- package/docs/policies/custom-code-outbound/intro.md +2 -0
- package/docs/policies/custom-code-outbound/schema.json +43 -0
- package/docs/policies/firebase-jwt-inbound/intro.md +6 -0
- package/docs/policies/firebase-jwt-inbound/schema.json +68 -0
- package/docs/policies/formdata-to-json-inbound/schema.json +60 -0
- package/docs/policies/galileo-tracing-inbound/schema.json +65 -0
- package/docs/policies/geo-filter-inbound/doc.md +33 -0
- package/docs/policies/geo-filter-inbound/schema.json +108 -0
- package/docs/policies/graphql-complexity-limit-inbound/doc.md +48 -0
- package/docs/policies/graphql-complexity-limit-inbound/intro.md +2 -0
- package/docs/policies/graphql-complexity-limit-inbound/schema.json +90 -0
- package/docs/policies/graphql-disable-introspection-inbound/doc.md +66 -0
- package/docs/policies/graphql-disable-introspection-inbound/intro.md +15 -0
- package/docs/policies/graphql-disable-introspection-inbound/schema.json +48 -0
- package/docs/policies/graphql-introspection-filter-outbound/doc.md +148 -0
- package/docs/policies/graphql-introspection-filter-outbound/schema.json +79 -0
- package/docs/policies/hmac-auth-inbound/doc.md +30 -0
- package/docs/policies/hmac-auth-inbound/intro.md +10 -0
- package/docs/policies/hmac-auth-inbound/policy.ts +70 -0
- package/docs/policies/hmac-auth-inbound/schema.json +53 -0
- package/docs/policies/http-deprecation-outbound/doc.md +73 -0
- package/docs/policies/http-deprecation-outbound/schema.json +83 -0
- package/docs/policies/ip-restriction-inbound/intro.md +8 -0
- package/docs/policies/ip-restriction-inbound/policy.ts +40 -0
- package/docs/policies/ip-restriction-inbound/schema.json +58 -0
- package/docs/policies/jwt-scopes-inbound/schema.json +59 -0
- package/docs/policies/ldap-auth-inbound/schema.json +56 -0
- package/docs/policies/mock-api-inbound/schema.json +72 -0
- package/docs/policies/moesif-inbound/doc.md +44 -0
- package/docs/policies/moesif-inbound/intro.md +6 -0
- package/docs/policies/moesif-inbound/schema.json +68 -0
- package/docs/policies/monetization-inbound/doc.md +87 -0
- package/docs/policies/monetization-inbound/intro.md +6 -0
- package/docs/policies/monetization-inbound/schema.json +102 -0
- package/docs/policies/mtls-auth-inbound/intro.md +6 -0
- package/docs/policies/mtls-auth-inbound/schema.json +68 -0
- package/docs/policies/okta-fga-authz-inbound/doc.md +181 -0
- package/docs/policies/okta-fga-authz-inbound/intro.md +20 -0
- package/docs/policies/okta-fga-authz-inbound/schema.json +104 -0
- package/docs/policies/okta-jwt-auth-inbound/intro.md +7 -0
- package/docs/policies/okta-jwt-auth-inbound/schema.json +74 -0
- package/docs/policies/open-id-jwt-auth-inbound/doc.md +58 -0
- package/docs/policies/open-id-jwt-auth-inbound/intro.md +30 -0
- package/docs/policies/open-id-jwt-auth-inbound/schema.json +128 -0
- package/docs/policies/openfga-authz-inbound/doc.md +207 -0
- package/docs/policies/openfga-authz-inbound/intro.md +17 -0
- package/docs/policies/openfga-authz-inbound/schema.json +191 -0
- package/docs/policies/openmeter-inbound/doc.md +163 -0
- package/docs/policies/openmeter-inbound/intro.md +18 -0
- package/docs/policies/openmeter-inbound/schema.json +183 -0
- package/docs/policies/prompt-injection-outbound/doc.md +106 -0
- package/docs/policies/prompt-injection-outbound/intro.md +4 -0
- package/docs/policies/prompt-injection-outbound/schema.json +74 -0
- package/docs/policies/propel-auth-jwt-inbound/doc.md +88 -0
- package/docs/policies/propel-auth-jwt-inbound/intro.md +4 -0
- package/docs/policies/propel-auth-jwt-inbound/schema.json +74 -0
- package/docs/policies/query-param-to-header-inbound/doc.md +70 -0
- package/docs/policies/query-param-to-header-inbound/intro.md +5 -0
- package/docs/policies/query-param-to-header-inbound/schema.json +74 -0
- package/docs/policies/quota-inbound/doc.md +235 -0
- package/docs/policies/quota-inbound/intro.md +7 -0
- package/docs/policies/quota-inbound/schema.json +133 -0
- package/docs/policies/rate-limit-inbound/doc.md +78 -0
- package/docs/policies/rate-limit-inbound/intro.md +30 -0
- package/docs/policies/rate-limit-inbound/schema.json +134 -0
- package/docs/policies/rbac-policy-inbound/intro.md +3 -0
- package/docs/policies/rbac-policy-inbound/policy.ts +42 -0
- package/docs/policies/rbac-policy-inbound/schema.json +52 -0
- package/docs/policies/readme-metrics-inbound/doc.md +1 -0
- package/docs/policies/readme-metrics-inbound/intro.md +3 -0
- package/docs/policies/readme-metrics-inbound/schema.json +84 -0
- package/docs/policies/remove-headers-inbound/schema.json +59 -0
- package/docs/policies/remove-headers-outbound/schema.json +59 -0
- package/docs/policies/remove-query-params-inbound/schema.json +59 -0
- package/docs/policies/replace-string-outbound/schema.json +69 -0
- package/docs/policies/request-size-limit-inbound/schema.json +60 -0
- package/docs/policies/request-validation-inbound/doc.md +72 -0
- package/docs/policies/request-validation-inbound/intro.md +24 -0
- package/docs/policies/request-validation-inbound/schema.json +98 -0
- package/docs/policies/require-origin-inbound/intro.md +12 -0
- package/docs/policies/require-origin-inbound/schema.json +65 -0
- package/docs/policies/secret-masking-outbound/doc.md +41 -0
- package/docs/policies/secret-masking-outbound/intro.md +13 -0
- package/docs/policies/secret-masking-outbound/schema.json +65 -0
- package/docs/policies/semantic-cache-inbound/doc.md +63 -0
- package/docs/policies/semantic-cache-inbound/intro.md +4 -0
- package/docs/policies/semantic-cache-inbound/schema.json +179 -0
- package/docs/policies/set-body-inbound/intro.md +7 -0
- package/docs/policies/set-body-inbound/schema.json +56 -0
- package/docs/policies/set-headers-inbound/doc.md +41 -0
- package/docs/policies/set-headers-inbound/intro.md +2 -0
- package/docs/policies/set-headers-inbound/schema.json +83 -0
- package/docs/policies/set-headers-outbound/schema.json +83 -0
- package/docs/policies/set-query-params-inbound/schema.json +83 -0
- package/docs/policies/set-status-outbound/schema.json +62 -0
- package/docs/policies/sleep-inbound/schema.json +56 -0
- package/docs/policies/stripe-webhook-verification-inbound/intro.md +2 -0
- package/docs/policies/stripe-webhook-verification-inbound/schema.json +60 -0
- package/docs/policies/supabase-jwt-auth-inbound/doc.md +29 -0
- package/docs/policies/supabase-jwt-auth-inbound/intro.md +12 -0
- package/docs/policies/supabase-jwt-auth-inbound/schema.json +86 -0
- package/docs/policies/transform-body-inbound/intro.md +8 -0
- package/docs/policies/transform-body-inbound/policy.ts +16 -0
- package/docs/policies/transform-body-inbound/schema.json +27 -0
- package/docs/policies/transform-body-outbound/intro.md +8 -0
- package/docs/policies/transform-body-outbound/policy.ts +19 -0
- package/docs/policies/transform-body-outbound/schema.json +27 -0
- package/docs/policies/upstream-azure-ad-service-auth-inbound/doc.md +82 -0
- package/docs/policies/upstream-azure-ad-service-auth-inbound/intro.md +20 -0
- package/docs/policies/upstream-azure-ad-service-auth-inbound/schema.json +84 -0
- package/docs/policies/upstream-firebase-admin-auth-inbound/intro.md +10 -0
- package/docs/policies/upstream-firebase-admin-auth-inbound/schema.json +68 -0
- package/docs/policies/upstream-firebase-user-auth-inbound/intro.md +2 -0
- package/docs/policies/upstream-firebase-user-auth-inbound/schema.json +113 -0
- package/docs/policies/upstream-gcp-federated-auth-inbound/doc.md +139 -0
- package/docs/policies/upstream-gcp-federated-auth-inbound/intro.md +21 -0
- package/docs/policies/upstream-gcp-federated-auth-inbound/schema.json +96 -0
- package/docs/policies/upstream-gcp-jwt-inbound/intro.md +10 -0
- package/docs/policies/upstream-gcp-jwt-inbound/schema.json +62 -0
- package/docs/policies/upstream-gcp-service-auth-inbound/doc.md +132 -0
- package/docs/policies/upstream-gcp-service-auth-inbound/intro.md +25 -0
- package/docs/policies/upstream-gcp-service-auth-inbound/schema.json +95 -0
- package/docs/policies/upstream-zuplo-jwt-auth-inbound/doc.md +213 -0
- package/docs/policies/upstream-zuplo-jwt-auth-inbound/intro.md +16 -0
- package/docs/policies/upstream-zuplo-jwt-auth-inbound/schema.json +101 -0
- package/docs/policies/validate-json-schema-inbound/doc.md +129 -0
- package/docs/policies/validate-json-schema-inbound/intro.md +7 -0
- package/docs/policies/validate-json-schema-inbound/schema.json +56 -0
- package/docs/policies/web-bot-auth-inbound/doc.md +104 -0
- package/docs/policies/web-bot-auth-inbound/intro.md +16 -0
- package/docs/policies/web-bot-auth-inbound/schema.json +76 -0
- package/docs/policies/xml-to-json-outbound/doc.md +71 -0
- package/docs/policies/xml-to-json-outbound/intro.md +4 -0
- package/docs/policies/xml-to-json-outbound/schema.json +117 -0
- package/docs/programmable-api/audit-log.mdx +74 -0
- package/docs/programmable-api/background-dispatcher.mdx +124 -0
- package/docs/programmable-api/background-loader.mdx +104 -0
- package/docs/programmable-api/cache.mdx +186 -0
- package/docs/programmable-api/compatibility-dates.mdx +201 -0
- package/docs/programmable-api/console-logging.mdx +48 -0
- package/docs/programmable-api/context-data.mdx +127 -0
- package/docs/programmable-api/custom-cors-policy.mdx +64 -0
- package/docs/programmable-api/environment.mdx +328 -0
- package/docs/programmable-api/hooks.mdx +569 -0
- package/docs/programmable-api/http-problems.mdx +385 -0
- package/docs/programmable-api/jwt-service-plugin.mdx +420 -0
- package/docs/programmable-api/logger.mdx +223 -0
- package/docs/programmable-api/memory-zone-read-through-cache.mdx +96 -0
- package/docs/programmable-api/node-modules.mdx +67 -0
- package/docs/programmable-api/not-found-handler.mdx +47 -0
- package/docs/programmable-api/oauth-protected-resource-plugin.mdx +46 -0
- package/docs/programmable-api/overview.mdx +213 -0
- package/docs/programmable-api/problem-response-formatter.mdx +183 -0
- package/docs/programmable-api/request-user.mdx +289 -0
- package/docs/programmable-api/reusing-code.mdx +26 -0
- package/docs/programmable-api/route-raw.mdx +55 -0
- package/docs/programmable-api/runtime-behaviors.mdx +25 -0
- package/docs/programmable-api/runtime-errors.mdx +246 -0
- package/docs/programmable-api/runtime-extensions.mdx +340 -0
- package/docs/programmable-api/safely-clone-a-request-or-response.mdx +57 -0
- package/docs/programmable-api/streaming-zone-cache.mdx +155 -0
- package/docs/programmable-api/web-crypto-apis.mdx +219 -0
- package/docs/programmable-api/web-standard-apis.mdx +109 -0
- package/docs/programmable-api/zone-cache.mdx +131 -0
- package/docs/programmable-api/zp-body-removed.mdx +32 -0
- package/docs/programmable-api/zuplo-context.mdx +414 -0
- package/docs/programmable-api/zuplo-id-token.mdx +90 -0
- package/docs/programmable-api/zuplo-json.mdx +91 -0
- package/docs/programmable-api/zuplo-request.mdx +200 -0
- package/docs/sample-apis.mdx +78 -0
- package/docs/self-hosted/overview.md +60 -0
- package/package.json +6 -5
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: WebSocket Handler
|
|
3
|
+
sidebar_label: WebSocket Handler
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
:::note
|
|
7
|
+
|
|
8
|
+
This is an Enterprise only feature at this time. Please contact us to trial this
|
|
9
|
+
or sign up for an Enterprise account.
|
|
10
|
+
|
|
11
|
+
:::
|
|
12
|
+
|
|
13
|
+
The WebSocket Handler enables you to manage WebSocket connections to your
|
|
14
|
+
backend WebSocket APIs. It can be configured alongside other existing policies
|
|
15
|
+
like [Rate Limiting](../policies/rate-limit-inbound.mdx),
|
|
16
|
+
[API Keys](../policies/api-key-inbound.mdx), etc. and is available for use on
|
|
17
|
+
all environments.
|
|
18
|
+
|
|
19
|
+
This handler is currently in beta and only configurable via the JSON View on a
|
|
20
|
+
project's Route Designer or directly in your project's `*.oas.json` file.
|
|
21
|
+
|
|
22
|
+
## Setup in `routes.oas.json`
|
|
23
|
+
|
|
24
|
+
Configuration of the WebSocket Handler is similar to other available handlers.
|
|
25
|
+
Set the name of the path that your WebSocket API route will use, set the use of
|
|
26
|
+
the `webSocketHandler` export from `@zuplo/runtime` module in the handler
|
|
27
|
+
configuration and use the `rewritePattern` property inside of `options` to point
|
|
28
|
+
to your service's WebSocket API endpoint.
|
|
29
|
+
|
|
30
|
+
Your configuration will look like below:
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
"/my-websocket": {
|
|
34
|
+
"x-zuplo-path": {
|
|
35
|
+
"pathMode": "open-api"
|
|
36
|
+
},
|
|
37
|
+
"get": {
|
|
38
|
+
"summary": "Zuplo websocket route to internal API",
|
|
39
|
+
"description": "Zuplo websocket route to internal API",
|
|
40
|
+
"x-zuplo-route": {
|
|
41
|
+
"corsPolicy": "none",
|
|
42
|
+
"handler": {
|
|
43
|
+
"export": "webSocketHandler",
|
|
44
|
+
"module": "$import(@zuplo/runtime)",
|
|
45
|
+
"options": {
|
|
46
|
+
"rewritePattern": "https://myservice.com/websocket",
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"policies": {
|
|
50
|
+
"inbound": []
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"operationId": "8115f88e-b561-4248-b317-0e256e9d6b6a"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Handler Options
|
|
59
|
+
|
|
60
|
+
The WebSocket Handler accepts the following options in the `options` property:
|
|
61
|
+
|
|
62
|
+
- **`rewritePattern`** (required): The URL pattern for the backend WebSocket
|
|
63
|
+
endpoint. Supports JavaScript string interpolation syntax for dynamic URL
|
|
64
|
+
construction based on request data and environment variables.
|
|
65
|
+
|
|
66
|
+
Similar to other handlers using `rewritePattern`, it supports JavaScript string
|
|
67
|
+
interpolation syntax and can be used to shape the URL based on data from the
|
|
68
|
+
incoming request and environment variables defined in the project.
|
|
69
|
+
|
|
70
|
+
```txt
|
|
71
|
+
https://${env.BASE_HOST_NAME}/${method}/${params.productId}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
The following objects are available for substitution:
|
|
75
|
+
|
|
76
|
+
- `env` - the environment object, to access
|
|
77
|
+
[Environment Variables](../articles/environment-variables.mdx)
|
|
78
|
+
- `request: ZuploRequest` - the full
|
|
79
|
+
[`ZuploRequest`](../programmable-api/zuplo-request.mdx) object
|
|
80
|
+
- `context: ZuploContext` - the
|
|
81
|
+
[`ZuploContext`](../programmable-api/zuplo-context.mdx) object without
|
|
82
|
+
functions.
|
|
83
|
+
- `params: Record<string, string>` - The parameters of the route. For example,
|
|
84
|
+
`params.productId` would be the value of `:productId` in a route.
|
|
85
|
+
- `query: Record<string, string>` - The query parameters of the route. For
|
|
86
|
+
example, `query.filterBy` would be the value of `?filterBy=VALUE`.
|
|
87
|
+
- `headers: Headers` - the incoming request's
|
|
88
|
+
[headers object](https://developer.mozilla.org/en-US/docs/Web/API/Headers)
|
|
89
|
+
- `url: string` - The full incoming request as a string
|
|
90
|
+
- `host: string` - The
|
|
91
|
+
[`host`](https://developer.mozilla.org/en-US/docs/Web/API/URL/host) portion of
|
|
92
|
+
the incoming URL
|
|
93
|
+
- `hostname: string` - The
|
|
94
|
+
[`hostname`](https://developer.mozilla.org/en-US/docs/Web/API/URL/hostname)
|
|
95
|
+
portion of the incoming URL
|
|
96
|
+
- `pathname: string` - The
|
|
97
|
+
[`pathname`](https://developer.mozilla.org/en-US/docs/Web/API/URL/pathname)
|
|
98
|
+
portion of the incoming URL
|
|
99
|
+
- `port: string` - The
|
|
100
|
+
[`port`](https://developer.mozilla.org/en-US/docs/Web/API/URL/port) portion of
|
|
101
|
+
the incoming URL
|
|
102
|
+
- `search` - The
|
|
103
|
+
[`search`](https://developer.mozilla.org/en-US/docs/Web/API/URL/search)
|
|
104
|
+
portion of the incoming URL
|
|
105
|
+
|
|
106
|
+
Use the following methods to encode portions of the URL:
|
|
107
|
+
|
|
108
|
+
- `encodeURIComponent`: The
|
|
109
|
+
[`encodeURIComponent()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent)
|
|
110
|
+
function encodes a URI by replacing each instance of certain characters with
|
|
111
|
+
escape sequences.
|
|
112
|
+
- `e`: An alias to `encodeURIComponent` to help keep URLs more readable. Can be
|
|
113
|
+
used like `${e(params.productId)}`
|
|
114
|
+
|
|
115
|
+
### Example Values
|
|
116
|
+
|
|
117
|
+
A few examples of the values of various substitutions.
|
|
118
|
+
|
|
119
|
+
- `${headers.get("content-type")}` - `"application/json"`
|
|
120
|
+
- `${host}` - `"example.com:8080"`
|
|
121
|
+
- `${hostname}` - `"example.com"`
|
|
122
|
+
- `${method}` - `"GET"`
|
|
123
|
+
- `${origin}` - `"https://example.com"`
|
|
124
|
+
- `${params.productId}` - `":productId"`
|
|
125
|
+
- `${pathname}` - `"/v1/products/:productId"`
|
|
126
|
+
- `${port}` - `"8080"`
|
|
127
|
+
- `${protocol}` - `"https:"`
|
|
128
|
+
- `${query.category}` - `"cars"`
|
|
129
|
+
- `${search}` - `"?category=cars"`
|
|
130
|
+
- `${url}` - `"https://example.com:8080/v1/products/:productId?category=cars"`
|
|
131
|
+
- `${env.BASE_URL}` - `"https://example.com"`
|
|
132
|
+
|
|
133
|
+
## Different Backends per Environment
|
|
134
|
+
|
|
135
|
+
It's common to want to use different backends for your production, staging and
|
|
136
|
+
preview environments. This can be achieved by using
|
|
137
|
+
[environment variables](../articles/environment-variables.mdx) to specify the
|
|
138
|
+
origin of the backend.
|
|
139
|
+
|
|
140
|
+
For example,
|
|
141
|
+
|
|
142
|
+
```js
|
|
143
|
+
${env.BASE_PATH}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Using the `rewritePattern` in `options` you can combine the `BASE_PATH`
|
|
147
|
+
environment variable, say `https://example.com` to achieve this.
|
|
148
|
+
|
|
149
|
+
```txt
|
|
150
|
+
https://${env.BASE_PATH}/foo/bar
|
|
151
|
+
|
|
152
|
+
// Runtime value is
|
|
153
|
+
https://example.com/foo/bar
|
|
154
|
+
```
|
package/docs/home.mdx
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Zuplo Managed Edge
|
|
3
|
+
sidebar_label: Overview
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Zuplo Managed Edge is a serverless deployment model where your Zuplo projects
|
|
7
|
+
run at the edge across 300+ data centers worldwide. This is the most popular
|
|
8
|
+
hosting option and the default choice for all Zuplo projects. Managed Edge
|
|
9
|
+
provides automatic scaling, global distribution, and enterprise-grade
|
|
10
|
+
performance without requiring any infrastructure management.
|
|
11
|
+
|
|
12
|
+
Managed Edge hosting is the right choice for you if you:
|
|
13
|
+
|
|
14
|
+
- Want the simplest deployment experience with zero infrastructure management
|
|
15
|
+
- Need global distribution and low-latency performance for users worldwide
|
|
16
|
+
- Require automatic scaling to handle traffic spikes and high request volumes
|
|
17
|
+
- Are using Zuplo's self-serve product or need a fully-managed solution
|
|
18
|
+
- Want deployments that go live globally in under 20 seconds
|
|
19
|
+
|
|
20
|
+
## Features
|
|
21
|
+
|
|
22
|
+
The managed edge hosting model provides all of Zuplo's standard features and
|
|
23
|
+
capabilities. You can use all the same policies, integrations, and features as
|
|
24
|
+
you would with other deployment models.
|
|
25
|
+
|
|
26
|
+
### Global Edge Network
|
|
27
|
+
|
|
28
|
+
Zuplo's edge-first architecture provides:
|
|
29
|
+
|
|
30
|
+
- **Built-in redundancy and high availability** - Your API is automatically
|
|
31
|
+
distributed across hundreds of data centers worldwide
|
|
32
|
+
- **Low-latency performance** - Requests are typically served within 50ms of
|
|
33
|
+
most users, thanks to edge locations close to your customers
|
|
34
|
+
- **Automatic failover** - If one edge location experiences issues, traffic is
|
|
35
|
+
automatically routed to the nearest available location
|
|
36
|
+
|
|
37
|
+
### Performance and Scale
|
|
38
|
+
|
|
39
|
+
Managed Edge hosting is designed to handle:
|
|
40
|
+
|
|
41
|
+
- **Billions of requests per month** - Proven at enterprise scale with some of
|
|
42
|
+
the world's largest API deployments
|
|
43
|
+
- **Millions of requests per second** - Automatic scaling handles traffic spikes
|
|
44
|
+
effortlessly
|
|
45
|
+
- **Serverless architecture** - No need to provision or manage servers; Zuplo
|
|
46
|
+
handles all infrastructure automatically
|
|
47
|
+
|
|
48
|
+
### Security
|
|
49
|
+
|
|
50
|
+
Enterprise customers on managed edge deployments can leverage:
|
|
51
|
+
|
|
52
|
+
- **Zuplo Managed WAF** - Enterprise-grade protection with OWASP Core Ruleset,
|
|
53
|
+
OFAC sanctions compliance, DDoS protection, and custom rule capabilities
|
|
54
|
+
- **Edge-deployed security** - Security rules run at the same edge locations as
|
|
55
|
+
your API, ensuring no additional latency
|
|
56
|
+
- **Automatic updates** - Protection rules are continuously updated without
|
|
57
|
+
requiring deployments
|
|
58
|
+
|
|
59
|
+
### Developer Experience
|
|
60
|
+
|
|
61
|
+
- **Fast deployments** - Changes go live globally in under 20 seconds
|
|
62
|
+
- **GitOps workflows** - Everything is defined through code and stored in source
|
|
63
|
+
control
|
|
64
|
+
- **Unlimited environments** - Create as many environments as you need for
|
|
65
|
+
development, staging, and production
|
|
66
|
+
- **Working Copy environments** - Develop and test changes directly in the Zuplo
|
|
67
|
+
portal before deploying
|
|
68
|
+
|
|
69
|
+
## Getting Started
|
|
70
|
+
|
|
71
|
+
Managed Edge is the default hosting option for all Zuplo projects. When you
|
|
72
|
+
create a new project, it will automatically be configured for managed edge
|
|
73
|
+
deployment. You can start building your API immediately—no additional
|
|
74
|
+
configuration is required.
|
|
75
|
+
|
|
76
|
+
For more information about getting started with Zuplo, see the
|
|
77
|
+
[API Management introduction](/docs/api-management/introduction) or
|
|
78
|
+
[sign up](https://portal.zuplo.com/signup?utm_source=docs) for free.
|
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: MCP Server Configuration Migration Guide
|
|
3
|
+
sidebar_label: Configuration Migration Guide
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
This guide explains how to migrate from the deprecated MCP server configuration
|
|
7
|
+
syntax to the new consolidated format introduced in November 2025.
|
|
8
|
+
|
|
9
|
+
## What Changed
|
|
10
|
+
|
|
11
|
+
The new configuration consolidates and simplifies MCP server setup:
|
|
12
|
+
|
|
13
|
+
**Handler Options:**
|
|
14
|
+
|
|
15
|
+
- ✅ **New**: `operations` array with simple `{ file, id }` references
|
|
16
|
+
- ❌ **Deprecated**: `files`, `tools`, `prompts`, `resources` arrays
|
|
17
|
+
|
|
18
|
+
**Operation Extensions:**
|
|
19
|
+
|
|
20
|
+
- ✅ **New**: Single `x-zuplo-route.mcp` extension with `type` field
|
|
21
|
+
- ❌ **Deprecated**: Separate `x-zuplo-mcp-tool`, `x-zuplo-mcp-prompt`,
|
|
22
|
+
`x-zuplo-mcp-resource`, `x-zuplo-mcp-graphql` extensions
|
|
23
|
+
|
|
24
|
+
## Migration Steps
|
|
25
|
+
|
|
26
|
+
### Step 1: Update Handler Options
|
|
27
|
+
|
|
28
|
+
**Old Syntax:**
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"handler": {
|
|
33
|
+
"export": "mcpServerHandler",
|
|
34
|
+
"module": "$import(@zuplo/runtime)",
|
|
35
|
+
"options": {
|
|
36
|
+
"name": "my MCP server",
|
|
37
|
+
"version": "0.0.0",
|
|
38
|
+
"files": [
|
|
39
|
+
{
|
|
40
|
+
"path": "./config/routes.oas.json",
|
|
41
|
+
"operationIds": ["list-users", "create-user"]
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
"prompts": [
|
|
45
|
+
{
|
|
46
|
+
"path": "./config/routes.oas.json",
|
|
47
|
+
"operationIds": ["greeting"]
|
|
48
|
+
}
|
|
49
|
+
],
|
|
50
|
+
"resources": [
|
|
51
|
+
{
|
|
52
|
+
"path": "./config/routes.oas.json",
|
|
53
|
+
"operationIds": ["html"]
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**New Syntax:**
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"handler": {
|
|
66
|
+
"export": "mcpServerHandler",
|
|
67
|
+
"module": "$import(@zuplo/runtime)",
|
|
68
|
+
"options": {
|
|
69
|
+
"name": "my MCP server",
|
|
70
|
+
"version": "0.0.0",
|
|
71
|
+
"operations": [
|
|
72
|
+
{ "file": "./config/routes.oas.json", "id": "list-users" },
|
|
73
|
+
{ "file": "./config/routes.oas.json", "id": "create-user" },
|
|
74
|
+
{ "file": "./config/routes.oas.json", "id": "greeting" },
|
|
75
|
+
{ "file": "./config/routes.oas.json", "id": "html" }
|
|
76
|
+
]
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
:::note
|
|
83
|
+
|
|
84
|
+
All operations (tools, prompts, resources) now go into a single `operations`
|
|
85
|
+
array. The type is determined by the `x-zuplo-route.mcp.type` field on each
|
|
86
|
+
operation.
|
|
87
|
+
|
|
88
|
+
:::
|
|
89
|
+
|
|
90
|
+
### Step 2: Update Operation Extensions
|
|
91
|
+
|
|
92
|
+
### Tools
|
|
93
|
+
|
|
94
|
+
**Old Syntax:**
|
|
95
|
+
|
|
96
|
+
```json
|
|
97
|
+
{
|
|
98
|
+
"paths": {
|
|
99
|
+
"/users": {
|
|
100
|
+
"get": {
|
|
101
|
+
"operationId": "list-users",
|
|
102
|
+
"summary": "List all users",
|
|
103
|
+
"x-zuplo-route": {
|
|
104
|
+
"handler": {
|
|
105
|
+
"export": "urlForwardHandler",
|
|
106
|
+
"module": "$import(@zuplo/runtime)"
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"x-zuplo-mcp-tool": {
|
|
110
|
+
"name": "get_all_users",
|
|
111
|
+
"description": "Use this tool to retrieve a list of all registered users"
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**New Syntax:**
|
|
120
|
+
|
|
121
|
+
```json
|
|
122
|
+
{
|
|
123
|
+
"paths": {
|
|
124
|
+
"/users": {
|
|
125
|
+
"get": {
|
|
126
|
+
"operationId": "list-users",
|
|
127
|
+
"summary": "List all users",
|
|
128
|
+
"x-zuplo-route": {
|
|
129
|
+
"handler": {
|
|
130
|
+
"export": "urlForwardHandler",
|
|
131
|
+
"module": "$import(@zuplo/runtime)"
|
|
132
|
+
},
|
|
133
|
+
"mcp": {
|
|
134
|
+
"type": "tool",
|
|
135
|
+
"name": "get_all_users",
|
|
136
|
+
"description": "Use this tool to retrieve a list of all registered users"
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Prompts
|
|
146
|
+
|
|
147
|
+
**Old Syntax:**
|
|
148
|
+
|
|
149
|
+
```json
|
|
150
|
+
{
|
|
151
|
+
"paths": {
|
|
152
|
+
"/greeting": {
|
|
153
|
+
"post": {
|
|
154
|
+
"operationId": "greeting",
|
|
155
|
+
"summary": "Generate a greeting message",
|
|
156
|
+
"x-zuplo-mcp-prompt": {
|
|
157
|
+
"name": "greeting_generator",
|
|
158
|
+
"description": "Generate a personalized greeting message"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
**New Syntax:**
|
|
167
|
+
|
|
168
|
+
```json
|
|
169
|
+
{
|
|
170
|
+
"paths": {
|
|
171
|
+
"/greeting": {
|
|
172
|
+
"post": {
|
|
173
|
+
"operationId": "greeting",
|
|
174
|
+
"summary": "Generate a greeting message",
|
|
175
|
+
"x-zuplo-route": {
|
|
176
|
+
"handler": {
|
|
177
|
+
"export": "urlForwardHandler",
|
|
178
|
+
"module": "$import(@zuplo/runtime)"
|
|
179
|
+
},
|
|
180
|
+
"mcp": {
|
|
181
|
+
"type": "prompt",
|
|
182
|
+
"name": "greeting_generator",
|
|
183
|
+
"description": "Generate a personalized greeting message"
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Resources
|
|
193
|
+
|
|
194
|
+
**Old Syntax:**
|
|
195
|
+
|
|
196
|
+
```json
|
|
197
|
+
{
|
|
198
|
+
"paths": {
|
|
199
|
+
"/html": {
|
|
200
|
+
"get": {
|
|
201
|
+
"operationId": "html",
|
|
202
|
+
"summary": "HTML document",
|
|
203
|
+
"x-zuplo-mcp-resource": {
|
|
204
|
+
"name": "html_doc",
|
|
205
|
+
"description": "An HTML document resource",
|
|
206
|
+
"uri": "ui://html",
|
|
207
|
+
"mimeType": "text/html"
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
**New Syntax:**
|
|
216
|
+
|
|
217
|
+
```json
|
|
218
|
+
{
|
|
219
|
+
"paths": {
|
|
220
|
+
"/html": {
|
|
221
|
+
"get": {
|
|
222
|
+
"operationId": "html",
|
|
223
|
+
"summary": "HTML document",
|
|
224
|
+
"x-zuplo-route": {
|
|
225
|
+
"handler": {
|
|
226
|
+
"export": "urlForwardHandler",
|
|
227
|
+
"module": "$import(@zuplo/runtime)"
|
|
228
|
+
},
|
|
229
|
+
"mcp": {
|
|
230
|
+
"type": "resource",
|
|
231
|
+
"name": "html_doc",
|
|
232
|
+
"description": "An HTML document resource",
|
|
233
|
+
"uri": "ui://html",
|
|
234
|
+
"mimeType": "text/html"
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### GraphQL
|
|
244
|
+
|
|
245
|
+
**Old Syntax:**
|
|
246
|
+
|
|
247
|
+
```json
|
|
248
|
+
{
|
|
249
|
+
"paths": {
|
|
250
|
+
"/graphql": {
|
|
251
|
+
"post": {
|
|
252
|
+
"operationId": "graphql-api",
|
|
253
|
+
"summary": "GraphQL API endpoint",
|
|
254
|
+
"x-zuplo-mcp-graphql": {
|
|
255
|
+
"enabled": true,
|
|
256
|
+
"introspectionToolName": "graphql_introspect",
|
|
257
|
+
"executeToolName": "graphql_execute"
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
**New Syntax:**
|
|
266
|
+
|
|
267
|
+
```json
|
|
268
|
+
{
|
|
269
|
+
"paths": {
|
|
270
|
+
"/graphql": {
|
|
271
|
+
"post": {
|
|
272
|
+
"operationId": "graphql-api",
|
|
273
|
+
"summary": "GraphQL API endpoint",
|
|
274
|
+
"x-zuplo-route": {
|
|
275
|
+
"handler": {
|
|
276
|
+
"export": "urlForwardHandler",
|
|
277
|
+
"module": "$import(@zuplo/runtime)"
|
|
278
|
+
},
|
|
279
|
+
"mcp": {
|
|
280
|
+
"type": "graphql",
|
|
281
|
+
"enabled": true,
|
|
282
|
+
"introspectionTool": {
|
|
283
|
+
"name": "graphql_introspect",
|
|
284
|
+
"description": "Introspect the GraphQL schema"
|
|
285
|
+
},
|
|
286
|
+
"executeTool": {
|
|
287
|
+
"name": "graphql_execute",
|
|
288
|
+
"description": "Execute a GraphQL query"
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
## New Features
|
|
299
|
+
|
|
300
|
+
### Enabled Flag
|
|
301
|
+
|
|
302
|
+
The new syntax supports an `enabled` flag on all types to conditionally include
|
|
303
|
+
operations:
|
|
304
|
+
|
|
305
|
+
```json
|
|
306
|
+
{
|
|
307
|
+
"x-zuplo-route": {
|
|
308
|
+
"mcp": {
|
|
309
|
+
"type": "tool",
|
|
310
|
+
"name": "disabled_tool",
|
|
311
|
+
"enabled": false
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
When `enabled: false`, the operation is skipped during registration without
|
|
318
|
+
needing to remove it from the configuration.
|
|
319
|
+
|
|
320
|
+
### Improved Validation
|
|
321
|
+
|
|
322
|
+
The new format includes OpenAPI schema validation via `oneOf` constraints,
|
|
323
|
+
providing better IDE support and error messages.
|
|
324
|
+
|
|
325
|
+
## Quick Migration Checklist
|
|
326
|
+
|
|
327
|
+
- [ ] Replace `files`, `tools`, `prompts`, `resources` arrays with single
|
|
328
|
+
`operations` array
|
|
329
|
+
- [ ] Change `path` to `file` and `operationIds` to individual `{ file, id }`
|
|
330
|
+
objects
|
|
331
|
+
- [ ] Move `x-zuplo-mcp-tool` into `x-zuplo-route.mcp` with `type: "tool"`
|
|
332
|
+
- [ ] Move `x-zuplo-mcp-prompt` into `x-zuplo-route.mcp` with `type: "prompt"`
|
|
333
|
+
- [ ] Move `x-zuplo-mcp-resource` into `x-zuplo-route.mcp` with
|
|
334
|
+
`type: "resource"`
|
|
335
|
+
- [ ] Move `x-zuplo-mcp-graphql` into `x-zuplo-route.mcp` with `type: "graphql"`
|
|
336
|
+
- [ ] Update GraphQL field names: `introspectionToolName` →
|
|
337
|
+
`introspectionTool.name`, `executeToolName` → `executeTool.name`
|
|
338
|
+
- [ ] Test your MCP server to ensure all operations are registered correctly
|
|
339
|
+
|
|
340
|
+
## Backward Compatibility
|
|
341
|
+
|
|
342
|
+
The old syntax is currently marked as deprecated but still functional. However,
|
|
343
|
+
it will be removed in a future release, so migration is recommended as soon as
|
|
344
|
+
possible.
|