zuplo 7.3.2 → 7.4.3

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.
Files changed (71) hide show
  1. package/docs/ai-gateway/apps.mdx +2 -2
  2. package/docs/ai-gateway/custom-policies.mdx +3 -3
  3. package/docs/ai-gateway/fallback.mdx +13 -12
  4. package/docs/ai-gateway/getting-started.mdx +10 -9
  5. package/docs/ai-gateway/introduction.mdx +19 -18
  6. package/docs/ai-gateway/managing-apps.mdx +9 -7
  7. package/docs/ai-gateway/policy-chains.mdx +13 -7
  8. package/docs/ai-gateway/policy-templates.mdx +4 -3
  9. package/docs/ai-gateway/usage-limits.mdx +8 -10
  10. package/docs/api-management/introduction.md +1 -1
  11. package/docs/articles/api-key-api.mdx +3 -3
  12. package/docs/articles/custom-ci-cd-azure.mdx +1 -1
  13. package/docs/articles/custom-ci-cd-bitbucket.mdx +2 -2
  14. package/docs/articles/custom-code-patterns.md +1 -1
  15. package/docs/articles/custom-domains.mdx +2 -2
  16. package/docs/articles/development-options.mdx +4 -4
  17. package/docs/articles/fastly-zuplo-host-setup.mdx +5 -5
  18. package/docs/articles/feature-flags.mdx +442 -0
  19. package/docs/articles/gke-with-upstream-auth-policy.mdx +7 -7
  20. package/docs/articles/health-checks.mdx +4 -4
  21. package/docs/articles/hosting-options.mdx +2 -2
  22. package/docs/articles/local-development-env-variables.mdx +1 -1
  23. package/docs/articles/metrics-plugins.mdx +1 -1
  24. package/docs/articles/migration-overview.md +1 -1
  25. package/docs/articles/monorepo-deployment.mdx +10 -10
  26. package/docs/articles/performance-testing.mdx +10 -9
  27. package/docs/articles/plugin-azure-blob.mdx +1 -1
  28. package/docs/articles/plugin-azure-event-hubs.mdx +2 -2
  29. package/docs/articles/policies.mdx +2 -2
  30. package/docs/articles/securing-backend-mtls.mdx +3 -3
  31. package/docs/articles/securing-the-gateway-with-client-mtls.mdx +3 -3
  32. package/docs/articles/securing-your-backend.mdx +1 -1
  33. package/docs/articles/security.mdx +1 -1
  34. package/docs/articles/terraform.mdx +2 -2
  35. package/docs/articles/testing.mdx +6 -6
  36. package/docs/articles/troubleshooting-slow-responses.mdx +5 -6
  37. package/docs/articles/troubleshooting.md +1 -1
  38. package/docs/articles/use-openapi-extension-data.mdx +4 -4
  39. package/docs/articles/waf-ddos-akamai.md +13 -13
  40. package/docs/articles/waf-ddos-aws-waf-shield.mdx +14 -14
  41. package/docs/articles/waf-ddos-fastly.mdx +14 -14
  42. package/docs/articles/waf-ddos.mdx +7 -7
  43. package/docs/cli/authentication.mdx +1 -1
  44. package/docs/cli/lint.mdx +103 -0
  45. package/docs/concepts/how-zuplo-works.mdx +5 -4
  46. package/docs/concepts/upstream-credentials.mdx +1 -1
  47. package/docs/dedicated/akamai/architecture.mdx +23 -24
  48. package/docs/dedicated/akamai/cdn.mdx +20 -20
  49. package/docs/dedicated/architecture.mdx +28 -27
  50. package/docs/dedicated/custom-domains.mdx +3 -4
  51. package/docs/dedicated/federated-gateways.mdx +1 -1
  52. package/docs/dedicated/networking.mdx +10 -10
  53. package/docs/dedicated/overview.mdx +3 -3
  54. package/docs/dedicated/source-control.mdx +6 -5
  55. package/docs/handlers/custom-handler.mdx +4 -4
  56. package/docs/handlers/mcp-server.mdx +1 -1
  57. package/docs/handlers/url-forward.mdx +1 -2
  58. package/docs/mcp-server/introduction.mdx +4 -4
  59. package/docs/policies/_index.md +2 -2
  60. package/docs/policies/ai-gateway-configuration-executor-v2-inbound/schema.json +1 -1
  61. package/docs/policies/ai-gateway-dlp-inbound/doc.md +79 -45
  62. package/docs/policies/ai-gateway-dlp-inbound/schema.json +5679 -3359
  63. package/docs/policies/ai-gateway-metering-v2-inbound/doc.md +13 -13
  64. package/docs/policies/ai-gateway-metering-v2-inbound/schema.json +1 -1
  65. package/docs/programmable-api/environment.mdx +1 -1
  66. package/docs/programmable-api/jwt-service-plugin.mdx +1 -1
  67. package/docs/programmable-api/logger.mdx +1 -1
  68. package/docs/programmable-api/runtime-errors.mdx +1 -1
  69. package/docs/programmable-api/zuplo-context.mdx +3 -3
  70. package/docs/self-hosted/overview.md +3 -3
  71. package/package.json +5 -5
