Skip to content

Commit e1cab7e

Browse files
authored
Merge branch 'main' into 3318-RavenDB-state-store-new
2 parents d154dc3 + 517a3a5 commit e1cab7e

File tree

16 files changed

+687
-12
lines changed

16 files changed

+687
-12
lines changed

lock/redis/metadata.yaml

Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
# yaml-language-server: $schema=../../component-metadata-schema.json
2+
schemaVersion: v1
3+
type: lock
4+
name: redis
5+
version: v1
6+
status: alpha
7+
title: "Redis Distributed Lock"
8+
urls:
9+
- title: Reference
10+
url: https://docs.dapr.io/reference/components-reference/supported-locks/redis-lock/
11+
lock:
12+
operations:
13+
- name: tryLock
14+
description: "Attempt to acquire a distributed lock"
15+
- name: unlock
16+
description: "Release a distributed lock"
17+
authenticationProfiles:
18+
- title: "Password Authentication"
19+
description: |
20+
Authenticate using Redis password.
21+
metadata:
22+
- name: redisUsername
23+
required: false
24+
description: "The Redis username"
25+
example: "redis-user"
26+
- name: redisPassword
27+
required: false
28+
sensitive: true
29+
description: "The Redis password"
30+
example: "redis-password"
31+
- title: "Sentinel Authentication"
32+
description: |
33+
Authenticate using Redis Sentinel password.
34+
metadata:
35+
- name: sentinelUsername
36+
required: false
37+
description: "The Redis Sentinel username"
38+
example: "sentinel-user"
39+
- name: sentinelPassword
40+
required: false
41+
sensitive: true
42+
description: "The Redis Sentinel password"
43+
example: "sentinel-password"
44+
- title: "TLS Authentication"
45+
description: |
46+
Authenticate using Redis TLS certificate.
47+
metadata:
48+
- name: clientCert
49+
required: false
50+
sensitive: true
51+
description: "The Redis client certificate"
52+
example: '"-----BEGIN CERTIFICATE-----\nXXX..."'
53+
- name: clientKey
54+
required: false
55+
sensitive: true
56+
description: "The Redis client key"
57+
example: '"-----BEGIN PRIVATE KEY-----\nXXX..."'
58+
metadata:
59+
- name: redisHost
60+
required: true
61+
description: "The Redis host address"
62+
example: '"localhost:6379"'
63+
- name: redisType
64+
required: false
65+
description: "The Redis type"
66+
example: "node"
67+
default: "node"
68+
allowedValues:
69+
- "node"
70+
- "cluster"
71+
- "sentinel"
72+
- name: redisDB
73+
required: false
74+
description: "The Redis database number"
75+
example: '0'
76+
default: '0'
77+
- name: redisMaxRetries
78+
required: false
79+
description: "Maximum Redis retries"
80+
example: '3'
81+
default: '3'
82+
- name: redisMinRetryInterval
83+
required: false
84+
description: "Minimum Redis retry interval"
85+
example: "8ms"
86+
default: "8ms"
87+
- name: redisMaxRetryInterval
88+
required: false
89+
description: "Maximum Redis retry interval"
90+
example: "512ms"
91+
default: "512ms"
92+
- name: dialTimeout
93+
required: false
94+
description: "Dial timeout duration"
95+
example: "5s"
96+
default: "5s"
97+
- name: readTimeout
98+
required: false
99+
description: "Read timeout duration"
100+
example: "3s"
101+
default: "3s"
102+
- name: writeTimeout
103+
required: false
104+
description: "Write timeout duration"
105+
example: "3s"
106+
default: "3s"
107+
- name: poolSize
108+
required: false
109+
description: "Connection pool size"
110+
example: '10'
111+
default: '10'
112+
- name: poolTimeout
113+
required: false
114+
description: "Connection pool timeout"
115+
example: "4s"
116+
default: "4s"
117+
- name: maxConnAge
118+
required: false
119+
description: "Maximum connection age"
120+
example: "30m"
121+
default: "30m"
122+
- name: minIdleConns
123+
required: false
124+
description: "Minimum idle connections"
125+
example: '0'
126+
default: '0'
127+
- name: idleTimeout
128+
required: false
129+
description: "Idle timeout duration"
130+
example: "5m"
131+
default: "5m"
132+
- name: idleCheckFrequency
133+
required: false
134+
description: "Idle check frequency"
135+
example: "1m"
136+
default: "1m"
137+
- name: maxRetries
138+
required: false
139+
description: "Maximum number of retries when attempting to acquire a lock"
140+
example: '3'
141+
default: '3'
142+
- name: maxRetryBackoff
143+
required: false
144+
description: "Maximum backoff duration between retries"
145+
example: "2s"
146+
default: "2s"
147+
- name: redeliverInterval
148+
required: false
149+
description: "Redeliver interval for re-attempting lock acquisition"
150+
example: "15s"
151+
default: "15s"
152+
- name: processingTimeout
153+
required: false
154+
description: "Processing timeout for lock ownership"
155+
example: "60s"
156+
default: "60s"
157+
- name: enableTLS
158+
required: false
159+
type: bool
160+
description: "Whether to enable TLS encryption"
161+
example: false
162+
default: false
163+
- name: useEntraID
164+
required: false
165+
type: bool
166+
description: "Whether to use Entra ID for authentication"
167+
example: false
168+
default: false
169+
- name: failover
170+
required: false
171+
type: bool
172+
description: "Whether to enable failover mode (for Sentinel)"
173+
example: false
174+
default: false
175+
- name: sentinelMasterName
176+
required: false
177+
description: "The Sentinel master name (used if redisType is 'sentinel')"
178+
example: "mymaster"
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# yaml-language-server: $schema=../../../component-metadata-schema.json
2+
schemaVersion: v1
3+
type: middleware
4+
name: bearer
5+
version: v1
6+
status: stable
7+
title: "Bearer Token Authentication"
8+
description: |
9+
The Bearer middleware provides JWT token authentication for HTTP requests.
10+
It validates Bearer tokens in the Authorization header and can extract claims for downstream processing.
11+
urls:
12+
- title: Reference
13+
url: https://docs.dapr.io/reference/components-reference/supported-middleware/middleware-bearer/
14+
metadata:
15+
- name: jwksURL
16+
type: string
17+
required: true
18+
description: "The URL of the JSON Web Key Set (JWKS) endpoint"
19+
example: "https://accounts.google.com/.well-known/jwks.json"
20+
- name: issuer
21+
type: string
22+
required: true
23+
description: "The expected issuer of the JWT tokens"
24+
example: "https://accounts.google.com"
25+
- name: audience
26+
type: string
27+
required: true
28+
description: "The expected audience of the JWT tokens"
29+
example: "my-app"
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# yaml-language-server: $schema=../../../component-metadata-schema.json
2+
schemaVersion: v1
3+
type: middleware
4+
name: oauth2
5+
version: v1
6+
status: alpha
7+
title: "OAuth2 Authentication"
8+
description: |
9+
The OAuth2 middleware provides OAuth2 authentication for HTTP requests.
10+
It handles OAuth2 flows and token validation for securing API endpoints.
11+
urls:
12+
- title: Reference
13+
url: https://docs.dapr.io/reference/components-reference/supported-middleware/middleware-oauth2/
14+
authenticationProfiles:
15+
- title: "OAuth2 Authentication"
16+
description: "Configure OAuth2 authentication with any OAuth2 provider"
17+
metadata:
18+
- name: clientID
19+
type: string
20+
required: true
21+
description: "The OAuth2 client ID from your OAuth2 provider"
22+
example: "client-id"
23+
- name: clientSecret
24+
type: string
25+
required: true
26+
description: "The OAuth2 client secret from your OAuth2 provider"
27+
sensitive: true
28+
example: "client-secret"
29+
- name: authURL
30+
type: string
31+
required: true
32+
description: "The OAuth2 authorization URL from your provider"
33+
example: "https://accounts.google.com/o/oauth2/v2/auth"
34+
- name: tokenURL
35+
type: string
36+
required: true
37+
description: "The OAuth2 token URL from your provider"
38+
example: "https://oauth2.googleapis.com/token"
39+
- name: scopes
40+
type: string
41+
required: false
42+
description: "OAuth2 scopes to request from your provider"
43+
example: "openid profile email"
44+
metadata:
45+
- name: redirectURL
46+
type: string
47+
required: false
48+
description: "The OAuth2 redirect URL for your application"
49+
example: "http://localhost:8080/callback"
50+
- name: authHeaderName
51+
type: string
52+
required: false
53+
description: "The name of the authorization header to use"
54+
example: "Authorization"
55+
default: "Authorization"
56+
- name: forceHTTPS
57+
type: string
58+
required: false
59+
description: "Whether to force HTTPS for the redirect URL"
60+
example: "true"
61+
default: "false"
62+
- name: pathFilter
63+
type: string
64+
required: false
65+
description: "Regular expression to filter which paths require authentication"
66+
example: "^/api/.*"
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# yaml-language-server: $schema=../../../component-metadata-schema.json
2+
schemaVersion: v1
3+
type: middleware
4+
name: oauth2clientcredentials
5+
version: v1
6+
status: alpha
7+
title: "OAuth2 Client Credentials"
8+
description: |
9+
The OAuth2 Client Credentials middleware provides OAuth2 client credentials flow authentication.
10+
It handles machine-to-machine authentication using client credentials.
11+
urls:
12+
- title: Reference
13+
url: https://docs.dapr.io/reference/components-reference/supported-middleware/oauth2clientcredentials/
14+
authenticationProfiles:
15+
- title: "OAuth2 Client Credentials"
16+
description: "Configure OAuth2 client credentials authentication with any OAuth2 provider"
17+
metadata:
18+
- name: clientID
19+
type: string
20+
required: true
21+
description: "The client ID of your application that is created as part of a credential hosted by a OAuth-enabled platform"
22+
example: "client-id"
23+
- name: clientSecret
24+
type: string
25+
required: true
26+
description: "The client secret of your application that is created as part of a credential hosted by a OAuth-enabled platform"
27+
sensitive: true
28+
example: "client-secret"
29+
- name: scopes
30+
type: string
31+
required: false
32+
description: "A list of space-delimited, case-sensitive strings of scopes which are typically used for authorization in the application"
33+
example: "https://www.googleapis.com/auth/userinfo.email"
34+
- name: tokenURL
35+
type: string
36+
required: true
37+
description: "The endpoint is used by the client to obtain an access token by presenting its authorization grant or refresh token"
38+
example: "https://accounts.google.com/o/oauth2/token"
39+
metadata:
40+
- name: pathFilter
41+
type: string
42+
required: false
43+
description: "Regular expression to filter which paths require authentication"
44+
example: "^/api/.*"
45+
- name: headerName
46+
type: string
47+
required: true
48+
description: "The authorization header name to forward to your application"
49+
example: "authorization"
50+
- name: endpointParamsQuery
51+
type: string
52+
required: false
53+
description: "Specifies additional parameters for requests to the token endpoint"
54+
example: "param1=value1&param2=value2"
55+
- name: authStyle
56+
type: integer
57+
required: false
58+
description: "Optionally specifies how the endpoint wants the client ID & client secret sent. 0: Auto-detect (tries both ways and caches the successful way), 1: Sends client_id and client_secret in POST body as application/x-www-form-urlencoded parameters, 2: Sends client_id and client_secret using HTTP Basic Authorization"
59+
example: 0
60+
default: 0
61+
allowedValues:
62+
- 0
63+
- 1
64+
- 2

