summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValery Piashchynski <[email protected]>2023-07-06 18:23:56 +0200
committerValery Piashchynski <[email protected]>2023-07-06 18:23:56 +0200
commit7b8a59ed071c0f66877aa8fe28155100fb18373d (patch)
tree8dbe5c20fa74fc9bf877c2025285b46c4c498eb1
parentd6ca04f1d7ae230bc8139ea652d67766779beb57 (diff)
release: update schema3.0, CHANGELOG, config, plugins
Signed-off-by: Valery Piashchynski <[email protected]>
-rw-r--r--.rr.yaml10
-rw-r--r--CHANGELOG.md26
-rw-r--r--go.mod79
-rw-r--r--go.sum157
-rw-r--r--schemas/config/3.0.schema.json331
5 files changed, 401 insertions, 202 deletions
diff --git a/.rr.yaml b/.rr.yaml
index c80d6ce7..d815cdb0 100644
--- a/.rr.yaml
+++ b/.rr.yaml
@@ -500,6 +500,11 @@ service:
# Default: 1
process_num: 1
+ # Timeout for the process stop operation
+ #
+ # Default: 5 seconds
+ timeout_stop_sec: 5
+
# Allowed time before stop.
#
# Default: 0 (infinity), can be 1s, 2m, 2h (seconds, minutes, hours)
@@ -529,6 +534,11 @@ service:
# Default: none, required.
command: "binary"
+ # Timeout for the process stop operation
+ #
+ # Default: 5 seconds
+ timeout_stop_sec: 5
+
# Env variables for the process
#
# Default: empty
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bc9610eb..ba1498a2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,31 @@
# CHANGELOG
+# <center> ๐Ÿš€ v2023.2.0 ๐Ÿš€ </center>
+
+## ๐Ÿ‘€ New
+
+- โœ’๏ธ **Kafka driver**: Support for the `SCRAM-SHA-256` and `SCRAM-SHA-512` SASL mechanisms: [FR](https://github.com/roadrunner-server/roadrunner/issues/1601), (thanks @Azomas)
+- โœ’๏ธ **Headers middleware**: Actualize CORS support: [FR](https://github.com/roadrunner-server/roadrunner/issues/909), (thanks @rmikalkenas, @hustlahusky)
+- โœ’๏ธ **RoadRunner CLI**: Additional [semgrep](https://semgrep.dev/) security scanner.
+- โœ’๏ธ **Docker builds**: New tags: `v2023`, `v2023.x` and with bugfix: `v2023.x.x`. The `latest` tag points to the latest **stable** release. All `rc`, `beta`, `alpha` releases will no longer be tagged with `latest`.
+- โœ’๏ธ **Server plugin**: `after_init` option. This is a new `server` option and, like `on_init`, can contain any custom command to be fired after each pool of workers is initialized. For example, if you have 2 plugins: `http` and `grpc`, the `after_init` command would be fired twice: [FR](https://github.com/roadrunner-server/roadrunner/issues/1554), (thanks @rauanmayemir).
+- โœ’๏ธ **AMQP driver**: Support for the `TLS` transport named `amqps`: [FR](https://github.com/roadrunner-server/roadrunner/issues/1538), (thanks @marcosraudkett)
+- โœ’๏ธ **JOBS plugin**: Support for the workers health/readiness checks. [PR](https://github.com/roadrunner-server/jobs/pull/81), (thanks @Kaspiman)
+- โœ’๏ธ **JOBS plugin**: Delete all messages that were in the priority queue when the pipeline was deleted (1-st part of the BUG), [BUG](https://github.com/roadrunner-server/roadrunner/issues/1382)
+- โœ’๏ธ **JOBS plugin**: JOBS plugin now support reporting it's workers status with a simple query: `http://<status_plugin_host>:<port>/ready(health)?plugin=jobs`, [PR](https://github.com/roadrunner-server/roadrunner/issues/1382), (thanks @Kaspiman)
+- โœ’๏ธ **Temporal plugin, internal**: Pass `history_len` to the PHP worker and get the PHP-SDK version to pass to the Temporal server.
+- โœ’๏ธ **Lock plugin**: Completely rewritten. Now supports microseconds interval. Any `ttl/wait_ttl` value passed to RR is now treated as **microseconds**. There is no configuration for this plugin, it is bundled with RR.
+- โœ’๏ธ **Service plugin**: Add a new option for the graceful process timeout: `timeout_stop_sec`. RR will wait for the specified amount of time (but not more than `endure.graceful_period`) for the process to stop, [FR](https://github.com/roadrunner-server/roadrunner/issues/1628), (thanks @asanikovich)
+
+## ๐Ÿฉน Fixes
+
+- ๐Ÿ› **JOBS plugin**: Nil pointer exception on very fast (after RR was started, but JOBS worker failed to start) check for the JOBS metrics: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1597), (thanks @Kaspiman).
+- ๐Ÿ› **Service plugin**: Incorrect parsing and assignment of the `process_num` value passed via RPC: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1621), (thanks @asanikovich)
+
+### <center>๐Ÿงน Chore:</center>
+
+- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies.
+
# <center> ๐Ÿš€ v2023.2.0-beta.1 ๐Ÿš€ </center>
## ๐Ÿ‘€ New
diff --git a/go.mod b/go.mod
index 1149a140..787915e6 100644
--- a/go.mod
+++ b/go.mod
@@ -8,59 +8,61 @@ require (
github.com/fatih/color v1.15.0
github.com/joho/godotenv v1.5.1
github.com/olekukonko/tablewriter v0.0.5
- github.com/roadrunner-server/amqp/v4 v4.6.1
+ github.com/roadrunner-server/amqp/v4 v4.7.0
github.com/roadrunner-server/api/v4 v4.5.0
github.com/roadrunner-server/app-logger/v4 v4.0.9
- github.com/roadrunner-server/beanstalk/v4 v4.3.0
- github.com/roadrunner-server/boltdb/v4 v4.4.1
- github.com/roadrunner-server/centrifuge/v4 v4.1.11
- github.com/roadrunner-server/config/v4 v4.3.5
+ github.com/roadrunner-server/beanstalk/v4 v4.4.0
+ github.com/roadrunner-server/boltdb/v4 v4.5.0
+ github.com/roadrunner-server/centrifuge/v4 v4.2.0
+ github.com/roadrunner-server/config/v4 v4.4.0
github.com/roadrunner-server/endure/v2 v2.2.1
github.com/roadrunner-server/errors v1.2.0
- github.com/roadrunner-server/fileserver/v4 v4.0.14
+ github.com/roadrunner-server/fileserver/v4 v4.1.0
github.com/roadrunner-server/goridge/v3 v3.6.3
- github.com/roadrunner-server/grpc/v4 v4.1.15
- github.com/roadrunner-server/gzip/v4 v4.0.13
- github.com/roadrunner-server/headers/v4 v4.1.1
- github.com/roadrunner-server/http/v4 v4.1.14
- github.com/roadrunner-server/informer/v4 v4.1.10
- github.com/roadrunner-server/jobs/v4 v4.4.1
- github.com/roadrunner-server/kafka/v4 v4.2.1
- github.com/roadrunner-server/kv/v4 v4.1.13
- github.com/roadrunner-server/lock/v4 v4.2.0
- github.com/roadrunner-server/logger/v4 v4.1.10
+ github.com/roadrunner-server/grpc/v4 v4.2.0
+ github.com/roadrunner-server/gzip/v4 v4.1.0
+ github.com/roadrunner-server/headers/v4 v4.2.0
+ github.com/roadrunner-server/http/v4 v4.2.0
+ github.com/roadrunner-server/informer/v4 v4.2.0
+ github.com/roadrunner-server/jobs/v4 v4.5.0
+ github.com/roadrunner-server/kafka/v4 v4.3.0
+ github.com/roadrunner-server/kv/v4 v4.2.0
+ github.com/roadrunner-server/lock/v4 v4.3.0
+ github.com/roadrunner-server/logger/v4 v4.2.0
github.com/roadrunner-server/memcached/v4 v4.1.10
- github.com/roadrunner-server/memory/v4 v4.3.0
- github.com/roadrunner-server/metrics/v4 v4.0.12
- github.com/roadrunner-server/nats/v4 v4.3.1
- github.com/roadrunner-server/otel/v4 v4.1.15
- github.com/roadrunner-server/prometheus/v4 v4.0.14
- github.com/roadrunner-server/proxy_ip_parser/v4 v4.0.12
- github.com/roadrunner-server/redis/v4 v4.1.13
+ github.com/roadrunner-server/memory/v4 v4.4.0
+ github.com/roadrunner-server/metrics/v4 v4.1.0
+ github.com/roadrunner-server/nats/v4 v4.4.0
+ github.com/roadrunner-server/otel/v4 v4.2.0
+ github.com/roadrunner-server/prometheus/v4 v4.1.0
+ github.com/roadrunner-server/proxy_ip_parser/v4 v4.1.0
+ github.com/roadrunner-server/redis/v4 v4.2.0
github.com/roadrunner-server/resetter/v4 v4.0.7
- github.com/roadrunner-server/rpc/v4 v4.1.12
- github.com/roadrunner-server/sdk/v4 v4.3.0
- github.com/roadrunner-server/send/v4 v4.1.0
- github.com/roadrunner-server/server/v4 v4.1.10
- github.com/roadrunner-server/service/v4 v4.2.0
- github.com/roadrunner-server/sqs/v4 v4.3.1
- github.com/roadrunner-server/static/v4 v4.0.13
- github.com/roadrunner-server/status/v4 v4.2.0
- github.com/roadrunner-server/tcp/v4 v4.0.12
+ github.com/roadrunner-server/rpc/v4 v4.2.0
+ github.com/roadrunner-server/sdk/v4 v4.3.1
+ github.com/roadrunner-server/send/v4 v4.2.0
+ github.com/roadrunner-server/server/v4 v4.2.0
+ github.com/roadrunner-server/service/v4 v4.3.0
+ github.com/roadrunner-server/sqs/v4 v4.4.0
+ github.com/roadrunner-server/static/v4 v4.1.0
+ github.com/roadrunner-server/status/v4 v4.3.0
+ github.com/roadrunner-server/tcp/v4 v4.1.0
github.com/spf13/cobra v1.7.0
github.com/spf13/viper v1.16.0
github.com/stretchr/testify v1.8.4
- github.com/temporalio/roadrunner-temporal/v4 v4.2.7
+ github.com/temporalio/roadrunner-temporal/v4 v4.3.2
go.buf.build/protocolbuffers/go/roadrunner-server/api v1.3.40
go.uber.org/automaxprocs v1.5.2
golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df
)
+replace github.com/temporalio/roadrunner-temporal/v4 => ../plugins/roadrunner-temporal
+
exclude github.com/uber-go/tally/v4 v4.1.7
require (
github.com/andybalholm/brotli v1.0.5 // indirect
- github.com/aws/aws-sdk-go v1.44.295 // indirect
+ github.com/aws/aws-sdk-go v1.44.296 // indirect
github.com/aws/aws-sdk-go-v2 v1.18.1 // indirect
github.com/aws/aws-sdk-go-v2/config v1.18.27 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.13.26 // indirect
@@ -90,7 +92,6 @@ require (
github.com/go-logr/logr v1.2.4 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-ole/go-ole v1.2.6 // indirect
- github.com/go-redis/redis/v8 v8.11.5 // indirect
github.com/goccy/go-json v0.10.2 // indirect
github.com/gofiber/fiber/v2 v2.47.0 // indirect
github.com/gogo/googleapis v1.4.1 // indirect
@@ -120,7 +121,6 @@ require (
github.com/nats-io/nats.go v1.27.1 // indirect
github.com/nats-io/nkeys v0.4.4 // indirect
github.com/nats-io/nuid v1.0.1 // indirect
- github.com/onsi/gomega v1.24.1 // indirect
github.com/openzipkin/zipkin-go v0.4.1 // indirect
github.com/pborman/uuid v1.2.1 // indirect
github.com/pelletier/go-toml/v2 v2.0.8 // indirect
@@ -133,6 +133,7 @@ require (
github.com/prometheus/common v0.44.0 // indirect
github.com/prometheus/procfs v0.11.0 // indirect
github.com/rabbitmq/amqp091-go v1.8.1 // indirect
+ github.com/redis/go-redis/v9 v9.0.5 // indirect
github.com/rivo/uniseg v0.4.4 // indirect
github.com/roadrunner-server/tcplisten v1.3.0 // indirect
github.com/robfig/cron v1.2.0 // indirect
@@ -184,14 +185,14 @@ require (
go.uber.org/atomic v1.11.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.24.0 // indirect
- golang.org/x/crypto v0.10.0 // indirect
+ golang.org/x/crypto v0.11.0 // indirect
golang.org/x/mod v0.12.0 // indirect
- golang.org/x/net v0.11.0 // indirect
+ golang.org/x/net v0.12.0 // indirect
golang.org/x/sync v0.3.0 // indirect
golang.org/x/sys v0.10.0 // indirect
golang.org/x/text v0.11.0 // indirect
golang.org/x/time v0.3.0 // indirect
- golang.org/x/tools v0.10.0 // indirect
+ golang.org/x/tools v0.11.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20230629202037-9506855d4529 // indirect
google.golang.org/grpc v1.56.1 // indirect
diff --git a/go.sum b/go.sum
index 383755f8..a873d502 100644
--- a/go.sum
+++ b/go.sum
@@ -617,8 +617,8 @@ github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kd
github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0=
github.com/apache/arrow/go/v11 v11.0.0/go.mod h1:Eg5OsL5H+e299f7u5ssuXsuHQVEGC4xei5aX110hRiI=
github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU=
-github.com/aws/aws-sdk-go v1.44.295 h1:SGjU1+MqttXfRiWHD6WU0DRhaanJgAFY+xIhEaugV8Y=
-github.com/aws/aws-sdk-go v1.44.295/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
+github.com/aws/aws-sdk-go v1.44.296 h1:ALRZIIKI+6EBWDiWP4RHWmOtHZ7dywRzenL4NWgNI2A=
+github.com/aws/aws-sdk-go v1.44.296/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
github.com/aws/aws-sdk-go-v2 v1.18.1 h1:+tefE750oAb7ZQGzla6bLkOwfcQCEtC5y2RqoqCeqKo=
github.com/aws/aws-sdk-go-v2 v1.18.1/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw=
github.com/aws/aws-sdk-go-v2/config v1.18.27 h1:Az9uLwmssTE6OGTpsFqOnaGpLnKDqNYOJzWuC6UAYzA=
@@ -657,6 +657,8 @@ github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl
github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
github.com/bradfitz/gomemcache v0.0.0-20230611145640-acc696258285 h1:Dr+ezPI5ivhMn/3WOoB86XzMhie146DNaBbhaQWZHMY=
github.com/bradfitz/gomemcache v0.0.0-20230611145640-acc696258285/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA=
+github.com/bsm/ginkgo/v2 v2.7.0 h1:ItPMPH90RbmZJt5GtkcNvIRuGEdwlBItdNVoyzaNQao=
+github.com/bsm/gomega v1.26.0 h1:LhQm+AFcgV2M0WyKroMASzAzCAJVpAxQXv4SaI9a69Y=
github.com/buger/goterm v1.0.4 h1:Z9YvGmOih81P0FbVtEYTFF6YsSgxSUKEhf/f9bTMXbY=
github.com/buger/goterm v1.0.4/go.mod h1:HiFWV3xnkolgrBV3mY8m0X0Pumt4zg4QhbdOzQtB8tE=
github.com/cactus/go-statsd-client/statsd v0.0.0-20200423205355-cb0885a1018c h1:HIGF0r/56+7fuIZw2V4isE22MK6xpxWx7BbV8dJ290w=
@@ -756,8 +758,6 @@ github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M=
github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M=
-github.com/go-redis/redis/v8 v8.11.5 h1:AcZZR7igkdvfVmQTPnu9WE37LRrO/YrBH5zWyjDC0oI=
-github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU=
@@ -979,12 +979,8 @@ github.com/nats-io/nkeys v0.4.4/go.mod h1:XUkxdLPTufzlihbamfzQ7mw/VGx6ObUs+0bN5s
github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=
github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
-github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
-github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
-github.com/onsi/gomega v1.24.1 h1:KORJXNNTzJXzu4ScJWssJfJMnJ+2QJqhoQSRwNlze9E=
-github.com/onsi/gomega v1.24.1/go.mod h1:3AOiACssS3/MajrniINInwbfOOtfZvplPzuRSmvt1jM=
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
github.com/openzipkin/zipkin-go v0.4.1 h1:kNd/ST2yLLWhaWrkgchya40TJabe8Hioj9udfPcEO5A=
github.com/openzipkin/zipkin-go v0.4.1/go.mod h1:qY0VqDSN1pOBN94dBc6w2GJlWLiovAyg7Qt6/I9HecM=
@@ -1037,88 +1033,90 @@ github.com/prometheus/procfs v0.11.0 h1:5EAgkfkMl659uZPbe9AS2N68a7Cc1TJbPEuGzFuR
github.com/prometheus/procfs v0.11.0/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM=
github.com/rabbitmq/amqp091-go v1.8.1 h1:RejT1SBUim5doqcL6s7iN6SBmsQqyTgXb1xMlH0h1hA=
github.com/rabbitmq/amqp091-go v1.8.1/go.mod h1:+jPrT9iY2eLjRaMSRHUhc3z14E/l85kv/f+6luSD3pc=
+github.com/redis/go-redis/v9 v9.0.5 h1:CuQcn5HIEeK7BgElubPP8CGtE0KakrnbBSTLjathl5o=
+github.com/redis/go-redis/v9 v9.0.5/go.mod h1:WqMKv5vnQbRuZstUwxQI195wHy+t4PuXDOjzMvcuQHk=
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis=
github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
-github.com/roadrunner-server/amqp/v4 v4.6.1 h1:wY5fmcW8R0lo++coDWSKnSgDgYrWr7GiH90Tng4W4Lo=
-github.com/roadrunner-server/amqp/v4 v4.6.1/go.mod h1:qvPhlLvvBlLt3ONM3MXoXoZ1F50UzMAOOsurbUDxw+A=
+github.com/roadrunner-server/amqp/v4 v4.7.0 h1:M5PWVZ1Qz+3nLmB9u/3kgMXmee3Vt1AKgcwthetCrTk=
+github.com/roadrunner-server/amqp/v4 v4.7.0/go.mod h1:0DUFGcGLljCS80K6DxjdwrEcWpEyckKL41QgRE7Tp3s=
github.com/roadrunner-server/api/v4 v4.5.0 h1:OUAcCwLeQbgRj7E2/6M6W2nxOnbG6XYPSS6LjW6COAQ=
github.com/roadrunner-server/api/v4 v4.5.0/go.mod h1:nzJvLrDMYT0K9hgPFmeL8dh6q2EvrJEaCHy2XRqz20c=
github.com/roadrunner-server/app-logger/v4 v4.0.9 h1:bDTnlMGwC3q7x4R7zXfyZ3QVZnAjDxXNX36xsSH7RZ8=
github.com/roadrunner-server/app-logger/v4 v4.0.9/go.mod h1:ewb5g6/+dc4aErm//UBtbJ0QvaV9Fb4S9ULMfKKn9tc=
-github.com/roadrunner-server/beanstalk/v4 v4.3.0 h1:UVwDy5wQbtowtVHx5XxhnkmYyTf4ykcFDY9bmWx0vLk=
-github.com/roadrunner-server/beanstalk/v4 v4.3.0/go.mod h1:IOKJ2xScJthfDHtOwPKxi0WnchVOnRo5bLjvCaKuG1g=
-github.com/roadrunner-server/boltdb/v4 v4.4.1 h1:vkml65HEaQTonfe4Lsc6WBLks8KZycs8iVJpDA9l1DI=
-github.com/roadrunner-server/boltdb/v4 v4.4.1/go.mod h1:ZgMGgReToW7e4/j5Pc0ZDc6t5HJt8Z+Y4NdJVSgjFP4=
-github.com/roadrunner-server/centrifuge/v4 v4.1.11 h1:TRCDQP1XKQ5Cwv9lL0sigPTF0O97YLesH15NtjhMWls=
-github.com/roadrunner-server/centrifuge/v4 v4.1.11/go.mod h1:gVbLzAfQEnGOkSFkO51+rSSjETVDsM43e2xHYVcV4qQ=
-github.com/roadrunner-server/config/v4 v4.3.5 h1:TBs9vu0E9QqS5ssPnGyNRi9A6r/MbcIBlob57WUg8ps=
-github.com/roadrunner-server/config/v4 v4.3.5/go.mod h1:nEKt+gejzSmcIpXJ7nXX6ST/e4B6DtbMNup4zmrjsAg=
+github.com/roadrunner-server/beanstalk/v4 v4.4.0 h1:M7aXIHAzahmRDQbJYRTPg15xNbzb6gE5EuqI1VwTVW8=
+github.com/roadrunner-server/beanstalk/v4 v4.4.0/go.mod h1:V3XbdhN19Qd8vIvWKpVH53E9an3XEI2f/v+zIHwWAwI=
+github.com/roadrunner-server/boltdb/v4 v4.5.0 h1:bOT49WMyF7oCU6aBbJqs/LoB/n5X02N9C5WG/hsn3o4=
+github.com/roadrunner-server/boltdb/v4 v4.5.0/go.mod h1:Dv9hT/8p8P0+ABe+dcuuFQg6pTMk040tlMx/gcRTFKs=
+github.com/roadrunner-server/centrifuge/v4 v4.2.0 h1:pRQ707/yQVqK+oUQ+KGZs6rOgAfWiutIR+4GqaOB+nU=
+github.com/roadrunner-server/centrifuge/v4 v4.2.0/go.mod h1:K9Tfaxuo7Q/63xIVJcFmZVyy21a9OF15vvEfxcDWkKA=
+github.com/roadrunner-server/config/v4 v4.4.0 h1:iRgwldlKQJpRZ3eUThBWIEEFxQT2Qg+QKY5HxLlCHzg=
+github.com/roadrunner-server/config/v4 v4.4.0/go.mod h1:WUnciU9NeJpcVukJCYDp4bF6xb+yRbCVi3gjJXWoZtg=
github.com/roadrunner-server/endure/v2 v2.2.1 h1:OkJUSd6+qqTcnl8in3bbyidEOmhO3B9uOVdR0avba28=
github.com/roadrunner-server/endure/v2 v2.2.1/go.mod h1:4eTAr3fASpdyqgFcbqVckOx68dZ4YPECecrcHvAuSdU=
github.com/roadrunner-server/errors v1.2.0 h1:qBmNXt8Iex9QnYTjCkbJKsBZu2EtYkQCM06GUDcQBbI=
github.com/roadrunner-server/errors v1.2.0/go.mod h1:z0ECxZp/dDa5RahtMcy4mBIavVxiZ9vwE5kByl7kFtY=
-github.com/roadrunner-server/fileserver/v4 v4.0.14 h1:B3tzThicz+66OjK8+mzpfkh07N/IbrjTMcXpsLME6Mw=
-github.com/roadrunner-server/fileserver/v4 v4.0.14/go.mod h1:wkAZ7iunfUlUviuler36MkLN2TMFR8gxyF48OKbVtjE=
+github.com/roadrunner-server/fileserver/v4 v4.1.0 h1:5O42/ESyNWfpM0eTlRz/mYjWP6GJkNSz47r2H/D1WFI=
+github.com/roadrunner-server/fileserver/v4 v4.1.0/go.mod h1:TtFW0RfNGyoMgqyhEE5tCUD7X29irA1D08Lv0MNioVI=
github.com/roadrunner-server/goridge/v3 v3.6.3 h1:8hCuPVK9BxIE4IGyNphK6KPAy9Kg6t5tHaItBIQKh2o=
github.com/roadrunner-server/goridge/v3 v3.6.3/go.mod h1:hB5+lHhl8msuHrngjKQ+Wx8B705AU0/2DlYGFXbjtgU=
-github.com/roadrunner-server/grpc/v4 v4.1.15 h1:WFnUSjJzMCUB1q0iPLM8ArsXrOuozL/A3LTC1C86wKU=
-github.com/roadrunner-server/grpc/v4 v4.1.15/go.mod h1:58TtayN1GFpmla7pSgl4SK6OtiCXIDNQ4Igma/nRx0I=
-github.com/roadrunner-server/gzip/v4 v4.0.13 h1:AnjOHmQQDptiROj4Bb56wnMR8nC7ZvFWkIy5Tqs/OYw=
-github.com/roadrunner-server/gzip/v4 v4.0.13/go.mod h1:05bHgPsuuXtmZ9Iwvl5vnRWsiVa/SrNbqVQUkZBnuHw=
-github.com/roadrunner-server/headers/v4 v4.1.1 h1:hNi+nrbeCPXDhdpJRiWm0/LMwLjLc7pdKKGGGr2tSdQ=
-github.com/roadrunner-server/headers/v4 v4.1.1/go.mod h1:Oh85fcYc14DxJe4mV3ifPSBB6bYiaSX2LDM6rRDDjKA=
-github.com/roadrunner-server/http/v4 v4.1.14 h1:7HQmzbgEX8Nplovpp1vgNSaMxBRozeF/rfJDfQLVCEE=
-github.com/roadrunner-server/http/v4 v4.1.14/go.mod h1:+YoTDU1Cg8U2Rosn6iui5P+E+5KZ/QMD0iKdYsxh7Yo=
-github.com/roadrunner-server/informer/v4 v4.1.10 h1:fNFt2FQA1MrXuNkFMfNxCfOl1NBE7g0BAqJyrzv6/8Y=
-github.com/roadrunner-server/informer/v4 v4.1.10/go.mod h1:Rzq7MdApa37Vhp44HUOxTFe6YL1cFvBSOxyc6VrugAs=
-github.com/roadrunner-server/jobs/v4 v4.4.1 h1:vHWHwyQgY9MSB2Aha8SPScsGh6j1BpCmyYPx8I2MGWA=
-github.com/roadrunner-server/jobs/v4 v4.4.1/go.mod h1:Ke7fNFKTIrNRjMBT9v5L8bU7BtlKQKaCasGpiSjCgrw=
-github.com/roadrunner-server/kafka/v4 v4.2.1 h1:TFUVbQzhZEeATh6mEhb5aHfhUArPBLCPwZQb5ZF949I=
-github.com/roadrunner-server/kafka/v4 v4.2.1/go.mod h1:nrsHNcfrJQ/GX7OnQ54mar8Ug1VP1k84m/T+mjR8CaA=
-github.com/roadrunner-server/kv/v4 v4.1.13 h1:WKGHPvc3Fu4DodlS14zAZv5GNjg8ngT9FBTmdO1eurs=
-github.com/roadrunner-server/kv/v4 v4.1.13/go.mod h1:K68llRju01tld0yJeJf12A0Bd20VWgLKCp78TTyNe3U=
-github.com/roadrunner-server/lock/v4 v4.2.0 h1:EGCPEYafzX6wI5rREg78C3ENyZ7B0KbRsrpQMHR+so4=
-github.com/roadrunner-server/lock/v4 v4.2.0/go.mod h1:9J2gRhb3la5SYn8POMo8BRC9MXcdg0/XVU72QzkfNzs=
-github.com/roadrunner-server/logger/v4 v4.1.10 h1:+eLS8KwIvpWTIkyjPCk7UKSnQ+xK7UAKstT8wOCV9uQ=
-github.com/roadrunner-server/logger/v4 v4.1.10/go.mod h1:HvbhVvfH8sxZXT5q/iMCnjO4NPWPBAo5MJRyYQ+n44Y=
+github.com/roadrunner-server/grpc/v4 v4.2.0 h1:wb0WxQNMpG+frI2N9H18j2RWG4aZlb9pvNr/hc94qWM=
+github.com/roadrunner-server/grpc/v4 v4.2.0/go.mod h1:jfI+iVJlCJNFIY1vsY7BNNV1aqfKsEMNu47m6CkGK+Q=
+github.com/roadrunner-server/gzip/v4 v4.1.0 h1:YtVnKUty3lsYUtpRkxsQoW2aPyDsSl3ndKtWEeVUas8=
+github.com/roadrunner-server/gzip/v4 v4.1.0/go.mod h1:aurznE//pHsr7FD1QitiVuNK1HRXUyM6pICJNlraSnA=
+github.com/roadrunner-server/headers/v4 v4.2.0 h1:CCgDX1B2EDt+9Hp5SkeG02LlnJXsHC+Hn1CpJ77zdmQ=
+github.com/roadrunner-server/headers/v4 v4.2.0/go.mod h1:ifLP7Y7tDAn3MD783c7v7VEH/Df3YB3cplcZmqN+pgI=
+github.com/roadrunner-server/http/v4 v4.2.0 h1:reZYAh0Kv9Lbhzbt0putM3Z4Yh0x1fDLhtl/Pwhm1gI=
+github.com/roadrunner-server/http/v4 v4.2.0/go.mod h1:eh8Z8GKhpYRAFX4ihTfzjXkcgc6SIVu7Sp9gIiwFLfI=
+github.com/roadrunner-server/informer/v4 v4.2.0 h1:LQuJwW7dg1Z47GtocOaOeepXJPDYB12K6zznXC3oeBQ=
+github.com/roadrunner-server/informer/v4 v4.2.0/go.mod h1:c59aVVYVke4nB69gYSHvVL1Ct+zOkf+SnA3ikPPhDUs=
+github.com/roadrunner-server/jobs/v4 v4.5.0 h1:+z7c+Y/iTvfh8ab1pwRozZnxbZKVVDQoYPh513Lqsdo=
+github.com/roadrunner-server/jobs/v4 v4.5.0/go.mod h1:Wn3PScAF5weQdcxCwIC42axxdP2XSNrsxYOHSvCNiGw=
+github.com/roadrunner-server/kafka/v4 v4.3.0 h1:v1SdC7Erh6PFBrPEC8bgwreuf1xHu7pfM8IBVd9uFb8=
+github.com/roadrunner-server/kafka/v4 v4.3.0/go.mod h1:/XGmZGE2yGxvjQrhU46L9IxO/7wG9/kk19IeGPZRFUo=
+github.com/roadrunner-server/kv/v4 v4.2.0 h1:B/3SHE6xAqwK3wDG9PpB1nGikwUPIdaKsiOhH5W1CoI=
+github.com/roadrunner-server/kv/v4 v4.2.0/go.mod h1:4E7zTQ8liypysI7DxtVGorPBRyqqFqHtrA3S2otbolE=
+github.com/roadrunner-server/lock/v4 v4.3.0 h1:iAVkb/Z2z0iUjVh9Qs07mFHSgsGBJDmV9gM2gk4Ieiw=
+github.com/roadrunner-server/lock/v4 v4.3.0/go.mod h1:9J2gRhb3la5SYn8POMo8BRC9MXcdg0/XVU72QzkfNzs=
+github.com/roadrunner-server/logger/v4 v4.2.0 h1:dKWC1hS6iTVFqRD1gUtAXqOFbNMjPKSCXaC9hbZwowo=
+github.com/roadrunner-server/logger/v4 v4.2.0/go.mod h1:wTLv/67y9rSaz5z1wGn2lpsOm2BRLBdvaKpJHbeBE/c=
github.com/roadrunner-server/memcached/v4 v4.1.10 h1:zkOQBi5IsVh5EFJAlcYgkuDFrSvvTMSdK3/52Pp0QB4=
github.com/roadrunner-server/memcached/v4 v4.1.10/go.mod h1:NGCxpRS8IjEkzzbR2foB6HS118y/eKMG72th6EjgvT4=
-github.com/roadrunner-server/memory/v4 v4.3.0 h1:uiSXy2K9yvkjAs3aku02M5I5ab+f88lPgXdRxQx4MYI=
-github.com/roadrunner-server/memory/v4 v4.3.0/go.mod h1:Aj5UseBK1186gLb3mRaykZIDAG7pyHUvmUQbZSgiGbQ=
-github.com/roadrunner-server/metrics/v4 v4.0.12 h1:IRxHOEKy6U+wENKtshkB3evc+pd55ebclR/b3fo84N4=
-github.com/roadrunner-server/metrics/v4 v4.0.12/go.mod h1:CnC2i1GyU9FMaxUXVjzBFYpePU9QIentG0EA748XkwU=
-github.com/roadrunner-server/nats/v4 v4.3.1 h1:GiEBvvCtmniW/RKr9Ac1X3s9WxCFNxt2Vlf1CCf2Xlc=
-github.com/roadrunner-server/nats/v4 v4.3.1/go.mod h1:tkj7QJZnnm/7IJsN2ziaWoeeLZMJL+VmgbchfiJ9/tY=
-github.com/roadrunner-server/otel/v4 v4.1.15 h1:paRS15e26QkOQSk0LwbUxk4CIdMiIvOh5L+czTQ7zVk=
-github.com/roadrunner-server/otel/v4 v4.1.15/go.mod h1:hwwl/VZ3K8vDdeRBnZz5CjHmoXcN2RdGO6srGrOgsaU=
-github.com/roadrunner-server/prometheus/v4 v4.0.14 h1:BjWMIVnm3lMSAbN42VMz7OYTO02UYIqHK6lKhe8IzV0=
-github.com/roadrunner-server/prometheus/v4 v4.0.14/go.mod h1:KYC4Ev6c5jTZUKXgRpwIspv/X4tRyUbJ/yyUkCbN6FY=
-github.com/roadrunner-server/proxy_ip_parser/v4 v4.0.12 h1:wwwdeD0KaSHgs0TQkVU+GAlvvryRLz+SYHU53JRiEWY=
-github.com/roadrunner-server/proxy_ip_parser/v4 v4.0.12/go.mod h1:hEqTlIP97wyBGgMFI1TNjspal52YwjrP+YQVwtcS9m0=
-github.com/roadrunner-server/redis/v4 v4.1.13 h1:OdbeevJDjKNWYN8YG49rpnC71K+QpoMrMBaub/DbuQE=
-github.com/roadrunner-server/redis/v4 v4.1.13/go.mod h1:HxJl58JzmtT4LesTLkXzFubWbWFXOXcIZst+KURCo9M=
+github.com/roadrunner-server/memory/v4 v4.4.0 h1:gfTD5HjiAvSt+RfXlhYxpfR6VMG4RHWBZxGt9a4JsM4=
+github.com/roadrunner-server/memory/v4 v4.4.0/go.mod h1:uvrOgyuzZxcDKmBgX1QZR+25t1M9BtqCwd4uw+h5YvU=
+github.com/roadrunner-server/metrics/v4 v4.1.0 h1:8ibAYnoRIpOb0mprzB1fWj5EDMPES9geToL/b7AT/Pw=
+github.com/roadrunner-server/metrics/v4 v4.1.0/go.mod h1:Tm1TclZfJrjH8iNehV92mmGF9u9/67fChfAAF0vilzE=
+github.com/roadrunner-server/nats/v4 v4.4.0 h1:6778/MSPMOCtCViFNuvIVig/2NJZQ2zKW+9vthZ2FW4=
+github.com/roadrunner-server/nats/v4 v4.4.0/go.mod h1:7fd33GKUopQ8EWnaoPXcPDJb8crCxZdsTxuwrvWezxE=
+github.com/roadrunner-server/otel/v4 v4.2.0 h1:x20Vyr0s/TNbWw5jIe6VH7MTTI7jSGbNN1w2QgsfVBc=
+github.com/roadrunner-server/otel/v4 v4.2.0/go.mod h1:w8GZeiY3eH4twPh08DHJnGIbWdtLGOuHcYCQ7EE3urw=
+github.com/roadrunner-server/prometheus/v4 v4.1.0 h1:bjFKOx8TGlBkCc7W3/s5kA9qCViBQUgMEsMWdYkyvjA=
+github.com/roadrunner-server/prometheus/v4 v4.1.0/go.mod h1:xjsX0u+69E13kP29BFsvWVmUv1W3rWzHKxKqaWFOjHI=
+github.com/roadrunner-server/proxy_ip_parser/v4 v4.1.0 h1:IwL0kpofMXhjF0v/8RivcqLK+Dl2dSF0QiS1sC549nE=
+github.com/roadrunner-server/proxy_ip_parser/v4 v4.1.0/go.mod h1:TlfsOu3KtJh3t0PBX8fDeRHxVM46JKGuWUUkYv7NBpo=
+github.com/roadrunner-server/redis/v4 v4.2.0 h1:0Qj+s0WMSRHwEBPxxL1LRGIinyg1JYlC+FP5hETr6+o=
+github.com/roadrunner-server/redis/v4 v4.2.0/go.mod h1:kYWUG05Tr6uX7+iLO+zhfEnM7+b7FKLuvVCluyCyGvk=
github.com/roadrunner-server/resetter/v4 v4.0.7 h1:bUm94zICb1ftweRZZK4Ij6EQ0gN8ieh+AjPDCx9a+pQ=
github.com/roadrunner-server/resetter/v4 v4.0.7/go.mod h1:0Bfqs6AscmK6olMzlXtyYRZlfjE9Sqy9RgEC3MxieOA=
-github.com/roadrunner-server/rpc/v4 v4.1.12 h1:s/uJ+HdQaR0kYU3GbOpr87obuscgHbO1k5yN1+/DkOc=
-github.com/roadrunner-server/rpc/v4 v4.1.12/go.mod h1:bk0O5L7ywaTCfR6V7KYrhCxWk1gZ7a9r2xF/+tGmf8A=
-github.com/roadrunner-server/sdk/v4 v4.3.0 h1:QdCK5kd/eLTnyLQsOOFtkd3CQK+NR4j/5PF5OpeHvA0=
-github.com/roadrunner-server/sdk/v4 v4.3.0/go.mod h1:7LIxYOBo306SncMKUxEy9Xd3GQWYHW0G4zuDHnKZ3l4=
-github.com/roadrunner-server/send/v4 v4.1.0 h1:RiEY0oR952HNFR44GaFdxBFgC4sXlNoRWdoo0v05ZcU=
-github.com/roadrunner-server/send/v4 v4.1.0/go.mod h1:enFaWTByFnUGbZzHMRka7G6o6BPsTf1QDTDr/v2uVNs=
-github.com/roadrunner-server/server/v4 v4.1.10 h1:UtRlKcUi0tbhKirN+ZiL6eylNfaCgDA8wkmoKxuWaAI=
-github.com/roadrunner-server/server/v4 v4.1.10/go.mod h1:rZC3ij1BPDhQrSNIatcsw4aisRFh4hICze7us+nGAok=
-github.com/roadrunner-server/service/v4 v4.2.0 h1:Y+4tI9g6i+ntInNy8lBpbUyTuGR94ff2GWNxOmjLM7k=
-github.com/roadrunner-server/service/v4 v4.2.0/go.mod h1:8cO1OvceK6z4/qKaBXjXsyWhP4IIVpkVgq/zR8kSEyk=
-github.com/roadrunner-server/sqs/v4 v4.3.1 h1:kaJrcgZHeLD9c6ZvAj8oESz+Kh9tF2nYtdAcl8eV6x8=
-github.com/roadrunner-server/sqs/v4 v4.3.1/go.mod h1:OxvW7Er/z0gjNi4ya/FEsbtJtsEoMvQtM7ehX/k217s=
-github.com/roadrunner-server/static/v4 v4.0.13 h1:PTP5kta8JLtVH8Hti2+hG/nOmD6WRvjNuecaw86LCFk=
-github.com/roadrunner-server/static/v4 v4.0.13/go.mod h1:7y7Tn52kZGSNcgksSrXSww62TqzJqHCmmaDfEwCLBi8=
-github.com/roadrunner-server/status/v4 v4.2.0 h1:VKfjslG/HEM9qQkSW7RETv7XyKLXrLOMVp58QmNuSgQ=
-github.com/roadrunner-server/status/v4 v4.2.0/go.mod h1:T33YVQoZrM/zrELK7EaUj5Zv+5x1U0VwKp865ry0oyw=
-github.com/roadrunner-server/tcp/v4 v4.0.12 h1:+6ixsJ0+2yslMOpmwxy4IXnBmeMUIEhY+/ZTVSDmpVg=
-github.com/roadrunner-server/tcp/v4 v4.0.12/go.mod h1:6tEU6K+Zf/SPOYxZhT4RppI9WvZdxMEfyN0JXwBU1BA=
+github.com/roadrunner-server/rpc/v4 v4.2.0 h1:Uc0bMfhQagzANySFvm8nvO8SayKZz3Ylmaneg0EEFxw=
+github.com/roadrunner-server/rpc/v4 v4.2.0/go.mod h1:KG5gCDkEXzCqd8k5HfB88L7cJXJRVXNH2V2lE7mcvy0=
+github.com/roadrunner-server/sdk/v4 v4.3.1 h1:DwmyzcKbprXz6JLnyR4fbOmgSC0qr528xC4uSwxRVSY=
+github.com/roadrunner-server/sdk/v4 v4.3.1/go.mod h1:YiYFMLx2zVcDjy52P8i/c++VJIY/qaUSdboN0PiPGok=
+github.com/roadrunner-server/send/v4 v4.2.0 h1:2i/kpFd+tOu97FmvO6OJzZvtV4BmDHg1kaCDPTwbeZk=
+github.com/roadrunner-server/send/v4 v4.2.0/go.mod h1:1GxkbifRy4LqVw66McQPLGXy9klNfm4o4VMXeioQ/bk=
+github.com/roadrunner-server/server/v4 v4.2.0 h1:MX8cJ317kQnmL3kInrC3ynZzZVdNgyg+8jHxZy/JKDg=
+github.com/roadrunner-server/server/v4 v4.2.0/go.mod h1:jZUuZ3Pz6NCVAU3RTUnVQFhicf3bnH5Y3820jQZHzkc=
+github.com/roadrunner-server/service/v4 v4.3.0 h1:giZGjyxSfk3TOLOphgswveU2Z6xQ0QtCxc4XgQpwfpA=
+github.com/roadrunner-server/service/v4 v4.3.0/go.mod h1:jFYm2Yo5Wedk1qkZVqOBJlVllQVdDCTFt0/OjOzmeDc=
+github.com/roadrunner-server/sqs/v4 v4.4.0 h1:GHrqHsdSLau0XGfcLgWZaJehuuS/foPq7NEaF2+kyws=
+github.com/roadrunner-server/sqs/v4 v4.4.0/go.mod h1:SqxuDN1IvLi+Kj3+EFOHRR/F8tIkY8n1NxT6TyAUNMA=
+github.com/roadrunner-server/static/v4 v4.1.0 h1:dVLwch0p8re3+hDjD0C9/mfpVawq1Bqy2zt1vxy5hqQ=
+github.com/roadrunner-server/static/v4 v4.1.0/go.mod h1:ItaMMx84oyRba6V/zLUS6im4Ulb9oq5/Sa0Uh8r843Q=
+github.com/roadrunner-server/status/v4 v4.3.0 h1:ffdR38t/agWcF2c6brMLD06eZfEKF83U6WmFhNpZswo=
+github.com/roadrunner-server/status/v4 v4.3.0/go.mod h1:GE4zk+2M9x6S/1vVXXWq7/69N2i8992XrsnuUwZR2t4=
+github.com/roadrunner-server/tcp/v4 v4.1.0 h1:HpWv46FK/vFLuPi0AF2gfynXrc4EUWaPzHDN2SDv2mA=
+github.com/roadrunner-server/tcp/v4 v4.1.0/go.mod h1:GCjKNGC4HlDO5+OOYxNWliP2zGWUG25Z5Dl67B/h7jA=
github.com/roadrunner-server/tcplisten v1.3.0 h1:VDd6IbP8oIjm5vKvMVozeZgeHgOcoP0XYLOyOqcZHCY=
github.com/roadrunner-server/tcplisten v1.3.0/go.mod h1:VR6Ob5am0oEuLMOeLiVvQxG9ShykAEgrlvZddX8EfoU=
github.com/robfig/cron v1.2.0 h1:ZjScXvvxeQ63Dbyxy76Fj3AT3Ut0aKsyd2/tl3DTMuQ=
@@ -1179,8 +1177,6 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8=
github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
-github.com/temporalio/roadrunner-temporal/v4 v4.2.7 h1:ibs5jgjtsPrXMHTqdLIvl/rJET3qxmt7s3VmclfO9ec=
-github.com/temporalio/roadrunner-temporal/v4 v4.2.7/go.mod h1:wUGOOfupPiRaaqvVgQpPOp1l/ce7TAMrAJqMUf50/sE=
github.com/tinylib/msgp v1.1.6/go.mod h1:75BAfg2hauQhs3qedfdDZmWAPcFMAvJE5b9rGOMufyw=
github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0=
github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw=
@@ -1313,8 +1309,8 @@ golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.10.0 h1:LKqV2xt9+kDzSTfOhx4FrkEBcMrAgHSYgzywV9zcGmM=
-golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I=
+golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA=
+golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio=
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@@ -1439,8 +1435,8 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
-golang.org/x/net v0.11.0 h1:Gi2tvZIJyBtO9SDr1q9h5hEQCp/4L2RQ+ar0qjx2oNU=
-golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ=
+golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50=
+golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -1684,8 +1680,8 @@ golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k=
golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s=
-golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg=
-golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM=
+golang.org/x/tools v0.11.0 h1:EMCa6U9S2LtZXLAMoWiR/R8dAQFRqbAitmbJ2UKhoi8=
+golang.org/x/tools v0.11.0/go.mod h1:anzJrxPjNtfgiYQYirP2CPGzGLxrH2u2QBhn6Bf3qY8=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -1987,7 +1983,6 @@ gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc=
gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc=
-gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
gopkg.in/validator.v2 v2.0.0-20200605151824-2b28d334fa05/go.mod h1:o4V0GXN9/CAmCsvJ0oXYZvrZOe7syiDZSN1GWGZTGzc=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
diff --git a/schemas/config/3.0.schema.json b/schemas/config/3.0.schema.json
index 5134dba0..bba1e50a 100644
--- a/schemas/config/3.0.schema.json
+++ b/schemas/config/3.0.schema.json
@@ -88,6 +88,39 @@
"server": {
"type": "object",
"properties": {
+ "after_init": {
+ "description": "Execute command or script after RR allocated a pool of workers. Command executed on the every pool allocation. For example, if you have 2 plugins: `http` and `grpc`, the `after_init` command would be fired twice.",
+ "type": "object",
+ "properties": {
+ "command": {
+ "description": "Command to execute. It can be script or binary",
+ "type": "string",
+ "examples": [
+ "php not-worker.php",
+ "sh script.sh",
+ "start script.bat"
+ ]
+ },
+ "exec_timeout": {
+ "description": "Script execute timeout",
+ "$ref": "#/definitions/Duration",
+ "default": "60s"
+ },
+ "env": {
+ "description": "Environment variables for the worker processes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "patternProperties": {
+ "^[a-zA-Z0-9._-]+$": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
"on_init": {
"description": "Execute command or script before RR starts allocating workers",
"type": "object",
@@ -1299,6 +1332,34 @@
"description": "AMQP Uri to connect to the rabbitmq server https://www.rabbitmq.com/uri-spec.html",
"type": "string",
"default": "amqp://guest:[email protected]:5672"
+ },
+ "tls": {
+ "description": "",
+ "properties": {
+ "key": {
+ "description": "Path to the key file",
+ "type": "string"
+ },
+ "cert": {
+ "description": "Path to the cert file",
+ "type": "string"
+ },
+ "root_ca": {
+ "description": "Path to the CA certificate, defines the set of root certificate authorities that servers use if required to verify a client certificate. Used with the `client_auth_type` option.",
+ "type": "string"
+ },
+ "client_auth_type": {
+ "type": "string",
+ "default": "no_client_certs",
+ "enum": [
+ "request_client_cert",
+ "require_any_client_cert",
+ "verify_client_cert_if_given",
+ "no_client_certs",
+ "require_and_verify_client_cert"
+ ]
+ }
+ }
}
}
},
@@ -1522,79 +1583,35 @@
"type": "integer",
"default": 10
},
- "topic": {
- "description": "Topic name: https://kafka.apache.org/intro#intro_concepts_and_terms",
- "type": "string",
- "default": null
- },
- "partitions_offsets": {
- "description": "Offsets for the partitions",
- "type": "object",
- "properties": {
- "itemType": {
- "$ref": "#/definitions/HashMapInt"
- },
- "itemCount": {
- "$ref": "#/definitions/Hashmap"
- }
- },
- "default": null
- },
- "group_id": {
- "type": "string",
- "description": "Kafka group id",
- "default": "default"
- },
- "max_open_requests": {
- "description": "Max number of outstanding requests a connection is allowed to have before sending on it blocks",
- "type": "integer",
- "default": 5
- },
- "client_id": {
- "description": "A user provided string sent with every request to the brokers for logging, debugging, and auditing purposes.",
- "type": "string",
- "default": "roadrunner"
- },
- "kafka_version": {
- "description": "Kafka version.",
- "type": "string",
- "default": "1.0.0.0"
- },
- "create_topics": {
- "description": "Create topics configuration. If topic doesn't exist, RR may create a topic with provided configuration",
- "type": "object",
- "properties": {
- "replication_factor": {
- "description": "Replication factor for the data stored across several Kafka brokers.",
- "type": "integer",
- "default": 1
- },
- "replica_assignment": {
- "type": "object",
- "description": "Partition replica assigment.",
- "default": null
- },
- "config_entries": {
- "type": "object",
- "description": "Topic creation options. Note: 'compression:type' will be replaced with 'compression.type', so ':' -> '.'. All options should use ':' as the delimiter.",
- "default": null
- }
- }
+ "auto_create_topics_enable": {
+ "description": "Auto create topic for the consumer/producer",
+ "type": "boolean",
+ "default": false
},
"producer_options": {
"description": "Kafka producer options",
"type": "object",
"properties": {
- "max_message_bytes": {
- "type": "integer",
- "default": 1000000
+ "disable_idempotent": {
+ "description": "Disable_idempotent disables idempotent produce requests, opting out of Kafka server-side deduplication in the face of reissued requests due to transient network problems. Idempotent production is strictly a win, but does require the IDEMPOTENT_WRITE permission on CLUSTER (pre Kafka 3.0), and not all clients can have that permission.",
+ "type": "boolean",
+ "default": false
},
"required_acks": {
- "description": "The level of acknowledgement reliability needed from the broker.",
+ "description": "Sets the required acks for produced records",
+ "type": "string",
+ "default": "AllISRAcks",
+ "enum": [
+ "NoAck",
+ "LeaderAck",
+ "AllISRAck"
+ ]
+ },
+ "max_message_bytes": {
"type": "integer",
- "default": -1
+ "default": 1000012
},
- "timeout": {
+ "request_timeout": {
"description": "The maximum duration in seconds the broker will wait the receipt of the number of required_acks.",
"default": 10,
"type": "integer"
@@ -1610,41 +1627,114 @@
"zstd"
]
},
- "compression_level": {
+ "delivery_timeout": {
"description": "The level of compression to use on messages.",
"type": "integer",
"default": null
},
- "idempotent": {
+ "transaction_timeout": {
"description": "If enabled, the producer will ensure that exactly one copy of each message is written.",
"type": "boolean",
"default": false
}
}
},
+ "group_options": {
+ "description": "group_options sets the consumer group for the client to join and consume in. This option is required if using any other group options.",
+ "properties": {
+ "group_id":{
+ "description": "Kafka group ID",
+ "type": "string",
+ "default": null
+ },
+ "block_rebalance_on_poll":{
+ "description": "Switches the client to block rebalances whenever you poll",
+ "type": "boolean",
+ "default": false
+ }
+ }
+ },
"consumer_options": {
"description": "Kafka consumer options",
"type": "object",
"properties": {
- "min_fetch_message_size": {
- "description": "The minimum number of message bytes to fetch in a request",
- "type": "integer",
- "default": 1
+ "topics": {
+ "description": "List of the topics to consume. Regex also supported",
+ "type": "array",
+ "default": null
+ },
+ "consume_regexp": {
+ "description": "consume_regexp sets the client to parse all topics passed to `topics` as regular expressions. When consuming via regex, every metadata request loads *all* topics, so that all topics can be passed to any regular expressions. Every topic is evaluated only once ever across all regular expressions; either it permanently is known to match, or is permanently known to not match.",
+ "type": "boolean",
+ "default": false
},
"max_fetch_message_size": {
"type": "integer",
- "description": "The default number of message bytes to fetch from the broker in each request",
- "default": 1000000
+ "default": 50000
},
- "session_timeout": {
+ "min_fetch_message_size": {
"type": "integer",
- "description": "The timeout in seconds used to detect consumer failures when using Kafka's group management facility.",
- "default": 10
+ "default": 1
},
- "heartbeat_interval": {
- "type": "integer",
- "description": "The expected time in seconds between heartbeats to the consumer coordinator when using Kafka's group management facilities",
- "default": 3
+ "consume_offset": {
+ "description": "consumer_offset sets the offset to start consuming from, or if OffsetOutOfRange is seen while fetching, to restart consuming from.",
+ "type": "object",
+ "properties": {
+ "type":{
+ "description": "Partition offset type",
+ "type": "string",
+ "default": null,
+ "enum": [
+ "AtEnd",
+ "At",
+ "AfterMilli",
+ "AtStart",
+ "Relative",
+ "WithEpoch"
+ ]
+ },
+ "value": {
+ "description": "Value for the: At, AfterMilli, Relative and WithEpoch offsets",
+ "type": "integer",
+ "default": 0
+ }
+ }
+ },
+ "consume_partitions": {
+ "patternProperties": {
+ "^[a-zA-Z0-9._-]+$": {
+ "description": "Topic to consume",
+ "type":"string",
+ "default": null,
+ "patternProperties": {
+ "^[0-9]+$":{
+ "description": "Partition number",
+ "type": "integer",
+ "default": null,
+ "properties": {
+ "type":{
+ "description": "Partition offset type",
+ "type": "string",
+ "default": null,
+ "enum": [
+ "AtEnd",
+ "At",
+ "AfterMilli",
+ "AtStart",
+ "Relative",
+ "WithEpoch"
+ ]
+ },
+ "value": {
+ "description": "Value for the: At, AfterMilli, Relative and WithEpoch offsets",
+ "type": "integer",
+ "default": 0
+ }
+ }
+ }
+ }
+ }
+ }
}
}
}
@@ -2135,6 +2225,11 @@
"type": "object",
"$ref": "#/definitions/Hashmap"
},
+ "timeout_stop_sec": {
+ "description": "Timeout for the process stop operation",
+ "type":"integer",
+ "default": 5
+ },
"process_num": {
"description": "Number of copies (processes) to start per command",
"type": "integer",
@@ -2373,9 +2468,81 @@
"description": "Kafka jobs driver",
"type": "object",
"properties": {
- "addr": {
- "description": "Kafka server addresses",
- "type": "array"
+ "brokers": {
+ "description": "Kafka broker addresses",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "127.0.0.1:9092",
+ "127.0.0.1:9002"
+ ]
+ }
+ },
+ "sasl": {
+ "description": "Mechanism used for the authentication",
+ "properties": {
+ "mechanism":{
+ "description": "Kafka brokers",
+ "type": "string",
+ "items": {
+ "type": "string",
+ "enum": [
+ "aws_msk_iam",
+ "plain",
+ "SCRAM-SHA-256",
+ "SCRAM-SHA-512"
+ ]
+ }
+ },
+ "username":{
+ "description": "Username for authentication",
+ "type": "string",
+ "default": null
+ },
+ "password":{
+ "description": "Password for authentication",
+ "type": "string",
+ "default": null
+ },
+ "nonce":{
+ "description": "Optional for the SHA auth types. Empty by default",
+ "type": "string",
+ "default": null
+ },
+ "is_token":{
+ "description": "If true, suffixes the tokenauth=true extra attribute to the initial authentication message. Set this to true if the user and pass are from a delegation token. Optional for the SHA auth types. Empty by default",
+ "type": "boolean",
+ "default": false
+ },
+ "zid":{
+ "description": "Zid is an optional authorization ID to use in authenticating",
+ "type": "string",
+ "default": null
+ },
+
+
+ "access_key":{
+ "description": "AWS Access key ID",
+ "type": "string",
+ "default": null
+ },
+ "secret_key":{
+ "description": "AWS Secret Access key ID",
+ "type": "string",
+ "default": null
+ },
+ "session_token":{
+ "description": "SessionToken, if non-empty, is a session / security token to use for authentication. See the following link for more details: https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html",
+ "type": "string",
+ "default": null
+ },
+ "user_agent":{
+ "description": "UserAgent is the user agent to for the client to use when connecting to Kafka, overriding the default franz-go/<runtime.Version()>/<hostname>. Setting a UserAgent allows authorizing based on the aws:UserAgent condition key; see the following link for more details: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-useragent",
+ "type": "string",
+ "default": null
+ }
+ }
}
}
},