@@ -27,8 +27,8 @@ Each app has three things of its own:
27
27
  - **An API key**—authenticates the app's requests when the gateway runs the
28
28
  [authentication policy](./policy-chains.mdx#authentication).
29
29
  - **A [policy chain](./policy-chains.mdx)**—the ordered policies that run on the
30
- app's requests: model access, budgets, caching, guardrails, and custom
31
- policies. The chain starts out empty unless the app's team has a
30
+ app's requests: model access, app-specific budgets, caching, guardrails, and
31
+ custom policies. The chain starts out empty unless the app's team has a
32
32
  [policy template](./policy-templates.mdx).
33
33
 
34
34
  ## API Keys
@@ -7,9 +7,9 @@ description:
7
7
  push, and add it to an app's policy chain in the portal.
8
8
  ---
9
9
 
10
- The AI Gateway's built-in policies cover model access, budgets, caching,
11
- guardrails, and tracing—but your gateway can run any policy you can write in
12
- TypeScript. A custom policy lives in your gateway's
10
+ The AI Gateway's built-in policies cover model access, app-specific budgets,
11
+ caching, guardrails, and tracing—but your gateway can run any policy you can
12
+ write in TypeScript. A custom policy lives in your gateway's
13
13
  [repository](./source-control.mdx), is declared in `config/policies.json`, and
14
14
  from then on appears in the portal's **Add Policy** dialog like any built-in
15
15
  policy. Apps add it to their [policy chains](./policy-chains.mdx), and it runs
@@ -7,8 +7,8 @@ description:
7
7
  ---
8
8
 
9
9
  Fallbacks let an app keep serving requests when its primary model fails, times
10
- out, or runs over its usage limits, instead of returning an error to the caller.
11
- They're configured with the **Fallback Model** policy in the app's
10
+ out, or an applicable usage limit is exceeded, instead of returning an error to
11
+ the caller. They're configured with the **Fallback Model** policy in the app's
12
12
  [policy chain](./policy-chains.mdx).
13
13
 
14
14
  The AI Gateway offers two independent fallback mechanisms, each triggered by a
@@ -17,7 +17,7 @@ different condition:
17
17
  | Mechanism | Triggers when… | Without a fallback set… |
18
18
  | ---------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------- |
19
19
  | **Fallback & Timeout** | The primary fails with a retryable error (`5xx`, `408`, `425`, `429`), a network failure, or a timeout | The gateway returns the error to the caller |
20
- | **Quota Fallback** | One of the app's usage limits is exceeded | The request is blocked with a `429` |
20
+ | **Quota Fallback** | An app, team, or gateway usage limit is exceeded | The request is blocked with a `429` |
21
21
 
22
22
  Both are configured entirely in the Zuplo Portal, and either can route to _any_
23
23
  provider—the fallback doesn't have to share the primary's provider. Fallback
@@ -57,21 +57,22 @@ is configured, the primary model call runs unbounded.
57
57
  ## Quota fallback
58
58
 
59
59
  The quota fallback routes requests to an alternate, usually cheaper, model when
60
- one of the app's [usage limits](./usage-limits.mdx) is exceeded, rather than
61
- blocking the request with a `429`. This keeps an app available after it crosses
62
- a budget, token, or request threshold, while shifting the overflow traffic to a
63
- lower-cost model.
60
+ an app, team, or gateway [usage limit](./usage-limits.mdx) is exceeded, rather
61
+ than blocking the request with a `429`. This keeps an app available after an
62
+ applicable budget, token, or request threshold is crossed, while shifting the
63
+ overflow traffic to a lower-cost model.
64
64
 
65
- For the quota fallback to activate, the chain needs the **Budgets and Costs**
66
- policy after Fallback Model—it detects the exceeded limit and switches to the
67
- fallback selection. If you leave the quota fallback empty, the app blocks
68
- requests with a `429` once it goes over quota.
65
+ The **Fallback Model** policy supplies the quota fallback selection. Team and
66
+ gateway limits can activate it whether or not the chain includes **Budgets and
67
+ Costs**. Add Budgets and Costs when the app also needs its own limits, and place
68
+ it after Fallback Model. If you leave the quota fallback empty, the gateway
69
+ blocks requests with a `429` once an applicable limit is exceeded.
69
70
 
70
71
  :::tip
71
72
 
72
73
  Point the quota fallback at a smaller, cheaper model so overflow traffic stays
73
74
  inexpensive while remaining available. The fallback's own usage still counts
74
- toward the app's limits.
75
+ toward every applicable limit.
75
76
 
76
77
  :::
77
78
 
@@ -107,7 +107,8 @@ account, Zuplo project, and AI Gateway team roles control access.
107
107
  on later teams, letting you nest them. To set gateway-wide spending limits
108
108
  across this Zuplo project, open the gateway's **Settings → Usage Limits**;
109
109
  for team-specific limits, use the team's **Usage & Limits** tab. See
110
- [Usage Limits](./usage-limits.mdx).
110
+ [Usage Limits](./usage-limits.mdx). Gateway and team limits apply to every
111
+ app regardless of its policy chain.
111
112
 
112
113
  5. **Create an app**
113
114
 
@@ -117,8 +118,8 @@ account, Zuplo project, and AI Gateway team roles control access.
117
118
  In the **Apps & Teams** tab, select the team you just created and click
118
119
  **Create App** in the team's header. Give the app a descriptive name (for
119
120
  example, "Tennis Chat") and confirm the team that owns it. That's the whole
