zuplo 7.9.9 → 7.9.12
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/integrations/claude-code.mdx +14 -20
- package/docs/cli/source-upgrade.mdx +36 -0
- package/docs/cli/source-upgrade.partial.mdx +35 -0
- package/docs/dev-portal/zudoku/configuration/api-reference.md +2 -0
- package/docs/dev-portal/zudoku/openapi-extensions/x-display-name.md +5 -0
- package/docs/dev-portal/zudoku/openapi-extensions/x-zudoku-seo.md +43 -0
- package/package.json +5 -5
|
@@ -53,11 +53,13 @@ project. Add the block for your approach, then restart Claude Code.
|
|
|
53
53
|
|
|
54
54
|
- `ANTHROPIC_BASE_URL` is your gateway URL _without_ `/v1`. Claude Code appends
|
|
55
55
|
`/v1/messages`.
|
|
56
|
-
- Set every `ANTHROPIC_*_MODEL` variable
|
|
57
|
-
|
|
58
|
-
`
|
|
56
|
+
- Set every `ANTHROPIC_*_MODEL` variable. Claude Code's built-in model names
|
|
57
|
+
have no prefix, and the variables map the `opus`, `sonnet`, `haiku`, and
|
|
58
|
+
`fable` aliases to your provider's prefixed model IDs.
|
|
59
|
+
- To select an exact model ID, such as `--model claude-fable-5-1`, add a
|
|
59
60
|
[`modelOverrides`](https://code.claude.com/docs/en/model-config#override-model-ids-per-version)
|
|
60
|
-
maps
|
|
61
|
+
entry that maps it to the prefixed ID, as the examples do for Fable. Add one
|
|
62
|
+
entry for each exact ID you use.
|
|
61
63
|
- The [Model Filtering](../../policies/ai-gateway-model-filtering-inbound.mdx)
|
|
62
64
|
policy on the User App or the app controls which models you can use.
|
|
63
65
|
|
|
@@ -82,10 +84,6 @@ use the app's API key and API URL instead.
|
|
|
82
84
|
"ANTHROPIC_DEFAULT_FABLE_MODEL": "anthropic/claude-fable-5-1"
|
|
83
85
|
},
|
|
84
86
|
"modelOverrides": {
|
|
85
|
-
"claude-opus-5": "anthropic/claude-opus-5",
|
|
86
|
-
"claude-opus-5-5": "anthropic/claude-opus-5-5",
|
|
87
|
-
"claude-sonnet-5": "anthropic/claude-sonnet-5",
|
|
88
|
-
"claude-haiku-4-5-20251001": "anthropic/claude-haiku-4-5-20251001",
|
|
89
87
|
"claude-fable-5-1": "anthropic/claude-fable-5-1"
|
|
90
88
|
}
|
|
91
89
|
}
|
|
@@ -162,10 +160,6 @@ In the **JSON** editor:
|
|
|
162
160
|
"ANTHROPIC_DEFAULT_FABLE_MODEL": "anthropic/claude-fable-5-1"
|
|
163
161
|
},
|
|
164
162
|
"modelOverrides": {
|
|
165
|
-
"claude-opus-5": "anthropic/claude-opus-5",
|
|
166
|
-
"claude-opus-5-5": "anthropic/claude-opus-5-5",
|
|
167
|
-
"claude-sonnet-5": "anthropic/claude-sonnet-5",
|
|
168
|
-
"claude-haiku-4-5-20251001": "anthropic/claude-haiku-4-5-20251001",
|
|
169
163
|
"claude-fable-5-1": "anthropic/claude-fable-5-1"
|
|
170
164
|
}
|
|
171
165
|
}
|
|
@@ -189,11 +183,11 @@ Zuplo Portal.
|
|
|
189
183
|
|
|
190
184
|
## Troubleshooting
|
|
191
185
|
|
|
192
|
-
| Error | Fix
|
|
193
|
-
| -------------------------------------------------------------------------------- |
|
|
194
|
-
| `400` `model must use "providerName/model"` | The selected model has no provider prefix. Check `ANTHROPIC_MODEL
|
|
195
|
-
| `403` `This User App route requires a personal API key issued for this User App` | With a personal key: the key is missing, wrong, from another project, or not sent as `Authorization: Bearer`. Create a key on **Home** and use the Gateway URL from the same project.
|
|
196
|
-
| `401` `Invalid Authorization Scheme` | `authScheme` still has its `Bearer` default. Set an explicit empty value.
|
|
197
|
-
| `401` `Header configured by options.authHeader is missing` | Claude Code didn't send `zp-gateway-api-key`. Check `ANTHROPIC_CUSTOM_HEADERS`.
|
|
198
|
-
| `401` `credentialPassthrough requires a non-empty Authorization header` | Claude Code isn't signed in. Run `claude` and use `/login`.
|
|
199
|
-
| An authentication error from Anthropic | Anthropic rejected the forwarded login. Sign in to Claude Code again.
|
|
186
|
+
| Error | Fix |
|
|
187
|
+
| -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
188
|
+
| `400` `model must use "providerName/model"` | The selected model has no provider prefix. Check `ANTHROPIC_MODEL` and the other `ANTHROPIC_*_MODEL` variables. If you select an exact model ID, add a `modelOverrides` entry for it. Restart after editing. |
|
|
189
|
+
| `403` `This User App route requires a personal API key issued for this User App` | With a personal key: the key is missing, wrong, from another project, or not sent as `Authorization: Bearer`. Create a key on **Home** and use the Gateway URL from the same project. |
|
|
190
|
+
| `401` `Invalid Authorization Scheme` | `authScheme` still has its `Bearer` default. Set an explicit empty value. |
|
|
191
|
+
| `401` `Header configured by options.authHeader is missing` | Claude Code didn't send `zp-gateway-api-key`. Check `ANTHROPIC_CUSTOM_HEADERS`. |
|
|
192
|
+
| `401` `credentialPassthrough requires a non-empty Authorization header` | Claude Code isn't signed in. Run `claude` and use `/login`. |
|
|
193
|
+
| An authentication error from Anthropic | Anthropic rejected the forwarded login. Sign in to Claude Code again. |
|
|
@@ -31,6 +31,42 @@ sidebar_label: source upgrade
|
|
|
31
31
|
usage="$0 source upgrade [options]"
|
|
32
32
|
>
|
|
33
33
|
|
|
34
|
+
## Upgrade a source-controlled AI Gateway
|
|
35
|
+
|
|
36
|
+
Preview missing AI Gateway v2 endpoints and policies from the template bundled
|
|
37
|
+
with your CLI:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
zuplo source upgrade --type ai-gateway
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Preview shows proposed additions and a diff without changing files. Review the
|
|
44
|
+
output, commit or stash local changes, then apply:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
zuplo source upgrade --type ai-gateway --apply
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Applying requires the latest stable CLI, compatible installed project
|
|
51
|
+
dependencies, an online release check, and a clean Git working tree. The CLI
|
|
52
|
+
asks for confirmation; automation must explicitly pass `--apply --prompt=false`.
|
|
53
|
+
|
|
54
|
+
Existing endpoints and policies are preserved. If any addition conflicts or
|
|
55
|
+
cannot be verified, nothing is applied. Use the printed definitions for a manual
|
|
56
|
+
upgrade, reviewing authentication and policy order before adding routes.
|
|
57
|
+
|
|
58
|
+
Review and test the resulting changes before committing and deploying. The
|
|
59
|
+
command does not install dependencies or deploy your gateway.
|
|
60
|
+
|
|
61
|
+
### Recovery
|
|
62
|
+
|
|
63
|
+
The CLI prints the backup directory containing originals and `journal.json`.
|
|
64
|
+
If interrupted, inspect the journal and restore the originals before retrying;
|
|
65
|
+
an interrupted upgrade can leave partially updated files.
|
|
66
|
+
|
|
67
|
+
Without `--type ai-gateway`, the command retains its existing project-scaffolding
|
|
68
|
+
behavior. You can also select that behavior explicitly with `--type api`.
|
|
69
|
+
|
|
34
70
|
</CliCommand>
|
|
35
71
|
|
|
36
72
|
## Global options
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
## Upgrade a source-controlled AI Gateway
|
|
2
|
+
|
|
3
|
+
Preview missing AI Gateway v2 endpoints and policies from the template bundled
|
|
4
|
+
with your CLI:
|
|
5
|
+
|
|
6
|
+
```bash
|
|
7
|
+
zuplo source upgrade --type ai-gateway
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
Preview shows proposed additions and a diff without changing files. Review the
|
|
11
|
+
output, commit or stash local changes, then apply:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
zuplo source upgrade --type ai-gateway --apply
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Applying requires the latest stable CLI, compatible installed project
|
|
18
|
+
dependencies, an online release check, and a clean Git working tree. The CLI
|
|
19
|
+
asks for confirmation; automation must explicitly pass `--apply --prompt=false`.
|
|
20
|
+
|
|
21
|
+
Existing endpoints and policies are preserved. If any addition conflicts or
|
|
22
|
+
cannot be verified, nothing is applied. Use the printed definitions for a manual
|
|
23
|
+
upgrade, reviewing authentication and policy order before adding routes.
|
|
24
|
+
|
|
25
|
+
Review and test the resulting changes before committing and deploying. The
|
|
26
|
+
command does not install dependencies or deploy your gateway.
|
|
27
|
+
|
|
28
|
+
### Recovery
|
|
29
|
+
|
|
30
|
+
The CLI prints the backup directory containing originals and `journal.json`.
|
|
31
|
+
If interrupted, inspect the journal and restore the originals before retrying;
|
|
32
|
+
an interrupted upgrade can leave partially updated files.
|
|
33
|
+
|
|
34
|
+
Without `--type ai-gateway`, the command retains its existing project-scaffolding
|
|
35
|
+
behavior. You can also select that behavior explicitly with `--type api`.
|
|
@@ -422,6 +422,8 @@ Extensions that can be applied to tag categories:
|
|
|
422
422
|
|
|
423
423
|
- `x-zudoku-collapsed`: Control initial collapsed state of a tag category (default: `true`)
|
|
424
424
|
- `x-zudoku-collapsible`: Control if a tag category can be collapsed (default: `true`)
|
|
425
|
+
- `x-zudoku-seo`: Set the page title and meta description of a tag's page without changing its
|
|
426
|
+
sidebar label or heading. See [`x-zudoku-seo`](../openapi-extensions/x-zudoku-seo)
|
|
425
427
|
|
|
426
428
|
Example:
|
|
427
429
|
|
|
@@ -29,3 +29,8 @@ tags:
|
|
|
29
29
|
|
|
30
30
|
Without `x-displayName`, the sidebar would show `ai-ops` and `user-mgmt`. With it, the sidebar
|
|
31
31
|
displays `AI Operations` and `User Management` instead.
|
|
32
|
+
|
|
33
|
+
## Related
|
|
34
|
+
|
|
35
|
+
- [`x-zudoku-seo`](./x-zudoku-seo) — set a different browser title and meta description for the
|
|
36
|
+
tag's page
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: x-zudoku-seo
|
|
3
|
+
sidebar_icon: search
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Use `x-zudoku-seo` to set the browser title and meta description of a tag's page without changing
|
|
7
|
+
the label shown in the sidebar or the page heading. This is useful when several tags share the same
|
|
8
|
+
[`x-displayName`](./x-display-name) but should still have unique titles for search engines.
|
|
9
|
+
|
|
10
|
+
## Location
|
|
11
|
+
|
|
12
|
+
The extension is added at the **Tag Object** level.
|
|
13
|
+
|
|
14
|
+
| Option | Type | Description |
|
|
15
|
+
| ------------- | -------- | ----------------------------------------------------------------------------- |
|
|
16
|
+
| `title` | `string` | Page title used in the `<title>` tag. Replaces `<tag name> - <API title>`. |
|
|
17
|
+
| `description` | `string` | Content of the `<meta name="description">` tag. Replaces the tag description. |
|
|
18
|
+
|
|
19
|
+
Both properties are optional. Anything not set falls back to the default behavior. If
|
|
20
|
+
[`metadata.title`](/dev-portal/zudoku/configuration/overview#metadata) is a template string (e.g.
|
|
21
|
+
`%s - My Company`), it is still applied to the title.
|
|
22
|
+
|
|
23
|
+
The title and description are rendered on the server, so they are part of the prerendered HTML and
|
|
24
|
+
visible to crawlers without running JavaScript.
|
|
25
|
+
|
|
26
|
+
## Example
|
|
27
|
+
|
|
28
|
+
```yaml
|
|
29
|
+
tags:
|
|
30
|
+
- name: location-key-daily
|
|
31
|
+
x-displayName: Location Key
|
|
32
|
+
x-zudoku-seo:
|
|
33
|
+
title: Daily Forecasts by Location Key - Core Weather
|
|
34
|
+
description: Daily forecasts for a location key, up to 15 days ahead.
|
|
35
|
+
- name: location-key-hourly
|
|
36
|
+
x-displayName: Location Key
|
|
37
|
+
x-zudoku-seo:
|
|
38
|
+
title: Hourly Forecasts by Location Key - Core Weather
|
|
39
|
+
description: Hourly forecasts for a location key, up to 240 hours ahead.
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Both tags show `Location Key` in the sidebar and as the page heading, but each page has its own
|
|
43
|
+
browser title and description.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zuplo",
|
|
3
|
-
"version": "7.9.
|
|
3
|
+
"version": "7.9.12",
|
|
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.9.
|
|
36
|
-
"@zuplo/core": "7.9.
|
|
37
|
-
"@zuplo/runtime": "7.9.
|
|
38
|
-
"@zuplo/test": "7.9.
|
|
35
|
+
"@zuplo/cli": "7.9.12",
|
|
36
|
+
"@zuplo/core": "7.9.12",
|
|
37
|
+
"@zuplo/runtime": "7.9.12",
|
|
38
|
+
"@zuplo/test": "7.9.12"
|
|
39
39
|
}
|
|
40
40
|
}
|