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.
- package/docs/articles/ddos-protection.mdx +2 -2
- package/docs/articles/limits.mdx +12 -0
- package/docs/articles/local-development-troubleshooting.mdx +12 -3
- package/docs/articles/waf-ddos.mdx +1 -24
- package/docs/policies/akamai-ai-firewall/schema.json +1 -0
- package/docs/policies/akamai-firewall-for-ai-inbound/schema.json +2 -0
- package/docs/policies/akamai-firewall-for-ai-outbound/schema.json +2 -0
- package/docs/policies/amberflo-metering-inbound/schema.json +5 -2
- package/docs/policies/api-key-inbound/schema.json +11 -5
- package/docs/policies/audit-log-inbound/schema.json +2 -0
- package/docs/policies/auth0-jwt-auth-inbound/schema.json +7 -5
- package/docs/policies/authzen-inbound/schema.json +7 -5
- package/docs/policies/axiomatics-authz-inbound/schema.json +14 -6
- package/docs/policies/basic-auth-inbound/schema.json +2 -1
- package/docs/policies/caching-inbound/schema.json +20 -16
- package/docs/policies/clerk-jwt-auth-inbound/schema.json +7 -5
- package/docs/policies/cognito-jwt-auth-inbound/schema.json +7 -5
- package/docs/policies/comet-opik-tracing-inbound/schema.json +1 -0
- package/docs/policies/complex-rate-limit-inbound/schema.json +4 -0
- package/docs/policies/curity-phantom-token-inbound/schema.json +1 -0
- package/docs/policies/data-loss-prevention-inbound/schema.json +15 -12
- package/docs/policies/data-loss-prevention-outbound/schema.json +15 -12
- package/docs/policies/firebase-jwt-inbound/schema.json +7 -5
- package/docs/policies/formdata-to-json-inbound/schema.json +1 -0
- package/docs/policies/galileo-tracing-inbound/schema.json +1 -0
- package/docs/policies/geo-filter-inbound/schema.json +1 -0
- package/docs/policies/graphql-analytics-outbound/schema.json +1 -0
- package/docs/policies/mcp-auth0-oauth-inbound/schema.json +3 -0
- package/docs/policies/mcp-clerk-oauth-inbound/schema.json +3 -0
- package/docs/policies/mcp-cognito-oauth-inbound/schema.json +3 -0
- package/docs/policies/mcp-entra-oauth-inbound/schema.json +3 -0
- package/docs/policies/mcp-google-oauth-inbound/schema.json +3 -0
- package/docs/policies/mcp-keycloak-oauth-inbound/schema.json +3 -0
- package/docs/policies/mcp-logto-oauth-inbound/schema.json +3 -0
- package/docs/policies/mcp-oauth-inbound/schema.json +2 -0
- package/docs/policies/mcp-okta-oauth-inbound/schema.json +3 -0
- package/docs/policies/mcp-onelogin-oauth-inbound/schema.json +3 -0
- package/docs/policies/mcp-ping-oauth-inbound/schema.json +3 -0
- package/docs/policies/mcp-token-exchange-inbound/schema.json +10 -5
- package/docs/policies/mcp-workos-oauth-inbound/schema.json +3 -0
- package/docs/policies/monetization-inbound/schema.json +25 -23
- package/docs/policies/mtls-auth-inbound/schema.json +6 -5
- package/docs/policies/okta-fga-authz-inbound/schema.json +7 -6
- package/docs/policies/okta-jwt-auth-inbound/schema.json +7 -5
- package/docs/policies/open-id-jwt-auth-inbound/schema.json +11 -6
- package/docs/policies/openfga-authz-inbound/schema.json +7 -6
- package/docs/policies/openmeter-inbound/schema.json +23 -19
- package/docs/policies/prompt-injection-outbound/schema.json +6 -5
- package/docs/policies/propel-auth-jwt-inbound/schema.json +7 -5
- package/docs/policies/query-param-to-header-inbound/schema.json +1 -0
- package/docs/policies/quota-inbound/schema.json +9 -6
- package/docs/policies/rate-limit-inbound/schema.json +4 -0
- package/docs/policies/readme-metrics-inbound/schema.json +9 -5
- package/docs/policies/request-size-limit-inbound/schema.json +1 -0
- package/docs/policies/request-validation-inbound/schema.json +8 -6
- package/docs/policies/require-origin-inbound/schema.json +1 -0
- package/docs/policies/semantic-cache-inbound/schema.json +9 -5
- package/docs/policies/set-status-outbound/schema.json +1 -0
- package/docs/policies/set-upstream-api-key-inbound/schema.json +7 -5
- package/docs/policies/stripe-webhook-verification-inbound/schema.json +2 -1
- package/docs/policies/supabase-jwt-auth-inbound/schema.json +7 -5
- package/docs/policies/traffic-splitting-inbound/schema.json +1 -0
- package/docs/policies/upstream-aws-federated-auth-inbound/schema.json +6 -0
- package/docs/policies/upstream-aws-service-auth-inbound/schema.json +8 -0
- package/docs/policies/upstream-azure-ad-service-auth-inbound/schema.json +3 -1
- package/docs/policies/upstream-firebase-admin-auth-inbound/schema.json +2 -0
- package/docs/policies/upstream-firebase-user-auth-inbound/schema.json +8 -5
- package/docs/policies/upstream-gcp-federated-auth-inbound/schema.json +4 -0
- package/docs/policies/upstream-gcp-service-auth-inbound/schema.json +5 -0
- package/docs/policies/upstream-zuplo-jwt-auth-inbound/schema.json +20 -15
- package/docs/policies/web-bot-auth-inbound/schema.json +2 -0
- package/docs/policies/xml-to-json-outbound/schema.json +9 -5
- package/package.json +4 -4
- package/docs/articles/zuplo-waf.mdx +0 -156
|
@@ -14,8 +14,8 @@ real-time, ensuring your APIs remain available even under attack.
|
|
|
14
14
|
Zuplo Managed DDoS is only available for customers using Zuplo's managed edge
|
|
15
15
|
deployment model. Customers using managed dedicated deployments should refer to
|
|
16
16
|
the
|
|
17
|
-
[Managed Dedicated
|
|
18
|
-
|
|
17
|
+
[Managed Dedicated and Self-hosted Deployments](./waf-ddos.mdx#managed-dedicated-and-self-hosted-deployments)
|
|
18
|
+
guidance.
|
|
19
19
|
|
|
20
20
|
:::
|
|
21
21
|
|
package/docs/articles/limits.mdx
CHANGED
|
@@ -31,6 +31,18 @@ environments.
|
|
|
31
31
|
| Subrequests | The maximum number of subrequests per request | 1,000 |
|
|
32
32
|
| Simultaneous Open Connections | The maximum number of simultaneous open connections per request | 6 |
|
|
33
33
|
|
|
34
|
+
## Logs and tracing
|
|
35
|
+
|
|
36
|
+
Logs and tracing are included with every plan. On non-enterprise plans, log and
|
|
37
|
+
trace ingestion is included for use within your plan's request volume. On
|
|
38
|
+
enterprise plans, logs and tracing are included as well, though log and trace
|
|
39
|
+
ingestion beyond typical usage may incur additional charges.
|
|
40
|
+
|
|
41
|
+
As with other features, usage is subject to "fair use" policies, meaning Zuplo
|
|
42
|
+
may limit usage that is deemed excessive. If you require specific limits,
|
|
43
|
+
contact sales to discuss pricing plans. Enterprise agreements govern feature
|
|
44
|
+
availability, refer your contract for specifics.
|
|
45
|
+
|
|
34
46
|
## HTTP connections
|
|
35
47
|
|
|
36
48
|
In Zuplo's managed edge environment, HTTP connections have timeouts to ensure
|
|
@@ -4,11 +4,20 @@ title: "Troubleshooting"
|
|
|
4
4
|
|
|
5
5
|
## Changing the port numbers
|
|
6
6
|
|
|
7
|
-
By default the Zuplo local server runs on port 9000
|
|
8
|
-
port 9100. To change
|
|
7
|
+
By default the Zuplo local server runs on port 9000, the route designer runs on
|
|
8
|
+
port 9100, and the docs server runs on port 9200. To change any of these port
|
|
9
|
+
numbers, you can call
|
|
9
10
|
|
|
10
11
|
```sh
|
|
11
|
-
npx zuplo dev --port <port number> --editor-port <editor port number>
|
|
12
|
+
npx zuplo dev --port <port number> --editor-port <editor port number> --docs-port <docs port number>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Each flag is independent, so you only need to pass the one for the port you want
|
|
16
|
+
to change. For example, if port 9200 is already in use, you can move just the
|
|
17
|
+
docs server:
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
npx zuplo dev --docs-port 9201
|
|
12
21
|
```
|
|
13
22
|
|
|
14
23
|
## Certificates Errors
|
|
@@ -9,9 +9,6 @@ customers today using Azure, AWS, Akamai, CloudFlare and many other options.
|
|
|
9
9
|
However, there are some things to consider depending on how you host Zuplo
|
|
10
10
|
(edge, dedicated, or self-hosted).
|
|
11
11
|
|
|
12
|
-
If for some reason these don't work for you - we can also offer a managed WAF as
|
|
13
|
-
part of your Zuplo Enterprise agreement; contact sales to discuss.
|
|
14
|
-
|
|
15
12
|
More details on some third-party WAF solutions are included below.
|
|
16
13
|
|
|
17
14
|
## Managed Edge Deployments
|
|
@@ -26,24 +23,7 @@ Customers typically use a WAF offered by their selected hosting platform (e.g.
|
|
|
26
23
|
Azure, Akamai, AWS, etc.) to simplify management, improve latency and reduce
|
|
27
24
|
bandwidth costs.
|
|
28
25
|
|
|
29
|
-
##
|
|
30
|
-
|
|
31
|
-
Zuplo offers different WAF solutions based on your deployment model:
|
|
32
|
-
|
|
33
|
-
**Managed Edge Deployment:** Customers on Zuplo's enterprise plans using our
|
|
34
|
-
managed edge deployment can use Zuplo Managed WAF. This provides
|
|
35
|
-
enterprise-grade protection for your API Gateway with minimal configuration
|
|
36
|
-
required, including OWASP Core Ruleset, OFAC sanctions compliance, DDoS
|
|
37
|
-
protection, and custom rule capabilities.
|
|
38
|
-
|
|
39
|
-
**Managed Dedicated Deployment:** Customers using Zuplo's managed dedicated
|
|
40
|
-
deployment model can leverage custom WAF and DDoS configurations based on the
|
|
41
|
-
capabilities of their chosen cloud provider (AWS, Azure, GCP). Our team will
|
|
42
|
-
work with you to configure the appropriate security services available in your
|
|
43
|
-
cloud environment.
|
|
44
|
-
|
|
45
|
-
For detailed information about Zuplo Managed WAF for managed edge deployments,
|
|
46
|
-
see our [Zuplo Managed WAF guide](./zuplo-waf.mdx).
|
|
26
|
+
## WAF functions built into Zuplo
|
|
47
27
|
|
|
48
28
|
:::tip
|
|
49
29
|
|
|
@@ -64,9 +44,6 @@ while providing powerful security capabilities.
|
|
|
64
44
|
|
|
65
45
|
:::
|
|
66
46
|
|
|
67
|
-
Contact our [sales team](mailto:sales@zuplo.com) to discuss which WAF solution
|
|
68
|
-
is right for your deployment model.
|
|
69
|
-
|
|
70
47
|
## Third-Party WAF Solutions
|
|
71
48
|
|
|
72
49
|
If you require the ability to finely control your WAF Rules or are using a
|
|
@@ -108,11 +108,13 @@
|
|
|
108
108
|
"throwOnError": {
|
|
109
109
|
"type": "boolean",
|
|
110
110
|
"default": true,
|
|
111
|
+
"x-advanced": true,
|
|
111
112
|
"description": "If true (the default), the policy throws when the Akamai detect call itself fails (network error, 5xx, malformed response). Set to false to fail open and allow the request through when Akamai is unreachable."
|
|
112
113
|
},
|
|
113
114
|
"detectUrl": {
|
|
114
115
|
"type": "string",
|
|
115
116
|
"x-show-example": false,
|
|
117
|
+
"x-advanced": true,
|
|
116
118
|
"description": "Override the Akamai Firewall for AI detect endpoint URL. The literal `{configurationId}` is replaced with the configured ID. Defaults to `https://aisec.akamai.com/fai/v1/fai-configurations/{configurationId}/detect`. Useful for regional Akamai endpoints or for pointing tests at a mock server."
|
|
117
119
|
}
|
|
118
120
|
}
|
|
@@ -108,11 +108,13 @@
|
|
|
108
108
|
"throwOnError": {
|
|
109
109
|
"type": "boolean",
|
|
110
110
|
"default": true,
|
|
111
|
+
"x-advanced": true,
|
|
111
112
|
"description": "If true (the default), the policy throws when the Akamai detect call itself fails (network error, 5xx, malformed response). Set to false to fail open and allow the response through when Akamai is unreachable."
|
|
112
113
|
},
|
|
113
114
|
"detectUrl": {
|
|
114
115
|
"type": "string",
|
|
115
116
|
"x-show-example": false,
|
|
117
|
+
"x-advanced": true,
|
|
116
118
|
"description": "Override the Akamai Firewall for AI detect endpoint URL. The literal `{configurationId}` is replaced with the configured ID. Defaults to `https://aisec.akamai.com/fai/v1/fai-configurations/{configurationId}/detect`. Useful for regional Akamai endpoints or for pointing tests at a mock server."
|
|
117
119
|
}
|
|
118
120
|
}
|
|
@@ -65,6 +65,7 @@
|
|
|
65
65
|
"additionalProperties": {
|
|
66
66
|
"type": "string"
|
|
67
67
|
},
|
|
68
|
+
"x-advanced": true,
|
|
68
69
|
"description": "A dictionary of dimensions to be sent to Amberflo (extensible in code)."
|
|
69
70
|
},
|
|
70
71
|
"statusCodes": {
|
|
@@ -79,12 +80,14 @@
|
|
|
79
80
|
}
|
|
80
81
|
}
|
|
81
82
|
],
|
|
83
|
+
"x-advanced": true,
|
|
82
84
|
"description": "A list of successful status codes and ranges \"200-299, 304\" that should trigger a metering call to Amberflo.",
|
|
83
85
|
"default": "200-299"
|
|
84
86
|
},
|
|
85
87
|
"url": {
|
|
86
88
|
"type": "string",
|
|
87
|
-
"default": "
|
|
89
|
+
"default": "https://app.amberflo.io/ingest",
|
|
90
|
+
"x-advanced": true,
|
|
88
91
|
"description": "The URL to send metering events. This is useful for testing purposes."
|
|
89
92
|
}
|
|
90
93
|
}
|
|
@@ -100,7 +103,7 @@
|
|
|
100
103
|
"meterApiName": "$env(AMBERFLO_METER_API_NAME)",
|
|
101
104
|
"meterValue": "$env(AMBERFLO_METER_VALUE)",
|
|
102
105
|
"statusCodes": "200-299",
|
|
103
|
-
"url": "
|
|
106
|
+
"url": "https://app.amberflo.io/ingest"
|
|
104
107
|
}
|
|
105
108
|
}
|
|
106
109
|
]
|
|
@@ -35,41 +35,47 @@
|
|
|
35
35
|
"additionalProperties": false,
|
|
36
36
|
"required": [],
|
|
37
37
|
"properties": {
|
|
38
|
+
"cacheTtlSeconds": {
|
|
39
|
+
"type": "number",
|
|
40
|
+
"default": 60,
|
|
41
|
+
"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."
|
|
42
|
+
},
|
|
38
43
|
"authHeader": {
|
|
39
44
|
"type": "string",
|
|
40
45
|
"default": "Authorization",
|
|
41
46
|
"x-show-example": false,
|
|
47
|
+
"x-advanced": true,
|
|
42
48
|
"description": "The name of the header with the key."
|
|
43
49
|
},
|
|
44
50
|
"authScheme": {
|
|
45
51
|
"type": "string",
|
|
46
52
|
"default": "Bearer",
|
|
47
53
|
"x-show-example": false,
|
|
54
|
+
"x-advanced": true,
|
|
48
55
|
"description": "The scheme used on the header."
|
|
49
56
|
},
|
|
50
57
|
"bucketId": {
|
|
51
58
|
"type": "string",
|
|
52
59
|
"x-show-example": false,
|
|
60
|
+
"x-advanced": true,
|
|
53
61
|
"description": "The ID of the API Key service bucket. Preferred over bucketName. Defaults to the autogenerated bucket ID for your project."
|
|
54
62
|
},
|
|
55
63
|
"bucketName": {
|
|
56
64
|
"type": "string",
|
|
57
65
|
"x-show-example": false,
|
|
66
|
+
"x-advanced": true,
|
|
58
67
|
"description": "The name of the API Key service bucket. Defaults to the autogenerated bucket name for your project."
|
|
59
68
|
},
|
|
60
69
|
"allowUnauthenticatedRequests": {
|
|
61
70
|
"type": "boolean",
|
|
62
71
|
"default": false,
|
|
72
|
+
"x-advanced": true,
|
|
63
73
|
"description": "If requests should proceed even if the policy does not successfully authenticate the request. Defaults to false and rejects any request without a valid API key (returning a `401 - Unauthorized` response). Set to `true` to support multiple authentication methods or support both authenticated and anonymous requests."
|
|
64
74
|
},
|
|
65
|
-
"cacheTtlSeconds": {
|
|
66
|
-
"type": "number",
|
|
67
|
-
"default": 60,
|
|
68
|
-
"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."
|
|
69
|
-
},
|
|
70
75
|
"disableAutomaticallyAddingKeyHeaderToOpenApi": {
|
|
71
76
|
"type": "boolean",
|
|
72
77
|
"x-show-example": false,
|
|
78
|
+
"x-advanced": true,
|
|
73
79
|
"description": "Zuplo will automatically document your API key header within your OpenAPI specification & Developer Portal. Set this to `true` to disable this behavior."
|
|
74
80
|
}
|
|
75
81
|
}
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
},
|
|
47
47
|
"samplingRate": {
|
|
48
48
|
"type": "number",
|
|
49
|
+
"x-advanced": true,
|
|
49
50
|
"description": "Fraction of requests to capture, between 0 (none) and 1 (all). Defaults to 1.",
|
|
50
51
|
"default": 1,
|
|
51
52
|
"minimum": 0,
|
|
@@ -53,6 +54,7 @@
|
|
|
53
54
|
},
|
|
54
55
|
"include": {
|
|
55
56
|
"type": "object",
|
|
57
|
+
"x-advanced": true,
|
|
56
58
|
"description": "Controls which potentially-sensitive parts of each request are captured in the auto-emitted audit event. Disable fields to satisfy your own data-handling and PII policies. All are enabled by default.",
|
|
57
59
|
"additionalProperties": false,
|
|
58
60
|
"properties": {
|
|
@@ -35,11 +35,6 @@
|
|
|
35
35
|
"additionalProperties": false,
|
|
36
36
|
"required": ["auth0Domain"],
|
|
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
|
"auth0Domain": {
|
|
44
39
|
"type": "string",
|
|
45
40
|
"examples": ["my-company.auth0.com"],
|
|
@@ -50,9 +45,16 @@
|
|
|
50
45
|
"examples": ["https://api.example.com/"],
|
|
51
46
|
"description": "The Auth0 audience of your API, for example `https://api.example.com/`."
|
|
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
|
}
|
|
@@ -40,11 +40,6 @@
|
|
|
40
40
|
"description": "The hostname of the AuthZen PDP service.",
|
|
41
41
|
"examples": ["authzen.example.com"]
|
|
42
42
|
},
|
|
43
|
-
"authorizerAuthorizationHeader": {
|
|
44
|
-
"type": "string",
|
|
45
|
-
"description": "The authorization header to use when communicating with the AuthZen PDP service.",
|
|
46
|
-
"examples": ["Bearer $env(AUTHZEN_PDP_TOKEN)"]
|
|
47
|
-
},
|
|
48
43
|
"subject": {
|
|
49
44
|
"type": "object",
|
|
50
45
|
"description": "The subject of the request.",
|
|
@@ -91,8 +86,15 @@
|
|
|
91
86
|
}
|
|
92
87
|
}
|
|
93
88
|
},
|
|
89
|
+
"authorizerAuthorizationHeader": {
|
|
90
|
+
"type": "string",
|
|
91
|
+
"x-advanced": true,
|
|
92
|
+
"description": "The authorization header to use when communicating with the AuthZen PDP service.",
|
|
93
|
+
"examples": ["Bearer $env(AUTHZEN_PDP_TOKEN)"]
|
|
94
|
+
},
|
|
94
95
|
"throwOnError": {
|
|
95
96
|
"type": "boolean",
|
|
97
|
+
"x-advanced": true,
|
|
96
98
|
"description": "If explicitly set to false, the policy will not throw an error if there is any problem communicating with the AuthZen PDP service and allow calls through. By default throwOnError is assumed to be on/true.",
|
|
97
99
|
"default": true,
|
|
98
100
|
"examples": [true]
|
|
@@ -35,12 +35,6 @@
|
|
|
35
35
|
"additionalProperties": false,
|
|
36
36
|
"required": ["pdpUrl", "pdpUsername", "pdpPassword"],
|
|
37
37
|
"properties": {
|
|
38
|
-
"allowUnauthorizedRequests": {
|
|
39
|
-
"type": "boolean",
|
|
40
|
-
"default": false,
|
|
41
|
-
"x-show-example": false,
|
|
42
|
-
"description": "Indicates whether the request should continue if authorization fails. Default is `false` which means unauthorized users will automatically receive a 403 response."
|
|
43
|
-
},
|
|
44
38
|
"pdpUrl": {
|
|
45
39
|
"type": "string",
|
|
46
40
|
"examples": ["https://pdp.example.com"],
|
|
@@ -56,32 +50,44 @@
|
|
|
56
50
|
"examples": ["$env(PDP_PASSWORD)"],
|
|
57
51
|
"description": "The password to use when authenticating with the PDP."
|
|
58
52
|
},
|
|
53
|
+
"allowUnauthorizedRequests": {
|
|
54
|
+
"type": "boolean",
|
|
55
|
+
"default": false,
|
|
56
|
+
"x-show-example": false,
|
|
57
|
+
"x-advanced": true,
|
|
58
|
+
"description": "Indicates whether the request should continue if authorization fails. Default is `false` which means unauthorized users will automatically receive a 403 response."
|
|
59
|
+
},
|
|
59
60
|
"includeDefaultActionAttributes": {
|
|
60
61
|
"type": "boolean",
|
|
61
62
|
"default": true,
|
|
62
63
|
"x-show-example": false,
|
|
64
|
+
"x-advanced": true,
|
|
63
65
|
"description": "Indicates whether the plugin should include default action attributes in the authorization request."
|
|
64
66
|
},
|
|
65
67
|
"includeDefaultResourceAttributes": {
|
|
66
68
|
"type": "boolean",
|
|
67
69
|
"default": true,
|
|
68
70
|
"x-show-example": false,
|
|
71
|
+
"x-advanced": true,
|
|
69
72
|
"description": "Indicates whether the plugin should include default resource attributes in the authorization request."
|
|
70
73
|
},
|
|
71
74
|
"includeDefaultSubjectAttributes": {
|
|
72
75
|
"type": "boolean",
|
|
73
76
|
"default": true,
|
|
74
77
|
"x-show-example": false,
|
|
78
|
+
"x-advanced": true,
|
|
75
79
|
"description": "Indicates whether the plugin should include default subject attributes in the authorization request."
|
|
76
80
|
},
|
|
77
81
|
"tokenHeaderName": {
|
|
78
82
|
"type": "string",
|
|
79
83
|
"default": "Authorization",
|
|
80
84
|
"x-show-example": false,
|
|
85
|
+
"x-advanced": true,
|
|
81
86
|
"description": "The name of the header that carries the JWT."
|
|
82
87
|
},
|
|
83
88
|
"accessSubjectAttributes": {
|
|
84
89
|
"x-show-example": false,
|
|
90
|
+
"x-advanced": true,
|
|
85
91
|
"type": "array",
|
|
86
92
|
"description": "A list of attributes that will be included in the authorization request.",
|
|
87
93
|
"items": {
|
|
@@ -103,6 +109,7 @@
|
|
|
103
109
|
},
|
|
104
110
|
"resourceAttributes": {
|
|
105
111
|
"x-show-example": false,
|
|
112
|
+
"x-advanced": true,
|
|
106
113
|
"type": "array",
|
|
107
114
|
"description": "A list of attributes that will be included in the authorization request.",
|
|
108
115
|
"items": {
|
|
@@ -124,6 +131,7 @@
|
|
|
124
131
|
},
|
|
125
132
|
"actionAttributes": {
|
|
126
133
|
"x-show-example": false,
|
|
134
|
+
"x-advanced": true,
|
|
127
135
|
"type": "array",
|
|
128
136
|
"description": "A list of attributes that will be included in the authorization request.",
|
|
129
137
|
"items": {
|
|
@@ -71,7 +71,8 @@
|
|
|
71
71
|
"allowUnauthenticatedRequests": {
|
|
72
72
|
"type": "boolean",
|
|
73
73
|
"default": false,
|
|
74
|
-
"
|
|
74
|
+
"x-advanced": true,
|
|
75
|
+
"description": "If 'true' allows the request to continue even if unauthenticated. When 'false' (the default) any unauthenticated request is automatically rejected with a 401."
|
|
75
76
|
}
|
|
76
77
|
}
|
|
77
78
|
}
|
|
@@ -35,17 +35,10 @@
|
|
|
35
35
|
"additionalProperties": false,
|
|
36
36
|
"required": [],
|
|
37
37
|
"properties": {
|
|
38
|
-
"
|
|
39
|
-
"type": "
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"description": "Specifies an id or 'key' for this policy to store cache. This is useful for cache-busting. For example, set this property to an env var and if you change that env var value, you invalidate the cache."
|
|
43
|
-
},
|
|
44
|
-
"dangerouslyIgnoreAuthorizationHeader": {
|
|
45
|
-
"type": "boolean",
|
|
46
|
-
"x-show-example": false,
|
|
47
|
-
"default": false,
|
|
48
|
-
"description": "By default, the Authorization header is always considered in the caching policy. You can disable by setting this to `true`."
|
|
38
|
+
"expirationSecondsTtl": {
|
|
39
|
+
"type": "number",
|
|
40
|
+
"default": 60,
|
|
41
|
+
"description": "The timeout of the cache in seconds."
|
|
49
42
|
},
|
|
50
43
|
"headers": {
|
|
51
44
|
"type": "array",
|
|
@@ -63,13 +56,9 @@
|
|
|
63
56
|
"enum": ["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD"]
|
|
64
57
|
},
|
|
65
58
|
"default": ["GET"],
|
|
59
|
+
"x-advanced": true,
|
|
66
60
|
"description": "HTTP Methods to be cached. Valid methods are: GET, POST, PUT, PATCH, DELETE, HEAD."
|
|
67
61
|
},
|
|
68
|
-
"expirationSecondsTtl": {
|
|
69
|
-
"type": "number",
|
|
70
|
-
"default": 60,
|
|
71
|
-
"description": "The timeout of the cache in seconds."
|
|
72
|
-
},
|
|
73
62
|
"statusCodes": {
|
|
74
63
|
"type": "array",
|
|
75
64
|
"items": {
|
|
@@ -77,7 +66,22 @@
|
|
|
77
66
|
},
|
|
78
67
|
"examples": [[200, 201, 404]],
|
|
79
68
|
"default": [[200, 206, 301, 302, 303, 404, 410]],
|
|
69
|
+
"x-advanced": true,
|
|
80
70
|
"description": "Response status codes to be cached."
|
|
71
|
+
},
|
|
72
|
+
"cacheId": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"examples": ["my-key"],
|
|
75
|
+
"x-show-example": false,
|
|
76
|
+
"x-advanced": true,
|
|
77
|
+
"description": "Specifies an id or 'key' for this policy to store cache. This is useful for cache-busting. For example, set this property to an env var and if you change that env var value, you invalidate the cache."
|
|
78
|
+
},
|
|
79
|
+
"dangerouslyIgnoreAuthorizationHeader": {
|
|
80
|
+
"type": "boolean",
|
|
81
|
+
"x-show-example": false,
|
|
82
|
+
"default": false,
|
|
83
|
+
"x-advanced": true,
|
|
84
|
+
"description": "By default, the Authorization header is always considered in the caching policy. You can disable by setting this to `true`."
|
|
81
85
|
}
|
|
82
86
|
}
|
|
83
87
|
}
|
|
@@ -35,19 +35,21 @@
|
|
|
35
35
|
"additionalProperties": false,
|
|
36
36
|
"required": ["frontendApiUrl"],
|
|
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
|
"frontendApiUrl": {
|
|
44
39
|
"type": "string",
|
|
45
40
|
"examples": ["https://verb-noun-00.clerk.accounts.dev"],
|
|
46
41
|
"description": "Your Clerk Frontend API URL, i.e. `https://verb-noun-00.clerk.accounts.dev`. Can be found in the Clerk portal: https://dashboard.clerk.com/last-active?path=api-keys."
|
|
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
|
}
|
|
@@ -35,11 +35,6 @@
|
|
|
35
35
|
"additionalProperties": false,
|
|
36
36
|
"required": ["region", "userPoolId"],
|
|
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
|
"region": {
|
|
44
39
|
"type": "string",
|
|
45
40
|
"examples": ["us-east-1"],
|
|
@@ -50,9 +45,16 @@
|
|
|
50
45
|
"examples": ["$env(AWS_COGNITO_USER_POOL_ID)"],
|
|
51
46
|
"description": "The user pool identifier."
|
|
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
|
}
|
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
"identifier": {
|
|
58
58
|
"type": "object",
|
|
59
59
|
"additionalProperties": false,
|
|
60
|
+
"x-advanced": true,
|
|
60
61
|
"description": "The function that returns dynamic configuration data. Used only with `rateLimitBy=function`.",
|
|
61
62
|
"required": ["export", "module"],
|
|
62
63
|
"properties": {
|
|
@@ -79,11 +80,13 @@
|
|
|
79
80
|
"default": "retry-after",
|
|
80
81
|
"title": "RateLimitHeaderMode",
|
|
81
82
|
"enum": ["none", "retry-after"],
|
|
83
|
+
"x-advanced": true,
|
|
82
84
|
"description": "Adds the retry-after header."
|
|
83
85
|
},
|
|
84
86
|
"throwOnFailure": {
|
|
85
87
|
"type": "boolean",
|
|
86
88
|
"default": false,
|
|
89
|
+
"x-advanced": true,
|
|
87
90
|
"description": "If true, the policy will throw an error in the event there is a problem connecting to the rate limit service."
|
|
88
91
|
},
|
|
89
92
|
"mode": {
|
|
@@ -91,6 +94,7 @@
|
|
|
91
94
|
"default": "strict",
|
|
92
95
|
"title": "RateLimitMode",
|
|
93
96
|
"enum": ["strict", "async"],
|
|
97
|
+
"x-advanced": true,
|
|
94
98
|
"description": "The mode of the policy. If set to `async`, the policy will check if the request is over the rate limit without blocking. This can result in some requests allowed over the rate limit."
|
|
95
99
|
}
|
|
96
100
|
},
|
|
@@ -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 forwarding the request, `block` rejects with a 422 listing only the detected entity names, and `log` records a warning and forwards the request 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 request.",
|
|
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 forwarding the request, `block` rejects with a 422 listing only the detected entity names, and `log` records a warning and forwards the request 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"
|