120
- dialog—models, budgets, and other behavior are configured on the app's policy
121
- chain in the next step.
121
+ dialog—models, app-specific budgets, and other behavior are configured on the
122
+ app's policy chain in the next step.
122
123
 
123
124
  :::tip
124
125
 
@@ -148,9 +149,9 @@ account, Zuplo project, and AI Gateway team roles control access.
148
149
 
149
150
  :::
150
151
 
151
- This is also where you add budgets, semantic caching, guardrails, and any
152
- custom policies. Changes to the chain apply within about a minute—no redeploy
153
- needed. See [Policy Chains](./policy-chains.mdx).
152
+ This is also where you add app-specific budgets, semantic caching,
153
+ guardrails, and any custom policies. Changes to the chain apply within about
154
+ a minute—no redeploy needed. See [Policy Chains](./policy-chains.mdx).
154
155
 
155
156
  7. **Get the app's URL and API key**
156
157
 
@@ -300,8 +301,8 @@ metrics.
300
301
 
301
302
  ## Next steps
302
303
 
303
- - [Policy Chains](./policy-chains.mdx): add budgets, semantic caching, and
304
- guardrails to your app's chain
304
+ - [Policy Chains](./policy-chains.mdx): add app-specific budgets, semantic
305
+ caching, and guardrails to your app's chain
305
306
  - [Custom Policies](./custom-policies.mdx): write your own policy and add it to
306
307
  an app's chain
307
308
  - [Policy Templates](./policy-templates.mdx): give every new app in a team a
@@ -317,4 +318,4 @@ metrics.
317
318
  | 404 "Unsupported AI Gateway endpoint" | The path must end with a supported `/v1/...` operation—usually the URL is missing its `/v1` segment. Use the app's API URL plus `/v1/chat/completions`, for example |
318
319
  | 400 error asking for `providerName/model` | Prefix the model with the provider name configured in the portal—`openai/gpt-5-mini`, not `gpt-5-mini` |
319
320
  | 403 error listing the allowed models | The app's Model Filtering policy doesn't include the requested model; add it on the app's Policies tab or use a listed one |
320
- | Budget limit reached immediately | Check the limits at every level—gateway, team, and the app's Budgets and Costs policy—since any level's limit blocks the request |
321
+ | Budget limit reached immediately | Check the gateway and team limits, which always apply, plus the app's Budgets and Costs policy; any level's limit can block the request |
@@ -16,11 +16,12 @@ responses while applying policies, controls, and monitoring.
16
16
  Each piece of software that calls the gateway registers as an **app**—your
