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,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Managed Dedicated: Federated Gateways"
|
|
3
|
+
sidebar_label: Federated Gateways
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
:::note{title="Beta Feature"}
|
|
7
|
+
|
|
8
|
+
This feature is in Beta - please use with care and provide feedback to the team
|
|
9
|
+
if you encounter any issues.
|
|
10
|
+
|
|
11
|
+
:::
|
|
12
|
+
|
|
13
|
+
<EnterpriseFeature name="Federated Gateways" />
|
|
14
|
+
|
|
15
|
+
With a managed dedicated Zuplo instance you can create a federated gateway that
|
|
16
|
+
allows you to connect multiple Zuplo projects together. This is useful for
|
|
17
|
+
creating a single API Gateway that can route requests to multiple backend
|
|
18
|
+
services, each running on its own Zuplo instance.
|
|
19
|
+
|
|
20
|
+
## Reasons to Use Federated Gateways
|
|
21
|
+
|
|
22
|
+
Federated gateways are useful for several reasons:
|
|
23
|
+
|
|
24
|
+
- **Separation of Product Areas**: Depending on your organizational structure,
|
|
25
|
+
you may want to separate different product areas into their own Zuplo
|
|
26
|
+
projects. This allows teams to work independently while still being able to
|
|
27
|
+
route requests through a single gateway. Each team can manage their own
|
|
28
|
+
portion of the API without affecting others. Each team creates its own Zuplo
|
|
29
|
+
Project with its own git repository, environment variables, etc.
|
|
30
|
+
- **Versioning**: You can use federated gateways to manage different versions of
|
|
31
|
+
your API. For example, if you wanted to run a new version of your API
|
|
32
|
+
alongside the old one and route requests to specific versions based on user or
|
|
33
|
+
other context you can keep different versions in separate Zuplo projects.
|
|
34
|
+
- **Risk Minimization**: By separating different parts of your API into
|
|
35
|
+
different Zuplo projects, you can reduce the risk of causing inadvertent
|
|
36
|
+
changes to other parts of the API. This can be especially useful if your API
|
|
37
|
+
is particularly large or complex.
|
|
38
|
+
|
|
39
|
+
## How to Create a Federated Gateway
|
|
40
|
+
|
|
41
|
+
Managed dedicated Zuplo environments can call other Zuplo environments deployed
|
|
42
|
+
in the same instance. To make a call to another Zuplo environment, you simply
|
|
43
|
+
make a normal HTTP request to the other environment using the URL protocol
|
|
44
|
+
`local` with the environment name. For example, if your environment is named
|
|
45
|
+
`my-api-main-2s93j2`, then you would make a request to
|
|
46
|
+
`local://my-api-main-2s93j2`.
|
|
47
|
+
|
|
48
|
+
You can use most Zuplo request handlers to make these requests (the Lambda
|
|
49
|
+
handler isn't supported).
|
|
50
|
+
|
|
51
|
+
For example, to create a federated gateway that forwards requests to another
|
|
52
|
+
Zuplo environment, you can use the URL Forward handler. Here is an example
|
|
53
|
+
configuration for a route that forwards requests to another Zuplo environment:
|
|
54
|
+
|
|
55
|
+
```json
|
|
56
|
+
{
|
|
57
|
+
"handler": {
|
|
58
|
+
"export": "urlForwardHandler",
|
|
59
|
+
"module": "$import(@zuplo/runtime)",
|
|
60
|
+
"options": {
|
|
61
|
+
"baseUrl": "local://my-api-main-2s93j2"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
:::caution
|
|
68
|
+
|
|
69
|
+
Currently, federated gateways are still exposed externally, so you should ensure
|
|
70
|
+
that you have proper authentication and authorization in place to prevent
|
|
71
|
+
unauthorized access to your federated gateway.
|
|
72
|
+
|
|
73
|
+
This can be done using the standard Zuplo authentication and authorization
|
|
74
|
+
mechanisms, such as API keys, JWTs, or OAuth2.
|
|
75
|
+
|
|
76
|
+
Soon you will be able to restrict access to federated gateways, which will make
|
|
77
|
+
it easier to secure your federated gateway without needing to implement
|
|
78
|
+
additional authentication mechanisms.
|
|
79
|
+
|
|
80
|
+
:::
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Managed Dedicated: Networking"
|
|
3
|
+
sidebar_label: Networking
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Your dedicated managed instance of Zuplo will be deployed to the cloud provider
|
|
7
|
+
of your choice. Network connectivity can be customized to meet your specific
|
|
8
|
+
requirements.
|
|
9
|
+
|
|
10
|
+
Common configurations include:
|
|
11
|
+
|
|
12
|
+
- Using Zuplo as the public ingress to your API and using network connectivity
|
|
13
|
+
such as AWS Transit Gateway, PrivateLink, or VPC Peering to connect to your
|
|
14
|
+
backend services.
|
|
15
|
+
- Restricting access to the public internet by configuring your API Gateway to
|
|
16
|
+
only accept traffic from specific IP ranges or VPCs allowing you to put WAFs,
|
|
17
|
+
IDS/IPS, or other security appliances in front of your API Gateway.
|
|
18
|
+
- Multiple dedicated managed instances of Zuplo can be deployed across multiple
|
|
19
|
+
regions to provide high availability and disaster recovery.
|
|
20
|
+
|
|
21
|
+
To discuss your networking requirements, please contact your account manager.
|
|
22
|
+
|
|
23
|
+
## Zuplo Ingress to Customer VPC
|
|
24
|
+
|
|
25
|
+
The default setup for dedicated managed Zuplo is to use your Zuplo API Gateway
|
|
26
|
+
as the public ingress to your API. This is the simplest setup and allows Zuplo
|
|
27
|
+
to manage things like SSL certificates on your behalf.
|
|
28
|
+
|
|
29
|
+
In this setup your VPC isn't exposed to the public internet at all. Instead,
|
|
30
|
+
your Zuplo API Gateway will use a network connection such as AWS Transit
|
|
31
|
+
Gateway, PrivateLink, or VPC Peering to connect to your backend services.
|
|
32
|
+
|
|
33
|
+
<Diagram height="h-48">
|
|
34
|
+
<DiagramNode id="client">Client</DiagramNode>
|
|
35
|
+
<DiagramGroup id="dedicated-vpc" label="Dedicated VPC">
|
|
36
|
+
<DiagramNode id="gateway" variant="zuplo">
|
|
37
|
+
Zuplo API Gateway
|
|
38
|
+
</DiagramNode>
|
|
39
|
+
</DiagramGroup>
|
|
40
|
+
<DiagramGroup id="customer-vpc" label="Customer VPC">
|
|
41
|
+
<DiagramNode id="backend">Backend</DiagramNode>
|
|
42
|
+
</DiagramGroup>
|
|
43
|
+
<DiagramEdge from="client" to="gateway" />
|
|
44
|
+
<DiagramEdge from="gateway" to="backend" />
|
|
45
|
+
</Diagram>
|
|
46
|
+
|
|
47
|
+
## Customer VPC Ingress to Zuplo API Gateway
|
|
48
|
+
|
|
49
|
+
If you have custom networking requirements, such as using a static IP address
|
|
50
|
+
you already own, or if you want to run services such as WAFs, IDS/IPS, or other
|
|
51
|
+
security products in front of your API Gateway, Zuplo can be configured to
|
|
52
|
+
accept traffic from your VPC then route it to your backend. Your backend could
|
|
53
|
+
be in the same VPC as your ingress or in another VPC.
|
|
54
|
+
|
|
55
|
+
<Diagram height="h-64">
|
|
56
|
+
<DiagramNode id="client">Client</DiagramNode>
|
|
57
|
+
<DiagramGroup id="customer-vpc" label="Customer VPC">
|
|
58
|
+
<DiagramNode id="waf">WAF</DiagramNode>
|
|
59
|
+
<DiagramNode id="backend">Backend</DiagramNode>
|
|
60
|
+
</DiagramGroup>
|
|
61
|
+
<DiagramGroup id="dedicated-vpc" label="Dedicated VPC">
|
|
62
|
+
<DiagramNode id="gateway" variant="zuplo">
|
|
63
|
+
Zuplo API Gateway
|
|
64
|
+
</DiagramNode>
|
|
65
|
+
</DiagramGroup>
|
|
66
|
+
<DiagramEdge from="client" to="waf" />
|
|
67
|
+
<DiagramEdge from="waf" to="gateway" />
|
|
68
|
+
<DiagramEdge from="gateway" to="backend" fromSide="left" toSide="right" />
|
|
69
|
+
</Diagram>
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Zuplo Managed Dedicated
|
|
3
|
+
sidebar_label: Overview
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Zuplo Managed Dedicated is a deployment model where Zuplo runs one or more
|
|
7
|
+
instances of the Zuplo platform on the hosting provider of your choice. This
|
|
8
|
+
deployment model is ideal for organizations that require custom networking
|
|
9
|
+
configurations or have strict security or compliance requirements.
|
|
10
|
+
|
|
11
|
+
Managed Dedicated hosting might be the right choice for you if you need:
|
|
12
|
+
|
|
13
|
+
- To run your API Gateway on the cloud provider of your choice
|
|
14
|
+
- To customize networking configurations, such as restricting access to the
|
|
15
|
+
public internet
|
|
16
|
+
- Have geographical deployment requirements where the
|
|
17
|
+
[Managed Edge](../articles/hosting-options.mdx#1-managed-edge) hosting option
|
|
18
|
+
isn't feasible
|
|
19
|
+
- Have regulatory or compliance requirements that necessitate a dedicated
|
|
20
|
+
instance of Zuplo
|
|
21
|
+
- To meet data sovereignty requirements by choosing specific regions for your
|
|
22
|
+
service hosting
|
|
23
|
+
|
|
24
|
+
## Cloud Providers
|
|
25
|
+
|
|
26
|
+
Zuplo Managed Dedicated can be deployed on a wide range of cloud providers and
|
|
27
|
+
hosting platforms, including:
|
|
28
|
+
|
|
29
|
+
- **Akamai Connected Cloud** - Leverage Akamai's global network infrastructure
|
|
30
|
+
- **AWS** - Deploy to Amazon Web Services with full VPC integration
|
|
31
|
+
- **Azure** - Run on Microsoft Azure with private networking support
|
|
32
|
+
- **GCP** - Deploy to Google Cloud Platform with custom networking
|
|
33
|
+
- **Equinix** - Use Equinix data centers for colocation and connectivity
|
|
34
|
+
- **TerraSwitch** - Deploy to TerraSwitch infrastructure
|
|
35
|
+
- **Other providers** - Contact us to discuss support for additional providers
|
|
36
|
+
|
|
37
|
+
You can choose the regions where you want your service hosted to meet any
|
|
38
|
+
sovereignty or data residency concerns.
|
|
39
|
+
|
|
40
|
+
## Features
|
|
41
|
+
|
|
42
|
+
The managed dedicated hosting model provides the same core features as other
|
|
43
|
+
Zuplo deployment models. You can use all the same policies, integrations, and
|
|
44
|
+
features as you would with edge-based deployments.
|
|
45
|
+
|
|
46
|
+
### Networking and Security
|
|
47
|
+
|
|
48
|
+
In addition to the standard features, managed dedicated hosting provides:
|
|
49
|
+
|
|
50
|
+
- **Custom Networking Configurations** - Configure your API Gateway to only be
|
|
51
|
+
accessible from specific VPCs or IP ranges
|
|
52
|
+
- **Private Networking Options** - Support for AWS PrivateLink, Azure Private
|
|
53
|
+
Link, and GCP Private Service Connect for both inbound and outbound
|
|
54
|
+
connections
|
|
55
|
+
- **Isolated VPC Deployment** - Your gateway runs in a dedicated, isolated VPC
|
|
56
|
+
for maximum security and isolation
|
|
57
|
+
- **Custom Ingress Options** - Use your own static IP addresses or security
|
|
58
|
+
appliances (WAFs, IDS/IPS) in front of your API Gateway
|
|
59
|
+
|
|
60
|
+
### High Availability
|
|
61
|
+
|
|
62
|
+
- **Multi-Region Deployment** - Deploy multiple dedicated instances across
|
|
63
|
+
multiple regions for high availability and disaster recovery
|
|
64
|
+
- **Automatic Failover** - Configure automatic failover between regions
|
|
65
|
+
- **Custom Availability Zones** - Choose specific availability zones to meet
|
|
66
|
+
your redundancy requirements
|
|
67
|
+
|
|
68
|
+
### Control and Compliance
|
|
69
|
+
|
|
70
|
+
- **Dedicated Instance** - Your own isolated instance of Zuplo, ensuring no
|
|
71
|
+
resource sharing with other customers
|
|
72
|
+
- **Full Feature Parity** - Access to all Zuplo policies, integrations, and
|
|
73
|
+
features
|
|
74
|
+
- **Compliance Support** - Meet regulatory and compliance requirements that
|
|
75
|
+
necessitate dedicated infrastructure
|
|
76
|
+
|
|
77
|
+
## Getting Started
|
|
78
|
+
|
|
79
|
+
To learn more about Zuplo Managed Dedicated or to discuss your specific
|
|
80
|
+
requirements, [schedule some time to talk with us](https://book.zuplo.com).
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Managed Dedicated: Source Control"
|
|
3
|
+
sidebar_label: "Source Control"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Zuplo supports GitOps workflows for managing your API Gateway configuration.
|
|
7
|
+
This means that you can store all of your API Gateway configuration in a Git
|
|
8
|
+
repository and use Git to manage changes to your configuration. This allows you
|
|
9
|
+
to track changes to your configuration over time, collaborate with others, and
|
|
10
|
+
easily roll back changes if needed.
|
|
11
|
+
|
|
12
|
+
You will use the Zuplo CLI to deploy your API using CI/CD pipelines or using one
|
|
13
|
+
of the Zuplo's [Git integrations](../articles/source-control.mdx).
|
|
14
|
+
|
|
15
|
+
## Create a Local Project
|
|
16
|
+
|
|
17
|
+
To begin developing your API, you will need to create a local project. You can
|
|
18
|
+
find the full documentation for
|
|
19
|
+
[local development here](../articles/local-development.mdx).
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npx create-zuplo-api@latest
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
This command will prompt you to enter a project name and options for your
|
|
26
|
+
project.
|
|
27
|
+
|
|
28
|
+
## Create a Git Repository
|
|
29
|
+
|
|
30
|
+
Next, you will need to create a Git repository to store your API Gateway
|
|
31
|
+
configuration. You can use a service like GitHub, GitLab, or Bitbucket to create
|
|
32
|
+
a new repository.
|
|
33
|
+
|
|
34
|
+
Your new Zuplo project is already initialized as a git repo, so you just need to
|
|
35
|
+
add a remote repository and push your changes.
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
git remote add origin https://github.com/my-org/my-repo
|
|
39
|
+
git commit -m "Initial commit"
|
|
40
|
+
git push -u origin main
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## GitHub: Connect Zuplo to your Repository
|
|
44
|
+
|
|
45
|
+
If you are using GitHub, you can connect your Zuplo project to your GitHub
|
|
46
|
+
repository using the Zuplo integration. This will configure Zuplo to
|
|
47
|
+
automatically deploy your API Gateway when you push changes to your repository.
|
|
48
|
+
|
|
49
|
+
For the full instructions on how to connect your Zuplo project to GitHub, see
|
|
50
|
+
[GitHub Integration](../articles/source-control-setup-github.mdx).
|
|
51
|
+
|
|
52
|
+
## Custom CI: Deploy your API
|
|
53
|
+
|
|
54
|
+
If you aren't using GitHub, or would like to set up a custom CI/CD pipeline, you
|
|
55
|
+
can use the Zuplo CLI to deploy your API Gateway.
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npx zuplo deploy --api-key $ZUPLO_API_KEY --project your-project-name --environment my-env
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
For more information on setting up a CI/CD pipeline, see
|
|
62
|
+
[CI/CD](../articles/custom-ci-cd.mdx) and the
|
|
63
|
+
[Zuplo CLI Deployment](../cli/deploy.mdx) docs.
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Create an API Key Consumer on Login
|
|
3
|
+
sidebar_label: Create API Key on Auth
|
|
4
|
+
navigation_icon: id-card-lanyard
|
|
5
|
+
description:
|
|
6
|
+
Learn how to automatically create an API Key Consumer for users upon login to
|
|
7
|
+
your Developer Portal using Auth0 actions. This guide provides step-by-step
|
|
8
|
+
instructions for integrating with the Dev Portal.
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
By default, users who log into your Zuplo powered Developer Portal won't have an
|
|
12
|
+
API Consumer. This is by design as it allows you to control who has access to
|
|
13
|
+
your API, what their permissions or quotas are, etc. However, some APIs are open
|
|
14
|
+
to any user who can login. This might mean you let anyone login and create an
|
|
15
|
+
account or it might mean you use authorization policies with your identity
|
|
16
|
+
provider to control who can access the portal.
|
|
17
|
+
|
|
18
|
+
This article explains how to use Auth0 actions to automatically create an API
|
|
19
|
+
Key Consumer for your users when they sign into your developer portal.
|
|
20
|
+
|
|
21
|
+
:::tip
|
|
22
|
+
|
|
23
|
+
You don't need to set this up if using the built-in Zuplo monetization feature.
|
|
24
|
+
We do this all for you in that flow.
|
|
25
|
+
|
|
26
|
+
:::
|
|
27
|
+
|
|
28
|
+
Before you begin, you will need to
|
|
29
|
+
[set up custom authentication](./zudoku/configuration/authentication.mdx) for
|
|
30
|
+
the developer portal - you can't use the built-in "demo" provider for this
|
|
31
|
+
tutorial.
|
|
32
|
+
|
|
33
|
+
To begin, open the [Auth0 management portal](https://manage.auth0.com) and
|
|
34
|
+
navigate to **Actions** > **Library**. Then click the button **Build Custom**.
|
|
35
|
+
|
|
36
|
+
Set a name for your custom action and select the **Login / Post Login** trigger.
|
|
37
|
+
Select Node.js version 16 or greater.
|
|
38
|
+
|
|
39
|
+

|
|
40
|
+
|
|
41
|
+
Next, add the Node module [`undici`](https://www.npmjs.com/package/undici) as a
|
|
42
|
+
package to the custom action. To open the module editor click the box icon on
|
|
43
|
+
the side bar, then click **Add Dependency**. Enter the name `undici` and a
|
|
44
|
+
specific version of the module, in this case `5.22.1`. Click **Create** when
|
|
45
|
+
finished.
|
|
46
|
+
|
|
47
|
+

|
|
48
|
+
|
|
49
|
+
In order to authenticate to Zuplo's Developer API, you will need to get your API
|
|
50
|
+
Key. See [Account API Keys](../articles/accounts/zuplo-api-keys.mdx) for
|
|
51
|
+
instructions on finding your API Key. Once you have retrieved your secret, click
|
|
52
|
+
the key icon on the Auth0 editor sidebar and click **Add Secret**. Name the
|
|
53
|
+
secret `API_KEY` and set the value.
|
|
54
|
+
|
|
55
|
+

|
|
56
|
+
|
|
57
|
+
:::info
|
|
58
|
+
|
|
59
|
+
In the code below set the variable `BUCKET_NAME` to the bucket being used by
|
|
60
|
+
your Zuplo Gateway. If you don't know the name of your bucket, you can
|
|
61
|
+
[list your buckets using the Developer API](https://dev.zuplo.com/docs/routes#apikeybucketsservice_list).
|
|
62
|
+
|
|
63
|
+
:::
|
|
64
|
+
|
|
65
|
+
Next, add the following code to your custom action. Be sure to replace the
|
|
66
|
+
placeholder values with your actual account and bucket names. Click the
|
|
67
|
+
**Deploy** button when you are finished.
|
|
68
|
+
|
|
69
|
+
```ts
|
|
70
|
+
const { fetch } = require("undici");
|
|
71
|
+
const { randomUUID } = require("crypto");
|
|
72
|
+
|
|
73
|
+
const ZUPLO_ACCOUNT = "my-zuplo-account";
|
|
74
|
+
const API_KEY_BUCKET = "my-bucket";
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Handler that will be called during the execution of a PostLogin flow.
|
|
78
|
+
*
|
|
79
|
+
* @param {Event} event - Details about the user and the context in which they are logging in.
|
|
80
|
+
* @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.
|
|
81
|
+
*/
|
|
82
|
+
exports.onExecutePostLogin = async (event, api) => {
|
|
83
|
+
if (event.user.app_metadata.api_consumer) {
|
|
84
|
+
console.log(
|
|
85
|
+
`Skipping creating of API consumer. Already exists: ${event.user.app_metadata.api_consumer}`,
|
|
86
|
+
);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const body = {
|
|
91
|
+
description: `Consumer for ${event.user.name}`,
|
|
92
|
+
managers: [event.user.email],
|
|
93
|
+
metadata: {
|
|
94
|
+
// Any metadata here
|
|
95
|
+
user_id: event.user.user_id,
|
|
96
|
+
},
|
|
97
|
+
name: `c-${randomUUID()}`,
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
try {
|
|
101
|
+
// Create the consumer
|
|
102
|
+
const response = await fetch(
|
|
103
|
+
`https://dev.zuplo.com/v1/accounts/${ZUPLO_ACCOUNT}/key-buckets/${API_KEY_BUCKET}/consumers?with-api-key=true`,
|
|
104
|
+
{
|
|
105
|
+
method: "POST",
|
|
106
|
+
body: JSON.stringify(body),
|
|
107
|
+
headers: {
|
|
108
|
+
Authorization: `Bearer ${event.secrets.API_KEY}`,
|
|
109
|
+
"content-type": "application/json",
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
);
|
|
113
|
+
const result = await response.json();
|
|
114
|
+
if (response.status !== 200) {
|
|
115
|
+
console.error(result);
|
|
116
|
+
throw new Error("Error creating API consumer");
|
|
117
|
+
}
|
|
118
|
+
// Set the consumer in the user's metadata
|
|
119
|
+
api.user.setAppMetadata("api_consumer", result.id);
|
|
120
|
+
} catch (err) {
|
|
121
|
+
// Catching error to not block the user's login to the portal
|
|
122
|
+
console.error(err);
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Last, on the Auth0 side navigation bar, open **Actions** > **Flows**, then
|
|
128
|
+
select **Login**. Add the action to the workflow by selecting **Custom** and
|
|
129
|
+
dragging your custom action to the flow and then click **Apply**.
|
|
130
|
+
|
|
131
|
+

|
|
132
|
+
|
|
133
|
+
Now, login to your developer portal with a new user and you will see a consumer
|
|
134
|
+
has already been created.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Introduction
|
|
3
|
+
description: Introduction to Zuplo's beautiful, auto-generated developer portal.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Every API deserves beautiful and powerful documentation. The Zuplo Developer
|
|
7
|
+
Portal powers this documentation site and is available for all Zuplo users.
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
## What is the Dev Portal?
|
|
12
|
+
|
|
13
|
+
The Developer Portal is a powerful tool that allows you to create and manage
|
|
14
|
+
beautiful API documentation. It is built on top of the Zuplo platform and
|
|
15
|
+
provides a seamless experience for developers to consume your APIs.
|
|
16
|
+
|
|
17
|
+
## Why the new Dev Portal?
|
|
18
|
+
|
|
19
|
+
The new Developer Portal is rewritten from the ground up to provide a more
|
|
20
|
+
customizable experience. It is easy to use out of the box, but also allows for
|
|
21
|
+
advanced customization for those who want to take it to the next level. The new
|
|
22
|
+
Developer Portal is built on top of Zudoku, which is a powerful static site
|
|
23
|
+
generator that allows for advanced customization and theming. Zudoku is built on
|
|
24
|
+
Vite which allows for fast builds and a great developer experience.
|
|
25
|
+
|
|
26
|
+
## What Features are available?
|
|
27
|
+
|
|
28
|
+
The new Developer Portal is packed with features that make it easy to create and
|
|
29
|
+
manage your API documentation. Some of the key features include:
|
|
30
|
+
|
|
31
|
+
- **Markdown Documentation**: Write your documentation in Markdown and have it
|
|
32
|
+
automatically converted to HTML.
|
|
33
|
+
- **API Documentation**: Automatically generate API documentation from your
|
|
34
|
+
OpenAPI specifications.
|
|
35
|
+
- **API Explorer**: Explore and test your API directly from the documentation.
|
|
36
|
+
- **Custom Pages**: Create custom pages for your documentation using Markdown,
|
|
37
|
+
MDX, or even React.
|
|
38
|
+
- **Custom Modules**: Install custom modules to extend the functionality of your
|
|
39
|
+
documentation.
|
|
40
|
+
- **API Key Management**: When using Zuplo's API Key management, manage API keys
|
|
41
|
+
directly from the documentation.
|
|
42
|
+
- **Built-in Analytics**: End users can see how they are using the API, monitor
|
|
43
|
+
usage of their API keys, and more right from inside the portal.
|
|
44
|
+
|
|
45
|
+
## How to get started?
|
|
46
|
+
|
|
47
|
+
To get started, sign up for a Zuplo account and create a new project. Follow the
|
|
48
|
+
[migration guide](./migration.mdx) to enable the Developer Portal on an existing
|
|
49
|
+
project.
|
|
50
|
+
|
|
51
|
+
## Build, Deploy, and Hosting
|
|
52
|
+
|
|
53
|
+
Zuplo manages the build, deploy, and hosting of your developer portal for you.
|
|
54
|
+
Simply sign up for Zuplo, create a new project, and you will have a fully
|
|
55
|
+
functioning developer portal in minutes. Zuplo handles all the hosting and
|
|
56
|
+
deployment for you, so you can focus on building your API and documentation.
|
|
57
|
+
|
|
58
|
+
You can also configure a custom domain for your Developer Portal to match your
|
|
59
|
+
brand. Learn more in the
|
|
60
|
+
[Custom Domains documentation](/docs/articles/custom-domains).
|
|
61
|
+
|
|
62
|
+
## Feedback
|
|
63
|
+
|
|
64
|
+
The Developer Portal is continuously improving. For suggestions or feedback,
|
|
65
|
+
email [support@zuplo.com](mailto:support@zuplo.com).
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Local Development
|
|
3
|
+
description:
|
|
4
|
+
Learn how to work on the Dev Portal locally with live updates and hot
|
|
5
|
+
reloading.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Developing the Dev Portal locally is straightforward and provides a great
|
|
9
|
+
developer experience with live updates and hot reloading. Follow these steps to
|
|
10
|
+
get started.
|
|
11
|
+
|
|
12
|
+
## Prerequisites
|
|
13
|
+
|
|
14
|
+
- [Node.js](https://nodejs.org) `>=v22.7.0` (or `>=20.19` will work as well)
|
|
15
|
+
- [Git](https://git-scm.com)
|
|
16
|
+
|
|
17
|
+
## Getting Started
|
|
18
|
+
|
|
19
|
+
<Stepper>
|
|
20
|
+
|
|
21
|
+
1. **Clone the Zuplo repository**
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
git clone <repository-url>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
1. **Install dependencies**
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm install
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
1. **Navigate to the docs directory**
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
cd docs
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
1. **Start the development server**
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npm run dev
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
1. **Open your browser**
|
|
46
|
+
|
|
47
|
+
Navigate to [http://localhost:3000](http://localhost:3000) to see your Dev
|
|
48
|
+
Portal.
|
|
49
|
+
|
|
50
|
+
</Stepper>
|
|
51
|
+
|
|
52
|
+
## Development Workflow
|
|
53
|
+
|
|
54
|
+
Once the development server is running, you can:
|
|
55
|
+
|
|
56
|
+
- **Edit content**: Make changes to any Markdown, MDX, or configuration files
|
|
57
|
+
- **Live updates**: Your browser will automatically refresh when you save
|
|
58
|
+
changes
|
|
59
|
+
- **Hot reloading**: Most changes will be reflected instantly without a full
|
|
60
|
+
page reload
|
|
61
|
+
- **Real-time feedback**: See your changes immediately as you develop
|
|
62
|
+
|
|
63
|
+
The development server watches for file changes and automatically rebuilds the
|
|
64
|
+
site, providing an excellent developer experience for creating and maintaining
|
|
65
|
+
your documentation.
|
|
66
|
+
|
|
67
|
+
## What's Next?
|
|
68
|
+
|
|
69
|
+
- Learn about [writing content](./zudoku/writing.mdx)
|
|
70
|
+
- Check out [the configuration file](./zudoku/configuration/overview)
|
|
71
|
+
- See how you can
|
|
72
|
+
[customize the Dev Portal](./zudoku/customization/colors-theme)
|