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
@@ -28,6 +28,6 @@ Explore the navigation to see all of the built-in policies.
28
28
  ## Custom Policies
29
29
 
30
30
  The ability to write custom policies that run in-process of your Gateway is at
31
- the core of what makes Zuplo the Programmable API Gateway. You can write
32
- policies to handle virtually any task. To learn more about
31
+ the core of what makes Zuplo a programmable gateway for APIs, AI, and MCP. You
32
+ can write policies to handle virtually any task. To learn more about
33
33
  [writing custom policies see the documentation](../policies/custom-code-inbound.mdx).
@@ -6,9 +6,9 @@ sidebar_label: Gateway to Origin
6
6
  <EnterpriseFeature name="mTLS Client Certificates" />
7
7
 
8
8
  Mutual TLS (mTLS) authentication establishes a trust relationship between your
9
- Zuplo API Gateway and your backend services using client certificates. With
10
- mTLS, both the client (Zuplo Gateway) and the server (your backend) authenticate
11
- each other, creating a "Zero Trust" security model.
9
+ Zuplo Gateway and your backend services using client certificates. With mTLS,
10
+ both the client (Zuplo Gateway) and the server (your backend) authenticate each
11
+ other, creating a "Zero Trust" security model.
12
12
 
13
13
  This is particularly useful for enterprise customers who need to ensure that
14
14
  both parties in a connection verify each other's identity before exchanging
@@ -17,9 +17,9 @@ Zuplo.
17
17
 
18
18
  :::note
19
19
 
20
- Client mTLS is enforced at the Zuplo **API gateway** only. It is not available
21
- on the Zuplo developer portal — the portal cannot require client certificates
22
- from visitors.
20
+ Client mTLS is enforced at the Zuplo **gateway** only. It is not available on
21
+ the Zuplo developer portal — the portal cannot require client certificates from
22
+ visitors.
23
23
 
24
24
  :::
25
25
 
@@ -6,7 +6,7 @@ When using a gateway, it's important to ensure that your backend API is only
6
6
  receiving traffic via the gateway to be confident that your policies are being
7
7
  correctly applied to all traffic.
8
8
 
9
- ![Zuplo as an API gateway](../../public/media/securing-your-backend/b7290dd1-43fa-49f8-8629-6b4899e2e9f3.png)
9
+ ![Zuplo as a gateway](../../public/media/securing-your-backend/b7290dd1-43fa-49f8-8629-6b4899e2e9f3.png)
10
10
 
11
11
  That means securing the communication between Zuplo and your backend API
12
12
  (origin). Several options do this, and the right one depends on where your
@@ -49,7 +49,7 @@ infrastructure remain secure.
49
49
  instead are connected to Cloudflare using outbound secure tunnels.
50
50
  - Each service that's exposed is protected by DDoS, Firewall, WAF, and other
51
51
  security measures.
52
- - Internal and external APIs are protected by Zuplo API Gateway.
52
+ - Internal and external APIs are protected by Zuplo Gateway.
53
53
  - Internal services can only be connected to by Zuplo employees using an
54
54
  identity and device policy-enforced proxy using secure tunnels.
55
55
  - Interconnected Zuplo services utilize mTLS authentication or gateway
@@ -21,7 +21,7 @@ require you to:
21
21
  - Use tools like Terraform to bridge the gap between code and infrastructure
22
22
  - Handle complex state reconciliation and drift detection
23
23
 
24
- Zuplo eliminates this complexity entirely. Every aspect of your API gateway
24
+ Zuplo eliminates this complexity entirely. Every aspect of your gateway
25
25
  configuration is stored as human-readable code and configuration files in your
26
26
  repository:
27
27
 
@@ -43,7 +43,7 @@ partial states, no drift, and no manual cleanup required.
43
43
 
44
44
  This atomic deployment model means:
45
45
 
46
- - **No half-deployed states**: Your API gateway is always in a known, consistent
46
+ - **No half-deployed states**: Your gateway is always in a known, consistent
47
47
  state
48
48
  - **Simple rollbacks**: Just revert your Git commit and redeploy
49
49
  - **No state management**: Git is your single source of truth
@@ -3,9 +3,9 @@ title: Testing Your API
3
3
  sidebar_label: Testing
