zuplo 6.68.8 → 6.68.10
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/articles/monetization/meters.mdx +26 -4
- package/docs/articles/monetization/troubleshooting.md +1 -1
- package/docs/cli/custom-domain-create.mdx +91 -0
- package/docs/cli/custom-domain-delete.mdx +79 -0
- package/docs/cli/custom-domain-list.mdx +59 -0
- package/docs/cli/custom-domain-update.mdx +79 -0
- package/docs/dev-portal/zudoku/configuration/api-catalog.md +2 -2
- package/docs/dev-portal/zudoku/configuration/api-reference.md +4 -4
- package/docs/dev-portal/zudoku/configuration/authentication.md +28 -2
- package/docs/dev-portal/zudoku/configuration/docs.md +1 -2
- package/docs/dev-portal/zudoku/configuration/footer.mdx +3 -3
- package/docs/dev-portal/zudoku/configuration/navigation.mdx +1 -1
- package/docs/dev-portal/zudoku/configuration/overview.md +37 -0
- package/docs/dev-portal/zudoku/configuration/site.md +12 -0
- package/docs/dev-portal/zudoku/custom-plugins.md +9 -5
- package/docs/dev-portal/zudoku/guides/using-multiple-apis.md +1 -1
- package/docs/dev-portal/zudoku/markdown/frontmatter.md +20 -9
- package/docs/dev-portal/zudoku/markdown/overview.md +1 -1
- package/package.json +4 -4
|
@@ -43,14 +43,17 @@ Track the total number of API requests:
|
|
|
43
43
|
}
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
Each event contains the subscription ID
|
|
47
|
-
with the quantity to record:
|
|
46
|
+
Each event contains the `subscription` ID linking it to a subscription and a
|
|
47
|
+
`total` field in `data` with the quantity to record:
|
|
48
48
|
|
|
49
49
|
```json
|
|
50
50
|
{
|
|
51
|
+
"id": "5c10fade-1c9e-4d6c-8275-c52c36731d3c",
|
|
52
|
+
"specversion": "1.0",
|
|
51
53
|
"type": "requests",
|
|
52
|
-
"subject": "sub_xxxxxxxx",
|
|
53
54
|
"source": "monetization-policy",
|
|
55
|
+
"subject": "customer-id",
|
|
56
|
+
"subscription": "01KNVXHQG356VA7T7W0V9N21GH",
|
|
54
57
|
"data": {
|
|
55
58
|
"total": 1
|
|
56
59
|
}
|
|
@@ -76,9 +79,12 @@ configured to report 50 tokens per request:
|
|
|
76
79
|
|
|
77
80
|
```json
|
|
78
81
|
{
|
|
82
|
+
"id": "a1b2c3d4-5678-4abc-8def-1234567890ab",
|
|
83
|
+
"specversion": "1.0",
|
|
79
84
|
"type": "tokens",
|
|
80
|
-
"subject": "sub_xxxxxxxx",
|
|
81
85
|
"source": "monetization-policy",
|
|
86
|
+
"subject": "customer-id",
|
|
87
|
+
"subscription": "01KNVXHQG356VA7T7W0V9N21GH",
|
|
82
88
|
"data": {
|
|
83
89
|
"total": 50
|
|
84
90
|
}
|
|
@@ -99,6 +105,22 @@ Track bytes transferred:
|
|
|
99
105
|
}
|
|
100
106
|
```
|
|
101
107
|
|
|
108
|
+
Each event reports the number of bytes transferred:
|
|
109
|
+
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
|
|
113
|
+
"specversion": "1.0",
|
|
114
|
+
"type": "data_transfer",
|
|
115
|
+
"source": "monetization-policy",
|
|
116
|
+
"subject": "customer-id",
|
|
117
|
+
"subscription": "01KNVXHQG356VA7T7W0V9N21GH",
|
|
118
|
+
"data": {
|
|
119
|
+
"total": 4096
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
102
124
|
## Naming Consistency
|
|
103
125
|
|
|
104
126
|
The meter `eventType` must match the key used in three places:
|
|
@@ -155,7 +155,7 @@ curl -X POST https://dev.zuplo.com/v3/metering/{bucketId}/meters/{meterIdOrSlug}
|
|
|
155
155
|
-H "Authorization: Bearer {API_KEY}" \
|
|
156
156
|
-H "Content-Type: application/json" \
|
|
157
157
|
-d '{
|
|
158
|
-
"
|
|
158
|
+
"filterSubscription": ["{SUBSCRIPTION_ID}"],
|
|
159
159
|
"from": "2026-03-01T00:00:00Z",
|
|
160
160
|
"to": "2026-03-31T23:59:59Z",
|
|
161
161
|
"windowSize": "DAY"
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Zuplo CLI: Custom Domain Create"
|
|
3
|
+
sidebar_label: custom-domain create
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<CliCommand
|
|
7
|
+
command="custom-domain create"
|
|
8
|
+
description="Creates a custom domain in your account"
|
|
9
|
+
options={[
|
|
10
|
+
{
|
|
11
|
+
"name": "hostname",
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "The hostname for the custom domain",
|
|
14
|
+
"required": false,
|
|
15
|
+
"deprecated": false,
|
|
16
|
+
"hidden": false
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "deployment-name",
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "The deployment name to assign the custom domain to",
|
|
22
|
+
"required": false,
|
|
23
|
+
"deprecated": false,
|
|
24
|
+
"hidden": false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "custom-domain-type",
|
|
28
|
+
"type": "string",
|
|
29
|
+
"description": "The type of custom domain to create. Defaults to api server-side.",
|
|
30
|
+
"required": false,
|
|
31
|
+
"deprecated": false,
|
|
32
|
+
"hidden": false,
|
|
33
|
+
"choices": [
|
|
34
|
+
"api",
|
|
35
|
+
"dev-portal"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "account",
|
|
40
|
+
"type": "string",
|
|
41
|
+
"description": "The account name",
|
|
42
|
+
"required": false,
|
|
43
|
+
"deprecated": false,
|
|
44
|
+
"hidden": false
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"name": "output",
|
|
48
|
+
"type": "string",
|
|
49
|
+
"description": "Output format",
|
|
50
|
+
"default": "default",
|
|
51
|
+
"required": false,
|
|
52
|
+
"deprecated": false,
|
|
53
|
+
"hidden": false,
|
|
54
|
+
"alias": [
|
|
55
|
+
"o"
|
|
56
|
+
],
|
|
57
|
+
"choices": [
|
|
58
|
+
"default",
|
|
59
|
+
"json"
|
|
60
|
+
]
|
|
61
|
+
}
|
|
62
|
+
]}
|
|
63
|
+
examples={[
|
|
64
|
+
[
|
|
65
|
+
"$0 custom-domain create --hostname api.example.com",
|
|
66
|
+
"Create an unassigned custom domain"
|
|
67
|
+
],
|
|
68
|
+
[
|
|
69
|
+
"$0 custom-domain create --hostname api.example.com --output json",
|
|
70
|
+
"Create a custom domain and output the result as JSON"
|
|
71
|
+
],
|
|
72
|
+
[
|
|
73
|
+
"$0 custom-domain create \\\n --hostname api.example.com \\\n --deployment-name production-deployment",
|
|
74
|
+
"Create and assign a custom domain to a deployment"
|
|
75
|
+
],
|
|
76
|
+
[
|
|
77
|
+
"$0 custom-domain create \\\n --hostname docs.example.com \\\n --deployment-name production-deployment \\\n --custom-domain-type dev-portal \\\n --account my-account",
|
|
78
|
+
"Create a dev portal custom domain on a specific account"
|
|
79
|
+
]
|
|
80
|
+
]}
|
|
81
|
+
usage="$0 custom-domain create --hostname <hostname> [options]"
|
|
82
|
+
>
|
|
83
|
+
|
|
84
|
+
</CliCommand>
|
|
85
|
+
|
|
86
|
+
## Global options
|
|
87
|
+
|
|
88
|
+
The following global options are available for all commands:
|
|
89
|
+
|
|
90
|
+
- [`--help`](./global-options.mdx#help)
|
|
91
|
+
- [`--api-key`](./global-options.mdx#api-key)
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Zuplo CLI: Custom Domain Delete"
|
|
3
|
+
sidebar_label: custom-domain delete
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<CliCommand
|
|
7
|
+
command="custom-domain delete"
|
|
8
|
+
description="Deletes a custom domain in your account"
|
|
9
|
+
options={[
|
|
10
|
+
{
|
|
11
|
+
"name": "hostname",
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "The hostname for the custom domain",
|
|
14
|
+
"required": false,
|
|
15
|
+
"deprecated": false,
|
|
16
|
+
"hidden": false
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "deployment-name",
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "The deployment name for assigned domains. Required when the hostname is assigned to multiple deployments.",
|
|
22
|
+
"required": false,
|
|
23
|
+
"deprecated": false,
|
|
24
|
+
"hidden": false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "account",
|
|
28
|
+
"type": "string",
|
|
29
|
+
"description": "The account name",
|
|
30
|
+
"required": false,
|
|
31
|
+
"deprecated": false,
|
|
32
|
+
"hidden": false
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "output",
|
|
36
|
+
"type": "string",
|
|
37
|
+
"description": "Output format",
|
|
38
|
+
"default": "default",
|
|
39
|
+
"required": false,
|
|
40
|
+
"deprecated": false,
|
|
41
|
+
"hidden": false,
|
|
42
|
+
"alias": [
|
|
43
|
+
"o"
|
|
44
|
+
],
|
|
45
|
+
"choices": [
|
|
46
|
+
"default",
|
|
47
|
+
"json"
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
]}
|
|
51
|
+
examples={[
|
|
52
|
+
[
|
|
53
|
+
"$0 custom-domain delete --hostname api.example.com",
|
|
54
|
+
"Delete an unassigned custom domain or auto-resolve a single deployment assignment"
|
|
55
|
+
],
|
|
56
|
+
[
|
|
57
|
+
"$0 custom-domain delete --hostname api.example.com --output json",
|
|
58
|
+
"Delete a custom domain and output the result as JSON"
|
|
59
|
+
],
|
|
60
|
+
[
|
|
61
|
+
"$0 custom-domain delete \\\n --hostname api.example.com \\\n --deployment-name production-deployment",
|
|
62
|
+
"Delete a deployment-assigned custom domain explicitly"
|
|
63
|
+
],
|
|
64
|
+
[
|
|
65
|
+
"$0 custom-domain delete \\\n --hostname docs.example.com \\\n --deployment-name portal-deployment \\\n --account my-account",
|
|
66
|
+
"Delete a custom domain from a specific account"
|
|
67
|
+
]
|
|
68
|
+
]}
|
|
69
|
+
usage="$0 custom-domain delete --hostname <hostname> [options]"
|
|
70
|
+
>
|
|
71
|
+
|
|
72
|
+
</CliCommand>
|
|
73
|
+
|
|
74
|
+
## Global options
|
|
75
|
+
|
|
76
|
+
The following global options are available for all commands:
|
|
77
|
+
|
|
78
|
+
- [`--help`](./global-options.mdx#help)
|
|
79
|
+
- [`--api-key`](./global-options.mdx#api-key)
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Zuplo CLI: Custom Domain List"
|
|
3
|
+
sidebar_label: custom-domain list
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<CliCommand
|
|
7
|
+
command="custom-domain list"
|
|
8
|
+
description="Lists the custom domains in your account"
|
|
9
|
+
options={[
|
|
10
|
+
{
|
|
11
|
+
"name": "account",
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "The account name",
|
|
14
|
+
"required": false,
|
|
15
|
+
"deprecated": false,
|
|
16
|
+
"hidden": false
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "output",
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "Output format",
|
|
22
|
+
"default": "default",
|
|
23
|
+
"required": false,
|
|
24
|
+
"deprecated": false,
|
|
25
|
+
"hidden": false,
|
|
26
|
+
"alias": [
|
|
27
|
+
"o"
|
|
28
|
+
],
|
|
29
|
+
"choices": [
|
|
30
|
+
"default",
|
|
31
|
+
"json"
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
]}
|
|
35
|
+
examples={[
|
|
36
|
+
[
|
|
37
|
+
"$0 custom-domain list",
|
|
38
|
+
"List all custom domains"
|
|
39
|
+
],
|
|
40
|
+
[
|
|
41
|
+
"$0 custom-domain list --output json",
|
|
42
|
+
"List all custom domains as JSON"
|
|
43
|
+
],
|
|
44
|
+
[
|
|
45
|
+
"$0 custom-domain list --account my-account",
|
|
46
|
+
"Explicitly specify the account"
|
|
47
|
+
]
|
|
48
|
+
]}
|
|
49
|
+
usage="$0 custom-domain list [options]"
|
|
50
|
+
>
|
|
51
|
+
|
|
52
|
+
</CliCommand>
|
|
53
|
+
|
|
54
|
+
## Global options
|
|
55
|
+
|
|
56
|
+
The following global options are available for all commands:
|
|
57
|
+
|
|
58
|
+
- [`--help`](./global-options.mdx#help)
|
|
59
|
+
- [`--api-key`](./global-options.mdx#api-key)
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Zuplo CLI: Custom Domain Update"
|
|
3
|
+
sidebar_label: custom-domain update
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<CliCommand
|
|
7
|
+
command="custom-domain update"
|
|
8
|
+
description="Updates the deployment assignment for a custom domain"
|
|
9
|
+
options={[
|
|
10
|
+
{
|
|
11
|
+
"name": "hostname",
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "The hostname for the custom domain",
|
|
14
|
+
"required": false,
|
|
15
|
+
"deprecated": false,
|
|
16
|
+
"hidden": false
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "deployment-name",
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "The deployment name to assign the custom domain to. Omit to detach the current assignment.",
|
|
22
|
+
"required": false,
|
|
23
|
+
"deprecated": false,
|
|
24
|
+
"hidden": false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "account",
|
|
28
|
+
"type": "string",
|
|
29
|
+
"description": "The account name",
|
|
30
|
+
"required": false,
|
|
31
|
+
"deprecated": false,
|
|
32
|
+
"hidden": false
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "output",
|
|
36
|
+
"type": "string",
|
|
37
|
+
"description": "Output format",
|
|
38
|
+
"default": "default",
|
|
39
|
+
"required": false,
|
|
40
|
+
"deprecated": false,
|
|
41
|
+
"hidden": false,
|
|
42
|
+
"alias": [
|
|
43
|
+
"o"
|
|
44
|
+
],
|
|
45
|
+
"choices": [
|
|
46
|
+
"default",
|
|
47
|
+
"json"
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
]}
|
|
51
|
+
examples={[
|
|
52
|
+
[
|
|
53
|
+
"$0 custom-domain update \\\n --hostname api.example.com \\\n --deployment-name production-deployment",
|
|
54
|
+
"Reassign a custom domain to a deployment"
|
|
55
|
+
],
|
|
56
|
+
[
|
|
57
|
+
"$0 custom-domain update --hostname api.example.com --output json",
|
|
58
|
+
"Update a custom domain and output the result as JSON"
|
|
59
|
+
],
|
|
60
|
+
[
|
|
61
|
+
"$0 custom-domain update --hostname api.example.com",
|
|
62
|
+
"Detach the current deployment assignment while preserving the stage"
|
|
63
|
+
],
|
|
64
|
+
[
|
|
65
|
+
"$0 custom-domain update \\\n --hostname docs.example.com \\\n --deployment-name portal-deployment \\\n --account my-account",
|
|
66
|
+
"Update a custom domain on a specific account"
|
|
67
|
+
]
|
|
68
|
+
]}
|
|
69
|
+
usage="$0 custom-domain update --hostname <hostname> [options]"
|
|
70
|
+
>
|
|
71
|
+
|
|
72
|
+
</CliCommand>
|
|
73
|
+
|
|
74
|
+
## Global options
|
|
75
|
+
|
|
76
|
+
The following global options are available for all commands:
|
|
77
|
+
|
|
78
|
+
- [`--help`](./global-options.mdx#help)
|
|
79
|
+
- [`--api-key`](./global-options.mdx#api-key)
|
|
@@ -99,8 +99,8 @@ const config = {
|
|
|
99
99
|
catalogs: {
|
|
100
100
|
path: "/catalog",
|
|
101
101
|
label: "API Catalog",
|
|
102
|
-
filterItems: (items, { auth
|
|
103
|
-
return items.filter((
|
|
102
|
+
filterItems: (items, { auth }) => {
|
|
103
|
+
return items.filter((item) => item.tags.includes("public"));
|
|
104
104
|
},
|
|
105
105
|
},
|
|
106
106
|
// ...
|
|
@@ -201,8 +201,8 @@ const config = {
|
|
|
201
201
|
options: {
|
|
202
202
|
examplesLanguage: "shell", // Default language for code examples
|
|
203
203
|
supportedLanguages: [
|
|
204
|
-
{
|
|
205
|
-
{
|
|
204
|
+
{ value: "shell", label: "cURL" },
|
|
205
|
+
{ value: "javascript", label: "JavaScript" },
|
|
206
206
|
],
|
|
207
207
|
disablePlayground: false, // Disable the interactive API playground
|
|
208
208
|
disableSidecar: false, // Disable the sidecar completely
|
|
@@ -220,8 +220,8 @@ const config = {
|
|
|
220
220
|
Available options:
|
|
221
221
|
|
|
222
222
|
- `examplesLanguage`: Set default language for code examples
|
|
223
|
-
- `supportedLanguages`: Array of language options for code examples. Each option has `
|
|
224
|
-
|
|
223
|
+
- `supportedLanguages`: Array of language options for code examples. Each option has `value` (code
|
|
224
|
+
identifier) and `label` (display name)
|
|
225
225
|
- `disablePlayground`: Disable the interactive API playground globally
|
|
226
226
|
- `disableSidecar`: Disable the sidecar panel completely
|
|
227
227
|
- `showVersionSelect`: Control version selector visibility
|
|
@@ -15,8 +15,8 @@ authentication provider you use.
|
|
|
15
15
|
|
|
16
16
|
## Authentication Providers
|
|
17
17
|
|
|
18
|
-
Dev Portal supports Clerk, Auth0, Supabase, Azure B2C, and any OpenID provider that supports
|
|
19
|
-
Connect protocol.
|
|
18
|
+
Dev Portal supports Clerk, Auth0, Supabase, Firebase, Azure B2C, and any OpenID provider that supports
|
|
19
|
+
the OpenID Connect protocol (including PingFederate).
|
|
20
20
|
|
|
21
21
|
Not seeing your authentication provider? [Let us know](https://github.com/zuplo/zudoku/issues)
|
|
22
22
|
|
|
@@ -96,6 +96,32 @@ When configuring your OpenID provider, you will need to set the following:
|
|
|
96
96
|
By default, the scopes "openid", "profile", and "email" are requested. You can customize these by
|
|
97
97
|
providing your own array of scopes.
|
|
98
98
|
|
|
99
|
+
### Firebase
|
|
100
|
+
|
|
101
|
+
For Firebase authentication, you will need your Firebase project configuration. You can find this in
|
|
102
|
+
the Firebase console under Project Settings.
|
|
103
|
+
|
|
104
|
+
```typescript title="zudoku.config.ts"
|
|
105
|
+
{
|
|
106
|
+
// ...
|
|
107
|
+
authentication: {
|
|
108
|
+
type: "firebase",
|
|
109
|
+
apiKey: "<your-firebase-api-key>",
|
|
110
|
+
authDomain: "<your-project>.firebaseapp.com",
|
|
111
|
+
projectId: "<your-project-id>",
|
|
112
|
+
appId: "<your-app-id>",
|
|
113
|
+
providers: ["google", "github", "password"], // Optional
|
|
114
|
+
},
|
|
115
|
+
// ...
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
The `providers` option configures which sign-in methods are available. Supported providers include:
|
|
120
|
+
`google`, `facebook`, `twitter`, `github`, `microsoft`, `apple`, `yahoo`, `password`, `phone`, and
|
|
121
|
+
`emailLink`.
|
|
122
|
+
|
|
123
|
+
For detailed setup instructions, see the [Firebase setup guide](./authentication-firebase.md).
|
|
124
|
+
|
|
99
125
|
### Supabase
|
|
100
126
|
|
|
101
127
|
To use Supabase as your authentication provider, supply your project's URL, API key, and the OAuth
|
|
@@ -14,7 +14,7 @@ copyright notice, and logo.
|
|
|
14
14
|
|
|
15
15
|
## Basic Configuration
|
|
16
16
|
|
|
17
|
-
The footer is configured in your `zudoku.config.tsx` file under the `
|
|
17
|
+
The footer is configured in your `zudoku.config.tsx` file under the `site.footer` property:
|
|
18
18
|
|
|
19
19
|
```tsx
|
|
20
20
|
const config: ZudokuConfig = {
|
|
@@ -90,8 +90,8 @@ footer: {
|
|
|
90
90
|
href: "https://github.com/yourusername",
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
|
-
icon: "
|
|
94
|
-
href: "https://
|
|
93
|
+
icon: "x",
|
|
94
|
+
href: "https://x.com/yourhandle",
|
|
95
95
|
label: "Follow us", // optional label text
|
|
96
96
|
},
|
|
97
97
|
];
|
|
@@ -92,6 +92,7 @@ type NavigationLink = {
|
|
|
92
92
|
to: string;
|
|
93
93
|
label: string;
|
|
94
94
|
icon?: string; // Lucide icon name
|
|
95
|
+
target?: "_self" | "_blank";
|
|
95
96
|
badge?: {
|
|
96
97
|
label: string;
|
|
97
98
|
color: "green" | "blue" | "yellow" | "red" | "purple" | "indigo" | "gray" | "outline";
|
|
@@ -103,7 +104,6 @@ type NavigationLink = {
|
|
|
103
104
|
| "always"
|
|
104
105
|
| "hide"
|
|
105
106
|
| ((params: { context: ZudokuContext; auth: UseAuthReturn }) => boolean);
|
|
106
|
-
target?: "_self" | "_blank";
|
|
107
107
|
};
|
|
108
108
|
```
|
|
109
109
|
</details>
|
|
@@ -179,6 +179,43 @@ below.
|
|
|
179
179
|
}
|
|
180
180
|
```
|
|
181
181
|
|
|
182
|
+
### `header`
|
|
183
|
+
|
|
184
|
+
Configures the header navigation and placement of header elements (navigation, search, auth).
|
|
185
|
+
|
|
186
|
+
```ts
|
|
187
|
+
{
|
|
188
|
+
header: {
|
|
189
|
+
navigation: [
|
|
190
|
+
{ label: "Docs", id: "docs" },
|
|
191
|
+
{ label: "API", id: "api" },
|
|
192
|
+
],
|
|
193
|
+
placements: {
|
|
194
|
+
navigation: "start", // "start" | "center" | "end"
|
|
195
|
+
search: "end", // "start" | "center" | "end"
|
|
196
|
+
auth: "end", // "start" | "center" | "end" | "navigation"
|
|
197
|
+
},
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### `defaults`
|
|
203
|
+
|
|
204
|
+
Sets global default options for APIs that apply to all API configurations. Individual API options
|
|
205
|
+
will override these defaults when specified.
|
|
206
|
+
|
|
207
|
+
```ts
|
|
208
|
+
{
|
|
209
|
+
defaults: {
|
|
210
|
+
apis: {
|
|
211
|
+
examplesLanguage: "shell",
|
|
212
|
+
disablePlayground: false,
|
|
213
|
+
showVersionSelect: "if-available",
|
|
214
|
+
},
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
```
|
|
218
|
+
|
|
182
219
|
### `docs`
|
|
183
220
|
|
|
184
221
|
Configures where your non API reference documentation can be found in your folder structure. The
|
|
@@ -70,6 +70,18 @@ The `reloadDocument` option controls whether clicking the logo triggers a full p
|
|
|
70
70
|
the default) or uses client-side SPA navigation (`false`). A full reload is useful when your landing
|
|
71
71
|
page is served by a different system (e.g. a CMS) outside of Zudoku.
|
|
72
72
|
|
|
73
|
+
#### Direction (RTL/LTR)
|
|
74
|
+
|
|
75
|
+
Set the text direction for your site. This is useful for right-to-left languages:
|
|
76
|
+
|
|
77
|
+
```tsx title=zudoku.config.tsx
|
|
78
|
+
{
|
|
79
|
+
site: {
|
|
80
|
+
dir: "rtl", // "ltr" (default) or "rtl"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
73
85
|
#### Colors & Theme
|
|
74
86
|
|
|
75
87
|
We allow you to fully customize all colors, borders, etc - read more about it in
|
|
@@ -156,11 +156,15 @@ const navigationPlugin: ZudokuPlugin = {
|
|
|
156
156
|
},
|
|
157
157
|
];
|
|
158
158
|
},
|
|
159
|
-
|
|
160
|
-
// Return custom
|
|
161
|
-
return
|
|
162
|
-
|
|
163
|
-
|
|
159
|
+
getNavigation: async (path: string, context) => {
|
|
160
|
+
// Return custom navigation items
|
|
161
|
+
return [
|
|
162
|
+
{
|
|
163
|
+
type: "link",
|
|
164
|
+
to: "/custom",
|
|
165
|
+
label: "Custom Page",
|
|
166
|
+
},
|
|
167
|
+
];
|
|
164
168
|
},
|
|
165
169
|
};
|
|
166
170
|
```
|
|
@@ -79,7 +79,7 @@ export default config;
|
|
|
79
79
|
|
|
80
80
|
Make sure that:
|
|
81
81
|
|
|
82
|
-
1. The `path` in each API config matches the `
|
|
82
|
+
1. The `path` in each API config matches the `to` in the navigation
|
|
83
83
|
2. Your OpenAPI files are placed in the correct location as specified in the `input` field
|
|
84
84
|
3. The `label` in navigation matches what you want to display in the sidebar
|
|
85
85
|
|
|
@@ -46,9 +46,7 @@ category: Getting Started
|
|
|
46
46
|
---
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
-
### `
|
|
50
|
-
|
|
51
|
-
_Deprecated (`sidebar_label`)_
|
|
49
|
+
### `sidebar_label`
|
|
52
50
|
|
|
53
51
|
Sets a custom label for the page in the sidebar navigation, allowing you to use a shorter or
|
|
54
52
|
different title than the main page title.
|
|
@@ -56,23 +54,25 @@ different title than the main page title.
|
|
|
56
54
|
```md
|
|
57
55
|
---
|
|
58
56
|
title: My Very Long Documentation Page Title
|
|
59
|
-
|
|
57
|
+
sidebar_label: Short Title
|
|
60
58
|
---
|
|
61
59
|
```
|
|
62
60
|
|
|
63
|
-
|
|
61
|
+
The legacy name `navigation_label` is also supported but `sidebar_label` is preferred.
|
|
64
62
|
|
|
65
|
-
|
|
63
|
+
### `sidebar_icon`
|
|
66
64
|
|
|
67
65
|
Specifies a [Lucide icon](https://lucide.dev/icons) to display next to the page in the sidebar
|
|
68
66
|
navigation.
|
|
69
67
|
|
|
70
68
|
```md
|
|
71
69
|
---
|
|
72
|
-
|
|
70
|
+
sidebar_icon: compass
|
|
73
71
|
---
|
|
74
72
|
```
|
|
75
73
|
|
|
74
|
+
The legacy name `navigation_icon` is also supported but `sidebar_icon` is preferred.
|
|
75
|
+
|
|
76
76
|
### `navigation_display`
|
|
77
77
|
|
|
78
78
|
Specifies the display property of the navigation item. See the
|
|
@@ -106,6 +106,17 @@ disable_pager: true
|
|
|
106
106
|
---
|
|
107
107
|
```
|
|
108
108
|
|
|
109
|
+
### `showLastModified`
|
|
110
|
+
|
|
111
|
+
Controls whether the last modified date is displayed for this page. Can be used to override the
|
|
112
|
+
[default option](/dev-portal/zudoku/configuration/docs#showlastmodified).
|
|
113
|
+
|
|
114
|
+
```md
|
|
115
|
+
---
|
|
116
|
+
showLastModified: false
|
|
117
|
+
---
|
|
118
|
+
```
|
|
119
|
+
|
|
109
120
|
### `draft`
|
|
110
121
|
|
|
111
122
|
Marks a document as a draft. Draft documents are only visible when running in development mode and
|
|
@@ -161,8 +172,8 @@ Here's an example showing multiple frontmatter properties used together:
|
|
|
161
172
|
---
|
|
162
173
|
title: Advanced Configuration Guide
|
|
163
174
|
description: Learn how to configure advanced features in Dev Portal category: Configuration
|
|
164
|
-
|
|
165
|
-
|
|
175
|
+
sidebar_label: Advanced Config
|
|
176
|
+
sidebar_icon: settings
|
|
166
177
|
toc: true
|
|
167
178
|
disable_pager: false
|
|
168
179
|
draft: false
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zuplo",
|
|
3
|
-
"version": "6.68.
|
|
3
|
+
"version": "6.68.10",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "The programmable API Gateway",
|
|
6
6
|
"author": "Zuplo, Inc.",
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
"zuplo": "zuplo.js"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@zuplo/cli": "6.68.
|
|
23
|
-
"@zuplo/core": "6.68.
|
|
24
|
-
"@zuplo/runtime": "6.68.
|
|
22
|
+
"@zuplo/cli": "6.68.10",
|
|
23
|
+
"@zuplo/core": "6.68.10",
|
|
24
|
+
"@zuplo/runtime": "6.68.10",
|
|
25
25
|
"@zuplo/test": "1.4.0"
|
|
26
26
|
}
|
|
27
27
|
}
|