17
17
  support chatbot is one app; an internal coding agent is another. A single AI
18
18
  Gateway holds as many apps as you need, and you control exactly which policies
19
- run for each one. Every app has its own ordered policy chain, so the
20
- customer-facing chatbot can enforce budgets and guardrails while the internal
21
- agent runs with none. Beyond the built-in policies, you can write your own in
22
- TypeScript, and apps add them to their chains like any other policy. Chain
23
- changes apply within about a minute, with no redeploy. See [Apps](./apps.mdx).
19
+ run for each one. Every app has its own ordered policy chain, so you can give
20
+ the customer-facing chatbot an app-specific budget and guardrails while leaving
21
+ those controls out of the internal agent's chain. Beyond the built-in policies,
22
+ you can write your own in TypeScript, and apps add them to their chains like any
23
+ other policy. Chain changes apply within about a minute, with no redeploy. See
24
+ [Apps](./apps.mdx).
24
25
 
25
26
  ## Key Benefits
26
27
 
@@ -59,15 +60,15 @@ provider. Each app has its own URL, API key, and policy chain, so one gateway
59
60
  serves teams with completely different configurations.
60
61
 
61
62
  Each request arrives at the URL of the app it belongs to. The gateway identifies
62
- that app, runs its policy chain (model access, cost controls, security
63
- guardrails), routes to the selected LLM provider, and streams the response back.
64
- Throughout this process, the gateway captures metrics without exposing
65
- underlying provider credentials.
63
+ that app, runs its policy chain (model access, app-specific cost controls,
64
+ security guardrails), routes to the selected LLM provider, and streams the
65
+ response back. Throughout this process, the gateway captures metrics without
66
+ exposing underlying provider credentials.
66
67
 
67
- Every control is opt-in. An app whose policy chain is empty proxies requests
68
- immediately—each request names its own model, and no model restrictions,
69
- budgets, guardrails, or caching apply until you add the policies that enforce
70
- them.
68
+ Every app-specific control is opt-in. An app whose policy chain is empty runs no
69
+ app-selected controls: each request names its own model, and no app-specific
70
+ model restrictions, budgets, guardrails, or caching apply. Gateway and team
71
+ usage limits still apply.
71
72
 
72
73
  ## Core Features
73
74
 
@@ -90,9 +91,9 @@ runs, so gateway changes go through your normal review workflow. See
90
91
  ### Per-App Policy Chains
91
92
 
92
93
  Each app runs its own ordered chain of policies—model filtering, fallback
93
- models, budgets, semantic caching, guardrails, tracing, and any custom policies
94
- declared in the repository. Team policy templates give new apps a consistent
95
- starting pipeline. See [Policy Chains](./policy-chains.mdx) and
94
+ models, app-specific budgets, semantic caching, guardrails, tracing, and any
95
+ custom policies declared in the repository. Team policy templates give new apps
96
+ a consistent starting pipeline. See [Policy Chains](./policy-chains.mdx) and
96
97
  [Custom Policies](./custom-policies.mdx).
97
98
 
98
99
  ### Team Hierarchy & Budgets
@@ -113,8 +114,8 @@ Each app gets its own:
113
114
 
114
115
  - **Unique Gateway URL**: Single endpoint regardless of underlying provider
115
116
  - **API Key**: Zuplo-managed key that never exposes provider credentials
116
- - **Policy Chain**: Model access, budgets, caching, guardrails, and custom
117
- policies, applied in the order the app chooses
117
+ - **Policy Chain**: Model access, app-specific budgets, caching, guardrails, and
118
+ custom policies, applied in the order the app chooses
118
119
 
119
120
  ### Zuplo accounts and projects
120
121
 
@@ -2,8 +2,8 @@
2
2
  title: Managing Apps
3
3
  description:
4
4
  Create, edit, and delete AI Gateway apps. Apps are created with just a name
5
- and a team; models, budgets, and other behavior live on the app's policy
6
- chain.
5
+ and a team; models, app-specific budgets, and other behavior live on the app's
6
+ policy chain.
7
7
  ---
8
8
 
9
9
  An app represents one caller of your AI Gateway—a service, an agent, or a
@@ -47,7 +47,8 @@ permission to view the Zuplo project that contains the AI Gateway.
47
47
  That's the whole dialog. The portal then takes you to the app's **Policies**
48
48
  tab. If the app's team defines a [policy template](./policy-templates.mdx), the
