zuplo 6.72.7 → 6.72.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.
Files changed (74) hide show
  1. package/docs/articles/ddos-protection.mdx +2 -2
  2. package/docs/articles/limits.mdx +12 -0
  3. package/docs/articles/local-development-troubleshooting.mdx +12 -3
  4. package/docs/articles/waf-ddos.mdx +1 -24
  5. package/docs/policies/akamai-ai-firewall/schema.json +1 -0
  6. package/docs/policies/akamai-firewall-for-ai-inbound/schema.json +2 -0
  7. package/docs/policies/akamai-firewall-for-ai-outbound/schema.json +2 -0
  8. package/docs/policies/amberflo-metering-inbound/schema.json +5 -2
  9. package/docs/policies/api-key-inbound/schema.json +11 -5
  10. package/docs/policies/audit-log-inbound/schema.json +2 -0
  11. package/docs/policies/auth0-jwt-auth-inbound/schema.json +7 -5
  12. package/docs/policies/authzen-inbound/schema.json +7 -5
  13. package/docs/policies/axiomatics-authz-inbound/schema.json +14 -6
  14. package/docs/policies/basic-auth-inbound/schema.json +2 -1
  15. package/docs/policies/caching-inbound/schema.json +20 -16
  16. package/docs/policies/clerk-jwt-auth-inbound/schema.json +7 -5
  17. package/docs/policies/cognito-jwt-auth-inbound/schema.json +7 -5
  18. package/docs/policies/comet-opik-tracing-inbound/schema.json +1 -0
  19. package/docs/policies/complex-rate-limit-inbound/schema.json +4 -0
  20. package/docs/policies/curity-phantom-token-inbound/schema.json +1 -0
  21. package/docs/policies/data-loss-prevention-inbound/schema.json +15 -12
  22. package/docs/policies/data-loss-prevention-outbound/schema.json +15 -12
  23. package/docs/policies/firebase-jwt-inbound/schema.json +7 -5
  24. package/docs/policies/formdata-to-json-inbound/schema.json +1 -0
  25. package/docs/policies/galileo-tracing-inbound/schema.json +1 -0
  26. package/docs/policies/geo-filter-inbound/schema.json +1 -0
  27. package/docs/policies/graphql-analytics-outbound/schema.json +1 -0
  28. package/docs/policies/mcp-auth0-oauth-inbound/schema.json +3 -0
  29. package/docs/policies/mcp-clerk-oauth-inbound/schema.json +3 -0
  30. package/docs/policies/mcp-cognito-oauth-inbound/schema.json +3 -0
  31. package/docs/policies/mcp-entra-oauth-inbound/schema.json +3 -0
  32. package/docs/policies/mcp-google-oauth-inbound/schema.json +3 -0
  33. package/docs/policies/mcp-keycloak-oauth-inbound/schema.json +3 -0
  34. package/docs/policies/mcp-logto-oauth-inbound/schema.json +3 -0
  35. package/docs/policies/mcp-oauth-inbound/schema.json +2 -0
  36. package/docs/policies/mcp-okta-oauth-inbound/schema.json +3 -0
  37. package/docs/policies/mcp-onelogin-oauth-inbound/schema.json +3 -0
  38. package/docs/policies/mcp-ping-oauth-inbound/schema.json +3 -0
  39. package/docs/policies/mcp-token-exchange-inbound/schema.json +10 -5
  40. package/docs/policies/mcp-workos-oauth-inbound/schema.json +3 -0
  41. package/docs/policies/monetization-inbound/schema.json +25 -23
  42. package/docs/policies/mtls-auth-inbound/schema.json +6 -5
  43. package/docs/policies/okta-fga-authz-inbound/schema.json +7 -6
  44. package/docs/policies/okta-jwt-auth-inbound/schema.json +7 -5
  45. package/docs/policies/open-id-jwt-auth-inbound/schema.json +11 -6
  46. package/docs/policies/openfga-authz-inbound/schema.json +7 -6
  47. package/docs/policies/openmeter-inbound/schema.json +23 -19
  48. package/docs/policies/prompt-injection-outbound/schema.json +6 -5
  49. package/docs/policies/propel-auth-jwt-inbound/schema.json +7 -5
  50. package/docs/policies/query-param-to-header-inbound/schema.json +1 -0
  51. package/docs/policies/quota-inbound/schema.json +9 -6
  52. package/docs/policies/rate-limit-inbound/schema.json +4 -0
  53. package/docs/policies/readme-metrics-inbound/schema.json +9 -5
  54. package/docs/policies/request-size-limit-inbound/schema.json +1 -0
  55. package/docs/policies/request-validation-inbound/schema.json +8 -6
  56. package/docs/policies/require-origin-inbound/schema.json +1 -0
  57. package/docs/policies/semantic-cache-inbound/schema.json +9 -5
  58. package/docs/policies/set-status-outbound/schema.json +1 -0
  59. package/docs/policies/set-upstream-api-key-inbound/schema.json +7 -5
  60. package/docs/policies/stripe-webhook-verification-inbound/schema.json +2 -1
  61. package/docs/policies/supabase-jwt-auth-inbound/schema.json +7 -5
  62. package/docs/policies/traffic-splitting-inbound/schema.json +1 -0
  63. package/docs/policies/upstream-aws-federated-auth-inbound/schema.json +6 -0
  64. package/docs/policies/upstream-aws-service-auth-inbound/schema.json +8 -0
  65. package/docs/policies/upstream-azure-ad-service-auth-inbound/schema.json +3 -1
  66. package/docs/policies/upstream-firebase-admin-auth-inbound/schema.json +2 -0
  67. package/docs/policies/upstream-firebase-user-auth-inbound/schema.json +8 -5
  68. package/docs/policies/upstream-gcp-federated-auth-inbound/schema.json +4 -0
  69. package/docs/policies/upstream-gcp-service-auth-inbound/schema.json +5 -0
  70. package/docs/policies/upstream-zuplo-jwt-auth-inbound/schema.json +20 -15
  71. package/docs/policies/web-bot-auth-inbound/schema.json +2 -0
  72. package/docs/policies/xml-to-json-outbound/schema.json +9 -5
  73. package/package.json +4 -4
  74. package/docs/articles/zuplo-waf.mdx +0 -156