4
4
  ---
5
5
 
6
- Zuplo provides multiple ways to test your API gateway at every stage of
7
- development. Whether you are iterating locally, reviewing a pull request in a
8
- preview environment, or gating production deployments in CI/CD, the
6
+ Zuplo provides multiple ways to test your gateway at every stage of development.
7
+ Whether you are iterating locally, reviewing a pull request in a preview
8
+ environment, or gating production deployments in CI/CD, the
9
9
  [`zuplo test`](../cli/test.mdx) command and the `@zuplo/test` library give you a
10
10
  consistent testing experience.
11
11
 
@@ -32,7 +32,7 @@ suite against it.
32
32
  npx zuplo dev
33
33
  ```
34
34
 
35
- The API gateway starts on `http://localhost:9000` by default. You can change the
35
+ The gateway starts on `http://localhost:9000` by default. You can change the
36
36
  port with the `--port` flag. See the [`zuplo dev` reference](../cli/dev.mdx) for
37
37
  all available options.
38
38
 
@@ -370,7 +370,7 @@ describe("Authentication", () => {
370
370
 
371
371
  ## Writing integration tests
372
372
 
373
- Integration tests verify that your API gateway behaves correctly end-to-end,
373
+ Integration tests verify that your gateway behaves correctly end-to-end,
374
374
  including routing, policies, and backend connectivity. Because `zuplo test` runs
375
375
  against a live endpoint (local or deployed), every test is inherently an
376
376
  integration test.
@@ -451,7 +451,7 @@ describe("Request validation", () => {
451
451
  :::caution{title="Advanced"}
452
452
 
453
453
  Custom testing can be complicated and is best used only to test your own logic
454
- rather than trying to mock large portions of your API Gateway.
454
+ rather than trying to mock large portions of your gateway.
455
455
 
456
456
  :::
457
457
 
@@ -11,9 +11,9 @@ systematic approach helps you identify the root cause quickly. This guide walks
11
11
  you through diagnosing latency issues — whether the source is the gateway, your
12
12
  backend, the network, or something else entirely.
13
13
 
14
- ## Understanding API Gateway Latency
14
+ ## Understanding Gateway Latency
15
15
 
16
- Every API gateway adds some processing overhead to requests. For Zuplo, this
16
+ Every gateway adds some processing overhead to requests. For Zuplo, this
17
17
  overhead is minimal:
18
18
 
19
19
  - **Base latency**: Approximately 20–30ms with no policies enabled
@@ -90,9 +90,8 @@ testing services to confirm whether the slowness is location-specific.
90
90
 
91
91
  ### Backend Response Time
92
92
 
93
- The most common cause of slow responses through any API gateway is a slow
94
- backend. The gateway adds its processing time _on top of_ whatever the backend
95
- takes.
93
+ The most common cause of slow responses through any gateway is a slow backend.
94
+ The gateway adds its processing time _on top of_ whatever the backend takes.
96
95
 
97
96
  **How to identify**: Compare direct backend response times with gateway response
98
97
  times. If both are slow, the issue is the backend.
@@ -366,7 +365,7 @@ back-and-forth diagnostic questions.
366
365
 
367
366
  - [OpenTelemetry](./opentelemetry.mdx) — Distributed tracing and logging for
368
367
  detailed request lifecycle visibility
369
- - [Performance Testing Your API Gateway](./performance-testing.mdx) — How to
368
+ - [Performance Testing Your Gateway](./performance-testing.mdx) — How to
370
369
  benchmark and compare gateway performance accurately
371
370
  - [Proactive Monitoring](./monitoring-your-gateway.mdx) — Setting up health
372
371
  checks and monitoring for your gateway
@@ -4,7 +4,7 @@ sidebar_label: Troubleshooting
4
4
  ---
5
5
 
6
6
  This guide covers common errors you may encounter when building, deploying, and
7
- running your Zuplo API gateway, along with steps to diagnose and fix them.
7
+ running your Zuplo Gateway, along with steps to diagnose and fix them.
8
8
 
9
9
  ## Build errors
10
10
 
@@ -3,7 +3,7 @@ title: Using the OpenAPI Extension Data in Code
3
3
  sidebar_label: "OpenAPI Extension Data"
4
4
  description:
5
5
  Learn how to add custom vendor-specific extensions to OpenAPI files and access
6
- that data in your Zuplo API Gateway code.
6
+ that data in your Zuplo Gateway code.
7
7
  tags:
8
8
  - openapi
9
9
  - custom-code
@@ -15,9 +15,9 @@ add custom configuration to the API definition. An example of this is the
15
15
  intended for public use.
16
16
 
17
17
  This same type of extensibility can be used to add custom data to the OpenAPI
18
- file which can then be used inside of your Zuplo API Gateway. This data can be
19
- used to configure the behavior of the API Gateway, such as setting up rate
20
- limiting, authentication, or other custom behavior.
18
+ file which can then be used inside of your Zuplo Gateway. This data can be used
19
+ to configure the behavior of the gateway, such as setting up rate limiting,
20
+ authentication, or other custom behavior.
21
21
 
22
22
  In this article, we will show you how to use the OpenAPI extension data in your
23
23
  code.
@@ -9,20 +9,20 @@ configured to run as a custom origin behind Akamai.
9
9
  ## Securing Zuplo from Direct Access
10
10
 
11
11
  With any WAF product, you will want to ensure that network traffic can't bypass
12
- your WAF and hit your API Gateway directly. Akamai offers several ways to ensure
13
- that your API Gateway is only accessible through the WAF.
12
+ your WAF and hit your Zuplo Gateway directly. Akamai offers several ways to
13
+ ensure that your gateway is only accessible through the WAF.
14
14
 
15
15
  The information below is a summary of Akamai's own recommendations for securing
16
- your backend - regardless of whether you are using Zuplo, another API Gateway,
17
- or Akamai origins. You can reference the
16
+ your backend - regardless of whether you are using Zuplo, another gateway, or
17
+ Akamai origins. You can reference the
18
18
  [Akamai documentation](https://techdocs.akamai.com/application-security/docs/origin-server-protection).
19
19
 
20
20
  ### IP Address Restrictions
21
21
 
22
22
  Akamai maintains a list of IP addresses that you can use to restrict access to
23
- your API Gateway. This is a good way to ensure that only Akamai can access your
24
- API Gateway. However, as Akamai is a multi-tenant service, this method isn't
25
- sufficient to protect unauthorized traffic from hitting your API Gateway.
23
+ your Zuplo Gateway. This is a good way to ensure that only Akamai can access
24
+ your gateway. However, as Akamai is a multi-tenant service, this method isn't
25
+ sufficient to protect unauthorized traffic from hitting your gateway.
26
26
 
27
27
  In Zuplo, you can use a
28
28
  [custom code policy](../policies/custom-code-inbound.mdx) to limit traffic to
@@ -46,15 +46,15 @@ in Akamai Control Center.
46
46
  ```
47
47
 
48
48
  With this policy in place, only Akamai traffic will be allowed to hit your Zuplo
49
- API Gateway.
49
+ Gateway.
50
50
 
51
51
  ### Custom Headers
52
52
 
53
53
  Another way to ensure that traffic is coming from Akamai is to use custom
54
54
  headers. Custom headers can be added to your Akamai configuration and then
55
- checked by your API Gateway. This provides an additional layer of security on
55
+ checked by your Zuplo Gateway. This provides an additional layer of security on
56
56
  top of IP address restrictions and prevents any unauthorized traffic from
57
- hitting your API Gateway - regardless of the source.
57
+ hitting your gateway - regardless of the source.
58
58
 
59
59
  In Akamai, you can configure custom headers using the Property Manager or the
60
60
  Akamai API. Add a custom header with a secret value that only you and Akamai
@@ -95,7 +95,7 @@ export default async function policy(
95
95
  ```
96
96
 
97
97
  With this policy in place, only requests that include the custom header with the
98
- secret value will be allowed to hit your Zuplo API Gateway.
98
+ secret value will be allowed to hit your Zuplo Gateway.
99
99
 
100
100
  ## Additional Akamai Origin Security Options
101
101
 
@@ -148,5 +148,5 @@ Learn more:
148
148
  [Modify Incoming Request Header](https://techdocs.akamai.com/property-mgr/docs/modify-incoming-req-header)
149
149
 
150
150
  These security measures can be used individually or combined to create multiple
151
- layers of protection for your Zuplo API Gateway when running behind Akamai App &
152
- API Protector.
151
+ layers of protection for your Zuplo Gateway when running behind Akamai App & API
152
+ Protector.
@@ -9,22 +9,22 @@ to run as a custom backend behind CloudFront.
9
9
  ## Securing Zuplo from Direct Access
10
10
 
11
11
  With any WAF product, you will want to ensure that network traffic can't bypass
12
- your WAF and hit your API Gateway directly. AWS WAF + Shield offer several ways
13
- to ensure that your API Gateway is only accessible through the WAF.
12
+ your WAF and hit your Zuplo Gateway directly. AWS WAF + Shield offer several
13
+ ways to ensure that your gateway is only accessible through the WAF.
14
14
 
15
15
  The information below is a summary of Amazon's own recommendations for securing
16
- your backend - regardless of whether you are using Zuplo, another API Gateway,
17
- or AWS origins. You can also reference
16
+ your backend - regardless of whether you are using Zuplo, another gateway, or
17
+ AWS origins. You can also reference
18
18
  [the AWS documentation](https://docs.aws.amazon.com/whitepapers/latest/secure-content-delivery-amazon-cloudfront/custom-origin-with-cloudfront.html)
19
19
  directly.
20
20
 
21
21
  ### IP Address Restrictions
22
22
 
23
23
  Amazon maintains a list of CloudFront IP addresses (separate from other AWS
24
- uses) that you can use to restrict access to your API Gateway. This is a good
25
- way to ensure that only CloudFront can access your API Gateway. However, as
24
+ uses) that you can use to restrict access to your Zuplo Gateway. This is a good
25
+ way to ensure that only CloudFront can access your gateway. However, as
26
26
  CloudFront is available to any AWS customer, this method isn't sufficient to
27
- protect unauthorized traffic from hitting your API Gateway.
27
+ protect unauthorized traffic from hitting your gateway.
28
28
 
29
29
  In Zuplo, you can use a
30
30
  [custom code policy](../policies/custom-code-inbound.mdx) to limit traffic to
@@ -48,15 +48,15 @@ configure the policy with the `CLOUDFRONT` ranges from the
48
48
  ```
49
49
 
50
50
  With this policy in place, only CloudFront traffic will be allowed to hit your
51
- Zuplo API Gateway.
51
+ Zuplo Gateway.
52
52
 
53
53
  ### Custom Headers
54
54
 
55
55
  Another way to ensure that traffic is coming from CloudFront is to use custom
56
56
  headers. Custom headers can be added to your CloudFront distribution and then
57
- checked by your API Gateway. This provides an additional layer of security on
57
+ checked by your Zuplo Gateway. This provides an additional layer of security on
58
58
  top of IP address restrictions and prevents any unauthorized traffic from
59
- hitting your API Gateway - regardless of the source.
59
+ hitting your gateway - regardless of the source.
60
60
 
61
61
  In Zuplo, you can use a small custom code policy to limit traffic to only those
62
62
  requests that include the custom header and secret value.
@@ -93,12 +93,12 @@ export default async function policy(
93
93
  ```
94
94
 
95
95
  With this policy in place, only requests that include the custom header with the
96
- secret value will be allowed to hit your Zuplo API Gateway.
96
+ secret value will be allowed to hit your Zuplo Gateway.
97
97
 
98
98
  ### Identity Based Options
99
99
 
100
100
  Unfortunately, AWS WAF + Shield don't offer identity-based options like IAM or
101
- network based options for securing your API Gateway. This is true for
101
+ network based options for securing your Zuplo Gateway. This is true for
102
102
  [both AWS](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/restrict-access-to-load-balancer.html)
103
- and non-AWS API Gateway products. If you require these options, you will need to
104
- use a different WAF product in front of your Zuplo API Gateway.
103
+ and non-AWS gateway products. If you require these options, you will need to use
104
+ a different WAF product in front of your Zuplo Gateway.
@@ -12,20 +12,20 @@ Refer to Zuplo's documentation on
12
12
  ## Securing Zuplo from Direct Access
13
13
 
14
14
  With any WAF product, you will want to ensure that network traffic can't bypass
15
- your WAF and hit your API Gateway directly. Fastly offers several ways to ensure
16
- that your API Gateway is only accessible through the WAF.
15
+ your WAF and hit your Zuplo Gateway directly. Fastly offers several ways to
16
+ ensure that your gateway is only accessible through the WAF.
17
17
 
18
18
  The information below is a summary of Fastly's own recommendations for securing
19
- your backend - regardless of whether you are using Zuplo, another API Gateway,
20
- or Fastly origins. You can reference the
19
+ your backend - regardless of whether you are using Zuplo, another gateway, or
20
+ Fastly origins. You can reference the
21
21
  [Fastly documentation](https://www.fastly.com/documentation/guides/integrations/non-fastly-services/developer-guide-backends/).
22
22
 
23
23
  ### IP Address Restrictions
24
24
 
25
25
  Fastly maintains a list of IP addresses that you can use to restrict access to
26
- your API Gateway. This is a good way to ensure that only Fastly can access your
27
- API Gateway. However, as Fastly is a multi-tenant service, this method isn't
28
- sufficient to protect unauthorized traffic from hitting your API Gateway.
26
+ your Zuplo Gateway. This is a good way to ensure that only Fastly can access
27
+ your gateway. However, as Fastly is a multi-tenant service, this method isn't
28
+ sufficient to protect unauthorized traffic from hitting your gateway.
29
29
 
30
30
  In Zuplo, you can use a
31
31
  [custom code policy](../policies/custom-code-inbound.mdx) to limit traffic to
@@ -49,16 +49,16 @@ configure the policy with the address ranges from
49
49
  ```
50
50
 
51
51
  With this policy in place, only Fastly traffic will be allowed to hit your Zuplo
52
- API Gateway.
52
+ Gateway.
53
53
 
54
54
  ### Signed Headers
55
55
 
56
56
  Another way to ensure that traffic is coming from Fastly is to use signed
57
57
  headers. Signed headers can be added using a
58
58
  [VLC Snippet](https://docs.fastly.com/en/guides/about-vcl-snippets) and then
59
- checked by your API Gateway. This provides an additional layer of security on
59
+ checked by your Zuplo Gateway. This provides an additional layer of security on
60
60
  top of IP address restrictions and prevents any unauthorized traffic from
61
- hitting your API Gateway - regardless of the source.
61
+ hitting your gateway - regardless of the source.
62
62
 
63
63
  In Fastly, you will need to create a VCL snippet that adds a signed header as
64
64
  shown below. This example uses the `shared_secret` value stored in an
@@ -179,16 +179,16 @@ export default async function (
179
179
  ```
180
180
 
181
181
  With this policy in place, only requests that include a valid sign header will
182
- be allowed to hit your Zuplo API Gateway.
182
+ be allowed to hit your Zuplo Gateway.
183
183
 
184
184
  ### JWT Header
185
185
 
186
186
  Another way to ensure that traffic is coming from Fastly is to add a JWT header
187
187
  to the outgoing request. JWT headers can be added using a
188
188
  [VLC Snippet](https://docs.fastly.com/en/guides/about-vcl-snippets) and then
189
- checked by your API Gateway. This provides an additional layer of security on
189
+ checked by your Zuplo Gateway. This provides an additional layer of security on
190
190
  top of IP address restrictions and prevents any unauthorized traffic from
191
- hitting your API Gateway - regardless of the source.
191
+ hitting your gateway - regardless of the source.
192
192
 
193
193
  :::tip
194
194
 
@@ -247,7 +247,7 @@ To verify the JWT header in Zuplo, you can utilize the JWT Auth Inbound policy.
247
247
  ### mTLS Authentication
248
248
 
249
249
  Fastly supports mTLS authentication for backend services. This is a good way to
250
- ensure that only Fastly can access your API Gateway. For documentation on
250
+ ensure that only Fastly can access your Zuplo Gateway. For documentation on
251
251
  configuring Fastly with mTLS, see the
252
252
  [Fastly documentation](https://docs.fastly.com/en/guides/working-with-hosts#advanced-tls-options).
253
253
  To configure Zuplo to accept mTLS connections, see the
@@ -2,8 +2,8 @@
2
2
  title: Zuplo + WAF/DDoS Services
3
3
  ---
4
4
 
5
- Many customers using Zuplo (or any other API Gateway) often choose to deploy WAF
6
- and DDoS protection in front of their gateway. You can use any WAF - we have
5
+ Many customers using Zuplo (or any other gateway) often choose to deploy WAF and
6
+ DDoS protection in front of their gateway. You can use any WAF - we have
7
7
  customers today using Azure, AWS, Akamai, CloudFlare and many other options.
8
8
 
9
9
  However, there are some things to consider depending on how you host Zuplo
@@ -56,7 +56,7 @@ Akamai's App & API Protector provides comprehensive WAF and DDoS protection with
56
56
  a global edge network. Akamai offers advanced bot management, API security, and
57
57
  DDoS mitigation that works well with Zuplo's edge-deployed architecture. With
58
58
  over 4,000 edge locations worldwide, Akamai ensures minimal latency when
59
- protecting your Zuplo API Gateway.
59
+ protecting your Zuplo Gateway.
60
60
 
61
61
  Key features include:
62
62
 
@@ -74,14 +74,14 @@ your users, maintaining the low-latency benefits of Zuplo's edge deployment.
74
74
  ### Cloudflare WAF + DDoS
75
75
 
76
76
  Cloudflare is the easiest solution for custom WAF + DDoS in front of your Zuplo
77
- API Gateway deployed as managed-edge. Because managed-edge is already terminated
77
+ Gateway deployed as managed-edge. Because managed-edge is already terminated
78
78
  with Cloudflare, the integration is seamless and requires virtually zero
79
79
  configuration. Simply point your Cloudflare managed domain to Zuplo and you are
80
80
  protected. You can fully customize your WAF, firewall, DDoS or any other
81
81
  security configuration offered by Cloudflare. When a request comes into
82
82
  Cloudflare, it will be routed first through your account's configuration, then
83
- will be sent to your Zuplo API Gateway. The same thing happens on the outbound
84
- as well.
83
+ will be sent to your Zuplo Gateway. The same thing happens on the outbound as
84
+ well.
85
85
 
86
86
  A custom domain configured on Zuplo that utilizes Cloudflare DNS is completely
87
87
  protected from requests bypassing your WAF and hitting Zuplo directly.
@@ -106,7 +106,7 @@ the two products together.
106
106
 
107
107
  AWS offers DDoS (Shield) and WAF products that run at CloudFront edge locations.
108
108
  This is another good option for edge-based WAF/DDoS protection in front of your
109
- Zuplo API Gateway. AWS CloudFront is also in hundreds of edge locations that are
109
+ Zuplo Gateway. AWS CloudFront is also in hundreds of edge locations that are
110
110
  very close to Cloudflare locations (again, this isn't something either company
111
111
  discloses, but we suspect there is significant overlap in the physical locations
112
112
  used by AWS and Cloudflare).
@@ -43,7 +43,7 @@ following these steps:
43
43
  the CLI.
44
44
 
45
45
  Most commands take an `--api-key` argument. For example, to list your available
46
- Zuplo API Gateways, run:
46
+ Zuplo Gateways, run:
47
47
 
48
48
  ```bash
49
49
  zuplo list --api-key zpka_d67b7e241bb948758f415b79aa8exxxx_2efbxxxx
@@ -0,0 +1,103 @@
1
+ ---
2
+ title: "Zuplo CLI: Lint"
3
+ sidebar_label: lint
4
+ ---
5
+
6
+ <CliCommand
7
+ command="lint"
8
+ description="Lints your OpenAPI specs and policies for errors and Zuplo conventions"
9
+ options={[
10
+ {
11
+ "name": "dir",
12
+ "type": "string",
13
+ "description": "The directory containing your Zuplo API",
14
+ "default": ".",
15
+ "required": false,
16
+ "deprecated": false,
17
+ "hidden": false,
18
+ "normalize": true
19
+ },
20
+ {
21
+ "name": "config",
22
+ "type": "string",
23
+ "description": "Path to a lint config file. Defaults to zuplo.lint.jsonc or zuplo.lint.json in the project directory.",
24
+ "required": false,
25
+ "deprecated": false,
26
+ "hidden": false,
27
+ "normalize": true
28
+ },
29
+ {
30
+ "name": "format",
31
+ "type": "string",
32
+ "description": "Output format",
33
+ "default": "text",
34
+ "required": false,
35
+ "deprecated": false,
36
+ "hidden": false,
37
+ "choices": [
38
+ "text",
39
+ "json",
40
+ "sarif"
41
+ ]
42
+ },
43
+ {
44
+ "name": "fail-on",
45
+ "type": "string",
46
+ "description": "Severity threshold that fails the command. Defaults to the failOn value in your lint config, or 'error'.",
47
+ "required": false,
48
+ "deprecated": false,
49
+ "hidden": false,
50
+ "choices": [
51
+ "error",
52
+ "warn",
53
+ "none"
54
+ ]
55
+ },
56
+ {
57
+ "name": "lint-binary",
58
+ "type": "string",
59
+ "description": "Path to a zuplo-lint executable to use instead of the one installed with the CLI",
60
+ "required": false,
61
+ "deprecated": false,
62
+ "hidden": true,
63
+ "normalize": true
64
+ },
65
+ {
66
+ "name": "fix",
67
+ "type": "boolean",
68
+ "description": "Rewrite your OpenAPI files to fix what can be fixed automatically, then report what is left",
69
+ "default": false,
70
+ "required": false,
71
+ "deprecated": false,
72
+ "hidden": false
73
+ }
74
+ ]}
75
+ examples={[
76
+ [
77
+ "$0 lint",
78
+ "Lint the project in the current directory"
79
+ ],
80
+ [
81
+ "$0 lint --fix",
82
+ "Apply the fixes that can be made automatically"
83
+ ],
84
+ [
85
+ "$0 lint --fail-on warn",
86
+ "Fail the command on warnings as well as errors"
87
+ ],
88
+ [
89
+ "$0 lint --format sarif > results.sarif",
90
+ "Emit SARIF for GitHub Code Scanning"
91
+ ]
92
+ ]}
93
+ usage="$0 lint [options]"
94
+ >
95
+
96
+ </CliCommand>
97
+
98
+ ## Global options
99
+
100
+ The following global options are available for all commands:
101
+
102
+ - [`--help`](./global-options.mdx#help)
103
+ - [`--api-key`](./global-options.mdx#api-key)
@@ -2,8 +2,9 @@
2
2
  title: How Zuplo Works
3
3
  ---
4
4
 
5
- Zuplo is a programmable API gateway that runs at the edge. This page explains
6
- the architecture, runtime, and deployment model.
5
+ Zuplo is the unified gateway for APIs, AI, and MCP one programmable policy
6
+ engine that runs at the edge. This page explains the architecture, runtime, and
7
+ deployment model.
7
8
 
8
9
  ## Architecture
9
10
 
@@ -14,7 +15,7 @@ policies before reaching the client.
14
15
 
15
16
  <Diagram height="h-96">
16
17
  <DiagramNode id="clients">Clients</DiagramNode>
17
- <DiagramGroup id="zuplo" label="Zuplo API Gateway">
18
+ <DiagramGroup id="zuplo" label="Zuplo Gateway">
18
19
  <DiagramNode id="inbound" variant="zuplo">
19
20
  Inbound Policies
20
21
  </DiagramNode>
@@ -102,7 +103,7 @@ HTTP-based protocols. HTTP/2 is fully supported.
102
103
 
103
104
  ## Programmability
104
105
 
105
- While most API gateways limit you to configuration, Zuplo lets you write custom
106
+ While most gateways limit you to configuration, Zuplo lets you write custom
106
107
  logic that runs in-process at the gateway layer:
107
108
 
108
109
  - **[Custom policies](../policies/custom-code-inbound.mdx)** - intercept
@@ -20,7 +20,7 @@ the caller's identity is known and before the request leaves for the origin.
20
20
 
21
21
  <Diagram height="h-96">
22
22
  <DiagramNode id="caller">Caller</DiagramNode>
23
- <DiagramGroup id="zuplo" label="Zuplo API Gateway">
23
+ <DiagramGroup id="zuplo" label="Zuplo Gateway">
24
24
  <DiagramNode id="verify" variant="zuplo">
25
25
  Verify caller credential
26
26
  </DiagramNode>