49
49
  new app starts with that chain; otherwise the chain is empty and the app is
50
- unrestricted until you add policies.
50
+ subject to no app-specific controls until you add policies. Team and gateway
51
+ usage limits still apply.
51
52
 
52
53
  ## Restricting models
53
54
 
@@ -86,16 +87,17 @@ over—see [Dynamic model routing](./cookbooks/dynamic-model-routing.mdx).
86
87
 
87
88
  App budgets live on the **Budgets and Costs** policy in the app's chain. Open
88
89
  the app's **Policies** tab and configure it with daily or monthly limits for
89
- spending, tokens, or requests. If you don't set app limits, the team's and
90
- gateway's limits still apply. See [Usage Limits](./usage-limits.mdx).
90
+ spending, tokens, or requests. Team and gateway limits apply to every app
91
+ automatically, even when the app's chain doesn't include Budgets and Costs. See
92
+ [Usage Limits](./usage-limits.mdx).
91
93
 
92
94
  ## Editing an App
93
95
 
94
96
  To edit an app, open the
95
97
  [Apps & Teams](https://portal.zuplo.com/+/account/project/ai/apps) tab of your
96
98
  AI Gateway project in the Zuplo Portal. Select the app you want to edit. The
97
- app's behavior—models, budgets, caching, guardrails—is edited on the
98
- **Policies** tab; the app's name lives on the **Settings** tab. Make your
99
+ app's behavior—models, app-specific budgets, caching, guardrails—is edited on
100
+ the **Policies** tab; the app's name lives on the **Settings** tab. Make your
99
101
  changes and click the **Save** button. Policy chain changes apply within about a
100
102
  minute.
101
103
 
@@ -8,9 +8,9 @@ description:
8
8
  ---
9
9
 
10
10
  Every request to an AI Gateway app runs down through the app's **policy chain**:
11
- an ordered list of policies that control model access, budgets, caching,
12
- guardrails, and tracing for that app. Different apps on the same gateway can run
13
- completely different chains.
11
+ an ordered list of policies that control model access, app-specific budgets,
12
+ caching, guardrails, and tracing for that app. Different apps on the same
13
+ gateway can run completely different chains.
14
14
 
15
15
  The chain works in two layers:
16
16
 
@@ -24,8 +24,9 @@ The chain works in two layers:
24
24
  portal. Chain changes apply within about a minute, with no deploy.
25
25
 
26
26
  No policy is required. An app whose chain is empty still serves requests: each
27
- request names its own model, and no model restrictions, budgets, guardrails, or
28
- caching apply. Every control is something you add.
27
+ request names its own model, and no app-specific model restrictions, budgets,
28
+ guardrails, or caching apply. Team and gateway usage limits apply regardless of
29
+ the app's policy chain.
29
30
 
30
31
  A request passes through whatever the app selected before the AI Gateway handler
31
32
  calls the provider:
@@ -105,14 +106,19 @@ Model Filtering → Fallback Model → Budgets and Costs → Semantic Cache
105
106
  never creates one. A chain with Fallback Model but no Model Filtering does
106
107
  nothing at all—the policy logs a warning and passes the request through
107
108
  unchanged. That's also why a fallback can never bypass the filter.
108
- - **Budgets and Costs** third: it needs the resolved selection so an exceeded
109
- budget can activate the quota fallback.
109
+ - **Budgets and Costs** third: it configures the app's own limits and needs the
110
+ resolved selection so an exceeded app limit can activate the quota fallback.
110
111
  - **Semantic Cache** after Budgets and Costs: cache hits still count toward
111
112
  request limits.
112
113
 
113
114
  Tracing policies work well at the end of the chain, so traces reflect the
114
115
  request the earlier policies produced.
115
116
 
117
+ Team and gateway limits are enforced outside the app's policy chain. When one is
118
+ exceeded, the app's quota fallback works whether or not its chain includes
119
+ Budgets and Costs, as long as Model Filtering and Fallback Model supply a
120
+ fallback selection.
121
+
116
122
  ## Built-in policies
117
123
 
118
124
  See the [policies overview](./policies/overview.mdx) for every policy an app can
@@ -8,9 +8,10 @@ description:
8
8
  ---
9
9
 
10
10
  A team's **policy template** is the policy chain that apps created in that team
11
- start with. Use templates to make sure every app in a team begins with your
12
- required policies—Budgets and Costs with a sensible budget, a guardrail, your
13
- custom compliance policy—while controlling what individual apps may change.
11
+ start with. Use templates to give every app in a team the same app-specific
12
+ controls—such as Model Filtering, Budgets and Costs with an app budget, a
13
+ guardrail, or a custom compliance policy—while controlling what individual apps
14
+ may change. Team and gateway limits don't depend on the template.
14
15
 
15
16
  ## How templates apply
16
17
 
@@ -83,22 +83,20 @@ requests to that model instead of blocking with a `429`—see
83
83
  [Fallback Models](./fallback.mdx). The fallback's usage still counts toward the
84
84
  limits.
85
85
 
86
- :::warning
86
+ :::note{title="App, team, and gateway limits are configured separately"}
87
87
 
88
- An app without the Budgets and Costs policy in its chain doesn't enforce
89
- app-level limits. Team and gateway limits still protect overall spend, but
90
- per-app budgets need Budgets and Costs in the chain—use a
91
- [policy template](./policy-templates.mdx) to make sure every app starts with it.
88
+ The Budgets and Costs policy configures and enforces an app's own limits. Team
89
+ and gateway limits apply to every app automatically, whether or not the app's
90
+ policy chain includes Budgets and Costs.
92
91
 
93
92
  :::
94
93
 
95
94
  :::caution{title="Budgets fail open by default"}
96
95
 
97
- The Budgets and Costs policy's `throwOnFailure` option defaults to `false`, so
98
- if the metering service is unavailable the request proceeds unmetered: no limit
99
- is checked and the request reaches the provider even if the app is already over
100
- budget. Set `throwOnFailure` to `true` to fail closed instead, so a metering
101
- outage rejects the request rather than letting it escape the budget.
96
+ The Budgets and Costs policy's `throwOnFailure` option controls how an error
97
+ while checking the app's own limits is handled. It defaults to `false`, so the
98
+ request continues through the gateway. Set it to `true` to reject the request
99
+ instead. Team and gateway limit checks run independently of this policy.
102
100
 
103
101
  :::
104
102
 
@@ -3,7 +3,7 @@ title: Zuplo API Management
3
3
  sidebar_label: Introduction
4
4
  ---
5
5
 
6
- The Zuplo API Gateway is a fully-managed, lightweight API management platform
6
+ The Zuplo Gateway is a fully-managed, lightweight API management platform
7
7
  designed for developers. It offers fast deployment, GitOps-friendly workflows,
8
8
  and unlimited environments. Whether you're an individual developer or part of an
9
9
  engineering team, Zuplo makes it easy to:
@@ -45,8 +45,8 @@ Consumers can contain one or more API Keys.
45
45
 
46
46
  Buckets are the top level group for this service. A bucket could be used with a
47
47
  single Zuplo environment or shared among multiple environments or projects. By
48
- default a Zuplo API Gateway project will be created with several buckets that
49
- map to production, preview, and development (working copy) environments.
48
+ default a Zuplo Gateway project will be created with several buckets that map to
49
+ production, preview, and development (working copy) environments.
50
50
 
51
51
  Enterprise plan customers run complex configurations where buckets are shared
52
52
  across gateway projects or even accounts. This can allow your end-users to
@@ -148,7 +148,7 @@ The response will look like this:
148
148
  }