middleware/http/opa/metadata.yaml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# yaml-language-server: $schema=../../../component-metadata-schema.json
2+
schemaVersion: v1
3+
type: middleware
4+
name: opa
5+
version: v1
6+
status: alpha
7+
title: "Open Policy Agent (OPA)"
8+
description: |
9+
The OPA middleware allows you to enforce policies on HTTP requests using Open Policy Agent (OPA) Rego policies.
10+
It evaluates incoming requests against your Rego policies and can allow, deny, or modify requests based on the policy results.
11+
urls:
12+
- title: Reference
13+
url: https://docs.dapr.io/reference/components-reference/supported-middleware/middleware-opa/
14+
metadata:
15+
- name: rego
16+
type: string
17+
required: true
18+
description: "The Rego policy code that will be evaluated for each request. The policy package must be http and the policy must set data.http.allow"
19+
- name: defaultStatus
20+
type: number
21+
required: false
22+
description: "The status code to return for denied responses"
23+
example: 403
24+
default: 403
25+
- name: includedHeaders
26+
type: string
27+
required: false
28+
description: "Comma-separated set of case-insensitive headers to include in the request input. Request headers are not passed to the policy by default. Include to receive incoming request headers in the input"
29+
example: "x-my-custom-header, x-jwt-header"
30+
- name: readBody
31+
type: string
32+
required: false
33+
description: "Controls whether the middleware reads the entire request body in-memory and make it available for policy decisions"
34+
example: false
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# yaml-language-server: $schema=../../../component-metadata-schema.json
2+
schemaVersion: v1
3+
type: middleware
4+
name: ratelimit
5+
version: v1
6+
status: stable
7+
title: "Rate Limiting"
8+
description: |
9+
The Rate Limiting middleware provides request rate limiting functionality.
10+
It can limit requests based on various criteria like IP address, user, or custom keys.
11+
urls:
12+
- title: Reference
13+
url: https://docs.dapr.io/reference/components-reference/supported-middleware/middleware-rate-limit/
14+
metadata:
15+
- name: maxRequestsPerSecond
16+
type: integer
17+
required: true
18+
description: "Maximum number of requests allowed per second"
19+
example: 100

0 commit comments

Comments
 (0)