@@ -140,8 +140,21 @@
140
140
  ]
141
141
  }
142
142
  },
143
+ "action": {
144
+ "type": "string",
145
+ "enum": ["mask", "block", "log"],
146
+ "default": "mask",
147
+ "description": "What to do when sensitive data is detected. `mask` redacts matches before returning the response, `block` replaces the response with a 422 listing only the detected entity names, and `log` records a warning and returns the response unchanged."
148
+ },
149
+ "mask": {
150
+ "type": "string",
151
+ "default": "[REDACTED]",
152
+ "examples": ["[REDACTED]"],
153
+ "description": "The string that replaces detected values when `action` is `mask`."
154
+ },
143
155
  "customPatterns": {
144
156
  "type": "array",
157
+ "x-advanced": true,
145
158
  "description": "Additional customer-defined regex recognizers. Invalid patterns are logged and skipped rather than failing the response.",
146
159
  "items": {
147
160
  "type": "object",
@@ -174,28 +187,18 @@
174
187
  }
175
188
  }
176
189
  },
177
- "action": {
178
- "type": "string",
179
- "enum": ["mask", "block", "log"],
180
- "default": "mask",
181
- "description": "What to do when sensitive data is detected. `mask` redacts matches before returning the response, `block` replaces the response with a 422 listing only the detected entity names, and `log` records a warning and returns the response unchanged."
182
- },
183
- "mask": {
184
- "type": "string",
185
- "default": "[REDACTED]",
186
- "examples": ["[REDACTED]"],
187
- "description": "The string that replaces detected values when `action` is `mask`."
188
- },
189
190
  "minConfidence": {
190
191
  "type": "number",
191
192
  "minimum": 0,
192
193
  "maximum": 1,
193
194
  "default": 0.5,
194
195
  "x-show-example": false,
196
+ "x-advanced": true,
195
197
  "description": "Minimum confidence (0-1) a match must reach to count as a finding. Context-dependent recognizers (for example `finance-us-bank-account` or `finance-us-aba-routing`) sit below the default threshold of 0.5 until a context word near the match boosts them above it. Lower the threshold to surface them everywhere; raise it to keep only prefix- or checksum-validated matches."
196
198
  },
