create-zuplo-api 7.1.6 → 7.1.8
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.
|
@@ -6,12 +6,13 @@ operations (`/v1/chat/completions`, `/v1/messages`, `/v1/responses`, and
|
|
|
6
6
|
whose suffix is a supported `/v1/...` operation succeed; other paths under
|
|
7
7
|
`/{app_id}` return 404.
|
|
8
8
|
|
|
9
|
-
Each route invokes `ai-gateway-configuration-
|
|
10
|
-
the application's configuration from the `app_id` path segment
|
|
9
|
+
Each route invokes `ai-gateway-configuration-loader-v2-inbound`, which loads
|
|
10
|
+
the application's configuration from the `app_id` path segment, then
|
|
11
|
+
`ai-gateway-configuration-executor-v2-inbound`, which runs its
|
|
11
12
|
`inboundPolicyChain`. Applications may select only from the policies
|
|
12
13
|
pre-declared in `config/policies.json`. To require application API keys for a
|
|
13
14
|
specific app, add `ai-gateway-auth-v2-inbound` to that application's
|
|
14
|
-
`inboundPolicyChain`. Adding it on the route before the
|
|
15
|
+
`inboundPolicyChain`. Adding it on the route before the loader requires a key
|
|
15
16
|
for every application on the route.
|
|
16
17
|
|
|
17
18
|
## Customizing the gateway
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
},
|
|
13
13
|
"get,post,delete": {
|
|
14
14
|
"summary": "AI Gateway catch-all",
|
|
15
|
-
"description": "Routes AI requests under /{app_id}/* to the AI Gateway handler. The configuration
|
|
15
|
+
"description": "Routes AI requests under /{app_id}/* to the AI Gateway handler. The configuration loader loads the application configuration from the app_id path segment; the configuration executor then runs the application's inboundPolicyChain. Only paths whose suffix is a supported /v1/... operation succeed (/v1/chat/completions, /v1/embeddings, /v1/messages, /v1/responses and its sub-resources); anything else under /{app_id} returns 404.",
|
|
16
16
|
"operationId": "aiGatewayCatchAll",
|
|
17
17
|
"responses": {
|
|
18
18
|
"200": {
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"description": "Bad request"
|
|
23
23
|
},
|
|
24
24
|
"401": {
|
|
25
|
-
"description": "Unauthorized — returned only when the application's inboundPolicyChain includes ai-gateway-auth-v2-inbound, or authentication runs before the configuration
|
|
25
|
+
"description": "Unauthorized — returned only when the application's inboundPolicyChain includes ai-gateway-auth-v2-inbound, or authentication runs before the configuration loader"
|
|
26
26
|
},
|
|
27
27
|
"403": {
|
|
28
28
|
"description": "Forbidden — returned by per-app policies, such as an API key issued for a different app_id or a model the app does not allow"
|
|
@@ -42,7 +42,10 @@
|
|
|
42
42
|
"options": {}
|
|
43
43
|
},
|
|
44
44
|
"policies": {
|
|
45
|
-
"inbound": [
|
|
45
|
+
"inbound": [
|
|
46
|
+
"ai-gateway-configuration-loader-v2-inbound",
|
|
47
|
+
"ai-gateway-configuration-executor-v2-inbound"
|
|
48
|
+
]
|
|
46
49
|
}
|
|
47
50
|
}
|
|
48
51
|
}
|
|
@@ -9,6 +9,15 @@
|
|
|
9
9
|
"name": "ai-gateway-auth-v2-inbound",
|
|
10
10
|
"policyType": "ai-gateway-auth-v2"
|
|
11
11
|
},
|
|
12
|
+
{
|
|
13
|
+
"handler": {
|
|
14
|
+
"export": "AIGatewayConfigurationLoaderV2InboundPolicy",
|
|
15
|
+
"module": "$import(@zuplo/runtime)",
|
|
16
|
+
"options": {}
|
|
17
|
+
},
|
|
18
|
+
"name": "ai-gateway-configuration-loader-v2-inbound",
|
|
19
|
+
"policyType": "ai-gateway-configuration-loader-v2"
|
|
20
|
+
},
|
|
12
21
|
{
|
|
13
22
|
"handler": {
|
|
14
23
|
"export": "AIGatewayConfigurationExecutorV2InboundPolicy",
|