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,156 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Transforming Operation Examples
|
|
3
|
+
sidebar_icon: git-compare-arrows
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Dev Portal allows you to transform operation examples in both request and response sections of your API
|
|
7
|
+
documentation. This feature is particularly useful when you need to:
|
|
8
|
+
|
|
9
|
+
- Modify example data before displaying it
|
|
10
|
+
- Add dynamic values to examples
|
|
11
|
+
- Format examples in a specific way
|
|
12
|
+
- Filter or transform example content based on certain conditions
|
|
13
|
+
|
|
14
|
+
## Configuration
|
|
15
|
+
|
|
16
|
+
To use this feature, you need to configure the `transformExamples` function in your
|
|
17
|
+
`zudoku.config.tsx` file. Here's how to do it:
|
|
18
|
+
|
|
19
|
+
```tsx
|
|
20
|
+
import type { ZudokuConfig } from "zudoku";
|
|
21
|
+
|
|
22
|
+
const config: ZudokuConfig = {
|
|
23
|
+
// ... other config options ...
|
|
24
|
+
defaults: {
|
|
25
|
+
apis: {
|
|
26
|
+
transformExamples: (options) => {
|
|
27
|
+
// Transform the content here
|
|
28
|
+
return options.content;
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## The Transform Function
|
|
36
|
+
|
|
37
|
+
The `transformExamples` function receives an options object with the following properties:
|
|
38
|
+
|
|
39
|
+
1. `content`: An array of Content objects containing the example data
|
|
40
|
+
1. `operation`: The operation being displayed
|
|
41
|
+
1. `type`: Either "request" or "response" indicating which type of example is being transformed
|
|
42
|
+
1. `auth`: The current authentication state
|
|
43
|
+
1. `context`: ZudokuContext
|
|
44
|
+
|
|
45
|
+
The function should return an array of Content objects with the transformed examples.
|
|
46
|
+
|
|
47
|
+
## Example Usage
|
|
48
|
+
|
|
49
|
+
Here's a practical example showing how to transform examples:
|
|
50
|
+
|
|
51
|
+
```tsx
|
|
52
|
+
const config: ZudokuConfig = {
|
|
53
|
+
defaults: {
|
|
54
|
+
apis: {
|
|
55
|
+
transformExamples: ({ content, type }) => {
|
|
56
|
+
// Example: Add a timestamp to all examples
|
|
57
|
+
const timestamp = new Date().toISOString();
|
|
58
|
+
|
|
59
|
+
return content.map((contentItem) => ({
|
|
60
|
+
...contentItem,
|
|
61
|
+
example: {
|
|
62
|
+
...contentItem.example,
|
|
63
|
+
timestamp,
|
|
64
|
+
// You can modify other example properties here
|
|
65
|
+
},
|
|
66
|
+
}));
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Use Cases
|
|
74
|
+
|
|
75
|
+
### Adding Dynamic Values
|
|
76
|
+
|
|
77
|
+
```tsx
|
|
78
|
+
transformExamples: ({ content, auth }) => {
|
|
79
|
+
const apiKey = auth.accessToken;
|
|
80
|
+
|
|
81
|
+
return content.map((contentItem) => ({
|
|
82
|
+
...contentItem,
|
|
83
|
+
example: {
|
|
84
|
+
...contentItem.example,
|
|
85
|
+
headers: {
|
|
86
|
+
...contentItem.example.headers,
|
|
87
|
+
Authorization: `Bearer ${apiKey}`,
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
}));
|
|
91
|
+
};
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Formatting Examples
|
|
95
|
+
|
|
96
|
+
```tsx
|
|
97
|
+
transformExamples: ({ content }) => {
|
|
98
|
+
return content.map((contentItem) => ({
|
|
99
|
+
...contentItem,
|
|
100
|
+
example: {
|
|
101
|
+
...contentItem.example,
|
|
102
|
+
// Format dates in a specific way
|
|
103
|
+
createdAt: new Date(contentItem.example.createdAt).toLocaleDateString(),
|
|
104
|
+
// Format numbers with specific precision
|
|
105
|
+
amount: Number(contentItem.example.amount).toFixed(2),
|
|
106
|
+
},
|
|
107
|
+
}));
|
|
108
|
+
};
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Conditional Transformation
|
|
112
|
+
|
|
113
|
+
```tsx
|
|
114
|
+
transformExamples: ({ content, auth, type }) => {
|
|
115
|
+
const isAuthenticated = auth.isAuthenticated;
|
|
116
|
+
|
|
117
|
+
return content.map((contentItem) => ({
|
|
118
|
+
...contentItem,
|
|
119
|
+
example: isAuthenticated
|
|
120
|
+
? contentItem.example // Show full example for authenticated users
|
|
121
|
+
: { ...contentItem.example, sensitiveData: undefined }, // Hide sensitive data for unauthenticated users
|
|
122
|
+
}));
|
|
123
|
+
};
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Using JWT Claims
|
|
127
|
+
|
|
128
|
+
```tsx
|
|
129
|
+
transformExamples: async ({ content, auth, context }) => {
|
|
130
|
+
const token = await context.authentication.getAccessToken();
|
|
131
|
+
|
|
132
|
+
// Decode the JWT (this is a simple example - in production you might want to use a proper JWT library)
|
|
133
|
+
const [, payload] = token.split(".");
|
|
134
|
+
const decodedPayload = JSON.parse(atob(payload));
|
|
135
|
+
|
|
136
|
+
return content.map((contentItem) => ({
|
|
137
|
+
...contentItem,
|
|
138
|
+
example: {
|
|
139
|
+
...contentItem.example,
|
|
140
|
+
// Add user-specific data from the JWT
|
|
141
|
+
userId: decodedPayload.sub,
|
|
142
|
+
organizationId: decodedPayload.org_id,
|
|
143
|
+
// You can add any other claims from the JWT
|
|
144
|
+
role: decodedPayload.role,
|
|
145
|
+
},
|
|
146
|
+
}));
|
|
147
|
+
};
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Best Practices
|
|
151
|
+
|
|
152
|
+
1. Always return an array of Content objects, even if you're not transforming the content
|
|
153
|
+
2. Preserve the original content structure while making your modifications
|
|
154
|
+
3. Handle errors gracefully to prevent breaking the documentation
|
|
155
|
+
4. Consider performance implications when transforming large examples
|
|
156
|
+
5. Use the provided options object to access relevant information for your transformations
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Multiple APIs
|
|
3
|
+
sidebar_icon: file-stack
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Dev Portal supports creating documentation and API references for multiple APIs and can work with as
|
|
7
|
+
many OpenAPI documents as you need.
|
|
8
|
+
|
|
9
|
+
In order to do this you will need to modify the [Dev Portal Configuration](../configuration/overview.md)
|
|
10
|
+
file to include additional APIs.
|
|
11
|
+
|
|
12
|
+
## Configuration
|
|
13
|
+
|
|
14
|
+
Using multiple APIs is a configuration setting that you can add in the
|
|
15
|
+
[Dev Portal Configuration](../configuration/overview.md) file.
|
|
16
|
+
|
|
17
|
+
### Step 1: Add your APIs
|
|
18
|
+
|
|
19
|
+
First, create a new array in your configuration file that lists each API you want to include:
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
const apis = [
|
|
23
|
+
{
|
|
24
|
+
type: "file",
|
|
25
|
+
input: "apis/my-first-api.json",
|
|
26
|
+
path: "/my-first-api",
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
type: "file",
|
|
30
|
+
input: "apis/my-second-api.json",
|
|
31
|
+
path: "/my-second-api",
|
|
32
|
+
},
|
|
33
|
+
] as const;
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Step 2: Add navigation
|
|
37
|
+
|
|
38
|
+
Create a navigation array for your sidebar:
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
const navigation = [
|
|
42
|
+
{
|
|
43
|
+
type: "link",
|
|
44
|
+
label: "My First API",
|
|
45
|
+
to: "/my-first-api",
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
type: "link",
|
|
49
|
+
label: "My Second API",
|
|
50
|
+
to: "/my-second-api",
|
|
51
|
+
},
|
|
52
|
+
] as const;
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Step 3: Update your config
|
|
56
|
+
|
|
57
|
+
Modify your [Dev Portal Configuration](../configuration/overview.md) file to include these arrays:
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
import type { ZudokuConfig } from "zudoku";
|
|
61
|
+
|
|
62
|
+
const config: ZudokuConfig = {
|
|
63
|
+
navigation: [
|
|
64
|
+
{
|
|
65
|
+
type: "category",
|
|
66
|
+
label: "Overview",
|
|
67
|
+
items: navigation,
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
redirects: [{ from: "/", to: "/overview" }],
|
|
71
|
+
apis,
|
|
72
|
+
docs: {
|
|
73
|
+
files: "/pages/**/*.{md,mdx}",
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export default config;
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Make sure that:
|
|
81
|
+
|
|
82
|
+
1. The `path` in each API config matches the `href` in the navigation
|
|
83
|
+
2. Your OpenAPI files are placed in the correct location as specified in the `input` field
|
|
84
|
+
3. The `label` in navigation matches what you want to display in the sidebar
|
|
85
|
+
|
|
86
|
+
You don't necessarily need to add the APIs to your sidebar, you can also put them into the top
|
|
87
|
+
navigation or link to them from your docs.
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Admonitions
|
|
3
|
+
sidebar_icon: rectangle-horizontal
|
|
4
|
+
description:
|
|
5
|
+
Learn how to use admonitions (callouts) in Markdown, including syntax, types, titles, and
|
|
6
|
+
formatting tips for compatibility with Prettier.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
In addition to the basic Markdown syntax, we have a special admonitions syntax by wrapping text with
|
|
10
|
+
a set of 3 colons, followed by a label denoting its type.
|
|
11
|
+
|
|
12
|
+
:::note
|
|
13
|
+
|
|
14
|
+
Admonitions are also commonly referred to as "Callouts". For programmatic usage, see the
|
|
15
|
+
[Callout component](/dev-portal/zudoku/components/callout).
|
|
16
|
+
|
|
17
|
+
:::
|
|
18
|
+
|
|
19
|
+
Example:
|
|
20
|
+
|
|
21
|
+
```markdown
|
|
22
|
+
:::note
|
|
23
|
+
|
|
24
|
+
Some **content** with _Markdown_ `syntax`. Check [this `api`](#).
|
|
25
|
+
|
|
26
|
+
:::
|
|
27
|
+
|
|
28
|
+
:::tip
|
|
29
|
+
|
|
30
|
+
Some **content** with _Markdown_ `syntax`. Check [this `api`](#).
|
|
31
|
+
|
|
32
|
+
:::
|
|
33
|
+
|
|
34
|
+
:::info
|
|
35
|
+
|
|
36
|
+
Some **content** with _Markdown_ `syntax`. Check [this `api`](#).
|
|
37
|
+
|
|
38
|
+
:::
|
|
39
|
+
|
|
40
|
+
:::warning
|
|
41
|
+
|
|
42
|
+
Some **content** with _Markdown_ `syntax`. Check [this `api`](#).
|
|
43
|
+
|
|
44
|
+
:::
|
|
45
|
+
|
|
46
|
+
:::danger
|
|
47
|
+
|
|
48
|
+
Some **content** with _Markdown_ `syntax`. Check [this `api`](#).
|
|
49
|
+
|
|
50
|
+
:::
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
:::note
|
|
54
|
+
|
|
55
|
+
Some **content** with _Markdown_ `syntax`. Check [this `api`](#).
|
|
56
|
+
|
|
57
|
+
:::
|
|
58
|
+
|
|
59
|
+
:::tip
|
|
60
|
+
|
|
61
|
+
Some **content** with _Markdown_ `syntax`. Check [this `api`](#).
|
|
62
|
+
|
|
63
|
+
:::
|
|
64
|
+
|
|
65
|
+
:::info
|
|
66
|
+
|
|
67
|
+
Some **content** with _Markdown_ `syntax`. Check [this `api`](#).
|
|
68
|
+
|
|
69
|
+
:::
|
|
70
|
+
|
|
71
|
+
:::warning
|
|
72
|
+
|
|
73
|
+
Some **content** with _Markdown_ `syntax`. Check [this `api`](#).
|
|
74
|
+
|
|
75
|
+
:::
|
|
76
|
+
|
|
77
|
+
:::danger
|
|
78
|
+
|
|
79
|
+
Some **content** with _Markdown_ `syntax`. Check [this `api`](#).
|
|
80
|
+
|
|
81
|
+
:::
|
|
82
|
+
|
|
83
|
+
## With title
|
|
84
|
+
|
|
85
|
+
You can also add a title to the admonition by adding it after the type:
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
:::warning{title="Warning of the day"}
|
|
89
|
+
|
|
90
|
+
The path of the righteous man is beset on all sides by the iniquities of the selfish and the tyranny
|
|
91
|
+
of evil men.
|
|
92
|
+
|
|
93
|
+
:::
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
:::warning{title="Warning of the day"}
|
|
97
|
+
|
|
98
|
+
The path of the righteous man is beset on all sides by the iniquities of the selfish and the tyranny
|
|
99
|
+
of evil men.
|
|
100
|
+
|
|
101
|
+
:::
|
|
102
|
+
|
|
103
|
+
## Usage with Prettier
|
|
104
|
+
|
|
105
|
+
If you use Prettier to format your Markdown files, Prettier might auto-format your code to invalid
|
|
106
|
+
admonition syntax. To avoid this problem, add empty lines around the starting and ending directives.
|
|
107
|
+
This is also why the examples we show here all have empty lines around the content.
|
|
108
|
+
|
|
109
|
+
<!-- prettier-ignore -->
|
|
110
|
+
```markdown
|
|
111
|
+
<!-- Prettier doesn't change this -->
|
|
112
|
+
|
|
113
|
+
:::note
|
|
114
|
+
|
|
115
|
+
Hello world
|
|
116
|
+
|
|
117
|
+
:::
|
|
118
|
+
|
|
119
|
+
<!-- Prettier changes this -->
|
|
120
|
+
|
|
121
|
+
:::note
|
|
122
|
+
Hello world
|
|
123
|
+
:::
|
|
124
|
+
|
|
125
|
+
<!-- to this -->
|
|
126
|
+
|
|
127
|
+
::: note Hello world:::
|
|
128
|
+
```
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Code Blocks
|
|
3
|
+
sidebar_icon: braces
|
|
4
|
+
description:
|
|
5
|
+
Learn how to use code blocks, syntax highlighting, and advanced features like line highlighting
|
|
6
|
+
and ANSI output in Dev Portal Markdown with Shiki.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
Dev Portal supports code blocks in Markdown using the [Shiki](https://shiki.style/) syntax highlighting
|
|
10
|
+
library.
|
|
11
|
+
|
|
12
|
+
See examples for all supported languages in the
|
|
13
|
+
[Syntax Highlighting](../components/syntax-highlight#supported-languages) section.
|
|
14
|
+
|
|
15
|
+
## Syntax Highlighting
|
|
16
|
+
|
|
17
|
+
Code blocks are text blocks wrapped around by strings of 3 backticks. You may check out this
|
|
18
|
+
reference for the specifications of MDX.
|
|
19
|
+
|
|
20
|
+
````md
|
|
21
|
+
```js
|
|
22
|
+
console.log("Every repo must come with a mascot.");
|
|
23
|
+
```
|
|
24
|
+
````
|
|
25
|
+
|
|
26
|
+
The code block above will render as:
|
|
27
|
+
|
|
28
|
+
```js
|
|
29
|
+
console.log("Every repo must come with a mascot.");
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
:::note
|
|
33
|
+
|
|
34
|
+
You can also use the [`SyntaxHighlight` component](../components/syntax-highlight) to render code
|
|
35
|
+
blocks in TypeScript directly.
|
|
36
|
+
|
|
37
|
+
:::
|
|
38
|
+
|
|
39
|
+
## Inline Code
|
|
40
|
+
|
|
41
|
+
You can highlight inline code using either:
|
|
42
|
+
|
|
43
|
+
Regular backticks without language specification:
|
|
44
|
+
|
|
45
|
+
```md
|
|
46
|
+
`console.log("Hello World")`
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Result: `console.log("Hello World")`
|
|
50
|
+
|
|
51
|
+
or with the [tailing curly colon syntax](https://shiki.matsu.io/packages/rehype#inline-code):
|
|
52
|
+
|
|
53
|
+
```md
|
|
54
|
+
`console.log("Hello World"){:js}`
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Result: `console.log("Hello World"){:js}`
|
|
58
|
+
|
|
59
|
+
For more details, see the
|
|
60
|
+
[Shiki Rehype documentation](https://shiki.style/packages/rehype#inline-code).
|
|
61
|
+
|
|
62
|
+
You can add a title to code blocks by adding a title attribute after the backticks:
|
|
63
|
+
|
|
64
|
+
````md
|
|
65
|
+
```tsx title="hello.tsx"
|
|
66
|
+
console.log("Hello, World!");
|
|
67
|
+
```
|
|
68
|
+
````
|
|
69
|
+
|
|
70
|
+
Result:
|
|
71
|
+
|
|
72
|
+
```tsx title="hello.tsx"
|
|
73
|
+
console.log("Hello, World!");
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
For a complete list of supported languages and their aliases, see the
|
|
77
|
+
[Shiki Languages documentation](https://shiki.style/languages#bundled-languages).
|
|
78
|
+
|
|
79
|
+
## Advanced Syntax Highlighting
|
|
80
|
+
|
|
81
|
+
There are multiple ways to enhance syntax highlighting:
|
|
82
|
+
|
|
83
|
+
- [Line highlighting](https://shiki.style/packages/transformers#transformermetahighlight)
|
|
84
|
+
- [Word highlighting](https://shiki.style/packages/transformers#transformermetawordhighlight)
|
|
85
|
+
- Line numbers: `showLineNumbers`
|
|
86
|
+
- Title: `title`
|
|
87
|
+
|
|
88
|
+
Example:
|
|
89
|
+
|
|
90
|
+
````
|
|
91
|
+
```tsx {4-6} /react/ title="Example.tsx" showLineNumbers
|
|
92
|
+
import { useEffect } from "react";
|
|
93
|
+
|
|
94
|
+
function Example() {
|
|
95
|
+
useEffect(() => {
|
|
96
|
+
console.log("Mounted");
|
|
97
|
+
}, []);
|
|
98
|
+
|
|
99
|
+
return <div>Hello</div>;
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
````
|
|
103
|
+
|
|
104
|
+
Result:
|
|
105
|
+
|
|
106
|
+
```tsx {4-6} /react/ title="Example.tsx" showLineNumbers
|
|
107
|
+
import { useEffect } from "react";
|
|
108
|
+
|
|
109
|
+
function Example() {
|
|
110
|
+
useEffect(() => {
|
|
111
|
+
console.log("Mounted");
|
|
112
|
+
}, []);
|
|
113
|
+
|
|
114
|
+
return <div>Hello</div>;
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Configuration
|
|
119
|
+
|
|
120
|
+
You can configure syntax highlighting in your `zudoku.config.tsx`:
|
|
121
|
+
|
|
122
|
+
:::info
|
|
123
|
+
|
|
124
|
+
Changes to the syntax `highlighting` configuration require a restart of Dev Portal to take effect.
|
|
125
|
+
|
|
126
|
+
:::
|
|
127
|
+
|
|
128
|
+
```tsx {5-15} title=zudoku.config.ts
|
|
129
|
+
import { defaultLanguages, type ZudokuConfig } from "zudoku";
|
|
130
|
+
|
|
131
|
+
const config: ZudokuConfig = {
|
|
132
|
+
// ...
|
|
133
|
+
syntaxHighlighting: {
|
|
134
|
+
themes: {
|
|
135
|
+
light: "vitesse-light",
|
|
136
|
+
dark: "vitesse-dark",
|
|
137
|
+
},
|
|
138
|
+
// Extend default languages with additional ones
|
|
139
|
+
// Aliases like "lisp" are resolved automatically
|
|
140
|
+
languages: [...defaultLanguages, "rust", "ruby", "php", "powershell"],
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
For a complete list of available themes and languages, see the list of
|
|
146
|
+
[Shiki themes](https://shiki.style/themes) and [Shiki languages](https://shiki.style/languages).
|
|
147
|
+
|
|
148
|
+
## Default Supported Languages
|
|
149
|
+
|
|
150
|
+
By default, Dev Portal supports the following languages for syntax highlighting:
|
|
151
|
+
|
|
152
|
+
- Shell - `shellscript`, `bash`, `sh`, `zsh`
|
|
153
|
+
- JavaScript/TypeScript - `javascript`, `typescript`, `jsx`, `tsx`
|
|
154
|
+
- Data formats - `json`, `jsonc`, `yaml`
|
|
155
|
+
- HTML/CSS/XML - `html`, `css`, `xml`
|
|
156
|
+
- Markdown - `markdown`, `mdx`
|
|
157
|
+
- Python - `python`
|
|
158
|
+
- Java - `java`
|
|
159
|
+
- Go - `go`
|
|
160
|
+
- GraphQL - `graphql`
|
|
161
|
+
|
|
162
|
+
Additional languages can be added via `syntaxHighlighting.languages` in your config. Languages not
|
|
163
|
+
in the list fall back to plain text with a console warning. You can use aliases (e.g. `lisp` for
|
|
164
|
+
`common-lisp`) and they will resolve automatically.
|
|
165
|
+
|
|
166
|
+
## ANSI Code Blocks
|
|
167
|
+
|
|
168
|
+
You can use the `ansi` language to highlight terminal outputs with ANSI escape sequences. This is
|
|
169
|
+
useful for displaying colored terminal output, styled text, and other terminal-specific formatting.
|
|
170
|
+
|
|
171
|
+
```ansi title="Terminal Output"
|
|
172
|
+
[0;32mcolored foreground[0m
|
|
173
|
+
[0;1mbold text[0m
|
|
174
|
+
[0;2mdimmed text[0m
|
|
175
|
+
[0;4munderlined text[0m
|
|
176
|
+
[0;7mreversed text[0m
|
|
177
|
+
[0;9mstrikethrough text[0m
|
|
178
|
+
[0;4;9munderlined + strikethrough text[0m
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Usage:
|
|
182
|
+
|
|
183
|
+
````md
|
|
184
|
+
```ansi title="Terminal Output"
|
|
185
|
+
[0;32mcolored foreground[0m
|
|
186
|
+
[0;1mbold text[0m
|
|
187
|
+
[0;2mdimmed text[0m
|
|
188
|
+
[0;4munderlined text[0m
|
|
189
|
+
[0;7mreversed text[0m
|
|
190
|
+
[0;9mstrikethrough text[0m
|
|
191
|
+
[0;4;9munderlined + strikethrough text[0m
|
|
192
|
+
```
|
|
193
|
+
````
|
|
194
|
+
|
|
195
|
+
For more details on ANSI highlighting, see the
|
|
196
|
+
[Shiki documentation](https://shiki.style/languages#ansi).
|