197
199
  "contentTypes": {
198
200
  "type": "array",
201
+ "x-advanced": true,
199
202
  "description": "Override the set of scannable content-type prefixes. When omitted, the built-in text content-type allow-list (JSON, XML, form-encoded, text/\\*) is used.",
200
203
  "items": {
201
204
  "type": "string"
@@ -35,19 +35,21 @@
35
35
  "additionalProperties": false,
36
36
  "required": ["projectId"],
37
37
  "properties": {
38
- "allowUnauthenticatedRequests": {
39
- "type": "boolean",
40
- "default": false,
41
- "description": "Allow unauthenticated requests to proceed. This is use useful if you want to use multiple authentication policies or if you want to allow both authenticated and non-authenticated traffic."
42
- },
43
38
  "projectId": {
44
39
  "type": "string",
45
40
  "examples": ["my-project-id"],
46
41
  "description": "Your Firebase Project ID."
47
42
  },
43
+ "allowUnauthenticatedRequests": {
44
+ "type": "boolean",
45
+ "default": false,
46
+ "x-advanced": true,
47
+ "description": "Allow unauthenticated requests to proceed. This is use useful if you want to use multiple authentication policies or if you want to allow both authenticated and non-authenticated traffic."
48
+ },
48
49
  "oAuthResourceMetadataEnabled": {
49
50
  "type": "boolean",
50
51
  "default": false,
52
+ "x-advanced": true,
51
53
  "description": "Flag that determines whether OAuth protected resource metadata is enabled."
52
54
  }
53
55
  }
@@ -42,6 +42,7 @@
42
42
  },
43
43
  "optionalHoneypotName": {
44
44
  "type": "string",
45
+ "x-advanced": true,
45
46
  "description": "The name of the honeypot field. Used to provide basic spam filtering."
46
47
  }
47
48
  }
@@ -46,6 +46,7 @@
46
46
  "type": "string"
47
47
  },
48
48
  "baseUrl": {
49
+ "x-advanced": true,
49
50
  "description": "The base URL for the Galileo API (optional, defaults to https://api.galileo.ai).",
50
51
  "type": "string"
51
52
  }
@@ -80,6 +80,7 @@
80
80
  "ignoreUnknown": {
81
81
  "type": "boolean",
82
82
  "default": true,
83
+ "x-advanced": true,
83
84
  "description": "Specifies whether unknown geo-location parameters should be ignored (allowed through)."
84
85
  }
85
86
  }
@@ -70,6 +70,7 @@
70
70
  "maximum": 5242880,
71
71
  "default": 131072,
72
72
  "x-show-example": false,
73
+ "x-advanced": true,
73
74
  "description": "How many bytes of the response body the policy reads to look for GraphQL errors. The body is read and scanned for the `errors` token up to this limit; a body larger than the limit — by `Content-Length`, or measured while reading when the header is absent — is treated as error-free, so any errors it carries go unreported. The default of 128 KiB suits the common case, where servers emit `errors` near the front of the body. Raise it (up to the 5 MiB maximum) to detect errors in larger responses, at the cost of reading more of every response. When the token is found and the body fits within the limit, the body is parsed and its errors are reported."
74
75
  }
75
76
  }
@@ -61,6 +61,7 @@
61
61
  },
62
62
  "gateway": {
63
63
  "type": "object",
64
+ "x-advanced": true,
64
65
  "description": "Gateway-side OAuth token settings. The gateway issuer and advertised URLs are derived from the incoming request origin.",
65
66
  "additionalProperties": false,
66
67
  "properties": {
@@ -84,6 +85,7 @@
84
85
  }
85
86
  },