149
149
  ```
150
150
 
151
- You can use this API Key to call your Zuplo API Gateway that's protected by the
151
+ You can use this API Key to call your Zuplo Gateway that's protected by the
152
152
  [API Key Authentication](/docs/policies/api-key-inbound) policy.
153
153
 
154
154
  ### Query Consumers with API Keys By Tags
@@ -3,7 +3,7 @@ title: "Azure Pipelines"
3
3
  sidebar_label: Azure Pipelines
4
4
  ---
5
5
 
6
- Azure Pipelines brings enterprise-grade CI/CD to your Zuplo API gateway. Build
6
+ Azure Pipelines brings enterprise-grade CI/CD to your Zuplo Gateway. Build
7
7
  complex deployment workflows with stages, approvals, and integrations across
8
8
  your Azure ecosystem.
9
9
 
@@ -4,8 +4,8 @@ sidebar_label: Bitbucket Pipelines
4
4
  ---
5
5
 
6
6
  Bitbucket Pipelines brings CI/CD directly into your Bitbucket workflow. Define
7
- pipelines in `bitbucket-pipelines.yml` and deploy your Zuplo API gateway
8
- alongside your code reviews and pull requests.
7
+ pipelines in `bitbucket-pipelines.yml` and deploy your Zuplo Gateway alongside
8
+ your code reviews and pull requests.
9
9
 
10
10
  ## Why Bitbucket Pipelines with Zuplo?
11
11
 
@@ -5,7 +5,7 @@ sidebar_label: Custom Code
5
5
 
6
6
  Zuplo is fully programmable. You can write custom TypeScript code for inbound
7
7
  policies, outbound policies, and request handlers to extend every part of your
8
- API gateway. This guide covers the function signatures, common patterns, and
8
+ Zuplo Gateway. This guide covers the function signatures, common patterns, and
9
9
  best practices for writing custom code.
10
10
 
11
11
  ## Custom Inbound Policy
@@ -208,8 +208,8 @@ enabled. If you wish to upgrade to a higher TLS version, please contact
208
208
 
209
209
  <EnterpriseFeature name="Alias Domains" />
210
210
 
211
- Sometimes your API Gateway might be running behind another service such as a
212
- CDN, WAF or load balancer. In this case, your API Gateway's domain may not be
211
+ Sometimes your Zuplo Gateway might be running behind another service such as a
212
+ CDN, WAF or load balancer. In this case, your Zuplo Gateway's domain may not be
213
213
  the same as the domain your clients use to access your API. In this case, you
214
214
  can add an alias domain to your Zuplo project. An alias domain will configure
215
215
  your API and documentation to use the alias domain for any public facing URLs
@@ -8,9 +8,9 @@ flexible and fastest way to work with your Zuplo API and Developer Portal.
8
8
 
9
9
  ## Local Development
10
10
 
11
- The [local experience](./local-development.mdx) allows users to run both the API
12
- Gateway and Dev Portal locally. It also includes a local version of the Route
13
- Designer that's integrated into the Zuplo Portal (portal.zuplo.com). Local
11
+ The [local experience](./local-development.mdx) allows users to run both the
12
+ Zuplo Gateway and Dev Portal locally. It also includes a local version of the
13
+ Route Designer that's integrated into the Zuplo Portal (portal.zuplo.com). Local
14
14
  development allows customers to use the IDE of their choice and run everything
15
15
  locally.
16
16
 
@@ -20,7 +20,7 @@ iterate on their APIs without needing to deploy to the cloud.
20
20
 
21
21
  Local development is the fastest way to develop and test your APIs as you can
22
22
  test changes immediately without waiting for a deployment. Changes to your API
23
- are automatically loaded into the local API Gateway and Dev Portal.
23
+ are automatically loaded into the local Zuplo Gateway and Dev Portal.
24
24
 
25
25
  ## Web-Based Development Experience
26
26
 
@@ -8,7 +8,7 @@ necessary setup for most people as Zuplo already runs at the edge and can be
8
8
  used for CDN like caching. However, there are some scenarios where you may want
9
9
  to put Zuplo behind Fastly. For example, if you are using Fastly's
10
10
  [WAF or DDoS protection](./waf-ddos-fastly.mdx) and want to ensure that all
11
- traffic goes through Fastly before hitting your Zuplo API Gateway.
11
+ traffic goes through Fastly before hitting your Zuplo Gateway.
12
12
 
13
13
  ## Configuring Zuplo as a Fastly Host
14
14
 
@@ -16,15 +16,15 @@ The following settings will allow you to run Zuplo as a host behind Fastly.
16
16
 
17
17
  ### Zuplo Configuration
18
18
 
19
- It's recommended that you use a custom domain for your Zuplo API Gateway. This
20
- will allow you to more configure your Fastly host as well as ensure that your
21
- domain is stable regardless of your Zuplo configuration.
19
+ It's recommended that you use a custom domain for your Zuplo Gateway. This will
20
+ allow you to more configure your Fastly host as well as ensure that your domain
21
+ is stable regardless of your Zuplo configuration.
22
22
 
23
23
  ### Fastly Configuration
24
24
 
25
25
  1. Create a new Fastly CDN service or use an existing one.
26
26
  2. Create a new Origin and name it whatever you like.
27
- 3. Set the **Address** to your Zuplo API Gateway domain. For example,
27
+ 3. Set the **Address** to your Zuplo Gateway domain. For example,
28
28
  `api.example.com` if using a custom domain, or
29
29
  `my-project-main-021839d.zuplo.app` without a custom domain.
30
30
  4. Enable TLS and keep the port as `443`.