# Documentation > Documentation files for Large Language Models ## Documentation - [Sample APIs](/docs/sample-apis.md) - [/errors](/docs/errors.md) - [Build with AI](/docs/build-with-ai.md) - [/ask](/docs/ask.md) - [Zuplo Self-Hosted](/docs/self-hosted/overview.md) - [Per-user rate limiting using a database and the ZoneCache](/docs/rate-limiting/per-user-rate-limits-using-db.md): Learn how to implement advanced dynamic rate limiting with database lookups and ZoneCache for improved performance. - [Monitoring and troubleshooting rate limits](/docs/rate-limiting/monitoring-and-troubleshooting.md): Monitor rate limit events, debug unexpected 429 responses, and understand failure modes. - [How rate limiting works](/docs/rate-limiting/how-it-works.md): Understand Zuplo's sliding window rate limiter — how requests are counted, what each rateLimitBy mode does, the Complex Rate Limiting policy, and every configuration option. - [Getting started with rate limiting](/docs/rate-limiting/getting-started.md): Pick a rate limiting strategy and add it to an existing Zuplo project, with hands-on examples for IP-based and authenticated per-user limits. - [Dynamic rate limiting](/docs/rate-limiting/dynamic-rate-limiting.md): Learn how to implement dynamic rate limiting with custom functions to apply different limits based on customer tier, route, or any request property. - [Combining rate limit policies](/docs/rate-limiting/combining-policies.md): Apply multiple rate limits to the same route, combine rate limiting with quotas, and design multi-layer protection strategies. - [ZuploRequest](/docs/programmable-api/zuplo-request.md) - [Zuplo Project Configuration (zuplo.jsonc)](/docs/programmable-api/zuplo-json.md) - [Zuplo Identity Token](/docs/programmable-api/zuplo-id-token.md) - [ZuploContext](/docs/programmable-api/zuplo-context.md) - [zp-body-removed](/docs/programmable-api/zp-body-removed.md) - [ZoneCache](/docs/programmable-api/zone-cache.md) - [Web Standard APIs](/docs/programmable-api/web-standard-apis.md) - [Web Crypto](/docs/programmable-api/web-crypto-apis.md) - [StreamingZoneCache](/docs/programmable-api/streaming-zone-cache.md) - [Safely clone a request or response](/docs/programmable-api/safely-clone-a-request-or-response.md) - [Runtime Extensions](/docs/programmable-api/runtime-extensions.md) - [Runtime Errors](/docs/programmable-api/runtime-errors.md) - [Runtime Behaviors](/docs/programmable-api/runtime-behaviors.md) - [Route Custom Data](/docs/programmable-api/route-raw.md) - [Share code across request handlers and policies with modules](/docs/programmable-api/reusing-code.md) - [RequestUser](/docs/programmable-api/request-user.md) - [ProblemResponseFormatter](/docs/programmable-api/problem-response-formatter.md) - [Programmable API](/docs/programmable-api/overview.md): This section provides a comprehensive index of all public APIs available in the Zuplo runtime. The APIs are organized by category for easy reference. - [OAuth Protected Resource Plugin](/docs/programmable-api/oauth-protected-resource-plugin.md) - [Custom Not Found Handler](/docs/programmable-api/not-found-handler.md) - [Node Modules](/docs/programmable-api/node-modules.md) - [MemoryZoneReadThroughCache](/docs/programmable-api/memory-zone-read-through-cache.md) - [ZuploMcpSdk](/docs/programmable-api/mcp-sdk.md): Reference for the ZuploMcpSdk class, which gives custom MCP tool handlers access to the incoming tool call request and control over the tool result sent back to the AI client. - [MCP Gateway Plugin](/docs/programmable-api/mcp-gateway-plugin.md): Reference for the McpGatewayPlugin runtime plugin — options for the base path, OAuth endpoints, and the read-only MCP Server Registry. - [Logger](/docs/programmable-api/logger.md) - [JWT Service Plugin](/docs/programmable-api/jwt-service-plugin.md) - [HttpProblems Helper](/docs/programmable-api/http-problems.md) - [Request/Response Hooks](/docs/programmable-api/hooks.md) - [Environment Variables API](/docs/programmable-api/environment.md) - [CORS Policy Configuration](/docs/programmable-api/custom-cors-policy.md) - [ContextData - Sharing Request Data](/docs/programmable-api/context-data.md) - [Console Logging](/docs/programmable-api/console-logging.md) - [Compatibility Dates](/docs/programmable-api/compatibility-dates.md) - [Cache](/docs/programmable-api/cache.md) - [BackgroundLoader](/docs/programmable-api/background-loader.md) - [BackgroundDispatcher](/docs/programmable-api/background-dispatcher.md) - [Troubleshooting the MCP Server Handler](/docs/mcp-server/troubleshooting.md): Diagnose MCP Server handler tool calls that fail in an AI client even though the gateway route returns 200, using debug logging and the structured-content configuration. - [MCP Server Tools](/docs/mcp-server/tools.md) - [MCP Server Testing](/docs/mcp-server/testing.md) - [MCP Server Resources](/docs/mcp-server/resources.md) - [MCP Server Prompts](/docs/mcp-server/prompts.md) - [MCP Server With OpenAI Apps SDK](/docs/mcp-server/openai-apps-sdk.md) - [Model Context Protocol (MCP)](/docs/mcp-server/introduction.md) - [MCP Server GraphQL Endpoints](/docs/mcp-server/graphql.md) - [MCP Server Custom Tools](/docs/mcp-server/custom-tools.md) - [MCP Server Configuration Migration Guide](/docs/mcp-server/configuration-migration-guide.md) - [Troubleshooting](/docs/mcp-gateway/troubleshooting.md): Symptoms, likely causes, and fixes for the issues most commonly hit when setting up or running the Zuplo MCP Gateway. - [Test clients](/docs/mcp-gateway/test-clients.md): Use the MCP Inspector and MCPJam Inspector to manually exercise your Zuplo MCP Gateway routes — walk the OAuth flow, list tools, call them, and inspect every JSON-RPC message. - [MCP Server Registry](/docs/mcp-gateway/server-registry.md): The read-only MCP Server Registry API (v0.1) the gateway serves by default — advertises every MCP route so clients and subregistries can discover them without authentication. - [Gateway reference](/docs/mcp-gateway/reference.md): URL catalog, OAuth scopes, default TTLs, required headers, and configuration constants for the Zuplo MCP Gateway. - [MCP Gateway quickstart (Portal)](/docs/mcp-gateway/quickstart.md): Build an MCP Gateway in the Zuplo Portal. Create a project, add an MCP Gateway Virtual Server with the guided wizard, set your identity provider's environment variables, and connect Claude Desktop. No local setup required. - [MCP Gateway quickstart (Local Dev)](/docs/mcp-gateway/quickstart-local.md): Build an MCP Gateway locally with the Zuplo CLI. Register the plugin, add one upstream MCP server, run it with the loopback dev-login shortcut, and connect Claude Desktop. No identity provider setup required to start. - [MCP Gateway](/docs/mcp-gateway/introduction.md): Overview of the Zuplo MCP Gateway — a single OAuth-protected MCP endpoint that fronts multiple upstream MCP servers with curated tools and per-call analytics. - [How the MCP Gateway works](/docs/mcp-gateway/how-it-works.md): Architecture overview — request lifecycle, the two OAuth surfaces, the Streamable HTTP transport, and the configuration model. - [Capability filtering](/docs/mcp-gateway/capability-filtering.md): How the Zuplo MCP Gateway curates the tools, prompts, resources, and resource templates an upstream MCP server exposes — what the mcp-capability-filter-inbound policy filters, how projections work, and where the boundary actually lives. - [Zuplo Managed Edge](/docs/managed-edge/overview.md) - [WebSocket Pipeline Handler](/docs/handlers/websocket-pipeline-handler.md) - [WebSocket Handler](/docs/handlers/websocket-handler.md) - [URL Rewrite Handler](/docs/handlers/url-rewrite.md) - [URL Forward Handler](/docs/handlers/url-forward.md) - [Internal Route Handlers](/docs/handlers/system-handlers.md) - [Redirect Handler](/docs/handlers/redirect.md) - [OpenAPI Spec Handler](/docs/handlers/openapi.md) - [MCP Server Handler](/docs/handlers/mcp-server.md) - [Legacy Dev Portal Handler](/docs/handlers/legacy-dev-portal-handler.md) - [Function Handler (Custom Handler)](/docs/handlers/custom-handler.md) - [AWS Lambda Handler](/docs/handlers/aws-lambda.md) - [/policies/xml-to-json-outbound](/docs/policies/xml-to-json-outbound.md) - [/policies/web-bot-auth-inbound](/docs/policies/web-bot-auth-inbound.md) - [/policies/validate-json-schema-inbound](/docs/policies/validate-json-schema-inbound.md) - [/policies/upstream-zuplo-jwt-auth-inbound](/docs/policies/upstream-zuplo-jwt-auth-inbound.md) - [/policies/upstream-oauth-client-credentials-inbound](/docs/policies/upstream-oauth-client-credentials-inbound.md) - [/policies/upstream-gcp-service-auth-inbound](/docs/policies/upstream-gcp-service-auth-inbound.md) - [/policies/upstream-gcp-jwt-inbound](/docs/policies/upstream-gcp-jwt-inbound.md) - [/policies/upstream-gcp-federated-auth-inbound](/docs/policies/upstream-gcp-federated-auth-inbound.md) - [/policies/upstream-firebase-user-auth-inbound](/docs/policies/upstream-firebase-user-auth-inbound.md) - [/policies/upstream-firebase-admin-auth-inbound](/docs/policies/upstream-firebase-admin-auth-inbound.md) - [/policies/upstream-azure-ad-service-auth-inbound](/docs/policies/upstream-azure-ad-service-auth-inbound.md) - [/policies/upstream-aws-service-auth-inbound](/docs/policies/upstream-aws-service-auth-inbound.md) - [/policies/upstream-aws-federated-auth-inbound](/docs/policies/upstream-aws-federated-auth-inbound.md) - [/policies/traffic-splitting-inbound](/docs/policies/traffic-splitting-inbound.md) - [/policies/supabase-jwt-auth-inbound](/docs/policies/supabase-jwt-auth-inbound.md) - [/policies/stripe-webhook-verification-inbound](/docs/policies/stripe-webhook-verification-inbound.md) - [/policies/sleep-inbound](/docs/policies/sleep-inbound.md) - [/policies/set-upstream-api-key-inbound](/docs/policies/set-upstream-api-key-inbound.md) - [/policies/set-status-outbound](/docs/policies/set-status-outbound.md) - [/policies/set-query-params-inbound](/docs/policies/set-query-params-inbound.md) - [/policies/set-headers-outbound](/docs/policies/set-headers-outbound.md) - [/policies/set-headers-inbound](/docs/policies/set-headers-inbound.md) - [/policies/set-body-inbound](/docs/policies/set-body-inbound.md) - [/policies/semantic-cache-inbound](/docs/policies/semantic-cache-inbound.md) - [/policies/secret-masking-outbound](/docs/policies/secret-masking-outbound.md) - [/policies/require-user-claims-inbound](/docs/policies/require-user-claims-inbound.md) - [/policies/require-origin-inbound](/docs/policies/require-origin-inbound.md) - [/policies/request-validation-inbound](/docs/policies/request-validation-inbound.md) - [/policies/request-size-limit-inbound](/docs/policies/request-size-limit-inbound.md) - [/policies/replace-string-outbound](/docs/policies/replace-string-outbound.md) - [/policies/remove-query-params-inbound](/docs/policies/remove-query-params-inbound.md) - [/policies/remove-headers-outbound](/docs/policies/remove-headers-outbound.md) - [/policies/remove-headers-inbound](/docs/policies/remove-headers-inbound.md) - [/policies/readme-metrics-inbound](/docs/policies/readme-metrics-inbound.md) - [/policies/rate-limit-inbound](/docs/policies/rate-limit-inbound.md) - [/policies/quota-inbound](/docs/policies/quota-inbound.md) - [/policies/query-param-to-header-inbound](/docs/policies/query-param-to-header-inbound.md) - [/policies/propel-auth-jwt-inbound](/docs/policies/propel-auth-jwt-inbound.md) - [/policies/prompt-injection-outbound](/docs/policies/prompt-injection-outbound.md) - [Policy Catalog](/docs/policies/overview.md): Zuplo includes policies for any solution you need for securing and sharing your API. This page lists all the policies available in Zuplo. - [/policies/openmeter-inbound](/docs/policies/openmeter-inbound.md) - [/policies/openfga-authz-inbound](/docs/policies/openfga-authz-inbound.md) - [/policies/open-id-jwt-auth-inbound](/docs/policies/open-id-jwt-auth-inbound.md) - [/policies/okta-jwt-auth-inbound](/docs/policies/okta-jwt-auth-inbound.md) - [/policies/okta-fga-authz-inbound](/docs/policies/okta-fga-authz-inbound.md) - [/policies/mtls-auth-inbound](/docs/policies/mtls-auth-inbound.md) - [/policies/monetization-inbound](/docs/policies/monetization-inbound.md) - [/policies/moesif-inbound](/docs/policies/moesif-inbound.md) - [/policies/mock-api-inbound](/docs/policies/mock-api-inbound.md) - [/policies/mcp-workos-oauth-inbound](/docs/policies/mcp-workos-oauth-inbound.md) - [/policies/mcp-token-exchange-inbound](/docs/policies/mcp-token-exchange-inbound.md) - [/policies/mcp-ping-oauth-inbound](/docs/policies/mcp-ping-oauth-inbound.md) - [/policies/mcp-onelogin-oauth-inbound](/docs/policies/mcp-onelogin-oauth-inbound.md) - [/policies/mcp-okta-oauth-inbound](/docs/policies/mcp-okta-oauth-inbound.md) - [/policies/mcp-oauth-inbound](/docs/policies/mcp-oauth-inbound.md) - [/policies/mcp-logto-oauth-inbound](/docs/policies/mcp-logto-oauth-inbound.md) - [/policies/mcp-keycloak-oauth-inbound](/docs/policies/mcp-keycloak-oauth-inbound.md) - [/policies/mcp-google-oauth-inbound](/docs/policies/mcp-google-oauth-inbound.md) - [/policies/mcp-entra-oauth-inbound](/docs/policies/mcp-entra-oauth-inbound.md) - [/policies/mcp-cognito-oauth-inbound](/docs/policies/mcp-cognito-oauth-inbound.md) - [/policies/mcp-clerk-oauth-inbound](/docs/policies/mcp-clerk-oauth-inbound.md) - [/policies/mcp-capability-filter-inbound](/docs/policies/mcp-capability-filter-inbound.md) - [/policies/mcp-auth0-oauth-inbound](/docs/policies/mcp-auth0-oauth-inbound.md) - [/policies/ldap-auth-inbound](/docs/policies/ldap-auth-inbound.md) - [/policies/jwt-scopes-inbound](/docs/policies/jwt-scopes-inbound.md) - [/policies/ip-address-restriction-inbound](/docs/policies/ip-address-restriction-inbound.md) - [/policies/http-deprecation-outbound](/docs/policies/http-deprecation-outbound.md) - [/policies/graphql-introspection-filter-outbound](/docs/policies/graphql-introspection-filter-outbound.md) - [/policies/graphql-disable-introspection-inbound](/docs/policies/graphql-disable-introspection-inbound.md) - [/policies/graphql-complexity-limit-inbound](/docs/policies/graphql-complexity-limit-inbound.md) - [/policies/graphql-cache-inbound](/docs/policies/graphql-cache-inbound.md) - [/policies/graphql-analytics-outbound](/docs/policies/graphql-analytics-outbound.md) - [/policies/geo-filter-inbound](/docs/policies/geo-filter-inbound.md) - [/policies/galileo-tracing-v2-inbound](/docs/policies/galileo-tracing-v2-inbound.md) - [/policies/formdata-to-json-inbound](/docs/policies/formdata-to-json-inbound.md) - [/policies/firebase-jwt-inbound](/docs/policies/firebase-jwt-inbound.md) - [/policies/data-loss-prevention-outbound](/docs/policies/data-loss-prevention-outbound.md) - [/policies/data-loss-prevention-inbound](/docs/policies/data-loss-prevention-inbound.md) - [/policies/custom-code-outbound](/docs/policies/custom-code-outbound.md) - [/policies/custom-code-inbound](/docs/policies/custom-code-inbound.md) - [/policies/curity-phantom-token-inbound](/docs/policies/curity-phantom-token-inbound.md) - [/policies/composite-outbound](/docs/policies/composite-outbound.md) - [/policies/composite-inbound](/docs/policies/composite-inbound.md) - [/policies/complex-rate-limit-inbound](/docs/policies/complex-rate-limit-inbound.md) - [/policies/comet-opik-tracing-v2-inbound](/docs/policies/comet-opik-tracing-v2-inbound.md) - [/policies/cognito-jwt-auth-inbound](/docs/policies/cognito-jwt-auth-inbound.md) - [/policies/clerk-jwt-auth-inbound](/docs/policies/clerk-jwt-auth-inbound.md) - [/policies/clear-headers-outbound](/docs/policies/clear-headers-outbound.md) - [/policies/clear-headers-inbound](/docs/policies/clear-headers-inbound.md) - [/policies/change-method-inbound](/docs/policies/change-method-inbound.md) - [/policies/cdn-cache-control-outbound](/docs/policies/cdn-cache-control-outbound.md) - [/policies/caching-inbound](/docs/policies/caching-inbound.md) - [/policies/brownout-inbound](/docs/policies/brownout-inbound.md) - [/policies/bot-detection-inbound](/docs/policies/bot-detection-inbound.md) - [/policies/basic-auth-inbound](/docs/policies/basic-auth-inbound.md) - [/policies/axiomatics-authz-inbound](/docs/policies/axiomatics-authz-inbound.md) - [/policies/authzen-inbound](/docs/policies/authzen-inbound.md) - [/policies/auth0-jwt-auth-inbound](/docs/policies/auth0-jwt-auth-inbound.md) - [/policies/audit-log-inbound](/docs/policies/audit-log-inbound.md) - [/policies/api-key-inbound](/docs/policies/api-key-inbound.md) - [/policies/amberflo-metering-inbound](/docs/policies/amberflo-metering-inbound.md) - [/policies/akamai-firewall-for-ai-outbound](/docs/policies/akamai-firewall-for-ai-outbound.md) - [/policies/akamai-firewall-for-ai-inbound](/docs/policies/akamai-firewall-for-ai-inbound.md) - [/policies/akamai-ai-firewall-v2-inbound](/docs/policies/akamai-ai-firewall-v2-inbound.md) - [/policies/ai-gateway-semantic-cache-v2-inbound](/docs/policies/ai-gateway-semantic-cache-v2-inbound.md) - [/policies/ai-gateway-model-filtering-v2-inbound](/docs/policies/ai-gateway-model-filtering-v2-inbound.md) - [/policies/ai-gateway-metering-v2-inbound](/docs/policies/ai-gateway-metering-v2-inbound.md) - [/policies/ai-gateway-fallback-model-v2-inbound](/docs/policies/ai-gateway-fallback-model-v2-inbound.md) - [/policies/ai-gateway-dlp-inbound](/docs/policies/ai-gateway-dlp-inbound.md) - [/policies/ai-gateway-configuration-loader-v2-inbound](/docs/policies/ai-gateway-configuration-loader-v2-inbound.md) - [/policies/ai-gateway-configuration-executor-v2-inbound](/docs/policies/ai-gateway-configuration-executor-v2-inbound.md) - [/policies/ai-gateway-auth-v2-inbound](/docs/policies/ai-gateway-auth-v2-inbound.md) - [Route to Backends Based on User Identity](/docs/guides/user-based-backend-routing.md): Learn how to create a Zuplo policy that routes requests to different backends based on API key metadata or JWT claims for multi-tenant and environment isolation scenarios. - [Transform Route Parameters for URL Rewrite](/docs/guides/transform-route-params-url-rewrite.md): Learn how to use an inbound policy to transform route parameter values before the URL Rewrite handler forwards the request to your backend. - [Proxying Between Zuplo Gateways](/docs/guides/proxying-between-zuplo-gateways.md): Learn how to proxy requests from one Zuplo gateway to another, propagate authentication, handle upstream errors, and fix 522 timeouts. - [Guides](/docs/guides/overview.md): Discover step-by-step guides to help you build and deploy with Zuplo. - [Modifying OpenAPI Files with OpenAPI Overlays](/docs/guides/openapi-overlays.md): Learn how to use the Zuplo CLI's OpenAPI Overlay command to dynamically modify OpenAPI specifications, add parameters, and configure route extensions. - [Modifying OpenAPI Paths with Scripts](/docs/guides/modify-openapi-paths.md): Learn how to programmatically modify all paths in your OpenAPI specification by adding prefixes, changing base paths, or transforming routes for different deployment scenarios. - [Route to Different Backends Based on Geolocation](/docs/guides/geolocation-backend-routing.md): Learn how to create a Zuplo policy that routes requests to different backend URLs based on the user's country. - [Route Employees to Canary or Staging Backends](/docs/guides/canary-routing-for-employees.md): Learn how to create a Zuplo policy that routes employee requests to canary or staging backends for testing and dogfooding purposes. - [Unknown Error (UNKNOWN_ERROR)](/docs/errors/unknown-error.md) - [Unauthorized Error (UNAUTHORIZED)](/docs/errors/unauthorized.md) - [System Configuration Error (SYSTEM_CONFIGURATION_ERROR)](/docs/errors/system-configuration-error.md) - [Schema Validation Failed (SCHEMA_VALIDATION_FAILED)](/docs/errors/schema-validation-failed.md) - [Rate Limit Exceeded (RATE_LIMIT_EXCEEDED)](/docs/errors/rate-limit-exceeded.md) - [Not Found Error (NOT_FOUND)](/docs/errors/not-found.md) - [No Project Set Error (NO_PROJECT_SET)](/docs/errors/no-project-set.md) - [Zuplo Main Module Error (MAIN_MOD_ERROR)](/docs/errors/main-mod-error.md) - [Gateway Timeout (GATEWAY_TIMEOUT)](/docs/errors/gateway-timeout.md) - [Zuplo Fatal Project Error (FATAL_PROJECT_ERROR)](/docs/errors/fatal-project-error.md) - [Build Error (BUILD_ERROR)](/docs/errors/build-error.md) - [Bad Request (BAD_REQUEST)](/docs/errors/bad-request.md) - [Updating Versions](/docs/dev-portal/updating.md): How to update Zuplo's developer portal to keep it up to date with the latest changes. - [Server-Side Rendering](/docs/dev-portal/server-side-rendering.md): Run the Dev Portal on a server for each deployment so protected routes are enforced server-side. - [Node Modules & Customization](/docs/dev-portal/node-modules.md): Guide to installing custom node modules in Zuplo's developer portal. - [Dev Portal Migration Guide](/docs/dev-portal/migration.md): Instruction for migrating from the legacy developer portal to Zudoku. - [Local Development](/docs/dev-portal/local-development.md): Learn how to work on the Dev Portal locally with live updates and hot reloading. - [Introduction](/docs/dev-portal/introduction.md): Introduction to Zuplo's beautiful, auto-generated developer portal. - [Documenting MCP Servers](/docs/dev-portal/documenting-mcp-servers.md): Use the x-mcp-server OpenAPI extension to render an MCP setup card in the Dev Portal for external or proxied MCP servers. - [Create an API Key Consumer on Login](/docs/dev-portal/dev-portal-create-consumer-on-auth.md): Learn how to automatically create an API Key Consumer for users upon login to your Developer Portal using Auth0 actions. This guide provides step-by-step instructions for integrating with the Dev Portal. - [Zuplo Branding](/docs/dev-portal/branding.md): Learn which plans show the "Powered by Zuplo" badge on the Developer Portal and how to remove it. - [Custom API Identity Plugin](/docs/dev-portal/auth-provider-api-identities.md): Learn how to create a custom API identity plugin for the Dev Portal to authenticate API playground requests with OAuth JWT tokens or other custom credentials. - [Managed Dedicated: Source Control](/docs/dedicated/source-control.md) - [Zuplo Managed Dedicated](/docs/dedicated/overview.md) - [Managed Dedicated: Networking](/docs/dedicated/networking.md) - [Managed Dedicated: GCP Private Networking](/docs/dedicated/gcp-private-networking.md) - [Managed Dedicated: Federated Gateways](/docs/dedicated/federated-gateways.md) - [Managed Dedicated: Custom Domains](/docs/dedicated/custom-domains.md) - [Managed Dedicated: Azure Private Networking](/docs/dedicated/azure-private-networking.md) - [Managed Dedicated: AWS Private Networking](/docs/dedicated/aws-private-networking.md) - [Managed Dedicated: Architecture](/docs/dedicated/architecture.md) - [Conference Prize Terms](/docs/conferences/conference-prize-terms.md) - [Upstream Credentials](/docs/concepts/upstream-credentials.md) - [Source Control and Deployment](/docs/concepts/source-control-and-deployment.md) - [Request Lifecycle](/docs/concepts/request-lifecycle.md) - [Project Structure](/docs/concepts/project-structure.md) - [How Zuplo Works](/docs/concepts/how-zuplo-works.md) - [Authentication](/docs/concepts/authentication.md) - [API Keys](/docs/concepts/api-keys.md) - [API Errors](/docs/concepts/api-errors.md) - [Zuplo CLI: Whoami](/docs/cli/whoami.md) - [Zuplo CLI: Variable Update](/docs/cli/variable-update.md) - [Zuplo CLI: Variable Create](/docs/cli/variable-create.md) - [Zuplo CLI: Tunnel Services Update](/docs/cli/tunnel-services-update.md) - [Zuplo CLI: Tunnel Services Describe](/docs/cli/tunnel-services-describe.md) - [Zuplo CLI: Tunnel Rotate Token](/docs/cli/tunnel-rotate-token.md) - [Zuplo CLI: Tunnel List](/docs/cli/tunnel-list.md) - [Zuplo CLI: Tunnel Describe](/docs/cli/tunnel-describe.md) - [Zuplo CLI: Tunnel Delete](/docs/cli/tunnel-delete.md) - [Zuplo CLI: Tunnel Create](/docs/cli/tunnel-create.md) - [Zuplo CLI: Test](/docs/cli/test.md) - [Zuplo CLI: Source Upgrade](/docs/cli/source-upgrade.md) - [Zuplo CLI: Source Migrate](/docs/cli/source-migrate.md) - [Zuplo CLI: Project List](/docs/cli/project-list.md) - [Zuplo CLI: Project Info](/docs/cli/project-info.md) - [Zuplo CLI: Project Create](/docs/cli/project-create.md) - [Zuplo CLI](/docs/cli/overview.md) - [Zuplo CLI: OpenAPI Overlay](/docs/cli/openapi-overlay.md) - [Zuplo CLI: OpenAPI Merge](/docs/cli/openapi-merge.md) - [Zuplo CLI: OpenAPI Convert](/docs/cli/openapi-convert.md) - [Zuplo CLI: Mtls Certificate Update](/docs/cli/mtls-certificate-update.md) - [Zuplo CLI: Mtls Certificate List](/docs/cli/mtls-certificate-list.md) - [Zuplo CLI: Mtls Certificate Disable](/docs/cli/mtls-certificate-disable.md) - [Zuplo CLI: Mtls Certificate Describe](/docs/cli/mtls-certificate-describe.md) - [Zuplo CLI: Mtls Certificate Delete](/docs/cli/mtls-certificate-delete.md) - [Zuplo CLI: Mtls Certificate Create](/docs/cli/mtls-certificate-create.md) - [Zuplo CLI: Logout](/docs/cli/logout.md) - [Zuplo CLI: List](/docs/cli/list.md) - [Zuplo CLI: Lint](/docs/cli/lint.md) - [Zuplo CLI: Link](/docs/cli/link.md) - [Zuplo CLI: Init](/docs/cli/init.md) - [Zuplo CLI: Info](/docs/cli/info.md) - [Zuplo CLI Global Options](/docs/cli/global-options.md) - [Zuplo CLI: Editor](/docs/cli/editor.md) - [Zuplo CLI: Docs](/docs/cli/docs.md) - [Zuplo CLI: Dev](/docs/cli/dev.md) - [Zuplo CLI: Deploy](/docs/cli/deploy.md) - [Zuplo CLI: Delete](/docs/cli/delete.md) - [Zuplo CLI: Custom Domain Update](/docs/cli/custom-domain-update.md) - [Zuplo CLI: Custom Domain List](/docs/cli/custom-domain-list.md) - [Zuplo CLI: Custom Domain Delete](/docs/cli/custom-domain-delete.md) - [Zuplo CLI: Custom Domain Create](/docs/cli/custom-domain-create.md) - [Create Zuplo API](/docs/cli/create-zuplo-api.md) - [Zuplo CLI Network Connectivity](/docs/cli/connectivity.md) - [Zuplo CLI: Ca Certificate Update](/docs/cli/ca-certificate-update.md) - [Zuplo CLI: Ca Certificate List](/docs/cli/ca-certificate-list.md) - [Zuplo CLI: Ca Certificate Describe](/docs/cli/ca-certificate-describe.md) - [Zuplo CLI: Ca Certificate Delete](/docs/cli/ca-certificate-delete.md) - [Zuplo CLI: Ca Certificate Create](/docs/cli/ca-certificate-create.md) - [Zuplo CLI: Bucket List](/docs/cli/bucket-list.md) - [Authentication](/docs/cli/authentication.md) - [Cache part of a response](/docs/caching/partial-response-caching.md): Cache the shared portion of a response body in the programmable cache and fetch only the small caller-specific slice from your backend on every request. A worked example that turns a thousand backend calls a minute into six. - [Caching in Zuplo](/docs/caching/overview.md): Compare the four places a response can be cached when Zuplo sits in front of your API, what each layer costs on a miss, and how to pick the right one for a given endpoint. - [Cache at the gateway](/docs/caching/gateway-caching.md): Use the Caching policy to store responses inside the Zuplo gateway so repeat requests never reach your backend. Covers cache keys, TTLs, authorization, and invalidation. - [Per-response cache rules](/docs/caching/dynamic-cache-rules.md): Use the `cacheConfig` function on the CDN Cache Control policy to set edge TTLs and purge tags that depend on the individual request or response, including per-entity tags, route TTL matrices, and refusing to cache a bad payload. - [Build a custom caching policy](/docs/caching/custom-caching-policy.md): Write your own inbound and outbound policy pair with the Cache API when no built-in policy fits your caching rules, from tenant-scoped keys and size and status filters to upstream-driven TTLs and independent invalidation. - [Cache at the CDN](/docs/caching/cdn-caching.md): Put a CDN in front of your Zuplo gateway and drive its cache from response headers, with separate edge and client TTLs, per-entity purge tags, and stale responses through a backend outage. - [Zuplo API Management](/docs/api-management/introduction.md) - [Shared Controls](/docs/analytics/shared-controls.md) - [Analytics](/docs/analytics/overview.md) - [Access and Entitlements](/docs/analytics/access-and-entitlements.md) - [Authenticate a cloud workload identity](/docs/articles/workload-identity-inbound.md): Verify the OIDC identity token a GCP, AWS, or Azure workload mints from its own ambient credentials, then pin the route to the workloads you allow. - [When to Use API Keys](/docs/articles/when-to-use-api-keys.md) - [Zuplo + WAF/DDoS Services](/docs/articles/waf-ddos.md) - [Configuring Zuplo with Fastly Next-Gen WAF](/docs/articles/waf-ddos-fastly.md) - [Configuring Zuplo with AWS WAF + Shield](/docs/articles/waf-ddos-aws-waf-shield.md) - [Configuring Zuplo with Akamai App & API Protector](/docs/articles/waf-ddos-akamai.md) - [Versioning on Zuplo](/docs/articles/versioning-on-zuplo.md): Learn how to version your APIs using URL-based versioning with separate OpenAPI files and custom policies on Zuplo. - [Version Support Policy](/docs/articles/version-support-policy.md): How Zuplo approaches versioning, backward compatibility, deprecations, and breaking changes across the gateway runtime, specification-based features, and the Developer Portal. - [Using the OpenAPI Extension Data in Code](/docs/articles/use-openapi-extension-data.md): Learn how to add custom vendor-specific extensions to OpenAPI files and access that data in your Zuplo Gateway code. - [IAM Authentication for Your Backend](/docs/articles/upstream-iam-auth.md) - [Automate Zuplo API Updates with GitHub Actions](/docs/articles/update-zup-in-github-action.md) - [Troubleshoot a Tunnel](/docs/articles/tunnel-troubleshooting.md) - [Set up a Tunnel](/docs/articles/tunnel-setup.md) - [Connect to Tunnel Services](/docs/articles/tunnel-services.md) - [Advanced Tunnel Configuration](/docs/articles/tunnel-advanced.md) - [TypeScript Configuration (tsconfig.json)](/docs/articles/tsconfig.md) - [Troubleshooting](/docs/articles/troubleshooting.md) - [Troubleshooting Slow API Response Times](/docs/articles/troubleshooting-slow-responses.md): Diagnose and fix slow API response times through your Zuplo gateway. Covers backend latency, cold starts, DNS, policy overhead, and geographic routing. - [Troubleshooting Stuck Deployments and Git Sync Errors](/docs/articles/troubleshooting-deployments-and-git-sync.md): Diagnose Zuplo deployments that hang at "Deploying api" or "Building Developer Portal" and fix Git source-control sync errors such as Bitbucket 410 Gone responses on branch retrieval. - [Testing Your API](/docs/articles/testing.md): Learn how `zuplo test` runs the same TypeScript test files against your local dev server, preview deployments, and production to catch configuration defects that unit tests miss. - [Gateway test recipes](/docs/articles/testing-recipes.md): Copy-pasteable TypeScript test files for the assertions that matter at a gateway—auth rejections, deterministic rate limits, response schema validation with Zod, OpenAPI conformance, error contracts, routing, and test data hygiene. - [Test preview environments](/docs/articles/testing-preview-environments.md): Run the same test suite against a real per-branch Zuplo deployment before merging. Covers getting the preview URL into your tests, waiting for readiness, per-environment secrets, and scoping what runs where. - [Testing GraphQL Queries](/docs/articles/testing-graphql.md): Learn how to test GraphQL API routes using the Zuplo Portal and third-party tools like Postman. - [Get started with zuplo test](/docs/articles/testing-getting-started.md): Take a Zuplo project from no tests to a green run against a local dev server in three steps. Covers test file location, the TestHelper API, and CLI flags for filtering and skipping tests. - [Native GitOps: Better Than Terraform](/docs/articles/terraform.md) - [Support](/docs/articles/support.md) - [Step 5 - Dynamic Rate Limiting](/docs/articles/step-5-dynamic-rate-limiting.md) - [Step 5 - Dynamic Rate Limiting](/docs/articles/step-5-dynamic-rate-limiting-local.md) - [Step 4 - Deploying to the Edge](/docs/articles/step-4-deploying-to-the-edge.md) - [Step 4 - Deploy to the Edge](/docs/articles/step-4-deploying-to-the-edge-local.md) - [Step 3 - API Key Authentication](/docs/articles/step-3-add-api-key-auth.md) - [Step 3 - API Key Authentication](/docs/articles/step-3-add-api-key-auth-local.md) - [Step 2 - Add Rate Limiting](/docs/articles/step-2-add-rate-limiting.md) - [Step 2 - Add Rate Limiting](/docs/articles/step-2-add-rate-limiting-local.md) - [Step 1 - Setup a Basic Gateway](/docs/articles/step-1-setup-basic-gateway.md) - [Step 1 - Setup a Basic Gateway](/docs/articles/step-1-setup-basic-gateway-local.md) - [Source Control & Deployments](/docs/articles/source-control.md) - [GitLab Setup](/docs/articles/source-control-setup-gitlab.md) - [GitHub Setup](/docs/articles/source-control-setup-github.md) - [Bitbucket Setup](/docs/articles/source-control-setup-bitbucket.md) - [Azure DevOps Setup](/docs/articles/source-control-setup-azure.md) - [Sharing Code Across Zuplo Projects](/docs/articles/sharing-code-across-projects.md): Learn how to create a shared npm package containing TypeScript modules that can be reused across multiple Zuplo projects. - [Security](/docs/articles/security.md) - [Securing your backend](/docs/articles/securing-your-backend.md) - [Client mTLS authentication](/docs/articles/securing-the-gateway-with-client-mtls.md): Require API callers to present client certificates signed by a CA you trust before they reach your Zuplo gateway. - [Gateway to Origin mTLS Authentication](/docs/articles/securing-backend-mtls.md) - [Secure Tunnel](/docs/articles/secure-tunnel.md) - [Generating S3 Signed URLs for Large File Uploads](/docs/articles/s3-signed-url-uploads.md): Learn how to bypass Zuplo's 500MB limit by generating pre-signed S3 URLs for direct client uploads to Amazon S3. - [Zuplo Routing](/docs/articles/routing.md) - [Rick and Morty Developer Portal and Documentation](/docs/articles/rick-and-morty-api-developer-portal-example.md): Learn how to use the Rick and Morty REST API to access characters, locations, and episodes from the TV show. - [How to rename or move a project](/docs/articles/rename-or-move-project.md) - [Policy Fundamentals](/docs/articles/policies.md) - [Hydrolix / Akamai Traffic Peak Plugin](/docs/articles/plugin-hydrolix-traffic-peak.md) - [Azure Event Hubs Request Logger Plugin](/docs/articles/plugin-azure-event-hubs.md) - [Azure Blob Plugin](/docs/articles/plugin-azure-blob.md) - [Akamai API Security (AKA NONAME) plugin](/docs/articles/plugin-akamai-api-security.md) - [Performance Testing Your Gateway](/docs/articles/performance-testing.md) - [Zuplo OpenTelemetry](/docs/articles/opentelemetry.md) - [OpenAPI Support in Zuplo](/docs/articles/openapi.md) - [OpenAPI Format Validation Warnings in Local Development](/docs/articles/openapi-string-format-validation-warnings.md): Understand the "unknown format ... ignored" warnings the Zuplo CLI prints during local development, why they appear, and why they are safe to ignore. - [OpenAPI Server URLs in Zuplo](/docs/articles/openapi-server-urls.md): Learn how Zuplo automatically manages server URLs in OpenAPI specs across environments and custom domains. - [OAuth Authentication](/docs/articles/oauth-authentication.md) - [Non-Standard Ports](/docs/articles/non-standard-ports.md): Learn how to make requests to non-standard ports in Zuplo with compatibility dates 2024-09-02 or later. - [Handling Multiple Authentication Policies](/docs/articles/multiple-auth-policies.md): Learn how to configure multiple authentication methods like JWT and API Key on a single API route in Zuplo. - [Deploying Zuplo from a Monorepo](/docs/articles/monorepo-deployment.md): Deploy a Zuplo Gateway from a monorepo subdirectory using the Zuplo CLI and GitHub Actions. - [Ensuring the integrity of your gateway with proactive monitoring](/docs/articles/monitoring-your-gateway.md) - [Third-Party Monetization Integrations](/docs/articles/monetization-integrations.md) - [Custom API Monetization](/docs/articles/monetization-custom.md) - [Migrate to Zuplo from Other API Gateways](/docs/articles/migration-overview.md) - [Migrate from Kong Gateway to Zuplo](/docs/articles/migrate-from-kong.md) - [Migrate from Azure API Management to Zuplo](/docs/articles/migrate-from-azure-apim.md) - [Migrate from AWS API Gateway to Zuplo](/docs/articles/migrate-from-aws-api-gateway.md) - [Migrate from Google Apigee to Zuplo](/docs/articles/migrate-from-apigee.md) - [Metrics Plugins](/docs/articles/metrics-plugins.md) - [Dynamic MCP Server - Quickstart](/docs/articles/mcp-quickstart.md) - [Dynamic MCP Server - Quickstart](/docs/articles/mcp-quickstart-local.md) - [Manual OAuth MCP Testing](/docs/articles/manual-mcp-oauth-testing.md): Learn how to manually test OAuth flows for MCP servers using curl and OpenSSL when clients don't support full dynamic registration. - [Logging](/docs/articles/logging.md) - [Log Custom Request and Response Data](/docs/articles/log-request-response-data.md) - [VMware Log Insight Log Plugin](/docs/articles/log-plugin-vmware-log-insight.md) - [SumoLogic Plugin](/docs/articles/log-plugin-sumo.md) - [Splunk Plugin](/docs/articles/log-plugin-splunk.md) - [New Relic Plugin](/docs/articles/log-plugin-new-relic.md) - [Loki Logging Plugin](/docs/articles/log-plugin-loki.md) - [Google Cloud Logging Plugin](/docs/articles/log-plugin-gcp.md) - [Dynatrace Plugin](/docs/articles/log-plugin-dynatrace.md) - [Datadog Plugin](/docs/articles/log-plugin-datadog.md) - [AWS CloudWatch Plugin](/docs/articles/log-plugin-aws-cloudwatch.md) - [Running your Zuplo Gateway locally](/docs/articles/local-development.md) - [Troubleshooting](/docs/articles/local-development-troubleshooting.md) - [Connecting to Zuplo Services Locally](/docs/articles/local-development-services.md) - [Routes Designer](/docs/articles/local-development-routes-designer.md) - [Installing Packages](/docs/articles/local-development-installing-packages.md) - [Configuring Environment Variables Locally](/docs/articles/local-development-env-variables.md) - [Debugging Locally](/docs/articles/local-development-debugging.md) - [Zuplo Platform Limits](/docs/articles/limits.md) - [Lazy Load Configuration](/docs/articles/lazy-load-configuration-into-cache.md): Learn how to efficiently load and cache configuration data using MemoryZoneReadThroughCache for optimal performance. - [Hosting Options](/docs/articles/hosting-options.md) - [Health Check Handler](/docs/articles/health-checks.md): Learn how to set up health check endpoints to monitor your Zuplo Gateway and backend services. - [Handling FormData](/docs/articles/handling-form-data.md): Learn how to parse multipart/form-data uploads and process file content in Zuplo runtime using function handlers. - [GraphQL on Zuplo](/docs/articles/graphql.md): Proxy a GraphQL API through your Zuplo gateway and publish a browsable schema reference with a playground in your Dev Portal. - [GraphQL support on Zuplo](/docs/articles/graphql-support.md): Everything Zuplo supports for GraphQL APIs — proxying, security, caching, analytics, Dev Portal docs, and MCP — with links to each guide and policy. - [Secure your GraphQL API with Zuplo](/docs/articles/graphql-security.md): Protect your GraphQL API from denial-of-service attacks and schema discovery using Zuplo's GraphQL security policies. - [Cache GraphQL responses with Zuplo](/docs/articles/graphql-caching.md): Serve repeated GraphQL queries from the edge with the GraphQL Cache policy to cut latency and reduce load on your origin. - [Secure a GCP Backend with Zuplo Upstream Auth](/docs/articles/gke-with-upstream-auth-policy.md) - [Test GitHub deployments](/docs/articles/github-deployment-testing.md): Trigger a GitHub Actions workflow on Zuplo's deployment_status event, run your test suite against the preview URL, and make the result a required status check so a gateway regression blocks the merge. - [Use Feature Flags to Gate Your API](/docs/articles/feature-flags.md): Evaluate feature flags from providers like Statsig, PostHog, Flagsmith, and GrowthBook inside Zuplo policies. Cache per-user evaluations for low latency and load global flags in the background so they never block a request. - [Using Zuplo as a Fastly Host](/docs/articles/fastly-zuplo-host-setup.md) - [Environments](/docs/articles/environments.md) - [Configuring Environment Variables](/docs/articles/environment-variables.md) - [Development Options](/docs/articles/development-options.md) - [Managed DDoS Protection](/docs/articles/ddos-protection.md) - [Custom Logging Policy](/docs/articles/custom-logging-example.md) - [Custom Domains](/docs/articles/custom-domains.md) - [Custom Code Patterns](/docs/articles/custom-code-patterns.md) - [Custom CI/CD Pipelines](/docs/articles/custom-ci-cd.md) - [GitLab CI/CD](/docs/articles/custom-ci-cd-gitlab.md) - [Custom GitHub Actions](/docs/articles/custom-ci-cd-github.md) - [CircleCI](/docs/articles/custom-ci-cd-circleci.md) - [Bitbucket Pipelines](/docs/articles/custom-ci-cd-bitbucket.md) - [Azure Pipelines](/docs/articles/custom-ci-cd-azure.md) - [Custom Audit Logs](/docs/articles/custom-audit-logs.md) - [Configuring CORS](/docs/articles/cors.md) - [Script to Convert URL Params to OpenAPI Format](/docs/articles/convert-urls-to-openapi.md): Learn how to convert Zuplo URL parameters to standard OpenAPI format using this JavaScript conversion script. - [Connect to an AWS ALB with mTLS](/docs/articles/connect-to-aws-alb-with-mtls.md): Configure Zuplo to authenticate to an AWS Application Load Balancer using a mutual TLS client certificate, so the ALB only accepts traffic that comes through your gateway. - [Setting up Okta as an Authentication Server for MCP OAuth Authentication](/docs/articles/configuring-okta-for-mcp-auth.md): Learn how to configure Okta as an authorization server for OAuth authentication with MCP Server handler. - [Setting up Auth0 as an Authentication Server for MCP OAuth Authentication](/docs/articles/configuring-auth0-for-mcp-auth.md): Learn how to configure Auth0 as an Authorization Server for use with the MCP Server handler and OAuth authentication. - [Composite Policy: Limitations and Patterns](/docs/articles/composite-policy-reference.md): Understand the limitations of composite policies in Zuplo, including nesting restrictions, and learn recommended patterns for reusing policy chains across routes. - [How to check an incoming IP address](/docs/articles/check-ip-address.md): Read the client IP address of an incoming request, and understand when that address can be trusted on each deployment type. - [Certificate Pinning](/docs/articles/certificate-pinning.md) - [Bypass a Policy for Testing](/docs/articles/bypass-policy-for-testing.md): Learn how to bypass policies for testing and debugging using API key metadata or custom policies in Zuplo. - [Branch-Based Deployments](/docs/articles/branch-based-deployments.md) - [Zuplo Audit Logs](/docs/articles/audit-logs.md) - [Audit Logging](/docs/articles/audit-logging.md) - [Archiving requests to storage](/docs/articles/archiving-requests-to-storage.md): Learn how to archive incoming request text bodies to Azure Blob Storage using custom policies in Zuplo. - [API Key Service Limits](/docs/articles/api-key-service-limits.md) - [Build Self-Serve Key Management](/docs/articles/api-key-self-serve-integration.md) - [API Key Manager React Component](/docs/articles/api-key-react-component.md) - [API Keys Overview](/docs/articles/api-key-management.md) - [API Key Leak Detection](/docs/articles/api-key-leak-detection.md) - [Share Keys with End Users](/docs/articles/api-key-end-users.md) - [Create Consumers in a Specific Bucket](/docs/articles/api-key-consumer-bucket-portal-ui.md): Learn how to create API key consumers in a specific bucket using the Zuplo portal UI, including bucket selection, environment mapping, and troubleshooting. - [Buckets and Environments](/docs/articles/api-key-buckets.md) - [API Key Best Practices](/docs/articles/api-key-best-practices.md) - [Authentication and Authorization](/docs/articles/api-key-authentication.md) - [Use the Developer API](/docs/articles/api-key-api.md) - [Manage Keys in the Portal](/docs/articles/api-key-administration.md) - [Advanced Path Matching](/docs/articles/advanced-path-matching.md): Learn how to use URLPattern for advanced path matching with dynamic parameters, regular expressions, and wildcards in Zuplo. - [Add Your Zuplo API to Backstage](/docs/articles/add-api-to-backstage.md): Learn how to integrate your Zuplo API into Backstage by adding OpenAPI spec handlers and configuring catalog entries. - [Usage Limits & Thresholds](/docs/ai-gateway/usage-limits.md): Set hierarchical spending, token, and request limits at the gateway, team, and app levels, with warning thresholds and quota fallbacks. - [AI Gateway Universal API](/docs/ai-gateway/universal-api.md): Every AI Gateway app exposes an OpenAI-compatible API. Point your SDK's base URL at the app's gateway URL and reference models as providerName/model. - [AI Gateway Teams](/docs/ai-gateway/teams.md): Teams manage access to AI Gateway apps, carry usage limits and policy templates, and organize members with hierarchical sub-teams. - [AI Gateway Source Control](/docs/ai-gateway/source-control.md): Every AI Gateway project deploys from a Git repository you own. Learn what the scaffolded repository contains, how pushes deploy to production, and which changes require a deploy versus applying live. - [AI Providers](/docs/ai-gateway/providers.md): The AI providers and capabilities the Zuplo AI Gateway supports, including OpenAI, Anthropic, Google, Mistral, xAI, and OpenAI-compatible custom providers. - [AI Gateway Policy Templates](/docs/ai-gateway/policy-templates.md): Team policy templates give every new app in a team a consistent starting policy chain, with per-policy controls over what each app may change or remove. - [AI Gateway Policy Chains](/docs/ai-gateway/policy-chains.md): Each AI Gateway app runs an ordered chain of policies selected from the gateway's policies.json. Learn how the chain executes, how options and secrets are inherited, and the recommended policy order. - [Managing Teams](/docs/ai-gateway/managing-teams.md): Create teams and sub-teams, add members, and set team-level policy templates and usage limits in your AI Gateway project. - [Managing AI Providers](/docs/ai-gateway/managing-providers.md): Add, edit, and delete AI providers in your AI Gateway project, and understand how provider names become model references and when changes deploy. - [Managing Apps](/docs/ai-gateway/managing-apps.md): Create, edit, and delete AI Gateway apps. Apps are created with just a name and a team; models, app-specific budgets, and other behavior live on the app's policy chain. - [Zuplo AI Gateway](/docs/ai-gateway/introduction.md): The Zuplo AI Gateway is a proxy between your apps and LLM providers, deployed from your own Git repository, with per-app policy pipelines for cost control, model access, guardrails, and observability. - [Zuplo AI Gateway Getting Started](/docs/ai-gateway/getting-started.md): Set up your first AI Gateway project. Connect a Git repository, configure an AI provider, create a team and an app, review the app's policy chain, and make your first LLM request through Zuplo. - [Fallback Models](/docs/ai-gateway/fallback.md): Configure error, timeout, and quota fallback models for an AI Gateway app so it keeps serving requests when the primary model fails or goes over quota. - [Using Custom AI Providers](/docs/ai-gateway/custom-providers.md): Route AI Gateway apps to self-hosted or third-party OpenAI-compatible services by adding a custom provider with its own name, URL, models, and optional per-token costs. - [Quickstart: Write a Custom Policy](/docs/ai-gateway/custom-policies.md): Write a custom AI Gateway policy in TypeScript—a content filter that blocks prompts containing banned terms—declare it in policies.json, deploy it with a push, and add it to an app's policy chain in the portal. - [AI Gateway Apps](/docs/ai-gateway/apps.md): Apps represent the services and integrations that call your AI Gateway. Each app has its own URL, API key, and policy chain. - [Logging and OpenTelemetry](/docs/mcp-gateway/observability/logging.md): How the Zuplo MCP Gateway logs — structured event-keyed entries with auto-attached route and subject fields, what the gateway intentionally excludes, and how the logs cross-reference analytics events. - [MCP analytics](/docs/mcp-gateway/observability/analytics.md): What events the Zuplo MCP Gateway emits, the dimensions you'll filter by, and the kinds of operational questions the analytics dashboard answers. - [Curate the tools an upstream exposes](/docs/mcp-gateway/how-to/curate-tools.md): Restrict which tools, prompts, and resources a Zuplo MCP Gateway Virtual Server exposes from its upstream MCP server, using the Curate option in the Portal wizard. - [Curate the tools an upstream exposes (in code)](/docs/mcp-gateway/how-to/curate-tools-local.md): Restrict and re-project the tools, prompts, resources, and resource templates a Zuplo MCP Gateway route exposes from its upstream MCP server by configuring the mcp-capability-filter-inbound policy in code. - [Connect a gateway to an upstream OAuth provider](/docs/mcp-gateway/how-to/connect-upstream-oauth.md): Attach the mcp-token-exchange-inbound policy to an MCP route so the Zuplo MCP Gateway authenticates each user against an OAuth-protected upstream MCP server. - [Connect a gateway to an API-key upstream MCP server](/docs/mcp-gateway/how-to/connect-upstream-api-key.md): Front an MCP server that authenticates with a static API key over a Bearer token. Configure a custom upstream in the wizard, strip the inbound auth token, and inject the upstream key with the Add or Set Request Headers policy. - [Set up an MCP Gateway](/docs/mcp-gateway/code-config/overview.md): Wire up the Zuplo MCP Gateway in routes.oas.json and policies.json — register the runtime plugin, configure one OAuth policy and one token-exchange policy per upstream, and add an MCP route. - [Add multiple upstream MCP servers](/docs/mcp-gateway/code-config/multi-upstream.md): Front many upstream MCP servers from one Zuplo project. Share a single OAuth policy across every route, add one token exchange policy per upstream, and let each user maintain independent per-upstream connections. - [McpProxyHandler reference](/docs/mcp-gateway/code-config/mcp-proxy-handler.md): The route handler that turns a Zuplo path into an MCP Gateway endpoint — forwards POST requests to an upstream MCP server, rejects GET with 405, and emits per-capability analytics on every call. - [Local development](/docs/mcp-gateway/code-config/local-development.md): Run the Zuplo MCP Gateway locally with zuplo dev, bypass your identity provider with the loopback /__zuplo/oauth/dev-login shortcut, wire up an MCP client against 127.0.0.1, and recover cleanly from the known workerd restart quirk. - [Compatibility dates](/docs/mcp-gateway/code-config/compatibility-dates.md): The Zuplo MCP Gateway requires compatibilityDate 2026-03-01 or later in zuplo.jsonc. - [Cross App Access quickstart](/docs/mcp-gateway/cross-app-access/quickstart.md): Build a Zuplo MCP Gateway that reaches an XAA-protected MCP server in the Zuplo Portal — no repository to clone. The gateway fronts Okta's hosted xaa.dev Todo0 server and performs the Cross App Access (XAA) token exchange on every request. - [Cross App Access configuration reference](/docs/mcp-gateway/cross-app-access/policy-reference.md): Every configuration option for Cross App Access (XAA) on the Zuplo MCP Gateway — the id-jag mode on the token-exchange policy, where the gateway acts as the XAA requesting app. - [Cross App Access (XAA)](/docs/mcp-gateway/cross-app-access/overview.md): What Cross App Access (XAA) and the Identity Assertion JWT Authorization Grant (ID-JAG) are, the problem they solve for AI agents and MCP, and how the Zuplo MCP Gateway performs the token exchange so your MCP servers and clients don't have to. - [Connect VS Code (GitHub Copilot)](/docs/mcp-gateway/connect-clients/vs-code.md): Connect VS Code with GitHub Copilot to a Zuplo MCP Gateway through `.vscode/mcp.json`, the `code --add-mcp` CLI, or the Extensions view, and use gateway tools in Copilot Chat's Agent mode. - [Connect MCP clients](/docs/mcp-gateway/connect-clients/overview.md): Learn how MCP clients connect to a Zuplo MCP Gateway, where to find the connection URL, what the OAuth flow looks like on first use, and which clients support which spec features. - [Other MCP clients](/docs/mcp-gateway/connect-clients/other-clients.md): Add a Zuplo MCP Gateway to Windsurf, Goose, Gemini CLI, GitHub Copilot CLI, Postman, MCPJam, Continue, LibreChat, and JetBrains AI Assistant. - [Connect Cursor](/docs/mcp-gateway/connect-clients/cursor.md): Connect Cursor to a Zuplo MCP Gateway using a one-click deeplink or by editing `mcp.json` directly, complete the OAuth flow, and use gateway tools in Cursor Composer. - [Connect Claude Desktop and Claude.ai](/docs/mcp-gateway/connect-clients/claude-desktop.md): Connect Claude Desktop or Claude.ai to a Zuplo MCP Gateway as a custom remote connector, complete the OAuth flow, and start using your tools. - [Connect Claude Code](/docs/mcp-gateway/connect-clients/claude-code.md): Connect Claude Code's CLI to a Zuplo MCP Gateway using `claude mcp add`, authenticate over OAuth, and manage the connection from the `/mcp` slash command. - [Connect ChatGPT](/docs/mcp-gateway/connect-clients/chatgpt.md): Connect ChatGPT to a Zuplo MCP Gateway as a custom connector using Developer Mode, complete the OAuth flow, and start using your tools in conversation. - [Per-user OAuth to upstream MCP servers](/docs/mcp-gateway/auth/upstream-oauth.md): How the Zuplo MCP Gateway acts as an OAuth client to upstream MCP servers — the two auth modes, client registration, the consent flow users experience, connect-required states, and token refresh. - [Authentication overview](/docs/mcp-gateway/auth/overview.md): How authentication works in the Zuplo MCP Gateway — the gateway as an OAuth 2.1 server for MCP clients, and as an OAuth client to each upstream MCP server. - [Manual OAuth testing](/docs/mcp-gateway/auth/manual-oauth-testing.md): Walk through every step of the MCP Gateway's downstream OAuth flow with curl, openssl, and jq. Useful for debugging discovery, registration, authorize, token exchange, refresh, and the first authenticated MCP request. - [Configuring WorkOS](/docs/mcp-gateway/auth/configuring-workos.md): Configure WorkOS to back the MCP Gateway's downstream OAuth using the mcp-workos-oauth-inbound policy. Covers AuthKit setup and wiring the policy in your gateway project. - [Configuring PingOne](/docs/mcp-gateway/auth/configuring-ping.md): Configure PingOne to back the MCP Gateway's downstream OAuth using the mcp-ping-oauth-inbound policy. Covers application setup and wiring the policy in your gateway project. - [Configuring OneLogin](/docs/mcp-gateway/auth/configuring-onelogin.md): Configure OneLogin to back the MCP Gateway's downstream OAuth using the mcp-onelogin-oauth-inbound policy. Covers OIDC app setup and wiring the policy in your gateway project. - [Configuring Okta](/docs/mcp-gateway/auth/configuring-okta.md): Configure Okta to back the MCP Gateway's downstream OAuth using the mcp-okta-oauth-inbound policy. Covers Okta application setup and wiring the policy in your gateway project. - [Configuring Logto](/docs/mcp-gateway/auth/configuring-logto.md): Configure Logto to back the MCP Gateway's downstream OAuth using the mcp-logto-oauth-inbound policy. Covers application setup and wiring the policy in your gateway project. - [Configuring Keycloak](/docs/mcp-gateway/auth/configuring-keycloak.md): Configure Keycloak to back the MCP Gateway's downstream OAuth using the mcp-keycloak-oauth-inbound policy. Covers realm client setup and wiring the policy in your gateway project. - [Configuring Google](/docs/mcp-gateway/auth/configuring-google.md): Configure Google as the identity provider behind the MCP Gateway's downstream OAuth using the mcp-google-oauth-inbound policy. Covers OAuth client setup in Google Cloud and wiring the policy in your gateway project. - [Configuring a generic OIDC provider](/docs/mcp-gateway/auth/configuring-generic-oidc.md): Configure any OIDC-compatible identity provider — Ory Hydra, Authentik, ZITADEL, FusionAuth, PingFederate, or a custom OIDC server — to back the MCP Gateway's downstream OAuth using the mcp-oauth-inbound policy. - [Configuring Microsoft Entra ID](/docs/mcp-gateway/auth/configuring-entra.md): Configure Microsoft Entra ID to back the MCP Gateway's downstream OAuth using the mcp-entra-oauth-inbound policy. Covers app registration and wiring the policy in your gateway project. - [Configuring Amazon Cognito](/docs/mcp-gateway/auth/configuring-cognito.md): Configure Amazon Cognito to back the MCP Gateway's downstream OAuth using the mcp-cognito-oauth-inbound policy. Covers user pool setup, hosted UI domain, and wiring the policy in your gateway project. - [Configuring Clerk](/docs/mcp-gateway/auth/configuring-clerk.md): Configure Clerk to back the MCP Gateway's downstream OAuth using the mcp-clerk-oauth-inbound policy. Covers OAuth application setup and wiring the policy in your gateway project. - [Configuring Auth0](/docs/mcp-gateway/auth/configuring-auth0.md): Configure Auth0 to back the MCP Gateway's downstream OAuth using the mcp-auth0-oauth-inbound policy. Covers tenant setup, application configuration, and wiring the policy in your gateway project. - [Writing](/docs/dev-portal/zudoku/writing.md): A guide to writing documentation in Dev Portal using Markdown and MDX. - [Dev Portal Plugins](/docs/dev-portal/zudoku/plugins.md) - [Custom Plugins](/docs/dev-portal/zudoku/custom-plugins.md) - [Setting up Akamai CDNs](/docs/dedicated/akamai/cdn.md) - [Controlling Akamai CDN Caching](/docs/dedicated/akamai/caching.md): Cache Zuplo responses at the Akamai edge with the CDN Cache Control policy. Covers Edge-Control TTLs, Edge-Cache-Tag purge tags, and the Property Manager settings that make them work. - [Akamai Dedicated Architecture](/docs/dedicated/akamai/architecture.md): Architecture overview for Zuplo Gateway deployments on Akamai Connected Cloud. - [AI-Powered Applications on Akamai](/docs/dedicated/akamai/ai-powered-applications.md): Reference architecture for secure, AI-powered applications on Akamai Connected Cloud with Zuplo AI Gateway, MCP servers, and Akamai AI Firewall. - [Requests](/docs/analytics/tabs/requests.md) - [Origins](/docs/analytics/tabs/origins.md) - [MCP](/docs/analytics/tabs/mcp.md) - [GraphQL](/docs/analytics/tabs/graphql.md) - [Consumers](/docs/analytics/tabs/consumers.md) - [Agents](/docs/analytics/tabs/agents.md) - [URL Parameters](/docs/analytics/reference/url-parameters.md) - [Metrics Glossary](/docs/analytics/reference/metrics-glossary.md) - [User Profile](/docs/articles/users/profile.md) - [Multifactor Authentication](/docs/articles/users/multifactor-authentication.md) - [Troubleshooting & FAQ](/docs/articles/monetization/troubleshooting.md) - [Tax Collection — Enabling Stripe Tax](/docs/articles/monetization/tax-collection.md) - [Subscription Lifecycle](/docs/articles/monetization/subscription-lifecycle.md) - [Reading Subscription Data](/docs/articles/monetization/subscription-data.md) - [Stripe Integration](/docs/articles/monetization/stripe-integration.md) - [Rate Cards](/docs/articles/monetization/rate-cards.md) - [Quickstart — Monetize Your API](/docs/articles/monetization/quickstart.md) - [Programmatic Monetization](/docs/articles/monetization/programmatic-monetization.md) - [Private Plans — Invite-Only Subscriptions](/docs/articles/monetization/private-plans.md) - [Pricing Models](/docs/articles/monetization/pricing-models.md) - [Plans](/docs/articles/monetization/plans.md) - [Plan Examples](/docs/articles/monetization/plan-examples.md) - [Monetization Policy Reference](/docs/articles/monetization/monetization-policy.md) - [Meters](/docs/articles/monetization/meters.md) - [Going to Production with Monetization](/docs/articles/monetization/going-to-production.md): Pre-production checklist, Stripe live-mode cutover, billing model readiness, and known limitations for launching Zuplo API monetization. - [Features](/docs/articles/monetization/features.md) - [Dynamic Metering](/docs/articles/monetization/dynamic-metering.md) - [Developer Portal Setup](/docs/articles/monetization/developer-portal.md) - [Billing Models Guide](/docs/articles/monetization/billing-models.md) - [API Access](/docs/articles/monetization/api-access.md) - [GitLab CI/CD: Tag-Based Releases](/docs/articles/ci-cd-gitlab/tag-based-releases.md) - [GitLab CI/CD: Multi-Stage Deployment](/docs/articles/ci-cd-gitlab/multi-stage-deployment.md) - [GitLab CI/CD: MR Preview Environments](/docs/articles/ci-cd-gitlab/mr-preview-environments.md) - [GitLab CI/CD: Local testing in CI](/docs/articles/ci-cd-gitlab/local-testing.md): Start a local Zuplo dev server inside GitLab CI/CD, poll it until it answers, run your test suite, and only deploy if every test passes. - [GitLab CI/CD: Deploy and Test](/docs/articles/ci-cd-gitlab/deploy-and-test.md) - [GitLab CI/CD: Basic Deployment](/docs/articles/ci-cd-gitlab/basic-deployment.md) - [GitHub Actions: Tag-Based Releases](/docs/articles/ci-cd-github/tag-based-releases.md) - [GitHub Actions: PR Preview Environments](/docs/articles/ci-cd-github/pr-preview-environments.md) - [GitHub Actions: Multi-Stage Deployment](/docs/articles/ci-cd-github/multi-stage-deployment.md) - [GitHub Actions: Local testing in CI](/docs/articles/ci-cd-github/local-testing.md): Start a local Zuplo dev server inside a GitHub Actions workflow, poll it until it answers, run your test suite, and only deploy if every test passes. - [GitHub Actions: Deploy and test](/docs/articles/ci-cd-github/deploy-and-test.md): Deploy to Zuplo from a GitHub Actions workflow, capture the deployment URL, and run your test suite against the live environment to validate changes before they reach production. - [GitHub Actions: Automatic Cleanup](/docs/articles/ci-cd-github/cleanup-on-branch-delete.md) - [GitHub Actions: Basic Deployment](/docs/articles/ci-cd-github/basic-deployment.md) - [CircleCI: Tag-Based Releases](/docs/articles/ci-cd-circleci/tag-based-releases.md) - [CircleCI: PR Preview Environments](/docs/articles/ci-cd-circleci/pr-preview-environments.md) - [CircleCI: Multi-Stage Deployment](/docs/articles/ci-cd-circleci/multi-stage-deployment.md) - [CircleCI: Local testing in CI](/docs/articles/ci-cd-circleci/local-testing.md): Start a local Zuplo dev server inside CircleCI, poll it until it answers, run your test suite, and only deploy if every test passes. - [CircleCI: Deploy and Test](/docs/articles/ci-cd-circleci/deploy-and-test.md) - [CircleCI: Basic Deployment](/docs/articles/ci-cd-circleci/basic-deployment.md) - [Bitbucket Pipelines: Tag-Based Releases](/docs/articles/ci-cd-bitbucket/tag-based-releases.md) - [Bitbucket Pipelines: PR Preview Environments](/docs/articles/ci-cd-bitbucket/pr-preview-environments.md) - [Bitbucket Pipelines: Multi-Stage Deployment](/docs/articles/ci-cd-bitbucket/multi-stage-deployment.md) - [Bitbucket Pipelines: Local testing in CI](/docs/articles/ci-cd-bitbucket/local-testing.md): Start a local Zuplo dev server inside Bitbucket Pipelines, poll it until it answers, run your test suite, and only deploy if every test passes. - [Bitbucket Pipelines: Deploy and Test](/docs/articles/ci-cd-bitbucket/deploy-and-test.md) - [Bitbucket Pipelines: Basic Deployment](/docs/articles/ci-cd-bitbucket/basic-deployment.md) - [Azure Pipelines: Tag-Based Releases](/docs/articles/ci-cd-azure/tag-based-releases.md) - [Azure Pipelines: PR Preview Environments](/docs/articles/ci-cd-azure/pr-preview-environments.md) - [Azure Pipelines: Multi-Stage Deployment](/docs/articles/ci-cd-azure/multi-stage-deployment.md) - [Azure Pipelines: Local testing in CI](/docs/articles/ci-cd-azure/local-testing.md): Start a local Zuplo dev server inside Azure Pipelines, poll it until it answers, run your test suite, and only deploy if every test passes. - [Azure Pipelines: Deploy and Test](/docs/articles/ci-cd-azure/deploy-and-test.md) - [Azure Pipelines: Basic Deployment](/docs/articles/ci-cd-azure/basic-deployment.md) - [Zuplo API Keys](/docs/articles/accounts/zuplo-api-keys.md) - [Switching Between Accounts](/docs/articles/accounts/switching-between-accounts.md) - [Role Permissions](/docs/articles/accounts/roles-and-permissions.md): Compare account, project, and AI Gateway permissions for Admin, Developer, Member, and team roles. - [Members & Roles](/docs/articles/accounts/members-and-roles.md) - [Managing Project Members](/docs/articles/accounts/managing-project-members.md) - [Managing Account Members](/docs/articles/accounts/managing-account-members.md) - [Zuplo Single Sign On](/docs/articles/accounts/enterprise-sso.md) - [Deleting your Account](/docs/articles/accounts/delete-account.md) - [Default API Key](/docs/articles/accounts/default-api-key.md) - [Zuplo Billing](/docs/articles/accounts/billing.md) - [Account Audit Logs](/docs/articles/accounts/audit-logs.md) - [AI Gateway policies](/docs/ai-gateway/policies/overview.md): Every policy an AI Gateway app can run, and what each one does. - [OpenAI SDK](/docs/ai-gateway/integrations/openai.md): Set the OpenAI SDK's baseURL to your AI Gateway app's URL to route chat completions, embeddings, and responses requests through the gateway. - [LangChain](/docs/ai-gateway/integrations/langchain.md): Point LangChain's ChatOpenAI integration at your AI Gateway app's URL so every LangChain call is routed and metered by the gateway. - [goose](/docs/ai-gateway/integrations/goose.md): Add your AI Gateway app as an OpenAI-compatible provider in the goose CLI or desktop app so goose's requests route through the gateway. - [Codex](/docs/ai-gateway/integrations/codex.md): Configure the Codex CLI to send its requests through an AI Gateway app, either by rerouting the built-in OpenAI provider or by adding a Zuplo provider. - [Claude Code](/docs/ai-gateway/integrations/claude-code.md): Point Claude Code at an AI Gateway app so every Claude Code request is authenticated, metered, and routed by the gateway. - [AI SDK](/docs/ai-gateway/integrations/ai-sdk.md): Route AI SDK requests through the Zuplo AI Gateway by pointing each provider's base URL at your app's gateway URL and referencing models as providerName/model. - [Cookbook: Dynamic model routing](/docs/ai-gateway/cookbooks/dynamic-model-routing.md): Write a custom policy that picks the model per request—for example, always routing to the cheapest active model—using the AI Gateway's public routing primitives. - [Cookbook: Custom fallback logic](/docs/ai-gateway/cookbooks/custom-fallback.md): Write a custom policy that chooses a backup model dynamically—for example, picking any active Anthropic model as the fallback—instead of a fixed entry in the Fallback Model policy. - [x-zudoku-playground-enabled](/docs/dev-portal/zudoku/openapi-extensions/x-zudoku-playground-enabled.md) - [x-zudoku-collapsible](/docs/dev-portal/zudoku/openapi-extensions/x-zudoku-collapsible.md) - [x-zudoku-collapsed](/docs/dev-portal/zudoku/openapi-extensions/x-zudoku-collapsed.md) - [x-tagGroups](/docs/dev-portal/zudoku/openapi-extensions/x-tag-groups.md) - [x-mcp](/docs/dev-portal/zudoku/openapi-extensions/x-mcp.md) - [x-mcp-server](/docs/dev-portal/zudoku/openapi-extensions/x-mcp-server.md) - [x-displayName](/docs/dev-portal/zudoku/openapi-extensions/x-display-name.md) - [x-code-samples](/docs/dev-portal/zudoku/openapi-extensions/x-code-samples.md) - [Markdown](/docs/dev-portal/zudoku/markdown/overview.md): Comprehensive guide to using Markdown and MDX in Zudoku, including formatting, frontmatter, syntax highlighting, tables, lists, task lists, collapsible sections, and advanced documentation features. - [MDX](/docs/dev-portal/zudoku/markdown/mdx.md): Learn how to use MDX in Dev Portal to create rich documentation pages with markdown and custom React components. - [Frontmatter](/docs/dev-portal/zudoku/markdown/frontmatter.md): Learn how to use YAML frontmatter in Dev Portal markdown files to customize page titles, descriptions, navigation, and other document properties. - [Code Blocks](/docs/dev-portal/zudoku/markdown/code-blocks.md): Learn how to use code blocks, syntax highlighting, and advanced features like line highlighting and ANSI output in Dev Portal Markdown with Shiki. - [Admonitions](/docs/dev-portal/zudoku/markdown/admonitions.md): Learn how to use admonitions (callouts) in Markdown, including syntax, types, titles, and formatting tips for compatibility with Prettier. - [Multiple APIs](/docs/dev-portal/zudoku/guides/using-multiple-apis.md) - [Transforming Operation Examples](/docs/dev-portal/zudoku/guides/transforming-examples.md) - [Static Files](/docs/dev-portal/zudoku/guides/static-files.md): Learn how to serve and reference static files like images and PDFs in your Dev Portal documentation using the public directory. - [Server-side Content Protection](/docs/dev-portal/zudoku/guides/server-side-content-protection.md): How Dev Portal isolates protected-route content at build time in SSR mode. Covers the auto-detection rules, caveats for dynamic routes and inline content, and a pre-ship checklist. - [Redirects](/docs/dev-portal/zudoku/guides/redirects.md): Configure URL redirects in your Dev Portal developer portal to set landing pages, maintain backward compatibility, and handle URL changes. Covers redirect behavior, basePath interaction, and troubleshooting. - [/dev-portal/zudoku/guides/processors](/docs/dev-portal/zudoku/guides/processors.md) - [Navigation Rules](/docs/dev-portal/zudoku/guides/navigation-rules.md) - [Navigation Migration](/docs/dev-portal/zudoku/guides/navigation-migration.md) - [Mermaid Diagrams](/docs/dev-portal/zudoku/guides/mermaid.md) - [Environment Variables](/docs/dev-portal/zudoku/guides/environment-variables.md) - [Custom pages](/docs/dev-portal/zudoku/guides/custom-pages.md) - [Font & Typography](/docs/dev-portal/zudoku/customization/fonts.md): Learn how to customize fonts and typography in Dev Portal using predefined Google Fonts, custom font URLs, or local fonts for sans, serif, and monospace text. - [Colors & Theme](/docs/dev-portal/zudoku/customization/colors-theme.md): Customize your Dev Portal site's colors and theme with flexible options, including light/dark modes, custom CSS, and shadcn registry integration. - [Hooks](/docs/dev-portal/zudoku/extending/hooks.md): Reference for the React hooks exported by Zudoku. - [Events](/docs/dev-portal/zudoku/extending/events.md) - [Vite Config](/docs/dev-portal/zudoku/configuration/vite-config.md) - [Slots](/docs/dev-portal/zudoku/configuration/slots.md): Learn how to use slots to inject custom content into predefined locations throughout your Dev Portal site. - [/dev-portal/zudoku/configuration/site](/docs/dev-portal/zudoku/configuration/site.md): Customize your Dev Portal site's branding, logo, banner, and layout options with detailed configuration examples and guidance. - [/dev-portal/zudoku/configuration/sentry](/docs/dev-portal/zudoku/configuration/sentry.md) - [Search](/docs/dev-portal/zudoku/configuration/search.md): Learn how to configure and customize search functionality in Zudoku, including setup instructions for Pagefind and Inkeep providers, result transformation, and ranking options. - [Protected Routes](/docs/dev-portal/zudoku/configuration/protected-routes.md): Learn how to protect specific routes in your documentation using authentication, including simple array patterns, advanced authorization with reason codes, and custom callback functions. - [Configuration File](/docs/dev-portal/zudoku/configuration/overview.md): Learn how to configure your Dev Portal documentation site using the configuration file. Covers file formats, options, examples, and best practices. - [OAuth Security Schemes](/docs/dev-portal/zudoku/configuration/oauth-security-schemes.md) - [Navigation](/docs/dev-portal/zudoku/configuration/navigation.md): Learn how to configure the navigation in Zudoku, including links, categories, documents, and custom pages. Understand the structure of the navigation array and how to use icons, labels, and paths. - [LLM-Friendly Documentation Export](/docs/dev-portal/zudoku/configuration/llms.md) - [/dev-portal/zudoku/configuration/footer](/docs/dev-portal/zudoku/configuration/footer.md): Learn how to configure the footer in Zudoku, including columns, social links, copyright notice, and logo. Customize the footer's position and content with slots. - [Documentation](/docs/dev-portal/zudoku/configuration/docs.md) - [/dev-portal/zudoku/configuration/build-configuration](/docs/dev-portal/zudoku/configuration/build-configuration.md) - [Overview](/docs/dev-portal/zudoku/configuration/authentication.md) - [Supabase Setup](/docs/dev-portal/zudoku/configuration/authentication-supabase.md): Learn how to set up Supabase authentication for Dev Portal using email and password or OAuth providers for secure documentation access. - [PingFederate Setup](/docs/dev-portal/zudoku/configuration/authentication-pingfederate.md): Learn how to set up PingFederate authentication for Dev Portal using OpenID Connect for enterprise-grade single sign-on. - [OpenID Connect (OIDC)](/docs/dev-portal/zudoku/configuration/authentication-openid.md): Configure any OpenID Connect compliant identity provider (Okta, Keycloak, Authentik, etc.) as the authentication provider for Zudoku. - [Firebase Setup](/docs/dev-portal/zudoku/configuration/authentication-firebase.md): Learn how to set up Firebase Authentication for Zudoku, leveraging Google's secure authentication infrastructure with multiple sign-in providers. - [Clerk Setup](/docs/dev-portal/zudoku/configuration/authentication-clerk.md): Learn how to set up Clerk authentication for Zudoku, providing a seamless authentication experience with modern UI components and extensive customization options. - [Azure AD Setup](/docs/dev-portal/zudoku/configuration/authentication-azure-ad.md): Learn how to set up Azure Active Directory (Microsoft Entra ID) authentication for Zudoku, enabling secure single sign-on for your organization. - [Auth0 Setup](/docs/dev-portal/zudoku/configuration/authentication-auth0.md): Learn how to set up Auth0 authentication for Zudoku, including application configuration and integration steps for secure API documentation access. - [API Reference](/docs/dev-portal/zudoku/configuration/api-reference.md): Learn how to configure the `apis` setting in Dev Portal to generate API reference documentation from OpenAPI files, including file and URL references, versioning, customization options, and OpenAPI extensions. - [API Catalog](/docs/dev-portal/zudoku/configuration/api-catalog.md) - [AI Assistants](/docs/dev-portal/zudoku/configuration/ai-assistants.md): Configure which AI assistant integrations appear in dropdown menus across your Dev Portal documentation site, including built-in presets and custom providers. - [Typography](/docs/dev-portal/zudoku/components/typography.md) - [Tooltip](/docs/dev-portal/zudoku/components/tooltip.md) - [Textarea](/docs/dev-portal/zudoku/components/textarea.md) - [Syntax Highlight](/docs/dev-portal/zudoku/components/syntax-highlight.md) - [Switch](/docs/dev-portal/zudoku/components/switch.md) - [Stepper](/docs/dev-portal/zudoku/components/stepper.md) - [Slot](/docs/dev-portal/zudoku/components/slot.md): Use the low-level Slot component for advanced slot management in custom pages and MDX content. - [Slider](/docs/dev-portal/zudoku/components/slider.md) - [Sidecar Box](/docs/dev-portal/zudoku/components/sidecar-box.md) - [/dev-portal/zudoku/components/shadcn](/docs/dev-portal/zudoku/components/shadcn.md) - [Select](/docs/dev-portal/zudoku/components/select.md) - [Secret](/docs/dev-portal/zudoku/components/secret.md): Use the Secret component to display and manage API keys in your Dev Portal application. - [API Playground](/docs/dev-portal/zudoku/components/playground.md) - [Mermaid](/docs/dev-portal/zudoku/components/mermaid.md): Render Mermaid diagrams dynamically with client-side rendering. - [Markdown](/docs/dev-portal/zudoku/components/markdown.md) - [Link](/docs/dev-portal/zudoku/components/link.md) - [Landing Page](/docs/dev-portal/zudoku/components/landing-page.md) - [Label](/docs/dev-portal/zudoku/components/label.md) - [Input](/docs/dev-portal/zudoku/components/input.md) - [Icons](/docs/dev-portal/zudoku/components/icons.md) - [Head](/docs/dev-portal/zudoku/components/head.md) - [Dialog](/docs/dev-portal/zudoku/components/dialog.md) - [CodeTabs](/docs/dev-portal/zudoku/components/code-tabs.md) - [ClientOnly](/docs/dev-portal/zudoku/components/client-only.md) - [Checkbox](/docs/dev-portal/zudoku/components/checkbox.md) - [Card](/docs/dev-portal/zudoku/components/card.md) - [Callout](/docs/dev-portal/zudoku/components/callout.md) - [Button](/docs/dev-portal/zudoku/components/button.md) - [Browser Window](/docs/dev-portal/zudoku/components/browser-window.md) - [Badge](/docs/dev-portal/zudoku/components/badge.md) - [Alert](/docs/dev-portal/zudoku/components/alert.md) - [Zuplo Documentation](/docs/.md) - [API Monetization with Zuplo](/docs/articles/monetization.md)