86
87
  "idJag": {
88
+ "x-advanced": true,
87
89
  "description": "Optional Identity Assertion JWT Authorization Grant (ID-JAG / XAA) support for the gateway token endpoint.",
88
90
  "oneOf": [
89
91
  {
@@ -163,6 +165,7 @@
163
165
  },
164
166
  "browserLoginOverrides": {
165
167
  "type": "object",
168
+ "x-advanced": true,
166
169
  "description": "Optional overrides for the derived browser-login settings.",
167
170
  "additionalProperties": false,
168
171
  "properties": {
@@ -60,6 +60,7 @@
60
60
  },
61
61
  "gateway": {
62
62
  "type": "object",
63
+ "x-advanced": true,
63
64
  "description": "Gateway-side OAuth token settings. The gateway issuer and advertised URLs are derived from the incoming request origin.",
64
65
  "additionalProperties": false,
65
66
  "properties": {
@@ -83,6 +84,7 @@
83
84
  }
84
85
  },
85
86
  "idJag": {
87
+ "x-advanced": true,
86
88
  "description": "Optional Identity Assertion JWT Authorization Grant (ID-JAG / XAA) support for the gateway token endpoint.",
87
89
  "oneOf": [
88
90
  {
@@ -162,6 +164,7 @@
162
164
  },
163
165
  "browserLoginOverrides": {
164
166
  "type": "object",
167
+ "x-advanced": true,
165
168
  "description": "Optional overrides for the derived browser-login settings.",
166
169
  "additionalProperties": false,
167
170
  "properties": {
@@ -76,6 +76,7 @@
76
76
  },
77
77
  "gateway": {
78
78
  "type": "object",
79
+ "x-advanced": true,
79
80
  "description": "Gateway-side OAuth token settings. The gateway issuer and advertised URLs are derived from the incoming request origin.",
80
81
  "additionalProperties": false,
81
82
  "properties": {
@@ -99,6 +100,7 @@
99
100
  }
100
101
  },
101
102
  "idJag": {
103
+ "x-advanced": true,
102
104
  "description": "Optional Identity Assertion JWT Authorization Grant (ID-JAG / XAA) support for the gateway token endpoint.",
103
105
  "oneOf": [
104
106
  {
@@ -178,6 +180,7 @@
178
180
  },
179
181
  "browserLoginOverrides": {
180
182
  "type": "object",
183
+ "x-advanced": true,
181
184
  "description": "Optional overrides for the derived browser-login settings.",
182
185
  "additionalProperties": false,
183
186
  "properties": {
@@ -57,6 +57,7 @@
57
57
  },
58
58
  "gateway": {
59
59
  "type": "object",
60
+ "x-advanced": true,
60
61
  "description": "Gateway-side OAuth token settings. The gateway issuer and advertised URLs are derived from the incoming request origin.",
61
62
  "additionalProperties": false,
62
63
  "properties": {
@@ -80,6 +81,7 @@
80
81
  }
81
82
  },
82
83
  "idJag": {
84
+ "x-advanced": true,
83
85
  "description": "Optional Identity Assertion JWT Authorization Grant (ID-JAG / XAA) support for the gateway token endpoint.",
84
86
  "oneOf": [
85
87
  {
@@ -159,6 +161,7 @@
159
161
  },
160
162
  "browserLoginOverrides": {
161
163
  "type": "object",
164
+ "x-advanced": true,
162
165
  "description": "Optional overrides for the derived browser-login settings.",
163
166
  "additionalProperties": false,
164
167
  "properties": {
@@ -52,6 +52,7 @@
52
52
  },
53
53
  "gateway": {
54
54
  "type": "object",
55
+ "x-advanced": true,
55
56
  "description": "Gateway-side OAuth token settings. The gateway issuer and advertised URLs are derived from the incoming request origin.",
56
57
  "additionalProperties": false,
57
58
  "properties": {
@@ -75,6 +76,7 @@
75
76
  }
76
77
  },
77
78
  "idJag": {
79
+ "x-advanced": true,
78
80
  "description": "Optional Identity Assertion JWT Authorization Grant (ID-JAG / XAA) support for the gateway token endpoint.",
79
81
  "oneOf": [
80
82
  {
@@ -154,6 +156,7 @@
154
156
  },
155
157
  "browserLoginOverrides": {
156
158
  "type": "object",
159
+ "x-advanced": true,
157
160
  "description": "Optional overrides for the derived browser-login settings.",
158
161
  "additionalProperties": false,
159
162
  "properties": {
@@ -65,6 +65,7 @@
65
65
  },
66
66
  "gateway": {
67
67
  "type": "object",
68
+ "x-advanced": true,
68
69
  "description": "Gateway-side OAuth token settings. The gateway issuer and advertised URLs are derived from the incoming request origin.",
69
70
  "additionalProperties": false,
70
71
  "properties": {
@@ -88,6 +89,7 @@
88
89
  }
89
90
  },
90
91
  "idJag": {
92
+ "x-advanced": true,
91
93
  "description": "Optional Identity Assertion JWT Authorization Grant (ID-JAG / XAA) support for the gateway token endpoint.",
92
94
  "oneOf": [
93
95
  {
@@ -167,6 +169,7 @@
167
169
  },
168
170
  "browserLoginOverrides": {
169
171
  "type": "object",
172
+ "x-advanced": true,
170
173
  "description": "Optional overrides for the derived browser-login settings.",
171
174
  "additionalProperties": false,
172
175
  "properties": {
@@ -57,6 +57,7 @@
57
57
  },
58
58
  "gateway": {
59
59
  "type": "object",
60
+ "x-advanced": true,
60
61
  "description": "Gateway-side OAuth token settings. The gateway issuer and advertised URLs are derived from the incoming request origin.",
61
62
  "additionalProperties": false,
62
63
  "properties": {
@@ -80,6 +81,7 @@
80
81
  }
81
82
  },
82
83
  "idJag": {
84
+ "x-advanced": true,
83
85
  "description": "Optional Identity Assertion JWT Authorization Grant (ID-JAG / XAA) support for the gateway token endpoint.",
84
86
  "oneOf": [
85
87
  {
@@ -159,6 +161,7 @@
159
161
  },
160
162
  "browserLoginOverrides": {
161
163
  "type": "object",
164
+ "x-advanced": true,
162
165
  "description": "Optional overrides for the derived browser-login settings.",
163
166
  "additionalProperties": false,
164
167
  "properties": {
@@ -126,6 +126,7 @@
126
126
  },
127
127
  "gateway": {
128
128
  "type": "object",
129
+ "x-advanced": true,
129
130
  "description": "Gateway-side OAuth token settings. The gateway issuer and advertised URLs are derived from the incoming request origin.",
130
131
  "additionalProperties": false,
131
132
  "properties": {
@@ -149,6 +150,7 @@
149
150
  }
150
151
  },
151
152
  "idJag": {
153
+ "x-advanced": true,
152
154
  "description": "Optional Identity Assertion JWT Authorization Grant (ID-JAG / XAA) support for the gateway token endpoint.",
153
155
  "oneOf": [
154
156
  {
@@ -62,6 +62,7 @@
62
62
  },
63
63
  "gateway": {
64
64
  "type": "object",
65
+ "x-advanced": true,
65
66
  "description": "Gateway-side OAuth token settings. The gateway issuer and advertised URLs are derived from the incoming request origin.",
66
67
  "additionalProperties": false,
67
68
  "properties": {
@@ -85,6 +86,7 @@
85
86
  }
86
87
  },
87
88
  "idJag": {
89
+ "x-advanced": true,
88
90
  "description": "Optional Identity Assertion JWT Authorization Grant (ID-JAG / XAA) support for the gateway token endpoint.",
89
91
  "oneOf": [
90
92
  {
@@ -164,6 +166,7 @@
164
166
  },
165
167
  "browserLoginOverrides": {
166
168
  "type": "object",
169
+ "x-advanced": true,
167
170
  "description": "Optional overrides for the derived browser-login settings.",
168
171
  "additionalProperties": false,
169
172
  "properties": {
@@ -57,6 +57,7 @@
57
57
  },
58
58
  "gateway": {
59
59
  "type": "object",
60
+ "x-advanced": true,
60
61
  "description": "Gateway-side OAuth token settings. The gateway issuer and advertised URLs are derived from the incoming request origin.",
61
62
  "additionalProperties": false,
62
63
  "properties": {
@@ -80,6 +81,7 @@
80
81
  }
81
82
  },
82
83
  "idJag": {
84
+ "x-advanced": true,
83
85
  "description": "Optional Identity Assertion JWT Authorization Grant (ID-JAG / XAA) support for the gateway token endpoint.",
84
86
  "oneOf": [
85
87
  {
@@ -159,6 +161,7 @@
159
161
  },
160
162
  "browserLoginOverrides": {
161
163
  "type": "object",
164
+ "x-advanced": true,
162
165
  "description": "Optional overrides for the derived browser-login settings.",
163
166
  "additionalProperties": false,
164
167
  "properties": {
@@ -75,6 +75,7 @@
75
75
  },
76
76
  "gateway": {
77
77
  "type": "object",
78
+ "x-advanced": true,
78
79
  "description": "Gateway-side OAuth token settings. The gateway issuer and advertised URLs are derived from the incoming request origin.",
79
80
  "additionalProperties": false,
80
81
  "properties": {
@@ -98,6 +99,7 @@
98
99
  }
99
100
  },
100
101
  "idJag": {
102
+ "x-advanced": true,
101
103
  "description": "Optional Identity Assertion JWT Authorization Grant (ID-JAG / XAA) support for the gateway token endpoint.",
102
104
  "oneOf": [
103
105
  {
@@ -177,6 +179,7 @@
177
179
  },
178
180
  "browserLoginOverrides": {
179
181
  "type": "object",
182
+ "x-advanced": true,
180
183
  "description": "Optional overrides for the derived browser-login settings.",
181
184
  "additionalProperties": false,
182
185
  "properties": {
@@ -82,11 +82,6 @@
82
82
  "examples": ["Native Linear remote MCP server."],
83
83
  "description": "Optional human-readable summary of the upstream, shown on the consent page."
84
84
  },
85
- "protectedResourceMetadataUrl": {
86
- "type": "string",
87
- "format": "uri",
88
- "description": "Optional override for the upstream's OAuth protected-resource metadata URL. Defaults from the route handler's rewritePattern."
89
- },
90
85
  "authMode": {
91
86
  "type": "string",
92
87
  "enum": ["user-oauth", "shared-oauth", "id-jag"],
@@ -99,11 +94,19 @@
99
94
  "type": "string"
100
95
  }
101
96
  },
97
+ "protectedResourceMetadataUrl": {
98
+ "type": "string",
99
+ "format": "uri",
100
+ "x-advanced": true,
101
+ "description": "Optional override for the upstream's OAuth protected-resource metadata URL. Defaults from the route handler's rewritePattern."
102
+ },
102
103
  "scopeDelimiter": {
103
104
  "type": "string",
105
+ "x-advanced": true,
104
106
  "description": "Delimiter used to join scopes in the OAuth authorization request. Defaults to a single space."
105
107
  },
106
108
  "prompt": {
109
+ "x-advanced": true,
107
110
  "description": "Overrides the OIDC `prompt` parameter on upstream authorization requests. The MCP SDK adds `prompt=consent` whenever the requested scope includes `offline_access`, which forces a consent screen on every authorization on providers like Microsoft Entra ID even after a tenant admin has granted org-wide admin consent. Leave unset to keep the SDK's behavior; set to `false` to strip the `prompt` parameter; set an explicit value to replace it. Warning: stripping `prompt=consent` while requesting `offline_access` can silently prevent refresh-token issuance on providers that require a fresh consent grant for offline access (e.g. Google) — only use this when the provider grants offline access via pre-authorized/admin consent (e.g. Entra tenant admin consent).",
108
111
  "oneOf": [
109
112
  {
@@ -117,6 +120,7 @@
117
120
  ]
118
121
  },
119
122
  "clientRegistration": {
123
+ "x-advanced": true,
120
124
  "description": "OAuth client registration mode. Defaults to `auto`, which uses Client ID Metadata Documents when the upstream advertises support and falls back to Dynamic Client Registration otherwise.",
121
125
  "oneOf": [
122
126
  {
@@ -163,6 +167,7 @@
163
167
  "type": "object",
164
168
  "additionalProperties": false,
165
169
  "required": ["idp", "resourceAs"],
170
+ "x-advanced": true,
166
171
  "description": "ID-JAG (Cross-App Access / XAA) token-exchange configuration. Required when `authMode` is `id-jag`; not used by the OAuth modes.",
167
172
  "properties": {
168
173
  "scopes": {
@@ -52,6 +52,7 @@
52
52
  },
53
53
  "gateway": {
54
54
  "type": "object",
55
+ "x-advanced": true,
55
56
  "description": "Gateway-side OAuth token settings. The gateway issuer and advertised URLs are derived from the incoming request origin.",
56
57
  "additionalProperties": false,
57
58
  "properties": {
@@ -75,6 +76,7 @@
75
76
  }
76
77
  },
77
78
  "idJag": {
79
+ "x-advanced": true,
78
80
  "description": "Optional Identity Assertion JWT Authorization Grant (ID-JAG / XAA) support for the gateway token endpoint.",
79
81
  "oneOf": [
80
82
  {
@@ -154,6 +156,7 @@
154
156
  },
155
157
  "browserLoginOverrides": {
156
158
  "type": "object",
159
+ "x-advanced": true,
157
160
  "description": "Optional overrides for the derived browser-login settings.",
158
161
  "additionalProperties": false,
159
162
  "properties": {
@@ -35,37 +35,47 @@
35
35
  "additionalProperties": false,
36
36
  "required": [],
37
37
  "properties": {
38
+ "meters": {
39
+ "type": "object",
40
+ "examples": [
41
+ {
42
+ "api_requests": 1
43
+ }
44
+ ],
45
+ "additionalProperties": {
46
+ "type": "number"
47
+ },
48
+ "description": "The meters to be used by the policy against the subscription quota."
49
+ },
50
+ "requiredEntitlements": {
51
+ "type": "array",
52
+ "items": {
53
+ "type": "string",
54
+ "minLength": 1
55
+ },
56
+ "description": "A list of entitlement keys that the subscription must have access to (hasAccess=true) for the request to be allowed. If any required entitlement is missing or does not have access, the request will be rejected with a 403 Forbidden.",
57
+ "examples": [["custom_domains"]]
58
+ },
38
59
  "authHeader": {
39
60
  "type": "string",
40
61
  "default": "Authorization",
41
62
  "x-show-example": false,
63
+ "x-advanced": true,
42
64
  "description": "The name of the header with the key."
43
65
  },
44
66
  "authScheme": {
45
67
  "type": "string",
46
68
  "default": "Bearer",
47
69
  "x-show-example": false,
70
+ "x-advanced": true,
48
71
  "description": "The scheme used on the header."
49
72
  },
50
73
  "cacheTtlSeconds": {
51
74
  "type": "number",
52
75
  "default": 60,
76
+ "x-advanced": true,
53
77
  "description": "The time to cache authentication results for a particular key. Higher values will decrease latency. Cached results will be valid until the cache expires even in the event the key is deleted, etc."
54
78
  },
55
- "meters": {
56
- "type": "object",
57
- "examples": [
58
- {
59
- "api_requests": 1
60
- }
61
- ],
62
- "patternProperties": {
63
- "^.*$": {
64
- "type": "number"
65
- }
66
- },
67
- "description": "The meters to be used by the policy against the subscription quota."
68
- },
69
79
  "meterOnStatusCodes": {
70
80
  "oneOf": [
71
81
  {
@@ -79,18 +89,10 @@
79
89
  }
80
90
  ],
81
91
  "x-show-example": false,
92
+ "x-advanced": true,
82
93
  "description": "A list of successful status codes and ranges \"200-299, 304\" that should trigger a metering call.",
83
94
  "default": "200-299",
84
95
  "examples": ["200-399"]
85
- },
86
- "requiredEntitlements": {
87
- "type": "array",
88
- "items": {
89
- "type": "string",
90
- "minLength": 1
91
- },
92
- "description": "A list of entitlement keys that the subscription must have access to (hasAccess=true) for the request to be allowed. If any required entitlement is missing or does not have access, the request will be rejected with a 403 Forbidden.",
93
- "examples": [["custom_domains"]]
94
96
  }
95
97
  }
96
98
  }
@@ -35,15 +35,16 @@
35
35
  "additionalProperties": false,
36
36
  "required": [],
37
37
  "properties": {
38
- "allowUnauthenticatedRequests": {
39
- "type": "boolean",
40
- "default": false,
41
- "description": "Allows requests to continue even when mTLS verification fails, no client certificate is presented, or the certificate metadata cannot be parsed. Defaults to false."
42
- },
43
38
  "certIssuerDN": {
44
39
  "type": "string",
45
40
  "description": "Fully qualified issuer distinguished name to require on the client certificate. The policy rejects certificates whose parsed issuer DN does not match this string exactly. Required unless `allowUnauthenticatedRequests` is `true`. The expected format matches the parsed metadata issuer, e.g. \"CN=example-ca, O=Example, C=US\".",
46
41
  "examples": ["CN=example-ca, O=Example, C=US"]
42
+ },
43
+ "allowUnauthenticatedRequests": {
44
+ "type": "boolean",
45
+ "default": false,
46
+ "x-advanced": true,
47
+ "description": "Allows requests to continue even when mTLS verification fails, no client certificate is presented, or the certificate metadata cannot be parsed. Defaults to false."
47
48
  }
48
49
  },
49
50
  "anyOf": [
@@ -56,12 +56,6 @@
56
56
  "description": "The ID of the authorization model.",
57
57
  "examples": ["$env(FGA_MODEL_ID)"]
58
58
  },
59
- "allowUnauthorizedRequests": {
60
- "type": "boolean",
61
- "default": false,
62
- "x-show-example": false,
63
- "description": "Indicates whether the request should continue if authorization fails. Default is `false` which means unauthorized users will automatically receive a 403 response."
64
- },
65
59
  "credentials": {
66
60
  "type": "object",
67
61
  "required": ["clientId", "clientSecret"],
@@ -81,6 +75,13 @@
81
75
  "clientSecret": "$env(FGA_CLIENT_SECRET)"
82
76
  }
83
77
  ]
78
+ },
79
+ "allowUnauthorizedRequests": {
80
+ "type": "boolean",
81
+ "default": false,
82
+ "x-show-example": false,
83
+ "x-advanced": true,
84
+ "description": "Indicates whether the request should continue if authorization fails. Default is `false` which means unauthorized users will automatically receive a 403 response."
84
85
  }
85
86
  }
86
87
  }
@@ -35,11 +35,6 @@
35
35
  "additionalProperties": false,
36
36
  "required": ["issuerUrl"],
37
37
  "properties": {
38
- "allowUnauthenticatedRequests": {
39
- "type": "boolean",
40
- "default": false,
41
- "description": "Allow unauthenticated requests to proceed. This is use useful if you want to use multiple authentication policies or if you want to allow both authenticated and non-authenticated traffic."
42
- },
43
38
  "issuerUrl": {
44
39
  "type": "string",
45
40
  "examples": ["https://dev-12345.okta.com/oauth2/abc"],
@@ -50,9 +45,16 @@
50
45
  "examples": ["api://my-api"],
51
46
  "description": "The Okta audience of your API, for example `api://my-api`."
52
47
  },
48
+ "allowUnauthenticatedRequests": {
49
+ "type": "boolean",
50
+ "default": false,
51
+ "x-advanced": true,
52
+ "description": "Allow unauthenticated requests to proceed. This is use useful if you want to use multiple authentication policies or if you want to allow both authenticated and non-authenticated traffic."
53
+ },
53
54
  "oAuthResourceMetadataEnabled": {
54
55
  "type": "boolean",
55
56
  "default": false,
57
+ "x-advanced": true,
56
58
  "description": "Flag that determines whether OAuth protected resource metadata is enabled."
57
59
  }
58
60
  }