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,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Hosting Options
|
|
3
|
+
sidebar_label: Overview
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Your place or ours; Zuplo has a variety of hosting options to suit your needs.
|
|
7
|
+
|
|
8
|
+
## 1. Managed Edge
|
|
9
|
+
|
|
10
|
+
Run your Zuplo projects in a serverless environment at the edge across 300+ data
|
|
11
|
+
centers worldwide. This is our most popular option and the default choice for
|
|
12
|
+
all Zuplo projects. If you use our self-serve product and pay with your credit
|
|
13
|
+
card, this is the option you are using.
|
|
14
|
+
|
|
15
|
+
Managed Edge is ideal for organizations that want:
|
|
16
|
+
|
|
17
|
+
- The simplest deployment experience with zero infrastructure management
|
|
18
|
+
- Global distribution and low-latency performance for users worldwide
|
|
19
|
+
- Automatic scaling to handle traffic spikes and high request volumes
|
|
20
|
+
- Enterprise-grade performance proven at scale (billions of requests per month,
|
|
21
|
+
millions of requests per second)
|
|
22
|
+
|
|
23
|
+
For more information, see the
|
|
24
|
+
[Managed Edge documentation](/docs/managed-edge/overview).
|
|
25
|
+
|
|
26
|
+
## 2. Managed Dedicated
|
|
27
|
+
|
|
28
|
+
We run your gateway in a dedicated, isolated VPC on the cloud provider of your
|
|
29
|
+
choice, including Akamai Connected Cloud, AWS, GCP, Azure, Equinix, TerraSwitch,
|
|
30
|
+
and more. You get to choose the regions where you want your service hosted to
|
|
31
|
+
meet any sovereignty or data residency concerns.
|
|
32
|
+
|
|
33
|
+
Managed Dedicated is ideal for organizations that need:
|
|
34
|
+
|
|
35
|
+
- To run your API Gateway on a specific cloud provider
|
|
36
|
+
- Custom networking configurations, such as restricting access to the public
|
|
37
|
+
internet
|
|
38
|
+
- Geographical deployment requirements where Managed Edge isn't feasible
|
|
39
|
+
- Regulatory or compliance requirements that necessitate a dedicated instance
|
|
40
|
+
- Private networking options like AWS PrivateLink, Azure Private Link, or GCP
|
|
41
|
+
Private Service Connect (available for both inbound and outbound connections)
|
|
42
|
+
|
|
43
|
+
For more information, see the
|
|
44
|
+
[Managed Dedicated documentation](/docs/dedicated/overview.mdx) or
|
|
45
|
+
[schedule some time to talk with us](https://book.zuplo.com).
|
|
46
|
+
|
|
47
|
+
## 3. Self-Hosted (On-Premises)
|
|
48
|
+
|
|
49
|
+
Run Zuplo on your own infrastructure in any cloud or private data center using
|
|
50
|
+
Kubernetes. Zuplo Self-Hosted runs exclusively on Kubernetes and can be deployed
|
|
51
|
+
to any Kubernetes environment. Deployment is simple and uses Helm charts.
|
|
52
|
+
|
|
53
|
+
Self-Hosted is available in two deployment models:
|
|
54
|
+
|
|
55
|
+
- **Hybrid Deployment**: Run the Zuplo API Gateway on your Kubernetes cluster
|
|
56
|
+
while leveraging shared services for features such as rate limiting
|
|
57
|
+
- **Full Self-Hosted**: Run all Zuplo components on your Kubernetes cluster for
|
|
58
|
+
complete control and isolation
|
|
59
|
+
|
|
60
|
+
Self-Hosted is ideal for organizations that need:
|
|
61
|
+
|
|
62
|
+
- Complete control over your infrastructure and deployment environment
|
|
63
|
+
- To run Zuplo in a private data center or on-premises Kubernetes environment
|
|
64
|
+
- To meet strict data sovereignty or regulatory requirements
|
|
65
|
+
- To integrate with existing on-premises systems and networks
|
|
66
|
+
- To customize the deployment architecture to match your specific requirements
|
|
67
|
+
|
|
68
|
+
For more information, see the
|
|
69
|
+
[Self-Hosted documentation](/docs/self-hosted/overview) or
|
|
70
|
+
[book a meeting](https://zuplo.com/meeting) with us.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Lazy Load Configuration
|
|
3
|
+
sidebar_label: "Lazy Load Configuration"
|
|
4
|
+
description:
|
|
5
|
+
Learn how to efficiently load and cache configuration data using
|
|
6
|
+
MemoryZoneReadThroughCache for optimal performance.
|
|
7
|
+
tags:
|
|
8
|
+
- caching
|
|
9
|
+
- custom-code
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
Often when working with a programmable gateway like Zuplo you'll want to load
|
|
13
|
+
some configuration and store it safely for fast access on future requests
|
|
14
|
+
without impacting latency.
|
|
15
|
+
|
|
16
|
+
The fastest place to store such information is in memory, but there can be
|
|
17
|
+
thousands of processes on Zuplo when you're at scale and sometimes those
|
|
18
|
+
processes aren't long lived.
|
|
19
|
+
|
|
20
|
+
The next fastest place is in [ZoneCache](../programmable-api/zone-cache.mdx)
|
|
21
|
+
which is a cache located in each data center. This requires an asynchronous
|
|
22
|
+
connection but is usually much faster than going back to your configuration data
|
|
23
|
+
store (often in a single location worldwide).
|
|
24
|
+
|
|
25
|
+
The
|
|
26
|
+
[MemoryZoneReadThroughCache](../programmable-api/memory-zone-read-through-cache.mdx)
|
|
27
|
+
offers the best of both worlds - it uses memory and zone cache in combination to
|
|
28
|
+
afford the lowest possible latency.
|
|
29
|
+
|
|
30
|
+
:::warning
|
|
31
|
+
|
|
32
|
+
Do take care not to load so much data into memory that you OOM (out-of-memory)
|
|
33
|
+
your process. Processes in Zuplo typically have ~120MB of memory to perform all
|
|
34
|
+
their work, including holding request bodies etc.
|
|
35
|
+
|
|
36
|
+
:::
|
|
37
|
+
|
|
38
|
+
Here's a simple example of the usage of MemoryZoneReadthroughCache being used to
|
|
39
|
+
store configuration data.
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
import {
|
|
43
|
+
ZuploContext,
|
|
44
|
+
ZuploRequest,
|
|
45
|
+
MemoryZoneReadThroughCache,
|
|
46
|
+
environment,
|
|
47
|
+
} from "@zuplo/runtime";
|
|
48
|
+
|
|
49
|
+
interface MyConfig {
|
|
50
|
+
data: Record<string, string>[];
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const cacheName = "CACHE_NAME";
|
|
54
|
+
const configKey = "CONFIG_KEY";
|
|
55
|
+
const cacheTtlSeconds = 3600;
|
|
56
|
+
|
|
57
|
+
async function loadConfig(context: ZuploContext) {
|
|
58
|
+
// We will type the cache to work with MyConfig type, but
|
|
59
|
+
// you can use `any` if there. Use the same cache name
|
|
60
|
+
// when trying to use the same cache store from different modules.
|
|
61
|
+
const cache = new MemoryZoneReadThroughCache<MyConfig>(cacheName, context);
|
|
62
|
+
let config = await cache.get(configKey);
|
|
63
|
+
|
|
64
|
+
if (!config) {
|
|
65
|
+
// This is where you load the configuration for your own backend API
|
|
66
|
+
const response = await fetch(`https://your-backend-config-api.com`, {
|
|
67
|
+
headers: {
|
|
68
|
+
authorization: `Bearer ${environment.CONFIG_API_KEY}`,
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
if (response.status !== 200) {
|
|
73
|
+
throw new Error(
|
|
74
|
+
`Error reading config ${response.status}: '${await response.text()}'`,
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
config = await response.json();
|
|
79
|
+
cache.put(configKey, config, cacheTtlSeconds);
|
|
80
|
+
}
|
|
81
|
+
return config;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export default async function (request: ZuploRequest, context: ZuploContext) {
|
|
85
|
+
const config = await loadConfig(context);
|
|
86
|
+
context.log.info(config);
|
|
87
|
+
// use the config in your pipeline or request handler etc
|
|
88
|
+
// ...
|
|
89
|
+
// ...
|
|
90
|
+
return request;
|
|
91
|
+
}
|
|
92
|
+
```
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Zuplo Platform Limits
|
|
3
|
+
sidebar_label: Platform Limits
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
This document describes the limits that apply to your Zuplo account.
|
|
7
|
+
|
|
8
|
+
:::tip{title="Managed Dedicated Environments"}
|
|
9
|
+
|
|
10
|
+
The limits in this document are primarily for Zuplo's managed edge environment .
|
|
11
|
+
For managed dedicated environments and enterprise agreements, most limits are
|
|
12
|
+
fully customizable to meet your specific requirements.
|
|
13
|
+
|
|
14
|
+
:::
|
|
15
|
+
|
|
16
|
+
## General
|
|
17
|
+
|
|
18
|
+
Below are general limits that apply to deployments on Zuplo's managed edge
|
|
19
|
+
environments.
|
|
20
|
+
|
|
21
|
+
| Feature | Description | Limit |
|
|
22
|
+
| ----------------------------- | --------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
23
|
+
| Environment Variables | The number of environment variables you can create | Free/Builder Plans: 50 variables per environment, Other Plans: 100 per environment |
|
|
24
|
+
| Environment Variable size | The size of an environment variable | ~5kb per variable |
|
|
25
|
+
| Request Duration | The maximum time a request can take to complete | Free/Builder Plans: 30 seconds, Other Plans: No Limit |
|
|
26
|
+
| Memory | The maximum memory available when processing a request | Free/Builder Plans: 128mb, Enterprise Plans: Custom |
|
|
27
|
+
| Requests per second | The maximum number of requests per second | Development Environments (Working Copy): 1000 requests per minute. No Limit outside of plan monthly limit |
|
|
28
|
+
| Log Size | The size of a log entry | Zuplo Portal live logs are limited to ~10kB. Excess will be truncated. For third-party logging providers, the value depends on the provider. Zuplo imposes no limit. |
|
|
29
|
+
| Request Body Size | The maximum size of an incoming request body | 500 MB |
|
|
30
|
+
| Response Headers | The total size of all response headers | 128 KB |
|
|
31
|
+
| Subrequests | The maximum number of subrequests per request | 1,000 |
|
|
32
|
+
| Simultaneous Open Connections | The maximum number of simultaneous open connections per request | 6 |
|
|
33
|
+
|
|
34
|
+
## HTTP connections
|
|
35
|
+
|
|
36
|
+
In Zuplo's managed edge environment, HTTP connections have timeouts to ensure
|
|
37
|
+
efficient use of resources. These timeouts apply to both incoming connections
|
|
38
|
+
from clients to Zuplo and outgoing connections from Zuplo to your origin
|
|
39
|
+
servers.
|
|
40
|
+
|
|
41
|
+
## Between client and Zuplo
|
|
42
|
+
|
|
43
|
+
| Type | Limit (seconds) | HTTP status code at limit |
|
|
44
|
+
| ------------------------------ | --------------- | ------------------------- |
|
|
45
|
+
| Connection Keep-Alive HTTP/1.1 | 400 | TCP connection closed |
|
|
46
|
+
| Connection Idle HTTP/2 | 400 | TCP connection closed |
|
|
47
|
+
|
|
48
|
+
## Between Zuplo and origin server
|
|
49
|
+
|
|
50
|
+
| Type | Limit (seconds) | HTTP status code at limit |
|
|
51
|
+
| ----------------------- | --------------- | ------------------------- |
|
|
52
|
+
| Complete TCP Connection | 19 | 522 |
|
|
53
|
+
| TCP ACK Timeout | 90 | 522 |
|
|
54
|
+
| TCP Keep-Alive Interval | 30 | 520 |
|
|
55
|
+
| Proxy Idle Timeout | 900 | 520 |
|
|
56
|
+
| Proxy Read Timeout | 180 | 524 |
|
|
57
|
+
| Proxy Write Timeout | 30 | 524 |
|
|
58
|
+
| HTTP/2 Pings to Origin | Off | - |
|
|
59
|
+
| HTTP/2 Connection Idle | 900 | No |
|
|
60
|
+
|
|
61
|
+
## API keys
|
|
62
|
+
|
|
63
|
+
### Consumers & keys
|
|
64
|
+
|
|
65
|
+
Zuplo doesn't impose a hard cap on the number of consumers or keys you can
|
|
66
|
+
create. However, usage of the service is subject to "fair use" policies meaning
|
|
67
|
+
if your usage is deemed excessive we may limit usage. If you require specific
|
|
68
|
+
limits please contact sales to discuss pricing plans.
|
|
69
|
+
|
|
70
|
+
Our general guidelines for what constitutes fair use are as follows:
|
|
71
|
+
|
|
72
|
+
- Free Plan: 500 consumers or keys
|
|
73
|
+
- Builder Plan: 1,000 consumers or keys
|
|
74
|
+
- Enterprise Plan: Custom
|
|
75
|
+
|
|
76
|
+
### Consumer metadata and tags
|
|
77
|
+
|
|
78
|
+
- Consumer `metadata` - The JSON encoded object can't be larger than 1kb.
|
|
79
|
+
- Consumer `tags` - Each consumer is limited to 5 key value pair tags.
|
|
80
|
+
|
|
81
|
+
### API key management operations
|
|
82
|
+
|
|
83
|
+
Requests to API key management operations on the Zuplo Developer API
|
|
84
|
+
(dev.zuplo.com) are limited to 100 requests per second.
|
|
85
|
+
|
|
86
|
+
### API key authorizations
|
|
87
|
+
|
|
88
|
+
One API key authorization can be made per request. Enterprise plans can request
|
|
89
|
+
custom limits to allow multiple API key authorizations per request.
|
|
90
|
+
|
|
91
|
+
### Cache
|
|
92
|
+
|
|
93
|
+
The [cache API](../programmable-api/cache.mdx) and abstractions on top of it
|
|
94
|
+
such as [ZoneCache](../programmable-api/zone-cache.mdx) have the following
|
|
95
|
+
limits:
|
|
96
|
+
|
|
97
|
+
- Maximum size per cached item: 512 MB
|
|
98
|
+
- Maximum cache calls per request: 1000
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Debugging Locally"
|
|
3
|
+
sidebar_label: Debugging
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You can debug your local gateway through VS Code using its TypeScript debugger.
|
|
7
|
+
Features such as breakpoints, stepping through the code, variable inspection,
|
|
8
|
+
etc., will be available to help you debug your gateway.
|
|
9
|
+
|
|
10
|
+
1. Create a `.vscode/launch.json` file with the following content. If you
|
|
11
|
+
already have an older/existing `.vscode/launch.json` file, you can add the
|
|
12
|
+
section in the curly braces to the configurations array. Take note of the
|
|
13
|
+
port value since that's the value you will specify next.
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"configurations": [
|
|
18
|
+
{
|
|
19
|
+
"name": "Zuplo Gateway",
|
|
20
|
+
"type": "node",
|
|
21
|
+
"request": "attach",
|
|
22
|
+
"restart": true,
|
|
23
|
+
"port": 9229
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
2. Start the gateway in debug mode using the port that you specified above.
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npx zuplo dev --debug-port 9229
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
3. Switch to the View > Run and Debug in VS Code. You can now attach the
|
|
36
|
+
debugger by selecting **Zuplo Gateway** and clicking the green triangle.
|
|
37
|
+
|
|
38
|
+

|
|
39
|
+
|
|
40
|
+
## Limitations
|
|
41
|
+
|
|
42
|
+
- We only support stepping through your own module code. System code provided by
|
|
43
|
+
Zuplo are minified and stripped of source maps, so you won't be able to step
|
|
44
|
+
through them.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Configuring Environment Variables Locally"
|
|
3
|
+
sidebar_label: Environment variables
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
For security reasons, your local development doesn't have access to the
|
|
7
|
+
environment variables that you have configured on the Zuplo Portal. Instead,
|
|
8
|
+
your local Zuplo API Gateway will load environment variables from a .env file.
|
|
9
|
+
|
|
10
|
+
1. Create a .env file in the root of your project.
|
|
11
|
+
2. Follow the following format
|
|
12
|
+
|
|
13
|
+
:::warning
|
|
14
|
+
|
|
15
|
+
As the `.env` file could contain sensitive information, it shouldn't be
|
|
16
|
+
committed to your version system. Consider adding .env to your .gitignore file.
|
|
17
|
+
|
|
18
|
+
:::
|
|
19
|
+
|
|
20
|
+
```txt
|
|
21
|
+
KEY1=VALUE1
|
|
22
|
+
KEY2=VALUE2
|
|
23
|
+
```
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Installing Packages"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
You can install packages from npm to use in your Zuplo Gateway. This can help
|
|
6
|
+
with code completion and hover tips.
|
|
7
|
+
|
|
8
|
+
However, bear in mind, these might not work out-of-the-box in the cloud (for
|
|
9
|
+
example, working-copy and edge environments), as Zuplo for security reasons
|
|
10
|
+
doesn't allow all packages to be installed. Consult
|
|
11
|
+
[Node Modules](../programmable-api/node-modules.mdx) for the official list of
|
|
12
|
+
supported modules.
|
|
13
|
+
|
|
14
|
+
There are workarounds though. If you need a package to be available, you can try
|
|
15
|
+
to _bundle_ it. This will bypass the `npm install` step since the module is
|
|
16
|
+
already bundled and available. We've an example at
|
|
17
|
+
[Custom Modules](https://github.com/zuplo/zuplo/tree/main/examples/custom-module)
|
|
18
|
+
that you can follow.
|
|
19
|
+
|
|
20
|
+
We're looking into ways to simplify bringing in your own modules. We're
|
|
21
|
+
proceeding carefully as we want to ensure that we can provide a secure and
|
|
22
|
+
reliable experience for our users. Please contact
|
|
23
|
+
[Zuplo support](mailto:support@zuplo.com) if you need more assistance.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Routes Designer"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
The Routes Designer is a visual tool that allows you to create and edit routes,
|
|
6
|
+
as well as add [policies](../policies), for your Zuplo Gateway without having to
|
|
7
|
+
manually edit the OpenAPI `routes.oas.json` file manually.
|
|
8
|
+
|
|
9
|
+
When you run `npm run dev`, the Routes Designer is automatically started on
|
|
10
|
+
port 9100. You can access it by visiting http://localhost:9100 in your browser.
|
|
11
|
+
|
|
12
|
+
```sh
|
|
13
|
+
$ npm run dev
|
|
14
|
+
|
|
15
|
+
Started local development setup
|
|
16
|
+
Ctrl+C to exit
|
|
17
|
+
|
|
18
|
+
🚀 Zuplo Gateway: http://localhost:9000
|
|
19
|
+
📘 Route Designer: http://localhost:9100 # <-- Your local route designer
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+

|
|
23
|
+
|
|
24
|
+
If you are using VS Code, you can open it in the Simple Browser extension to see
|
|
25
|
+
it side-by-side as follows.
|
|
26
|
+
|
|
27
|
+

|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Connecting to Zuplo Services Locally"
|
|
3
|
+
sidebar_label: Zuplo Services
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
To use Zuplo services such as API keys and rate limiting locally, you must have
|
|
7
|
+
a Zuplo account and an existing project. You will be using the connections from
|
|
8
|
+
your remote gateway.
|
|
9
|
+
|
|
10
|
+
1. Run `npx zuplo link` to bring in relevant information from your Zuplo account
|
|
11
|
+
and project. Follow the prompt to select the right environment. For local
|
|
12
|
+
development, we recommend selecting the development environment.
|
|
13
|
+
2. At this point, you will see a file called `.env.zuplo` containing some
|
|
14
|
+
information about the account, project, and environment that your local
|
|
15
|
+
gateway is linked to.
|
|
16
|
+
|
|
17
|
+
:::warning
|
|
18
|
+
|
|
19
|
+
As the .env.zuplo file could contain sensitive information, it shouldn't be
|
|
20
|
+
committed to your version system. Consider adding .env.zuplo to your .gitignore
|
|
21
|
+
file.
|
|
22
|
+
|
|
23
|
+
:::
|
|
24
|
+
|
|
25
|
+
4. You can run `npm run dev` as normal. The Zuplo CLI will automatically pick up
|
|
26
|
+
the relevant services from the `.env.zuplo` file.
|
|
27
|
+
5. If you want to switch environments (for example, from development to
|
|
28
|
+
preview), run `npx zuplo link` again and select the new environment. You can
|
|
29
|
+
see which environment you are connected to by looking at the .env.zuplo file.
|
|
30
|
+
|
|
31
|
+
```bash title="Contents of .env.zuplo "
|
|
32
|
+
# This file is auto-generated from zuplo link. Please don't edit it manually.
|
|
33
|
+
# It will be auto-generated afresh the next time you run zuplo link.
|
|
34
|
+
# If you wish to add your own environment variables, create a separate .env file.
|
|
35
|
+
|
|
36
|
+
ZUPLO_ACCOUNT_NAME=your-account-name
|
|
37
|
+
ZUPLO_PROJECT_NAME=your-project-name
|
|
38
|
+
ZUPLO_ENVIRONMENT_TYPE=your-environment
|
|
39
|
+
|
|
40
|
+
```
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Troubleshooting"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Changing the port numbers
|
|
6
|
+
|
|
7
|
+
By default the Zuplo local server runs on port 9000 and route designer runs on
|
|
8
|
+
port 9100. To change the port number, you can call
|
|
9
|
+
|
|
10
|
+
```sh
|
|
11
|
+
npx zuplo dev --port <port number> --editor-port <editor port number>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Certificates Errors
|
|
15
|
+
|
|
16
|
+
When running Zuplo locally you may want to call a service with a self-signed
|
|
17
|
+
certificate. By default this isn't supported - we recommend using signed/trusted
|
|
18
|
+
certificates in deployed environments. However, for local development you can
|
|
19
|
+
ignore certificate errors by adding the `--unsafely-ignore-certificate-errors`
|
|
20
|
+
flag on the `zuplo dev` command.
|
|
21
|
+
|
|
22
|
+
Run your development server with the following command:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npx zuplo dev --unsafely-ignore-certificate-errors
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
If you want to update your `package.json` to always allow self-signed
|
|
29
|
+
certificates, you can add the following script:
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"scripts": {
|
|
34
|
+
"dev": "zuplo dev --unsafely-ignore-certificate-errors"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Updating the Zuplo CLI
|
|
40
|
+
|
|
41
|
+
To update the CLI, run the following command in your project directory.
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npm install zuplo@latest
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
You must include the @latest to ensure you are getting the latest. Otherwise,
|
|
48
|
+
you could have an older version cached locally on your machine.
|
|
49
|
+
|
|
50
|
+
You can compare if you have the latest version by looking at the version number
|
|
51
|
+
on [NPM](https://www.npmjs.com/package/zuplo?activeTab=versions)
|
|
52
|
+
|
|
53
|
+
## Getting help
|
|
54
|
+
|
|
55
|
+
Please reach out to support@zuplo.com or join our
|
|
56
|
+
[Discord server](https://discord.gg/8QbEjr2MgZ).
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Running your Zuplo Gateway locally
|
|
3
|
+
sidebar_label: Quickstart
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You can configure and run your Zuplo Gateway locally on your machine for
|
|
7
|
+
development purposes using your favorite code editor.
|
|
8
|
+
|
|
9
|
+
## Requirements
|
|
10
|
+
|
|
11
|
+
- [Node.js](https://nodejs.org/en/download) 20.0.0 or higher
|
|
12
|
+
- Linux, Mac OS X, Windows, or Windows Subsystem for Linux (WSL)
|
|
13
|
+
|
|
14
|
+
## Getting Started
|
|
15
|
+
|
|
16
|
+
### Create a new project from scratch
|
|
17
|
+
|
|
18
|
+
<Stepper>
|
|
19
|
+
|
|
20
|
+
1. Create a new project using
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npx create-zuplo-api@latest
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
```bash title="Expected output: "
|
|
27
|
+
cd <your-new-project-directory>
|
|
28
|
+
npm run dev
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
1. Start your local gateway using `npm run dev`.
|
|
32
|
+
1. Use the [local Route Designer](./local-development-routes-designer.mdx) to
|
|
33
|
+
create your first route.
|
|
34
|
+
|
|
35
|
+
</Stepper>
|
|
36
|
+
|
|
37
|
+
### Import your existing project
|
|
38
|
+
|
|
39
|
+
If you have been using Zuplo using the _Zuplo Web Portal_, you can import your
|
|
40
|
+
project into your local machine.
|
|
41
|
+
|
|
42
|
+
<Stepper>
|
|
43
|
+
|
|
44
|
+
1. Connect your project to a Git repository from the _Zuplo Web Portal_.
|
|
45
|
+

|
|
46
|
+
1. Clone your project from your Git provider to your local machine.
|
|
47
|
+
1. Install the necessary dependencies:
|
|
48
|
+
|
|
49
|
+
```sh
|
|
50
|
+
npm install
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
1. Start your Zuplo Gateway locally;
|
|
54
|
+
|
|
55
|
+
```sh
|
|
56
|
+
npm run dev
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
1. Use the [local Route Designer](./local-development-routes-designer.mdx) to
|
|
60
|
+
create your first route.
|
|
61
|
+
|
|
62
|
+
</Stepper>
|
|
63
|
+
|
|
64
|
+
## Limitations
|
|
65
|
+
|
|
66
|
+
While convenient and powerful, not all features of Zuplo are supported while
|
|
67
|
+
developing locally. The following features are currently not supported when
|
|
68
|
+
running your Zuplo Gateway locally:
|
|
69
|
+
|
|
70
|
+
- Analytics
|
|
71
|
+
|
|
72
|
+
## Next steps
|
|
73
|
+
|
|
74
|
+
- Use the [local Route Designer](./local-development-routes-designer.mdx) to
|
|
75
|
+
create your first route.
|
|
76
|
+
- Install [packages](../programmable-api/node-modules.mdx) to extend your Zuplo
|
|
77
|
+
Gateway.
|
|
78
|
+
- Use the [API keys](./local-development-services.mdx) service locally to secure
|
|
79
|
+
your routes.
|
|
80
|
+
- Add [environment variables](./local-development-env-variables.mdx) to your
|
|
81
|
+
project.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: AWS CloudWatch Plugin
|
|
3
|
+
sidebar_label: AWS CloudWatch Logging
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
The AWS CloudWatch Log plugin enables pushing logs to AWS CloudWatch.
|
|
7
|
+
|
|
8
|
+
<EnterpriseFeature name="Custom logging" />
|
|
9
|
+
|
|
10
|
+
## Setup
|
|
11
|
+
|
|
12
|
+
To add the AWS CloudWatch logging plugin to your Zuplo project, add the
|
|
13
|
+
following code to your `zuplo.runtime.ts` file.
|
|
14
|
+
|
|
15
|
+
```ts title="modules/zuplo.runtime.ts"
|
|
16
|
+
import {
|
|
17
|
+
RuntimeExtensions,
|
|
18
|
+
AWSLoggingPlugin,
|
|
19
|
+
environment,
|
|
20
|
+
} from "@zuplo/runtime";
|
|
21
|
+
|
|
22
|
+
export function runtimeInit(runtime: RuntimeExtensions) {
|
|
23
|
+
runtime.addPlugin(
|
|
24
|
+
new AWSLoggingPlugin({
|
|
25
|
+
region: environment.AWS_REGION,
|
|
26
|
+
accessKeyId: environment.AWS_ACCESS_KEY_ID,
|
|
27
|
+
secretAccessKey: environment.AWS_SECRET_ACCESS_KEY,
|
|
28
|
+
logGroupName: "/aws/zuplo/api",
|
|
29
|
+
logStreamName: "production",
|
|
30
|
+
}),
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Configuration Options
|
|
36
|
+
|
|
37
|
+
The `AWSLoggingPlugin` constructor accepts an options object with the following
|
|
38
|
+
properties:
|
|
39
|
+
|
|
40
|
+
- `region` - (required) AWS region where your CloudWatch logs are stored (for
|
|
41
|
+
example, "us-east-1")
|
|
42
|
+
- `accessKeyId` - (required) AWS access key ID for authentication
|
|
43
|
+
- `secretAccessKey` - (required) AWS secret access key for authentication
|
|
44
|
+
- `logGroupName` - (required) CloudWatch log group name
|
|
45
|
+
- `logStreamName` - (required) CloudWatch log stream name
|
|
46
|
+
- `fields` - (optional) Custom fields to include in each log entry. Can contain
|
|
47
|
+
string, number, or boolean values
|
|
48
|
+
|
|
49
|
+
### Custom Fields
|
|
50
|
+
|
|
51
|
+
Any custom fields you want to include in the log entry can be added to the
|
|
52
|
+
`fields` property. These values will be appended to every log entry.
|
|
53
|
+
|
|
54
|
+
```ts
|
|
55
|
+
new AWSLoggingPlugin({
|
|
56
|
+
region: environment.AWS_REGION,
|
|
57
|
+
accessKeyId: environment.AWS_ACCESS_KEY_ID,
|
|
58
|
+
secretAccessKey: environment.AWS_SECRET_ACCESS_KEY,
|
|
59
|
+
logGroupName: "/aws/zuplo/api",
|
|
60
|
+
logStreamName: "production",
|
|
61
|
+
fields: {
|
|
62
|
+
field1: "value1",
|
|
63
|
+
field2: "value2",
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Default Fields
|
|
69
|
+
|
|
70
|
+
Every log entry will include the following fields (in camelCase format):
|
|
71
|
+
|
|
72
|
+
- `timestamp` - The time the log was created (ISO 8601 format)
|
|
73
|
+
- `severity` - The log level (for example, `ERROR`, `INFO`, `DEBUG`, `WARN`)
|
|
74
|
+
- `data` - The log message and any additional data
|
|
75
|
+
- `environmentType` - Where the Zuplo API is running. Values are `edge`,
|
|
76
|
+
`working-copy`, or `local`
|
|
77
|
+
- `environmentStage` - The deployment stage: `working-copy`, `preview`, or
|
|
78
|
+
`production`
|
|
79
|
+
- `requestId` - The UUID of the request (the value of the `zp-rid` header)
|
|
80
|
+
- `atomicCounter` - An atomic counter used to order logs with identical
|
|
81
|
+
timestamps
|
|
82
|
+
- `rayId` - The network provider identifier (for example, Cloudflare Ray ID) of
|
|
83
|
+
the request
|