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,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Zuplo API Keys
|
|
3
|
+
sidebar_label: API Keys
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
The [Zuplo Developer API](https://dev.zuplo.com) allows you to programmatically
|
|
7
|
+
interact with Zuplo. To access the API, you need to create an API key.
|
|
8
|
+
|
|
9
|
+
API keys are used to authenticate requests to the Zuplo API. They're unique to
|
|
10
|
+
your account and should be kept secret. Don't share your API key in publicly
|
|
11
|
+
accessible areas such as GitHub repositories.
|
|
12
|
+
|
|
13
|
+
## Creating an API Key
|
|
14
|
+
|
|
15
|
+
To start, navigate to the account settings page by clicking your user icon in
|
|
16
|
+
the top right corner of the screen and selecting "Settings" from the dropdown
|
|
17
|
+
menu. Click the **API Keys** tab to view the API keys in your account that you
|
|
18
|
+
have access to.
|
|
19
|
+
|
|
20
|
+

|
|
21
|
+
|
|
22
|
+
:::note{title="Required Role"}
|
|
23
|
+
|
|
24
|
+
Account admins can view and manage all API keys in the account. Developers can
|
|
25
|
+
only view their own API keys. Members don't have access to API keys.
|
|
26
|
+
|
|
27
|
+
:::
|
|
28
|
+
|
|
29
|
+
Select the "Create API Key" button to create a new API key. You can enter a
|
|
30
|
+
label, expiration, and select the permissions for your new API key.
|
|
31
|
+
|
|
32
|
+
<EnterpriseFeature name="Fine-grained API Key Management" />
|
|
33
|
+
|
|
34
|
+

|
|
35
|
+
|
|
36
|
+
## Editing an API Key
|
|
37
|
+
|
|
38
|
+
API Keys are immutable once created. If you need to change the permissions you
|
|
39
|
+
will need to create a new API key.
|
|
40
|
+
|
|
41
|
+
## Deleting an API Key
|
|
42
|
+
|
|
43
|
+
API Keys can be deleted by selecting the delete button on the list page or by
|
|
44
|
+
opening the details page for the key and clicking the **Delete** button at the
|
|
45
|
+
bottom of the page.
|
|
46
|
+
|
|
47
|
+

|
|
48
|
+
|
|
49
|
+
## API Key Permissions
|
|
50
|
+
|
|
51
|
+
<EnterpriseFeature name="Fine-grained API Key Management" />
|
|
52
|
+
|
|
53
|
+
The following table outlines the permissions available to each API key.
|
|
54
|
+
|
|
55
|
+
### Project Access
|
|
56
|
+
|
|
57
|
+
API Keys can be scoped to all projects or specific projects in the account.
|
|
58
|
+
Selecting All Projects will also grant all project level permissions to that
|
|
59
|
+
key. If you want to customize the project level permissions, scope the key to
|
|
60
|
+
one or more projects.
|
|
61
|
+
|
|
62
|
+

|
|
63
|
+
|
|
64
|
+
### Environment Access
|
|
65
|
+
|
|
66
|
+
API Keys can be scoped to all environments or specific environments within the
|
|
67
|
+
projects they have access to. You can select one or more environments. For
|
|
68
|
+
example, if you want to restrict a key to only have access to only access
|
|
69
|
+
preview and development environments, you can select only those two
|
|
70
|
+
environments.
|
|
71
|
+
|
|
72
|
+

|
|
73
|
+
|
|
74
|
+
### Project permissions
|
|
75
|
+
|
|
76
|
+
When API Keys are scoped to specific projects, you can select the permissions
|
|
77
|
+
the key has in that project. For each permission select the level of access
|
|
78
|
+
desired from the drop down.
|
|
79
|
+
|
|
80
|
+

|
|
81
|
+
|
|
82
|
+
### Account permissions
|
|
83
|
+
|
|
84
|
+
API Keys can be granted account level permissions. These permissions are for
|
|
85
|
+
account level resources like custom domains, tunnels, etc. For each permission
|
|
86
|
+
select the level of access desired from the drop down.
|
|
87
|
+
|
|
88
|
+

|
|
89
|
+
|
|
90
|
+
When selecting permissions for API Key Buckets or Monetization Buckets, the
|
|
91
|
+
environment type scope is also applied. For example, if your key has access to
|
|
92
|
+
preview environments and has Read and Write access to API Key buckets, that key
|
|
93
|
+
can only read and write to API Key buckets in the preview environments - it
|
|
94
|
+
can't modify buckets used in production environments.
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Add Your Zuplo API to Backstage
|
|
3
|
+
sidebar_label: "Backstage Integration"
|
|
4
|
+
description:
|
|
5
|
+
Learn how to integrate your Zuplo API into Backstage by adding OpenAPI spec
|
|
6
|
+
handlers and configuring catalog entries.
|
|
7
|
+
tags:
|
|
8
|
+
- openapi
|
|
9
|
+
- backends
|
|
10
|
+
- integrations
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
In this guide, we'll walk you through the steps to add your Zuplo API to
|
|
14
|
+
[Backstage](https://backstage.io/).
|
|
15
|
+
|
|
16
|
+
## 1/ Add the OpenAPI Spec Handler
|
|
17
|
+
|
|
18
|
+
Backstage allows you to document
|
|
19
|
+
[API entities](https://backstage.io/docs/features/software-catalog/descriptor-format/#kind-api)
|
|
20
|
+
using an OpenAPI file. Although Zuplo is OpenAPI based, you can't directly use
|
|
21
|
+
your `routes.oas.json` file, as it's missing details about your API. Instead,
|
|
22
|
+
you will need to use the public-ready version of your spec, by adding an
|
|
23
|
+
[OpenAPI Spec Handler](../handlers/openapi.mdx).
|
|
24
|
+
|
|
25
|
+
Add a new route with the path `/openapi`, and select the `OpenAPI Spec Handler`
|
|
26
|
+
from the Request Handler selector. Save your changes and commit them to your
|
|
27
|
+
production branch. If you haven't already connected your Zuplo API to a GitHub
|
|
28
|
+
repository, you can follow
|
|
29
|
+
[these instructions](./step-4-deploying-to-the-edge.mdx) to do so. Once your
|
|
30
|
+
Zuplo API is redeployed, you should now be able to retrieve your public-ready
|
|
31
|
+
OpenAPI file by hitting `https://<your-prod-zuplo-api-domain>/openapi`.
|
|
32
|
+
|
|
33
|
+

|
|
34
|
+
|
|
35
|
+
## 2/ Add Zuplo to your `reading.allowed` list
|
|
36
|
+
|
|
37
|
+
Navigate to the `app-config.yaml` file in your backstage repository. You will
|
|
38
|
+
need to allow backstage to call Zuplo's domain to fetch the OpenAPI file. Add
|
|
39
|
+
the following code:
|
|
40
|
+
|
|
41
|
+
```yaml
|
|
42
|
+
backend:
|
|
43
|
+
reading:
|
|
44
|
+
allow:
|
|
45
|
+
- host: "*.zuplo.dev"
|
|
46
|
+
- host: "*.zuplo.app"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
If you are using a [custom domain](./custom-domains.mdx) on your Zuplo API - you
|
|
50
|
+
will need to add that domain in the list above.
|
|
51
|
+
|
|
52
|
+
## 3/ Add your Zuplo API to your Backstage Catalog
|
|
53
|
+
|
|
54
|
+
The most direct way to add your Zuplo API to backstage is by adding an entry to
|
|
55
|
+
your backstage service's `entities.yaml` file.
|
|
56
|
+
|
|
57
|
+
```yaml
|
|
58
|
+
apiVersion: backstage.io/v1alpha1
|
|
59
|
+
kind: API
|
|
60
|
+
metadata:
|
|
61
|
+
name: backstage-sample-api # Your API name
|
|
62
|
+
annotations:
|
|
63
|
+
# Your github project slug Ex. org/repo-name
|
|
64
|
+
github.com/project-slug: zuplo-samples/backstage-sample-api
|
|
65
|
+
spec:
|
|
66
|
+
type: openapi
|
|
67
|
+
lifecycle: experimental # Change to match your backstage project
|
|
68
|
+
owner: guests # Change to match your backstage project
|
|
69
|
+
system: examples # Change to match your backstage project
|
|
70
|
+
definition:
|
|
71
|
+
# Change to match your Zuplo API
|
|
72
|
+
$text: https://backstage-sample-api-main-821019a.zuplo.app/openapi
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Once you've added the API component, you must link it to an existing component.
|
|
76
|
+
For example, if your website provides APIs, you would add the following
|
|
77
|
+
|
|
78
|
+
```yaml
|
|
79
|
+
---
|
|
80
|
+
apiVersion: backstage.io/v1alpha1
|
|
81
|
+
kind: Component
|
|
82
|
+
metadata:
|
|
83
|
+
name: example-website
|
|
84
|
+
spec:
|
|
85
|
+
type: website
|
|
86
|
+
lifecycle: experimental
|
|
87
|
+
owner: guests
|
|
88
|
+
system: examples
|
|
89
|
+
providesApis: [backstage-sample-api] # This must match the metadata.name of the entity
|
|
90
|
+
---
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
You should now be able to see your API under the APIs tab in Backstage. If you
|
|
94
|
+
navigate to your API and click the **DEFINITION** tab - you can even preview
|
|
95
|
+
your OpenAPI spec.
|
|
96
|
+
|
|
97
|
+

|
|
98
|
+
|
|
99
|
+
Congratulations! You've successfully added your Zuplo API to Backstage. You can
|
|
100
|
+
repeat the steps above for all of your OpenAPI files.
|
|
101
|
+
|
|
102
|
+
## Optional: Reusing your API across Backstage catalogs
|
|
103
|
+
|
|
104
|
+
If you don't wish to directly add your Zuplo API to your backstage
|
|
105
|
+
`entities.yaml`, you can instead add the entity definition to your Zuplo
|
|
106
|
+
repository directly, and sync it with backstage using their GitHub integration.
|
|
107
|
+
You will still need to follow steps 1 & 2 from the guide above.
|
|
108
|
+
|
|
109
|
+
### 1/ Add `catalog-info.yaml` to your Zuplo Repository
|
|
110
|
+
|
|
111
|
+
In your Zuplo repository, add a file named `catalog-info.yaml` and fill it with
|
|
112
|
+
the following
|
|
113
|
+
|
|
114
|
+
```yaml
|
|
115
|
+
apiVersion: backstage.io/v1alpha1
|
|
116
|
+
kind: API
|
|
117
|
+
metadata:
|
|
118
|
+
name: backstage-sample-api # Your API name
|
|
119
|
+
annotations:
|
|
120
|
+
# Your github project slug Ex. org/repo-name
|
|
121
|
+
github.com/project-slug: zuplo-samples/backstage-sample-api
|
|
122
|
+
spec:
|
|
123
|
+
type: openapi
|
|
124
|
+
lifecycle: experimental # Change to match your backstage project
|
|
125
|
+
owner: guests # Change to match your backstage project
|
|
126
|
+
system: examples # Change to match your backstage project
|
|
127
|
+
definition:
|
|
128
|
+
# Change to match your Zuplo API
|
|
129
|
+
$text: https://backstage-sample-api-main-821019a.zuplo.app/openapi
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Save and commit this file.
|
|
133
|
+
|
|
134
|
+
### 2/ Add your API Component to Backstage
|
|
135
|
+
|
|
136
|
+
You can register existing APIs in your catalog directly from Backstage. Navigate
|
|
137
|
+
to the APIs tab, and click **REGISTER EXISTING API**.
|
|
138
|
+
|
|
139
|
+

|
|
140
|
+
|
|
141
|
+
When prompted for the component URL, enter the GitHub URL of your
|
|
142
|
+
`catalog-info.yaml` file (ex.
|
|
143
|
+
https://github.com/AdrianMachado/adrian-api/blob/main/catalog-info.yaml).
|
|
144
|
+
|
|
145
|
+

|
|
146
|
+
|
|
147
|
+
Complete registration of your API. If you run into issues connecting your
|
|
148
|
+
repository, see the [troubleshooting guide](#troubleshooting).
|
|
149
|
+
|
|
150
|
+
### 3/ Link the API to a component
|
|
151
|
+
|
|
152
|
+
You should now be able to see your API under the APIs tab in Backstage. If your
|
|
153
|
+
API is associated with another entity, you will need to link to that entity as
|
|
154
|
+
follows:
|
|
155
|
+
|
|
156
|
+
```yaml
|
|
157
|
+
apiVersion: backstage.io/v1alpha1
|
|
158
|
+
kind: System
|
|
159
|
+
metadata:
|
|
160
|
+
name: examples
|
|
161
|
+
spec:
|
|
162
|
+
owner: guests
|
|
163
|
+
---
|
|
164
|
+
apiVersion: backstage.io/v1alpha1
|
|
165
|
+
kind: Component
|
|
166
|
+
metadata:
|
|
167
|
+
name: example-website
|
|
168
|
+
spec:
|
|
169
|
+
type: website
|
|
170
|
+
lifecycle: experimental
|
|
171
|
+
owner: guests
|
|
172
|
+
system: examples
|
|
173
|
+
providesApis: [<YOUR_API_NAME>] # This must match the metadata.name from step 1
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## Troubleshooting
|
|
177
|
+
|
|
178
|
+
### Can't connect to GitHub
|
|
179
|
+
|
|
180
|
+
If your repository isn't public and you haven't already configured GitHub
|
|
181
|
+
authentication -
|
|
182
|
+
[follow the GitHub auth guide](https://backstage.io/docs/getting-started/config/authentication).
|
|
183
|
+
You will likely want to add sign-in support as a part of your Backstage setup,
|
|
184
|
+
to authenticate your users. In your `app-config.yaml` add:
|
|
185
|
+
|
|
186
|
+
```yaml
|
|
187
|
+
auth:
|
|
188
|
+
allowGuestAccess: true
|
|
189
|
+
environment: development
|
|
190
|
+
providers:
|
|
191
|
+
github:
|
|
192
|
+
development:
|
|
193
|
+
clientId: ${GITHUB_CLIENT_ID}
|
|
194
|
+
clientSecret: ${GITHUB_CLIENT_SECRET}
|
|
195
|
+
signIn:
|
|
196
|
+
resolvers:
|
|
197
|
+
- resolver: emailMatchingUserEntityProfileEmail
|
|
198
|
+
- resolver: usernameMatchingUserEntityName
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Additionally, in your `index.ts` file, add the following line before calling
|
|
202
|
+
`backend.start()`
|
|
203
|
+
|
|
204
|
+
```typescript
|
|
205
|
+
backend.add(import("@backstage/plugin-auth-backend-module-github-provider"));
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
This isn't well documented by Backstage - any issues should be directed
|
|
209
|
+
[to them](https://github.com/backstage/backstage/issues).
|
|
210
|
+
|
|
211
|
+
### Backstage hosted on Roadie.io
|
|
212
|
+
|
|
213
|
+
If you are using a managed version of Backstage from services like Roadie.io -
|
|
214
|
+
you will need to follow their
|
|
215
|
+
[official docs](https://roadie.io/docs/details/openapi-specs/) for OpenAPI. We
|
|
216
|
+
don't guarantee support for these platforms.
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Advanced Path Matching
|
|
3
|
+
sidebar_label: "Advanced Path Matching"
|
|
4
|
+
description:
|
|
5
|
+
Learn how to use URLPattern for advanced path matching with dynamic
|
|
6
|
+
parameters, regular expressions, and wildcards in Zuplo.
|
|
7
|
+
tags:
|
|
8
|
+
- openapi
|
|
9
|
+
- custom-code
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
By default, path matching in Zuplo uses the OpenAPI slug format, for example
|
|
13
|
+
`/pizza/{size}` where **size** would be a URL parameter, with the value passed
|
|
14
|
+
into the runtime as `request.params.size` property.
|
|
15
|
+
|
|
16
|
+
However, you can opt to use a more advanced path matching approach based on the
|
|
17
|
+
web standard
|
|
18
|
+
[URLPattern](https://developer.mozilla.org/en-US/docs/Web/API/URLPattern).
|
|
19
|
+
|
|
20
|
+
In order to use URLPattern matching you must set your route's
|
|
21
|
+
`x-zuplo-path.pathMode` to `url-pattern`.
|
|
22
|
+
|
|
23
|
+
The URLPattern matching mode can be set in the UI as shown below:
|
|
24
|
+
|
|
25
|
+

|
|
26
|
+
|
|
27
|
+
Alternatively, you can set it in your OpenAPI file as follows:
|
|
28
|
+
|
|
29
|
+
```json {4-6} title="config/routes.oas.json"
|
|
30
|
+
{
|
|
31
|
+
"paths": {
|
|
32
|
+
"/files/:path*": {
|
|
33
|
+
"x-zuplo-path": {
|
|
34
|
+
"pathMode": "url-pattern"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The most basic path is `/` which will simple match the root path. You can add
|
|
42
|
+
other static paths like `/foo` and `/foo/bar`
|
|
43
|
+
|
|
44
|
+
:::tip
|
|
45
|
+
|
|
46
|
+
Use [URLPattern.com](https://urlpattern.com) to test your URL Patterns in the
|
|
47
|
+
browser.
|
|
48
|
+
|
|
49
|
+
:::
|
|
50
|
+
|
|
51
|
+
## Trailing Slashes
|
|
52
|
+
|
|
53
|
+
In URLPattern, trailing slashes aren't accepted unless explicitly specified. For
|
|
54
|
+
example:
|
|
55
|
+
|
|
56
|
+
- `/cars/:manufacturer`
|
|
57
|
+
|
|
58
|
+
Would match `/cars/ford` but not `/cars/ford/`. If you want to support this you
|
|
59
|
+
must add a little regex to the end of your path, for example -
|
|
60
|
+
`/cars/:manufacturer{/}?`
|
|
61
|
+
|
|
62
|
+
Will match both example routes given above.
|
|
63
|
+
|
|
64
|
+
## Dynamic Paths
|
|
65
|
+
|
|
66
|
+
URLPattern supports dynamic matching including a feature that will parameterize
|
|
67
|
+
parts of the URL. For example:
|
|
68
|
+
|
|
69
|
+
Path: `/products/:productId/sizes/:size` will match the following paths
|
|
70
|
+
|
|
71
|
+
`/products/pizza/size/small` and set the `params` object on `request` to:
|
|
72
|
+
|
|
73
|
+
```json
|
|
74
|
+
{
|
|
75
|
+
"productId": "pizza",
|
|
76
|
+
"size": "small"
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
:::tip
|
|
81
|
+
|
|
82
|
+
Query-strings (or search parameters) won't affect path matching.
|
|
83
|
+
|
|
84
|
+
:::
|
|
85
|
+
|
|
86
|
+
## Regular Expressions and Wildcards
|
|
87
|
+
|
|
88
|
+
You can also use regular expressions in your paths. They must be contained in
|
|
89
|
+
`()`.
|
|
90
|
+
|
|
91
|
+
**Examples**
|
|
92
|
+
|
|
93
|
+
Path `/(.*)` will match anything.
|
|
94
|
+
|
|
95
|
+
:::note
|
|
96
|
+
|
|
97
|
+
This is a true wildcard route and can be used for custom 404s by making this the
|
|
98
|
+
last route in your OpenAPI file (and matching all methods).
|
|
99
|
+
|
|
100
|
+
:::
|
|
101
|
+
|
|
102
|
+
Path `/(a?b)` will match either `/ab` or `/b`.
|
|
103
|
+
|
|
104
|
+
Path `/main/(a|b)` will match `/main/a` or `/main/b`.
|
|
105
|
+
|
|
106
|
+
Path `/icon-(\d++).png` will match `/icon-1234.png` or any other series of
|
|
107
|
+
digits for 1234.
|
|
108
|
+
|
|
109
|
+
## Named groups
|
|
110
|
+
|
|
111
|
+
You can also name your regexp groups so that they appear as named parameters.
|
|
112
|
+
|
|
113
|
+
`name:(.*)` - will match a wildcard and call the parameter.
|
|
114
|
+
|
|
115
|
+
For example, the path `products/:productId/icons/icon-:imageIndex(\d+).png` will
|
|
116
|
+
match `/products/pizza/icons/icon-2.png` and produce a `request.params` object
|
|
117
|
+
as follows:
|
|
118
|
+
|
|
119
|
+
```json
|
|
120
|
+
{
|
|
121
|
+
"productId": "pizza",
|
|
122
|
+
"imageIndex": "2"
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
You can write a [URL Rewrite](../handlers/url-rewrite.mdx) that takes an
|
|
127
|
+
incoming wildcard and appends it to the backend request, for example Path:
|
|
128
|
+
`/foo/bar:path(/.*)` Incoming URL: `/foo/bar/apple/banana` URL Rewrite Pattern:
|
|
129
|
+
`https://example.com/x${params.path}` Outgoing URL:
|
|
130
|
+
`https://example.com/x/apple/banana`
|
|
131
|
+
|
|
132
|
+
## Not supported
|
|
133
|
+
|
|
134
|
+
Note that not all regex features are available, us of the following will either
|
|
135
|
+
be ignored or result in an error, including
|
|
136
|
+
|
|
137
|
+
- `(?:...)` - named matches
|
|
138
|
+
- `^` or `$` - start or end of string
|
|
139
|
+
- `[abc]` - character classes
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Managing API Keys in the Portal
|
|
3
|
+
sidebar_label: Managing Keys
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
API Key Consumers can be managed in the Zuplo Portal's **Services** section.
|
|
7
|
+
Each project is created with three API Key Buckets - one for production, one
|
|
8
|
+
shared by preview environments, and one for development (working copy)
|
|
9
|
+
environments.
|
|
10
|
+
|
|
11
|
+

|
|
12
|
+
|
|
13
|
+
You can view the buckets for each environment or for all environments using the
|
|
14
|
+
drop down.
|
|
15
|
+
|
|
16
|
+

|
|
17
|
+
|
|
18
|
+
To open the API Key Bucket for an environment, click the **Configure** button.
|
|
19
|
+
|
|
20
|
+

|
|
21
|
+
|
|
22
|
+
When you first open the API Key Bucket, you won't have any API Keys created.
|
|
23
|
+
|
|
24
|
+

|
|
25
|
+
|
|
26
|
+
To add a new API Key Consumer click the **Create Consumer** button and complete
|
|
27
|
+
the form.
|
|
28
|
+
|
|
29
|
+

|
|
30
|
+
|
|
31
|
+
Once a consumer is created, you can view or copy the API Key by clicking the
|
|
32
|
+
icons shown.
|
|
33
|
+
|
|
34
|
+

|
|
35
|
+
|
|
36
|
+
If you're using the Zuplo [Developer Portal](../dev-portal/introduction.mdx),
|
|
37
|
+
we've an integration with the API Key API that allows developers to access their
|
|
38
|
+
API keys, create new ones and delete them. To enable this, you must assign one
|
|
39
|
+
or more managers, via e-mail, to be a manager for your API Key Consumer. This is
|
|
40
|
+
optional if you aren't using the
|
|
41
|
+
[Developer Portal](../dev-portal/introduction.mdx).
|
|
42
|
+
|
|
43
|
+
You can assign managers in the Zuplo Portal (portal.zuplo.com) or via the API.
|
|
44
|
+
|
|
45
|
+
If you want to automatically create an API Key for a customer automatically when
|
|
46
|
+
they sign into your developer portal using Auth0,
|
|
47
|
+
[follow this tutorial](../dev-portal/dev-portal-create-consumer-on-auth.mdx).
|