zuplo 7.6.4 → 7.6.6
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/getting-started.mdx +52 -66
- package/docs/ai-gateway/managing-teams.mdx +3 -2
- package/docs/ai-gateway/overview.mdx +18 -16
- package/docs/ai-gateway/policy-templates.mdx +17 -11
- package/docs/ai-gateway/source-control.mdx +37 -20
- package/docs/ai-gateway/teams.mdx +1 -1
- package/docs/ai-gateway/usage-limits.mdx +95 -44
- package/docs/articles/api-key-administration.mdx +2 -2
- package/docs/articles/api-key-api.mdx +26 -5
- package/docs/articles/api-key-authentication.mdx +1 -1
- package/docs/articles/api-key-buckets.mdx +27 -4
- package/docs/articles/api-key-consumer-bucket-portal-ui.mdx +13 -11
- package/docs/articles/api-key-leak-detection.mdx +2 -2
- package/docs/articles/api-key-self-serve-integration.mdx +19 -19
- package/docs/articles/audit-logs.mdx +11 -10
- package/docs/articles/monetization/api-access.mdx +1 -1
- package/docs/articles/monetization/going-to-production.mdx +1 -1
- package/docs/concepts/ai-gateway.mdx +10 -9
- package/docs/concepts/api-keys.md +1 -1
- package/docs/dedicated/akamai/ai-powered-applications.mdx +11 -8
- package/docs/dev-portal/dev-portal-create-consumer-on-auth.mdx +10 -5
- package/docs/dev-portal/zudoku/configuration/api-reference.md +1 -1
- package/docs/dev-portal/zudoku/configuration/llms.md +0 -4
- package/docs/policies/ai-gateway-configuration-executor-v2-inbound/doc.md +1 -1
- package/docs/policies/ai-gateway-metering-v2-inbound/schema.json +1 -1
- package/docs/policies/semantic-cache-inbound/schema.json +6 -2
- package/package.json +5 -5
|
@@ -21,9 +21,10 @@ Three building blocks organize an AI Gateway:
|
|
|
21
21
|
can route to. Administrators configure providers once, including any
|
|
22
22
|
[custom OpenAI-compatible providers](../ai-gateway/custom-providers.mdx), and
|
|
23
23
|
consumers never see the underlying credentials.
|
|
24
|
-
- **[Teams](../ai-gateway/teams.mdx)** group users and carry budget limits
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
- **[Teams](../ai-gateway/teams.mdx)** group users and carry budget limits. Each
|
|
25
|
+
team totals usage across its sub-teams and apps. A request must remain within
|
|
26
|
+
the gateway, ancestor team, and app limits. See
|
|
27
|
+
[Usage Limits](../ai-gateway/usage-limits.mdx).
|
|
27
28
|
- **[Apps](../ai-gateway/apps.mdx)** are the pieces of software that call the
|
|
28
29
|
gateway — a support chatbot is one app, an internal coding agent is another.
|
|
29
30
|
Each app gets its own gateway URL, its own Zuplo-managed API key, and its own
|
|
@@ -54,12 +55,12 @@ code change.
|
|
|
54
55
|
|
|
55
56
|
## How it fits into Zuplo
|
|
56
57
|
|
|
57
|
-
An AI Gateway is a type of Zuplo project.
|
|
58
|
-
|
|
59
|
-
go through the same review workflow as the rest of your
|
|
60
|
-
|
|
61
|
-
platform primitives — deployment model, environments, analytics —
|
|
62
|
-
ones described in [How Zuplo Works](./how-zuplo-works.mdx).
|
|
58
|
+
An AI Gateway is a type of Zuplo project. A new project deploys without a Git
|
|
59
|
+
repository; you can [connect a repository](../ai-gateway/source-control.mdx)
|
|
60
|
+
later so gateway changes go through the same review workflow as the rest of your
|
|
61
|
+
Zuplo configuration. The providers, teams, and apps you configure belong to that
|
|
62
|
+
project. The platform primitives — deployment model, environments, analytics —
|
|
63
|
+
are the same ones described in [How Zuplo Works](./how-zuplo-works.mdx).
|
|
63
64
|
|
|
64
65
|
## Next steps
|
|
65
66
|
|
|
@@ -187,7 +187,7 @@ Each project has separate buckets for production, preview, and working copy
|
|
|
187
187
|
environments. This means API keys created in production don't work in preview,
|
|
188
188
|
and vice versa.
|
|
189
189
|
|
|
190
|
-
For testing, you can specify a custom bucket
|
|
190
|
+
For testing, you can specify a custom bucket ID on the
|
|
191
191
|
[API Key Authentication](../policies/api-key-inbound.mdx) policy to share keys
|
|
192
192
|
across environments. Enterprise customers can share buckets across projects or
|
|
193
193
|
accounts.
|
|
@@ -165,14 +165,17 @@ When the firewall detects a threat, it can take one of three actions:
|
|
|
165
165
|
|
|
166
166
|
## Cost and Usage Controls
|
|
167
167
|
|
|
168
|
-
The Zuplo AI Gateway provides
|
|
169
|
-
spending:
|
|
170
|
-
|
|
171
|
-
- **
|
|
172
|
-
usage
|
|
173
|
-
- **Team budgets** -
|
|
174
|
-
-
|
|
175
|
-
- **
|
|
168
|
+
The Zuplo AI Gateway provides budget controls at every level of the hierarchy to
|
|
169
|
+
manage AI spending:
|
|
170
|
+
|
|
171
|
+
- **Gateway budgets** - Hourly, daily, weekly, or monthly limits across all AI
|
|
172
|
+
Gateway usage.
|
|
173
|
+
- **Team budgets** - Shared or per-expression limits across a team, its
|
|
174
|
+
sub-teams, and their apps.
|
|
175
|
+
- **App budgets** - Shared or per-expression limits for one app.
|
|
176
|
+
- **Rate limiting** - Request throttling to prevent abuse.
|
|
177
|
+
|
|
178
|
+
For more information, see [Usage Limits](../../ai-gateway/usage-limits.mdx).
|
|
176
179
|
|
|
177
180
|
## Security Model
|
|
178
181
|
|
|
@@ -56,14 +56,19 @@ secret `API_KEY` and set the value.
|
|
|
56
56
|
|
|
57
57
|
:::info
|
|
58
58
|
|
|
59
|
-
In the code below set the variable `
|
|
60
|
-
your Zuplo Gateway.
|
|
59
|
+
In the code below set the variable `API_KEY_BUCKET_ID` to the ID of the bucket
|
|
60
|
+
being used by your Zuplo Gateway. Copy it from the **Bucket ID** pill on your
|
|
61
|
+
project's
|
|
62
|
+
[**Services → API Keys → Consumers**](https://portal.zuplo.com/+/account/project/services)
|
|
63
|
+
page, or
|
|
61
64
|
[list your buckets using the Developer API](https://dev.zuplo.com/docs/routes#apikeybucketsservice_list).
|
|
65
|
+
For more information, see
|
|
66
|
+
[Bucket identifiers](../articles/api-key-buckets.mdx#bucket-identifiers).
|
|
62
67
|
|
|
63
68
|
:::
|
|
64
69
|
|
|
65
70
|
Next, add the following code to your custom action. Be sure to replace the
|
|
66
|
-
placeholder values with your actual account and bucket
|
|
71
|
+
placeholder values with your actual account name and bucket ID. Click the
|
|
67
72
|
**Deploy** button when you are finished.
|
|
68
73
|
|
|
69
74
|
```ts
|
|
@@ -71,7 +76,7 @@ const { fetch } = require("undici");
|
|
|
71
76
|
const { randomUUID } = require("crypto");
|
|
72
77
|
|
|
73
78
|
const ZUPLO_ACCOUNT = "my-zuplo-account";
|
|
74
|
-
const
|
|
79
|
+
const API_KEY_BUCKET_ID = "bckt_2HaK3odRyJle6NJSu8mzNKBC30BYxllxL";
|
|
75
80
|
|
|
76
81
|
/**
|
|
77
82
|
* Handler that will be called during the execution of a PostLogin flow.
|
|
@@ -100,7 +105,7 @@ exports.onExecutePostLogin = async (event, api) => {
|
|
|
100
105
|
try {
|
|
101
106
|
// Create the consumer
|
|
102
107
|
const response = await fetch(
|
|
103
|
-
`https://dev.zuplo.com/v1/accounts/${ZUPLO_ACCOUNT}/key-buckets/${
|
|
108
|
+
`https://dev.zuplo.com/v1/accounts/${ZUPLO_ACCOUNT}/key-buckets/${API_KEY_BUCKET_ID}/consumers?with-api-key=true`,
|
|
104
109
|
{
|
|
105
110
|
method: "POST",
|
|
106
111
|
body: JSON.stringify(body),
|
|
@@ -276,7 +276,7 @@ Available options:
|
|
|
276
276
|
schemes section on the info page, and the Authorize dialog in the playground). Disabled by default
|
|
277
277
|
(`true`). Set to `false` to enable security scheme support
|
|
278
278
|
- `disableMcpAuthInstructions`: Hide the authentication instructions on
|
|
279
|
-
[MCP server](
|
|
279
|
+
[MCP server](/docs/dev-portal/documenting-mcp-servers) endpoints. The MCP card normally derives a credential
|
|
280
280
|
header from the operation's security scheme and shows it in every install snippet. Set to `true`
|
|
281
281
|
to render the server as unauthenticated instead — no header snippets and no "replace
|
|
282
282
|
`YOUR_API_KEY`" steps
|
|
@@ -112,10 +112,6 @@ dist/
|
|
|
112
112
|
└── ...
|
|
113
113
|
```
|
|
114
114
|
|
|
115
|
-
On Vercel builds, this tree is written beneath `.vercel/output/static/` instead of `dist/`. The
|
|
116
|
-
deployed public URLs remain the same. See the [Vercel deployment guide](/dev-portal/zudoku/deploy/vercel) for the
|
|
117
|
-
generated routing and Markdown content-negotiation behavior.
|
|
118
|
-
|
|
119
115
|
**Important:** Individual `.md` files are only kept in the final build if `publishMarkdown: true`.
|
|
120
116
|
If only `llmsTxt` or `llmsTxtFull` is enabled, the `.md` files are generated temporarily during the
|
|
121
117
|
build but deleted after the `llms.txt` files are created.
|
|
@@ -319,7 +319,7 @@ selected from the request. Each expression rule requires one or more meter rows:
|
|
|
319
319
|
| `meter` | `cost`, `requests`, `tokens` |
|
|
320
320
|
| `period` | `hourly`, `daily`, `weekly`, `monthly` |
|
|
321
321
|
| `action` | `warn` records a warning; `block` returns HTTP `429` |
|
|
322
|
-
| `value` | A finite number greater than
|
|
322
|
+
| `value` | A finite number greater than zero |
|
|
323
323
|
|
|
324
324
|
A rule cannot repeat the same meter, period, and action. When a meter and period
|
|
325
325
|
have both actions, the `warn` value must be less than the `block` value. The
|
|
@@ -61,8 +61,12 @@
|
|
|
61
61
|
},
|
|
62
62
|
"cacheByPropertyPath": {
|
|
63
63
|
"type": "string",
|
|
64
|
-
"description": "
|
|
65
|
-
"examples": [
|
|
64
|
+
"description": "A light path selector into the JSON request body to use as the cache key. Start with `.` for dot notation or `[` for a quoted key containing dots or slashes, for example `.userId`, `.data.customerId`, or `[\"https://example.com/cache-key\"]`. Only works with cacheBy=propertyPath.",
|
|
65
|
+
"examples": [
|
|
66
|
+
".userId",
|
|
67
|
+
".data.customerId",
|
|
68
|
+
"[\"https://example.com/cache-key\"]"
|
|
69
|
+
]
|
|
66
70
|
},
|
|
67
71
|
"cacheByFunction": {
|
|
68
72
|
"type": "object",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zuplo",
|
|
3
|
-
"version": "7.6.
|
|
3
|
+
"version": "7.6.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "The official Zuplo CLI for local development and platform management",
|
|
6
6
|
"homepage": "https://zuplo.com/docs/cli/overview",
|
|
@@ -32,9 +32,9 @@
|
|
|
32
32
|
"zuplo": "zuplo.js"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@zuplo/cli": "7.6.
|
|
36
|
-
"@zuplo/core": "7.6.
|
|
37
|
-
"@zuplo/runtime": "7.6.
|
|
38
|
-
"@zuplo/test": "7.6.
|
|
35
|
+
"@zuplo/cli": "7.6.6",
|
|
36
|
+
"@zuplo/core": "7.6.6",
|
|
37
|
+
"@zuplo/runtime": "7.6.6",
|
|
38
|
+
"@zuplo/test": "7.6.6"
|
|
39
39
|
}
|
|
40
40
|
}
|