diff --git a/lock/redis/metadata.yaml b/lock/redis/metadata.yaml new file mode 100644 index 0000000000..7fc6cfff77 --- /dev/null +++ b/lock/redis/metadata.yaml @@ -0,0 +1,370 @@ +# yaml-language-server: $schema=../../../component-metadata-schema.json +schemaVersion: v1 +type: lock +name: lock.redis +version: v1 +status: alpha +title: "Redis" +urls: + - title: Reference + url: https://docs.dapr.io/reference/components-reference/supported-locks/redis-lock/ +authenticationProfiles: + - title: "Username and password" + description: "Authenticate using username and password." + metadata: + - name: redisUsername + type: string + required: false + description: | + Username for Redis host. Defaults to empty. Make sure your Redis server + version is 6 or above, and have created ACL rule correctly. + example: "my-username" + default: "" + - name: redisPassword + type: string + required: false + sensitive: true + description: | + Password for Redis host. No default. Use secretKeyRef for + secret reference + example: "KeFg23!" + default: "" + - name: sentinelUsername + type: string + required: false + description: | + Username for Redis Sentinel. Applicable only when "failover" is true, and + Redis Sentinel has authentication enabled. Defaults to empty. + example: "my-sentinel-username" + default: "" + url: + title: "Redis Sentinel authentication documentation" + url: "https://redis.io/docs/latest/operate/oss_and_stack/management/sentinel/#configuring-sentinel-instances-with-authentication" + - name: sentinelPassword + type: string + required: false + sensitive: true + description: | + Password for Redis Sentinel. Applicable only when "failover" is true, and + Redis Sentinel has authentication enabled. Use secretKeyRef for + secret reference. Defaults to empty. + example: "KeFg23!" + default: "" + url: + title: "Redis Sentinel authentication documentation" + url: "https://redis.io/docs/latest/operate/oss_and_stack/management/sentinel/#configuring-sentinel-instances-with-authentication" +builtinAuthenticationProfiles: + - name: "azuread" + metadata: + - name: useEntraID + required: false + default: "false" + example: "true" + type: bool + description: | + If set, enables authentication to Azure Cache for Redis using Microsoft EntraID. The Redis server must explicitly enable EntraID authentication. Note that + Azure Cache for Redis also requires the use of TLS, so `enableTLS` should be set. No username or password should be set. + - name: enableTLS + required: true + description: Must be set to true if using EntraID + example: "true" +metadata: + - name: redisHost + required: true + description: | + Connection-string for the redis host. If "redisType" is "cluster" it can be multiple hosts separated by commas or just a single host + example: '"redis-master.default.svc.cluster.local:6379"' + type: string + - name: enableTLS + required: false + description: | + If the Redis instance supports TLS, can be configured to be enabled or disabled. + example: "false" + type: bool + default: "false" + - name: clientCert + required: false + description: Client certificate for Redis host. No Default. Can be secretKeyRef to use a secret reference + example: "" + type: string + - name: clientKey + required: false + description: Client key for Redis host. No Default. Can be secretKeyRef to use a secret reference + example: "" + type: string + - name: maxRetries + required: "false" + type: number + default: "3" + description: | + Maximum number of retries before giving up. + example: "5" + - name: maxRetryBackoff + required: "false" + type: number + default: "2" + description: | + Maximum backoff between each retry in seconds. + example: 30000 + - name: failover + required: "false" + type: bool + description: | + Property to enable failover configuration. This requires the sentinelMasterName to be set. The redisHost + should be the sentinel host address. + default: "false" + - name: sentinelMasterName + required: "false" + type: string + description: | + The sentinel master name. + - name: redeliverInterval + required: "false" + type: string + description: | + The interval between checking for pending messages to redeliver. + default: "60s" + example: '"60s", "0"' + - name: processingTimeout + required: "false" + type: string + description: | + The amount of time a message must be pending before attempting to redeliver it. "0" disables redelivery. + default: "15s" + example: "10s" + - name: redisType + type: string + required: "false" + description: | + The type of redis. There are two valid values: "node" for a single node mode, or "cluster" for redis cluster + mode. + default: "node" + example: '"node", "cluster"' + - name: redisDB + required: "false" + type: string + description: | + Database selected after connecting to redis. If "redisType" is "cluster" this option is ignored. + default: "0" + - name: redisMaxRetries + required: "false" + type: number + description: | + Alias for maxRetries. If both values are set, maxRetries is ignored. + - name: redisMinRetryInterval + required: "false" + type: string + description: | + Minimum backoff for redis commands between each retry. + default: "8ms" + example: '"10ms", "-1"' + - name: redisMaxRetryInterval + required: "false" + type: string + description: | + Alias for maxRetryBackoff. If both values are set, maxRetryBackoff is ignored. + - name: dialTimeout + required: "false" + type: string + description: | + Dial timeout for establishing new connections. + default: "5s" + example: "2s" + - name: readTimeout + required: "false" + type: string + description: | + Timeout for socket reads. If reached, redis commands will fail with a timeout instead of blocking. + default: "3s" + example: "5s" + - name: writeTimeout + required: "false" + type: string + description: | + Timeout for socket writes. If reached, redis commands will fail with a timeout instead of blocking. + example: "3s" + - name: poolSize + required: "false" + type: number + description: | + Maximum number of socket connections. + example: "20" + - name: poolTimeout + required: "false" + type: string + description: | + Amount of time client waits for a connection if all connections are busy before returning an error. + example: "5s" + - name: maxConnAge + required: "false" + type: string + description: | + Connection age at which the client retires (closes) the connection. + example: "30m" + - name: minIdleConns + required: "false" + type: number + description: | + Minimum number of idle connections to keep open in order to avoid the performance degredation associated + with creating new connections. + default: "0" + example: "2" + - name: idleCheckFrequency + required: "false" + type: string + description: | + Frequency of idle checks made by idle connections reaper. + default: "1m" + example: "15m" + - name: idleTimeout + required: "false" + type: string + description: | + Amount of time after which the client closes idle connections. Should be less than the server's timeout. + default: "5m" + example: "15m" + + + + - name: redeliverInterval + required: false + description: | + The interval between checking for pending messages to redelivery. "0" disables redelivery. + example: "30s" + default: "60s" + type: duration + - name: processingTimeout + required: false + description: | + The amount time a message must be pending before attempting to redeliver it. "0" disables redelivery. + example: "30s" + type: duration + default: "15s" + - name: queueDepth + required: false + description: | + The size of the message queue for processing. + example: "1000" + default: "100" + type: number + - name: concurrency + required: false + description: | + The number of concurrent workers that are processing messages. + example: "15" + default: "10" + type: number + - name: redisType + required: false + description: | + The type of redis. There are two valid values, one is "node" for single node mode, the other is "cluster" for redis cluster mode. + example: "cluster" + type: string + default: "node" + - name: redisDB + required: false + description: | + Database selected after connecting to redis. If "redisType" is "cluster" this option is ignored. + example: "0" + default: "0" + type: number + - name: redisMaxRetries + required: false + description: Maximum number of times to retry commands before giving up. Default is to not retry failed commands. + example: "5" + type: number + - name: redisMinRetryInterval + required: false + description: | + Minimum backoff for redis commands between each retry. "-1" disables backoff. + example: "8ms" + default: "8ms" + type: duration + - name: redisMaxRetryInterval + required: false + description: | + Maximum backoff for redis commands between each retry. "-1" disables backoff. + example: "5s" + default: "512ms" + type: duration + - name: dialTimeout + required: false + description: | + Dial timeout for establishing new connections. + example: "5s" + default: "5s" + type: duration + - name: readTimeout + required: false + description: | + Timeout for socket reads. If reached, redis commands will fail with a timeout instead of blocking. "-1" for no timeout. + example: "3s" + default: "3" + type: duration + - name: writeTimeout + required: false + description: Timeout for socket writes. If reached, redis commands will fail with a timeout instead of blocking. Defaults is readTimeout. + example: "3s" + type: duration + - name: poolSize + required: false + description: Maximum number of socket connections. Default is 10 connections per every CPU as reported by runtime.NumCPU. + example: "20" + type: number + - name: poolTimeout + required: false + description: Amount of time client waits for a connection if all connections are busy before returning an error. Default is readTimeout + 1 second. + example: "5s" + type: duration + - name: maxConnAge + required: false + description: Connection age at which the client retires (closes) the connection. Default is to not close aged connections. + example: "30m" + type: duration + - name: minIdleConns + required: false + description: | + Minimum number of idle connections to keep open in order to avoid the performance degradation associated with creating new connections. + example: "2" + default: "0" + type: number + - name: idleCheckFrequency + required: false + description: | + Frequency of idle checks made by idle connections reaper. "-1" disables idle connections reaper. + example: "-1" + default: "1m" + type: duration + - name: idleTimeout + required: false + description: | + Amount of time after which the client closes idle connections. Should be less than server's timeout. "-1" disables idle timeout check. + example: "10m" + default: "5m" + type: duration + - name: failover + required: false + description: | + Property to enabled failover configuration. Needs sentinelMasterName to be set. + example: "false" + default: "false" + type: bool + - name: sentinelMasterName + required: false + description: The sentinel master name. See Redis Sentinel Documentation. + example: "mymaster" + type: string + - name: maxLenApprox + required: false + description: Maximum number of items inside a stream. The old entries are automatically evicted when the specified length is reached, so that the stream is left at a constant size. Defaults to unlimited. + example: "10000" + type: number + - name: streamTTL + required: false + description: | + TTL duration for stream entries. Entries older than this duration will be evicted. + This is an approximate value, as it's implemented using Redis stream's MINID trimming with the '~' modifier. + The actual retention may include slightly more entries than strictly defined by the TTL, + as Redis optimizes the trimming operation for efficiency by potentially keeping some additional entries. + example: "30d" + type: duration \ No newline at end of file