zuplo 7.8.7 → 7.8.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/ai-gateway/custom-policies.mdx +2 -1
- package/docs/ai-gateway/integrations/claude-code.mdx +82 -180
- package/docs/ai-gateway/integrations/claude-desktop.mdx +61 -99
- package/docs/ai-gateway/integrations/codex.mdx +63 -57
- package/docs/ai-gateway/usage-limits.mdx +2 -2
- package/docs/api-management/overview.md +2 -2
- package/docs/articles/add-api-to-backstage.mdx +4 -3
- package/docs/articles/api-key-consumer-bucket-portal-ui.mdx +1 -1
- package/docs/articles/api-key-management.mdx +1 -1
- package/docs/articles/custom-domains.mdx +3 -2
- package/docs/articles/migrate-from-apigee.md +3 -3
- package/docs/articles/migrate-from-aws-api-gateway.md +3 -3
- package/docs/articles/migrate-from-azure-apim.md +3 -3
- package/docs/articles/migrate-from-kong.md +3 -3
- package/docs/articles/source-control-setup-github.mdx +2 -2
- package/docs/articles/source-control.mdx +4 -3
- package/docs/articles/testing.mdx +5 -5
- package/docs/articles/upstream-iam-auth.mdx +2 -2
- package/docs/cli/create-zuplo-api.mdx +4 -4
- package/docs/cli/openapi-merge.mdx +1 -1
- package/docs/cli/openapi-merge.partial.mdx +1 -1
- package/docs/concepts/ai-gateway.mdx +1 -1
- package/docs/concepts/how-zuplo-works.mdx +2 -1
- package/docs/concepts/mcp.mdx +4 -4
- package/docs/dedicated/architecture.mdx +1 -1
- package/docs/dev-portal/migration.mdx +2 -2
- package/docs/errors/not-found.mdx +1 -1
- package/docs/getting-started/ai-gateway/portal.mdx +181 -0
- package/docs/getting-started/dev-portal/agent.mdx +148 -0
- package/docs/getting-started/dev-portal/index.mdx +26 -0
- package/docs/getting-started/dev-portal/local.mdx +213 -0
- package/docs/getting-started/dev-portal/portal.mdx +146 -0
- package/docs/{articles/step-3-add-api-key-auth.mdx → getting-started/gateway/add-api-key-auth/index.mdx} +32 -23
- package/docs/{articles/step-3-add-api-key-auth-local.mdx → getting-started/gateway/add-api-key-auth/local.mdx} +28 -20
- package/docs/{articles/step-2-add-rate-limiting.mdx → getting-started/gateway/add-rate-limiting/index.mdx} +22 -13
- package/docs/{articles/step-2-add-rate-limiting-local.mdx → getting-started/gateway/add-rate-limiting/local.mdx} +24 -14
- package/docs/getting-started/gateway/agent.mdx +199 -0
- package/docs/{articles/step-4-deploying-to-the-edge.mdx → getting-started/gateway/deploy-to-the-edge/index.mdx} +39 -27
- package/docs/{articles/step-4-deploying-to-the-edge-local.mdx → getting-started/gateway/deploy-to-the-edge/local.mdx} +48 -17
- package/docs/{articles/step-5-dynamic-rate-limiting.mdx → getting-started/gateway/dynamic-rate-limiting/index.mdx} +24 -12
- package/docs/{articles/step-5-dynamic-rate-limiting-local.mdx → getting-started/gateway/dynamic-rate-limiting/local.mdx} +24 -12
- package/docs/getting-started/gateway/index.mdx +24 -0
- package/docs/{articles/step-1-setup-basic-gateway.mdx → getting-started/gateway/setup-a-basic-gateway/index.mdx} +33 -21
- package/docs/{articles/step-1-setup-basic-gateway-local.mdx → getting-started/gateway/setup-a-basic-gateway/local.mdx} +24 -15
- package/docs/getting-started/index.mdx +25 -0
- package/docs/getting-started/mcp-gateway/agent.mdx +161 -0
- package/docs/getting-started/mcp-gateway/index.mdx +25 -0
- package/docs/{mcp-gateway/quickstart-local.mdx → getting-started/mcp-gateway/local.mdx} +64 -38
- package/docs/{mcp-gateway/quickstart.mdx → getting-started/mcp-gateway/portal.mdx} +71 -54
- package/docs/getting-started/mcp-server/agent.mdx +152 -0
- package/docs/getting-started/mcp-server/index.mdx +25 -0
- package/docs/{articles/mcp-quickstart-local.mdx → getting-started/mcp-server/local.mdx} +24 -13
- package/docs/{articles/mcp-quickstart.mdx → getting-started/mcp-server/portal.mdx} +35 -15
- package/docs/getting-started/migrate/agent.mdx +129 -0
- package/docs/getting-started/migrate/index.mdx +25 -0
- package/docs/getting-started/migrate/local.mdx +141 -0
- package/docs/getting-started/migrate/portal.mdx +129 -0
- package/docs/home.mdx +6 -0
- package/docs/mcp-gateway/connect-clients/chatgpt.mdx +2 -1
- package/docs/mcp-gateway/connect-clients/claude-code.mdx +2 -1
- package/docs/mcp-gateway/connect-clients/claude-desktop.mdx +23 -20
- package/docs/mcp-gateway/connect-clients/cursor.mdx +2 -1
- package/docs/mcp-gateway/connect-clients/overview.mdx +2 -1
- package/docs/mcp-gateway/connect-clients/vs-code.mdx +2 -1
- package/docs/mcp-gateway/how-it-works.mdx +2 -2
- package/docs/mcp-gateway/how-to/connect-upstream-api-key.mdx +4 -3
- package/docs/mcp-gateway/how-to/curate-tools.mdx +3 -2
- package/docs/mcp-gateway/overview.mdx +3 -3
- package/docs/policies/ai-gateway-smart-router-inbound/doc.md +14 -0
- package/docs/policies/akamai-ai-firewall-v2-inbound/doc.md +7 -0
- package/package.json +5 -5
- package/docs/ai-gateway/getting-started.mdx +0 -307
- package/docs/dev-portal/local-development.mdx +0 -72
|
@@ -1,98 +1,104 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Codex
|
|
3
3
|
sidebar_label: Codex
|
|
4
|
-
description:
|
|
5
|
-
Configure the Codex CLI to send its requests through an AI Gateway app, either
|
|
6
|
-
by rerouting the built-in OpenAI provider or by adding a Zuplo provider.
|
|
4
|
+
description: Route Codex CLI requests through a Zuplo AI Gateway app.
|
|
7
5
|
---
|
|
8
6
|
|
|
9
|
-
[Codex](https://developers.openai.com/codex) is
|
|
10
|
-
|
|
11
|
-
and run code on your machine, in the chosen directory. It’s open-source, and
|
|
12
|
-
built in Rust for speed and efficiency.
|
|
7
|
+
[Codex](https://developers.openai.com/codex) is OpenAI's coding agent for the
|
|
8
|
+
terminal. This guide routes its requests through the Zuplo AI Gateway.
|
|
13
9
|
|
|
14
10
|
## Prerequisites
|
|
15
11
|
|
|
16
|
-
In order to use the AI Gateway with Codex you will need to complete these steps
|
|
17
|
-
first:
|
|
18
|
-
|
|
19
12
|
<Stepper>
|
|
20
13
|
|
|
21
|
-
1. Create a [
|
|
22
|
-
provider you want to use with Codex
|
|
14
|
+
1. Create a [provider](../managing-providers.mdx) in the AI Gateway.
|
|
23
15
|
|
|
24
|
-
2. [
|
|
16
|
+
2. [Create a team](../managing-teams.mdx).
|
|
25
17
|
|
|
26
|
-
3. Create
|
|
27
|
-
assign it to the team you created
|
|
18
|
+
3. [Create an app](../managing-apps.mdx) for Codex and assign it to the team.
|
|
28
19
|
|
|
29
|
-
4. Copy the **API URL** and **API Key**
|
|
20
|
+
4. Copy the **API URL** and **API Key** from the app page.
|
|
30
21
|
|
|
31
22
|
</Stepper>
|
|
32
23
|
|
|
33
|
-
## Configure Codex
|
|
34
|
-
|
|
35
|
-
There are two approaches you can take to using Codex with Zuplo's AI Gateway.
|
|
36
|
-
|
|
37
|
-
1. **Route OpenAI through AI Gateway** - This would configure your OpenAI
|
|
38
|
-
provider in Codex to route requests through the AI Gateway rather than
|
|
39
|
-
directly to OpenAI
|
|
24
|
+
## Configure Codex
|
|
40
25
|
|
|
41
|
-
|
|
42
|
-
selected in the Codex configuration and work with any OpenAI compatible
|
|
43
|
-
models
|
|
26
|
+
:::warning{title="Replace the provider name"}
|
|
44
27
|
|
|
45
|
-
|
|
28
|
+
The examples assume your provider is named `openai`. Replace that prefix with
|
|
29
|
+
the name of **your** provider before copying anything. A provider named
|
|
30
|
+
`my-openai` routes `my-openai/gpt-5`. The model part must be an ID that provider
|
|
31
|
+
serves. Check [your provider's page](../managing-providers.mdx) in the Portal.
|
|
46
32
|
|
|
47
|
-
|
|
33
|
+
:::
|
|
48
34
|
|
|
49
|
-
|
|
50
|
-
`~/.codex
|
|
51
|
-
entry so that the `base_url` points to your app's API URL with `/v1` appended,
|
|
52
|
-
and set your `env_key` to the API Key of the app you created to use with Codex.
|
|
53
|
-
The app page in the Zuplo Portal shows the API URL, which ends in the app's ID.
|
|
35
|
+
Codex reads configuration from `~/.codex/config.toml`. Create this file (and the
|
|
36
|
+
`~/.codex` directory if needed) if it does not exist. Add the following:
|
|
54
37
|
|
|
55
38
|
```toml
|
|
56
|
-
|
|
57
|
-
|
|
39
|
+
model_provider = "zuplo"
|
|
40
|
+
model = "openai/gpt-5"
|
|
41
|
+
|
|
42
|
+
[model_providers.zuplo]
|
|
43
|
+
name = "Zuplo AI Gateway"
|
|
58
44
|
base_url = "https://my-gateway-main-2e18f50.zuplo.app/config_fe0a04972d2848e0a94ae4b8bcd1497e/v1"
|
|
59
45
|
env_key = "ZUPLO_AI_GATEWAY_API_KEY"
|
|
46
|
+
wire_api = "responses"
|
|
60
47
|
```
|
|
61
48
|
|
|
62
|
-
|
|
63
|
-
|
|
49
|
+
- `base_url` is the app's API URL with `/v1` appended.
|
|
50
|
+
- `model` is `providerName/model`.
|
|
64
51
|
|
|
65
|
-
|
|
52
|
+
Set the API key in your environment:
|
|
66
53
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
```toml
|
|
71
|
-
[model_providers.zuplo]
|
|
72
|
-
name = "Zuplo AI Gateway"
|
|
73
|
-
base_url = "https://my-gateway-main-2e18f50.zuplo.app/config_fe0a04972d2848e0a94ae4b8bcd1497e/v1"
|
|
74
|
-
env_key = "ZUPLO_AI_GATEWAY_API_KEY"
|
|
54
|
+
```bash
|
|
55
|
+
export ZUPLO_AI_GATEWAY_API_KEY="<your-app-api-key>"
|
|
75
56
|
```
|
|
76
57
|
|
|
77
|
-
|
|
78
|
-
|
|
58
|
+
Restart Codex. All requests now go through the gateway.
|
|
59
|
+
|
|
60
|
+
### Rules
|
|
61
|
+
|
|
62
|
+
- `model_provider = "zuplo"` is required. Without it, Codex uses its built-in
|
|
63
|
+
`openai` provider and bypasses the gateway.
|
|
64
|
+
- `wire_api` must be `responses`. Codex speaks only the Responses API; it
|
|
65
|
+
[removed](https://github.com/openai/codex/discussions/7782) support for
|
|
66
|
+
`/v1/chat/completions`, and `wire_api = "chat"` fails to load.
|
|
67
|
+
- Put this configuration in the user-level file. Codex ignores `model_provider`
|
|
68
|
+
and `model_providers` in a project-level `.codex/config.toml`.
|
|
69
|
+
|
|
70
|
+
## Switch models
|
|
71
|
+
|
|
72
|
+
Set `model` in `config.toml`, or pass it on the command line:
|
|
79
73
|
|
|
80
74
|
```bash
|
|
81
|
-
codex --config model_provider="zuplo"
|
|
75
|
+
codex --config model_provider="zuplo" --model "openai/gpt-5.6-sol"
|
|
82
76
|
```
|
|
83
77
|
|
|
84
|
-
|
|
78
|
+
Do not use the `/model` picker. It sends model names without the provider
|
|
79
|
+
prefix, and the gateway rejects them with a `400`.
|
|
80
|
+
|
|
81
|
+
Codex warns that it has no metadata for a prefixed model name. Requests still
|
|
82
|
+
succeed.
|
|
85
83
|
|
|
86
84
|
The app's
|
|
87
85
|
[Model Filtering](../../policies/ai-gateway-model-filtering-v2-inbound.mdx)
|
|
88
|
-
policy controls which models the app
|
|
89
|
-
|
|
90
|
-
|
|
86
|
+
policy controls which models the app can use.
|
|
87
|
+
|
|
88
|
+
## Verify
|
|
91
89
|
|
|
92
90
|
```bash
|
|
93
|
-
codex
|
|
91
|
+
codex exec "Reply with the single word OK"
|
|
94
92
|
```
|
|
95
93
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
94
|
+
The session header shows `provider: zuplo`. The request appears in the app's
|
|
95
|
+
usage in the Zuplo Portal.
|
|
96
|
+
|
|
97
|
+
## Troubleshooting
|
|
98
|
+
|
|
99
|
+
| Error | Fix |
|
|
100
|
+
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------- |
|
|
101
|
+
| `400` `The request body model must use "providerName/model"` | Add the provider prefix to `model`. Do not use the `/model` picker. |
|
|
102
|
+
| `ERROR: Missing environment variable: ZUPLO_AI_GATEWAY_API_KEY` | Export the variable in the shell that runs Codex. |
|
|
103
|
+
| `401` `Authorization Failed` | The API key is wrong. Copy it from the app's **API Key** tab. |
|
|
104
|
+
| Errors mention `api.openai.com` or `not supported when using Codex with a ChatGPT account` | Codex is not using your provider. Set `model_provider = "zuplo"`. |
|
|
@@ -357,8 +357,8 @@ Each app, team, and the gateway show current usage against their limits:
|
|
|
357
357
|
|
|
358
358
|
## Related Resources
|
|
359
359
|
|
|
360
|
-
- [Getting Started](
|
|
361
|
-
project with budget controls
|
|
360
|
+
- [Getting Started](../getting-started/ai-gateway/portal.mdx) - Set up your
|
|
361
|
+
first AI Gateway project with budget controls
|
|
362
362
|
- [Managing Teams](./managing-teams.mdx) - Configure team-level budgets
|
|
363
363
|
- [Managing Apps](./managing-apps.mdx) - Configure app-level limits
|
|
364
364
|
- [Fallback Models](./fallback.mdx) - Serve a cheaper model instead of blocking
|
|
@@ -11,8 +11,8 @@ designed for developers. It offers fast deployment, GitOps-friendly workflows,
|
|
|
11
11
|
and unlimited environments. Whether you're an individual developer or part of an
|
|
12
12
|
engineering team, Zuplo makes it easy to:
|
|
13
13
|
|
|
14
|
-
- [Add authentication and access control](../
|
|
15
|
-
- [Implement rate limiting](../
|
|
14
|
+
- [Add authentication and access control](../getting-started/gateway/add-api-key-auth/index.mdx)
|
|
15
|
+
- [Implement rate limiting](../getting-started/gateway/add-rate-limiting/index.mdx)
|
|
16
16
|
- Write custom logic to run at the gateway layer
|
|
17
17
|
- Build a [rich developer portal](../dev-portal/overview.mdx) with self-serve
|
|
18
18
|
tools for auth and monetization
|
|
@@ -26,9 +26,10 @@ Add a new route with the path `/openapi`, and select the `OpenAPI Spec Handler`
|
|
|
26
26
|
from the Request Handler selector. Save your changes and commit them to your
|
|
27
27
|
production branch. If you haven't already connected your Zuplo API to a GitHub
|
|
28
28
|
repository, you can follow
|
|
29
|
-
[these instructions](
|
|
30
|
-
Zuplo API is redeployed, you should now be able to retrieve
|
|
31
|
-
OpenAPI file by hitting
|
|
29
|
+
[these instructions](../getting-started/gateway/deploy-to-the-edge/index.mdx) to
|
|
30
|
+
do so. Once your Zuplo API is redeployed, you should now be able to retrieve
|
|
31
|
+
your public-ready OpenAPI file by hitting
|
|
32
|
+
`https://<your-prod-zuplo-api-domain>/openapi`.
|
|
32
33
|
|
|
33
34
|

|
|
34
35
|
|
|
@@ -23,7 +23,7 @@ managers), see [Manage Keys in the Portal](./api-key-administration.mdx).
|
|
|
23
23
|
## Prerequisites
|
|
24
24
|
|
|
25
25
|
- A Zuplo project with at least one deployed environment (see the
|
|
26
|
-
[getting started tutorial](
|
|
26
|
+
[getting started tutorial](../getting-started/gateway/setup-a-basic-gateway/index.mdx))
|
|
27
27
|
- The [API Key Authentication policy](../policies/api-key-inbound.mdx)
|
|
28
28
|
configured on your routes
|
|
29
29
|
- Permission to manage API key consumers in your project
|
|
@@ -22,8 +22,9 @@ Zuplo supports two types of custom domains that can be configured separately:
|
|
|
22
22
|
`cname.zuplodocs.com`. Learn more about the Developer Portal in the
|
|
23
23
|
[Developer Portal documentation](/docs/dev-portal/overview).
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
Manage both types of custom domains in
|
|
26
|
+
[**Account Settings → Custom Domains**](https://portal.zuplo.com/+/account/settings/custom-domains).
|
|
27
|
+
They follow a similar configuration process.
|
|
27
28
|
|
|
28
29
|
:::note
|
|
29
30
|
|
|
@@ -401,8 +401,8 @@ between both gateways.
|
|
|
401
401
|
|
|
402
402
|
## Next steps
|
|
403
403
|
|
|
404
|
-
- [Set up your first Zuplo gateway](
|
|
405
|
-
- [Add rate limiting](
|
|
406
|
-
- [Add API key authentication](
|
|
404
|
+
- [Set up your first Zuplo gateway](../getting-started/gateway/setup-a-basic-gateway/index.mdx)
|
|
405
|
+
- [Add rate limiting](../getting-started/gateway/add-rate-limiting/index.mdx)
|
|
406
|
+
- [Add API key authentication](../getting-started/gateway/add-api-key-auth/index.mdx)
|
|
407
407
|
- [Configure your developer portal](../dev-portal/overview.mdx)
|
|
408
408
|
- [Set up source control](./source-control.md)
|
|
@@ -241,8 +241,8 @@ secrets to secure the connection between Zuplo and your AWS backends.
|
|
|
241
241
|
|
|
242
242
|
## Next steps
|
|
243
243
|
|
|
244
|
-
- [Set up your first Zuplo gateway](
|
|
245
|
-
- [Add rate limiting](
|
|
246
|
-
- [Add API key authentication](
|
|
244
|
+
- [Set up your first Zuplo gateway](../getting-started/gateway/setup-a-basic-gateway/index.mdx)
|
|
245
|
+
- [Add rate limiting](../getting-started/gateway/add-rate-limiting/index.mdx)
|
|
246
|
+
- [Add API key authentication](../getting-started/gateway/add-api-key-auth/index.mdx)
|
|
247
247
|
- [Configure your developer portal](../dev-portal/overview.mdx)
|
|
248
248
|
- [Set up source control](./source-control.md)
|
|
@@ -285,8 +285,8 @@ connection between Zuplo and your Azure backends.
|
|
|
285
285
|
|
|
286
286
|
## Next steps
|
|
287
287
|
|
|
288
|
-
- [Set up your first Zuplo gateway](
|
|
289
|
-
- [Add rate limiting](
|
|
290
|
-
- [Add API key authentication](
|
|
288
|
+
- [Set up your first Zuplo gateway](../getting-started/gateway/setup-a-basic-gateway/index.mdx)
|
|
289
|
+
- [Add rate limiting](../getting-started/gateway/add-rate-limiting/index.mdx)
|
|
290
|
+
- [Add API key authentication](../getting-started/gateway/add-api-key-auth/index.mdx)
|
|
291
291
|
- [Configure your developer portal](../dev-portal/overview.mdx)
|
|
292
292
|
- [Set up source control](./source-control.md)
|
|
@@ -293,8 +293,8 @@ configuration-as-code. Zuplo takes this further with native GitOps:
|
|
|
293
293
|
|
|
294
294
|
## Next steps
|
|
295
295
|
|
|
296
|
-
- [Set up your first Zuplo gateway](
|
|
297
|
-
- [Add rate limiting](
|
|
298
|
-
- [Add API key authentication](
|
|
296
|
+
- [Set up your first Zuplo gateway](../getting-started/gateway/setup-a-basic-gateway/index.mdx)
|
|
297
|
+
- [Add rate limiting](../getting-started/gateway/add-rate-limiting/index.mdx)
|
|
298
|
+
- [Add API key authentication](../getting-started/gateway/add-api-key-auth/index.mdx)
|
|
299
299
|
- [Configure your developer portal](../dev-portal/overview.mdx)
|
|
300
300
|
- [Set up source control](./source-control.md)
|
|
@@ -11,8 +11,8 @@ configuration required.
|
|
|
11
11
|
|
|
12
12
|
This guide assumes you have a Zuplo project created. If you don't have one yet,
|
|
13
13
|
follow the steps in
|
|
14
|
-
[Step 1 - Setup a Basic Gateway](
|
|
15
|
-
new Zuplo project.
|
|
14
|
+
[Step 1 - Setup a Basic Gateway](../getting-started/gateway/setup-a-basic-gateway/index.mdx)
|
|
15
|
+
to create a new Zuplo project.
|
|
16
16
|
|
|
17
17
|
<Stepper>
|
|
18
18
|
|
|
@@ -65,9 +65,10 @@ If your code lives elsewhere but you want to use a specific CI/CD system:
|
|
|
65
65
|
|
|
66
66
|
## How Branch-Based Deployments Work
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
main environment. Push to `feature-auth` and get a
|
|
70
|
-
automatically.
|
|
68
|
+
With the GitHub integration, every Git branch maps to a Zuplo environment. Push
|
|
69
|
+
to `main` and deploy to your main environment. Push to `feature-auth` and get a
|
|
70
|
+
`feature-auth` environment automatically. For other providers, configure your
|
|
71
|
+
CI/CD pipeline to deploy each branch.
|
|
71
72
|
|
|
72
73
|
This enables powerful workflows like PR preview environments where reviewers can
|
|
73
74
|
test changes against a live API before merging.
|
|
@@ -140,11 +140,11 @@ and the same file supplies fixture values to `zuplo test`. See
|
|
|
140
140
|
|
|
141
141
|
## Test before merge
|
|
142
142
|
|
|
143
|
-
|
|
144
|
-
preview environment
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
environment.
|
|
143
|
+
With the GitHub integration, pushing a feature branch automatically creates a
|
|
144
|
+
preview environment at its own URL. For GitLab, Bitbucket, or Azure DevOps,
|
|
145
|
+
configure a [CI/CD pipeline](./custom-ci-cd.mdx) to deploy the branch. Running
|
|
146
|
+
your suite against a preview deployment lets you test changes before merging
|
|
147
|
+
without a shared staging environment.
|
|
148
148
|
|
|
149
149
|
- [Testing preview environments](./testing-preview-environments.mdx) — getting
|
|
150
150
|
the URL into your tests, per-environment services and secrets, and what to
|
|
@@ -19,8 +19,8 @@ identity provider you control. For the alternatives, see
|
|
|
19
19
|
|
|
20
20
|
## Federated identity or stored credentials
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
Zuplo offers federated identity and stored-credential policies. The available
|
|
23
|
+
options depend on your cloud provider, as shown in the policy table below.
|
|
24
24
|
|
|
25
25
|
**Federated identity** is the stronger option. Zuplo presents a short-lived,
|
|
26
26
|
audience-bound OIDC token that proves which gateway is calling, and your cloud
|
|
@@ -42,7 +42,7 @@ npx create-zuplo-api@latest
|
|
|
42
42
|
(`claude`, `copilot`, `cursor`, `windsurf`, `codex`), or `none` to skip agent
|
|
43
43
|
setup. See [Configuring AI coding agents](#configuring-ai-coding-agents)
|
|
44
44
|
- `--template <template-name>` - A built-in template to bootstrap the API with
|
|
45
|
-
(`default`, `default-empty`, or `ai-gateway
|
|
45
|
+
(`default`, `default-empty`, or `ai-gateway`). Can't be combined with
|
|
46
46
|
`--example` or `--empty`. See [Choosing a template](#choosing-a-template)
|
|
47
47
|
- `-e, --example <example-name|github-url>` - An example to bootstrap the API
|
|
48
48
|
with. You can use an example name from the official Zuplo repository or a
|
|
@@ -88,18 +88,18 @@ flag you get the `default` template.
|
|
|
88
88
|
| --------------- | --------------------------------------------------------------------------------------------- |
|
|
89
89
|
| `default` | Sample `/todos` routes, a `hello-world` module, a dev portal in `docs/`, and VS Code settings |
|
|
90
90
|
| `default-empty` | The same project with no routes defined and no VS Code settings |
|
|
91
|
-
| `ai-gateway
|
|
91
|
+
| `ai-gateway` | An [AI Gateway](../ai-gateway/overview.mdx) project, without a dev portal |
|
|
92
92
|
|
|
93
93
|
`--empty` is shorthand for `--template default-empty`.
|
|
94
94
|
|
|
95
|
-
The `ai-gateway
|
|
95
|
+
The `ai-gateway` template scaffolds `config/ai.oas.json`, which routes
|
|
96
96
|
`/:app_id/v1/*` to the AI Gateway handler, and `config/policies.json`, which
|
|
97
97
|
declares the policies an application's policy chain can select. It ships no
|
|
98
98
|
`docs/` directory, so the CLI skips the
|
|
99
99
|
[dev portal](../dev-portal/overview.mdx) workspace:
|
|
100
100
|
|
|
101
101
|
```bash
|
|
102
|
-
npx create-zuplo-api@latest my-gateway --template ai-gateway
|
|
102
|
+
npx create-zuplo-api@latest my-gateway --template ai-gateway
|
|
103
103
|
```
|
|
104
104
|
|
|
105
105
|
`--template` names a built-in template, which is why it can't be combined with
|
|
@@ -125,7 +125,7 @@ To rename the destination file, use the `--destination` option.
|
|
|
125
125
|
```bash
|
|
126
126
|
zuplo openapi merge \
|
|
127
127
|
--source https://example.com/path/to/openapi.json \
|
|
128
|
-
--destination new-name
|
|
128
|
+
--destination ./config/new-name.oas.json
|
|
129
129
|
```
|
|
130
130
|
|
|
131
131
|
</CliCommand>
|
|
@@ -64,7 +64,7 @@ are the same ones described in [How Zuplo Works](./how-zuplo-works.mdx).
|
|
|
64
64
|
|
|
65
65
|
## Next steps
|
|
66
66
|
|
|
67
|
-
- [Get started with the AI Gateway](../ai-gateway/
|
|
67
|
+
- [Get started with the AI Gateway](../getting-started/ai-gateway/portal.mdx)
|
|
68
68
|
- [Browse the SDK integrations](../ai-gateway/integrations/openai.mdx) for
|
|
69
69
|
OpenAI, the Vercel AI SDK, LangChain, Claude Code, Codex, and Goose
|
|
70
70
|
- Explore the [AI Gateway policies](../ai-gateway/policies/overview.mdx)
|
|
@@ -87,7 +87,8 @@ workflow is:
|
|
|
87
87
|
|
|
88
88
|
1. **Develop** locally or in the Zuplo Portal
|
|
89
89
|
2. **Push** to your Git repository (GitHub, GitLab, Bitbucket, or Azure DevOps)
|
|
90
|
-
3. **Deploy** automatically
|
|
90
|
+
3. **Deploy** automatically with the GitHub integration, or configure a CI/CD
|
|
91
|
+
pipeline to deploy from GitLab, Bitbucket, or Azure DevOps
|
|
91
92
|
|
|
92
93
|
Deployments complete in seconds. Each Git branch gets its own isolated
|
|
93
94
|
environment with its own URL, making it easy to test changes before merging to
|
package/docs/concepts/mcp.mdx
CHANGED
|
@@ -55,9 +55,9 @@ apply to any other route.
|
|
|
55
55
|
|
|
56
56
|
## Next steps
|
|
57
57
|
|
|
58
|
-
- [MCP Gateway quickstart](../mcp-gateway/
|
|
59
|
-
MCP server and connect Claude Desktop
|
|
60
|
-
- [MCP quickstart for the MCP Server handler](../
|
|
61
|
-
turn an API into MCP tools
|
|
58
|
+
- [MCP Gateway quickstart](../getting-started/mcp-gateway/portal.mdx) — expose
|
|
59
|
+
an upstream MCP server and connect Claude Desktop
|
|
60
|
+
- [MCP quickstart for the MCP Server handler](../getting-started/mcp-server/portal.mdx)
|
|
61
|
+
— turn an API into MCP tools
|
|
62
62
|
- [Connect MCP clients](../mcp-gateway/connect-clients/overview.mdx) — Claude,
|
|
63
63
|
ChatGPT, Cursor, VS Code, and others
|
|
@@ -19,7 +19,7 @@ A managed dedicated instance of Zuplo consists of the following components:
|
|
|
19
19
|
authorization, rate limiting, and other features.
|
|
20
20
|
- **Gateway Services**: Zuplo, being a highly distributed gateway, uses services
|
|
21
21
|
to facilitate features such as
|
|
22
|
-
[Rate Limiting](../
|
|
22
|
+
[Rate Limiting](../getting-started/gateway/add-rate-limiting/index.mdx) and
|
|
23
23
|
[API Key Authentication](../articles/api-key-management.mdx).
|
|
24
24
|
- **Control Plane**: The Control Plane manages the configuration of the Zuplo
|
|
25
25
|
Gateway. It deploys new configurations, manages the lifecycle of the Zuplo
|
|
@@ -125,8 +125,8 @@ process, continue with the manual migration steps below.
|
|
|
125
125
|
|
|
126
126
|
:::caution
|
|
127
127
|
|
|
128
|
-
|
|
129
|
-
|
|
128
|
+
Follow these manual migration steps locally. To migrate in the Zuplo Portal,
|
|
129
|
+
use the [built-in migration tool](#migrate-in-the-portal).
|
|
130
130
|
|
|
131
131
|
:::
|
|
132
132
|
|
|
@@ -40,4 +40,4 @@ response when no route matches. See
|
|
|
40
40
|
## Related resources
|
|
41
41
|
|
|
42
42
|
- [Routes Designer](../articles/local-development-routes-designer.mdx)
|
|
43
|
-
- [Deploying to the Edge](../
|
|
43
|
+
- [Deploying to the Edge](../getting-started/gateway/deploy-to-the-edge/index.mdx)
|