diff options
author | Valery Piashchynski <[email protected]> | 2022-08-18 15:27:03 +0200 |
---|---|---|
committer | GitHub <[email protected]> | 2022-08-18 15:27:03 +0200 |
commit | 6a57268eafbc1407e4b242d0458a6df659c523d1 (patch) | |
tree | 8c86b149a82041a959e8b39548edf2f4b4df7aea | |
parent | e0e03f88b8ca9376bd2af34c62053e5b960ac4a6 (diff) | |
parent | 3d2381075a98f3b65f645fbcc66ad0280c8069ec (diff) |
[#1263]: feat: release `v2.11.0`v2.11.0
-rw-r--r-- | .rr.yaml | 99 | ||||
-rw-r--r-- | CHANGELOG.md | 297 | ||||
-rw-r--r-- | go.mod | 84 | ||||
-rw-r--r-- | go.sum | 165 | ||||
-rw-r--r-- | schemas/config/2.0.schema.json | 365 |
5 files changed, 583 insertions, 427 deletions
@@ -543,22 +543,87 @@ http: # Error if empty. NEW_RELIC_LICENSE_KEY env variable should be set if the license_key key is empty. If both empty - error. license_key: "key" - # RFC 7234 (partially) RR Cache middleware + # RFC 7234 RR Cache middleware + # + # Link: https://github.com/darkweak/souin cache: - # Cache driver - # - # Default: memory. Available drivers: memory - driver: memory - - # Methods to cache - # - # According to the RFC, we can cache only GET, HEAD or POST requests. Currently, only GET method supported. - cache_methods: [ "GET", "HEAD", "POST" ] - - # Configuration for the driver - # - # Empty for the memory - config: { } + api: + basepath: /souin-api + prometheus: + basepath: /anything-for-prometheus-metrics + souin: + basepath: /anything-for-souin + cache_keys: + '.*\.css': + disable_body: true + disable_host: true + disable_method: true + cdn: + api_key: XXXX + provider: fastly + strategy: soft + dynamic: true + default_cache: + allowed_http_verbs: + - GET + - POST + - HEAD + cache_name: Souin + distributed: true + headers: + - Authorization + key: + disable_body: true + disable_host: true + disable_method: true + etcd: + configuration: + endpoints: + - etcd-1:2379 + - etcd-2:2379 + - etcd-3:2379 + olric: + url: 'olric:3320' + regex: + exclude: 'ARegexHere' + stale: 1000s + timeout: + backend: 10s + cache: 20ms + ttl: 1000s + default_cache_control: no-store + log_level: INFO + ssl_providers: + - traefik + urls: + 'https:\/\/domain.com\/first-.+': + ttl: 1000s + 'https:\/\/domain.com\/second-route': + ttl: 10s + headers: + - Authorization + 'https?:\/\/mysubdomain\.domain\.com': + ttl: 50s + headers: + - Authorization + - 'Content-Type' + default_cache_control: public, max-age=86400 + ykeys: + The_First_Test: + headers: + Content-Type: '.+' + The_Second_Test: + url: 'the/second/.+' + The_Third_Test: + The_Fourth_Test: + surrogate_keys: + The_First_Test: + headers: + Content-Type: '.+' + The_Second_Test: + url: 'the/second/.+' + The_Third_Test: + The_Fourth_Test: # File uploading settings. uploads: @@ -1413,7 +1478,9 @@ jobs: - 1: 0 - 2: 0 - # not supported in beta.3 + # Kafka group id + # + # Optional, default - empty group_id: "foo" # Max number of outstanding requests a connection is allowed to have before sending on it blocks diff --git a/CHANGELOG.md b/CHANGELOG.md index 46fa9f9b..656eed39 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,79 +1,21 @@ # CHANGELOG -## v2.11.0-rc.1 (11.08.2022) - -## ๐ New: - -- โ๏ธ **gRPC plugin**: Reflection server configuration updated. To prevent issues regarding incorrectly checked/parsed proto imports, we introduce an updated config: - -To activate a reflection server, use the following option: - -1. If you don't have any imports. -```yaml - reflection_server: {} -``` - -2. If you use definitions from other `.proto` files by importing them: -```yaml - # other options ... - - proto: - - "path/to/main/proto1.proto" - - "path/to/main/proto2.proto" - - reflection_server: - - "path/to/include.proto" - - "path/to/include2.proto" - - # other options ... -``` - -- โ๏ธ **Kafka plugin**: Consumer groups. Starting from the `rc.1` if you specify `group_id`, RR will automatically connect to that CG with provided topic name. - -```yaml -jobs: - num_pollers: 10 - pipeline_size: 100000 - timeout: 100 - pool: - num_workers: 10 - allocate_timeout: 60s - destroy_timeout: 60s - - pipelines: - test-1: - driver: kafka - config: - # other options ... - group_id: "foo-1" # <----- NEW -``` - -## ๐ฉน Fixes: - -- ๐ **Server plugin**: use the `allocate_timeout` from the pool to wait for the `tcp/unix` socket connection from the PHP worker. [BUG](https://github.com/roadrunner-server/roadrunner/issues/1226), (thanks @Warxcell) - -## ๐งน Chore: - -- ๐งฝ **Logger plugin**: use the parsable timestamp format for the `raw` logger mode. [CH](https://github.com/roadrunner-server/roadrunner/issues/1236), (thanks @ilsenem) - -## ๐ง Maintenance: - -- Temporal `GO-SDK` and `API` updated to the latest versions. - --- - -## v2.11.0-beta.3 (07.08.2022) +## v2.11.0 (18.08.2022) ## โ ๏ธ NewRelic middleware was removed. Please, use [OTEL middleware instead](https://roadrunner.dev/docs/middleware-otel/2.x/en) ## โ ๏ธ In `2.12.0` we plan to replace `websockets` and `broadcast` plugins with the `centrifuge` plugin. However, if you still need a RR with these deprecated plugins, you may use `Velox` to build your custom build. ## ๐ New: +- โ๏ธ **[BETA]: RoadRunner**: Can now be embedded in other go programs. [PR](https://github.com/roadrunner-server/roadrunner/pull/1214), (thanks @khepin) +- โ๏ธ **gRPC Plugin**: Implement Google's `gRPC` [errors API](https://cloud.google.com/apis/design/errors). The exception might be passed as a `Status` structure in the `Metadata` (key - `error`) to be parsed and returned to the user w/o worker restart. NOTE: `Status` structure should be marshaled via `proto` marshaller, not `json`. [FR](https://github.com/roadrunner-server/roadrunner/issues/1001) +- โ๏ธ **Logger Plugin**: Get rid of the `context deadline exceeded` error on worker's allocation. We updated the error message with the link to the docs with the most common causes for the `worker allocation failed` error: https://roadrunner.dev/docs/known-issues-allocate-timeout/2.x/en. Feel free to add your cases here :) - โ๏ธ **CLI**: New CLI command to pause, resume, destroy and list Jobs. [FR](https://github.com/roadrunner-server/roadrunner/issues/1088), (thanks @hustlahusky) - โ๏ธ **Velox**: New configuration option: `folder`, which can be used to specify the folder with the plugin in the repository. (thanks, @darkweak) - โ๏ธ **Velox**: Velox now respects the plugin's `replace` directives. (thanks, @darkweak) -- โ๏ธ **Cache plugin**: RR now uses a great cache (RFC 7234) plugin made by @darkweak +- โ๏ธ **Cache plugin**: RR now uses a [great cache](https://github.com/darkweak/souin) (RFC 7234) plugin made by @darkweak - โ๏ธ **[BETA] Kafka plugin**: New Kafka driver for the Jobs plugin. [FR](https://github.com/roadrunner-server/roadrunner/issues/1128), (thanks, @Smolevich) - โ๏ธ **Temporal plugin**: Temporal now uses a new reset mechanism to prevent WF worker restarts on activity worker failure - โ๏ธ **Temporal plugin**: Temporal plugin now supports a TSL-based authentication with the key and certificate. @@ -87,237 +29,20 @@ temporal: # other options ``` -Kafka configuration: -```yaml - test-local-6: - # Driver name - # - # This option is required - driver: kafka - - # Driver's configuration - # - # Should not be empty - config: - - # Pipeline priority - # - # If the job has a priority set to 0, it will inherit the pipeline's priority. Default: 10. - priority: 1 - - # Topic name: https://kafka.apache.org/intro#intro_concepts_and_terms - # - # This option is required and should not be empty. - topic: test-1 - - # Offsets for the partitions - # - # This option is optional. If empty, RR will read from the partition 0, OffsetNewest. Should be a positive number. - # We also have 2 exceptional cases for the offsets (negative numbers): - # -1: OffsetNewest - stands for the log head offset, i.e. the offset that will be assigned to the following message - # that will be produced to the partition. - # -2: OffsetOldest - stands for the oldest offset available on the broker for a partition. - partitions_offsets: - - 0: 0 - - 1: 0 - - 2: 0 - - # not supported in beta.3 - group_id: "foo" - - # Max number of outstanding requests a connection is allowed to have before sending on it blocks - # - # Optional, default: 5. - # Throughput can improve, but message ordering is not guaranteed if producer_options.idempotent is disabled, see: - # https://kafka.apache.org/protocol#protocol_network - # https://kafka.apache.org/28/documentation.html#producerconfigs_max.in.flight.requests.per.connection - max_open_requests: 100 - - # A user-provided string sent with every request to the brokers for logging, debugging, and auditing purposes. - # - # Optional, default: roadrunner - client_id: "roadrunner" - - # Kafka version. - # - # Defaults to the oldest supported stable version (1.0.0.0). Since Kafka provides - # backwards-compatibility, setting it to a version older than you have - # will not break anything, although it may prevent you from using the - # latest features. Setting it to a version greater than you are actually - # running may lead to random breakage. - kafka_version: 3.2.0.0 - - # Create topics configuration. If the topic doesn't exist, RR may create a topic with the provided configuration - # - # Optional, default: null. - create_topics: - - # Replication factor for the data stored across several Kafka brokers. - # - # Optional, default: 1. Docs: https://kafka.apache.org/documentation/#replication - replication_factor: 1 - - # Partition replica assignment. - # - # Optional, default: null. Docs: https://kafka.apache.org/documentation/#basic_ops_cluster_expansion - replica_assignment: - 1: [ 1,2,3 ] - 2: [ 2,3 ] - - # Topic creation options. - # - # Optional, default: null. Docs: https://kafka.apache.org/documentation/#configuration - # Note: 'compression:type' will be replaced with 'compression.type', so ':' -> '.'. - # All options should use ':' as the delimiter. - config_entries: - compression:type: snappy - - # Kafka producer options - # - # Optional, default: depends on the Kafka version - producer_options: - - # Maximum permitted size of a message. - # - # Optional, default: 1000000. Should be set equal to or smaller than the broker's `message.max.bytes`. - max_message_bytes: 1000 - - # The level of acknowledgment reliability needed from the broker. Equivalent to the `request.required.acks` - # RequiredAcks is used in Produce Requests to tell the broker how many replica acknowledgements - # it must see before responding. Any of the constants defined here are valid. On broker versions - # prior to 0.8.2.0 any other positive int16 is also valid (the broker will wait for that many - # acknowledgements) but in 0.8.2.0 and later this will raise an exception (it has been replaced - # by setting the `min.isr` value in the brokers configuration). - # - # Optional, default: -1 - # Should be one of the following values: - # 0: NoResponse - doesn't send any response. - # 1: WaitForLocal - waits for only the local commit to succeed before responding. - # -1 WaitForAll, (default) - waits for all in-sync replicas to commit before responding. - # The minimum number of in-sync replicas is configured on the broker via - # the `min.insync.replicas` configuration key. - required_acks: -1 - - # The maximum duration in seconds the broker will wait for the receipt of the number of - # required_acks. - # - # Optional, default: 10 - timeout: 10 - - # The type of compression to use on messages (defaults to no compression). - # Similar to `compression.codec` setting of the JVM producer. - # - # Optional, default: none. Possible values: none, gzip, snappy, lz4, zstd - compression_codec: snappy - - # The level of compression to use on messages. The meaning depends - # on the actual compression type used and defaults to default compression - # level for the codec. - # - # Optional, default: depends on compression_codec option. - compression_level: 10 - - # If enabled, the producer will ensure that exactly one copy of each message is - # written. - # - # Optional, default false - idempotent: false - - # Kafka consumer options - consumer_options: - - # The timeout in seconds is used to detect consumer failures when using Kafka's group management facility. - # The consumer sends periodic heartbeats to indicate its liveness to the broker. - # If no heartbeats are received by the broker before the expiration of this session timeout, - # then the broker will remove this consumer from the group and initiate a rebalance. - # Note that the value must be in the allowable range as configured in the broker configuration - # by `group.min.session.timeout.ms` and `group.max.session.timeout.ms` - # - # Optional, default: 10 - session_timeout: 60 - - # The expected time in seconds between heartbeats to the consumer coordinator when using Kafka's group - # management facilities. Heartbeats are used to ensure that the consumer's session stays active and - # to facilitate rebalancing when new consumers join or leave the group. - # The value must be set lower than 'session_timeout', but typically should be set no - # higher than 1/3 of that value. - # It can be adjusted even lower to control the expected time for normal rebalances. - # - # Optional, default: 3 - heartbeat_interval: 10 - -``` - ## ๐ฉน Fixes: +- ๐ **Server plugin**: use the `allocate_timeout` from the pool to wait for the `tcp/unix` socket connection from the PHP worker. [BUG](https://github.com/roadrunner-server/roadrunner/issues/1226), (thanks @Warxcell) - ๐ **Velox**: Fix panic when no `github` option is specified in the configuration. - -## ๐ง Maintenance: - -- All plugins, including RR, now use Go 1.19 - ---- - -## v2.11.0-beta.1 (18.07.2022) - -## ๐ New: - -- โ๏ธ **[BETA]: RoadRunner**: Can now be embedded in other go programs. [PR](https://github.com/roadrunner-server/roadrunner/pull/1214), (thanks @khepin) -- โ๏ธ **gRPC Plugin**: Implement Google's `gRPC` [errors API](https://cloud.google.com/apis/design/errors). Exception might be passed as a `Status` structure in the `Metadata` (key - `error`) to be parsed and returned to the user w/o worker restart. NOTE: `Status` structure should be marshaled via `proto` marshaller, not `json`. [FR](https://github.com/roadrunner-server/roadrunner/issues/1001) -- โ๏ธ **gRPC Plugin**: `gRPC` reflection server. [GoDocs](https://github.com/grpc/grpc-go/blob/master/Documentation/server-reflection-tutorial.md). -- โ๏ธ **Logger Plugin**: Get rid of the `context deadline exceeded` error on worker's allocation. We updated the error message with the link to the docs with the most common causes for the `worker allocation failed` error: https://roadrunner.dev/docs/known-issues-allocate-timeout/2.x/en. Feel free to add your cases here :) - -The reflection server might be activated to use [`grpc_cli`](https://github.com/grpc/grpc/blob/master/doc/command_line_tool.md), [`grpc-curl`](https://github.com/fullstorydev/grpcurl), [`grpc-ui`](https://github.com/fullstorydev/grpcui), or similar tools to intercept grpc payloads. - -Configuration: -```yaml -grpc: - listen: "tcp://localhost:9001" - - # GRPC reflection server [SINCE 2.11] - # - # This option is optional. The reflection server might be activated to use `grpc_cli`, `grpc-ui`, `grpc-curl`, or similar tools to intercept grpc payloads. - enable_reflection_server: false - proto: - - "first.proto" - - "second.proto" -``` - ---- - -## v2.11.0-beta.2 (28.07.2022) - -## ๐ฉน Fixes: - -- โ๏ธ **gRPC Plugin**: Fix issue when some proto files might not be added automatically to use a reflection server. - ๐ **SDK**: Use `pool.allocate_timeout` for the sockets/tcp relays instead of silently used of `relay_timeout`. ---- - -## v2.11.0-beta.1 (18.07.2022) - -## ๐ New: - -- โ๏ธ **[BETA]: RoadRunner**: Can now be embedded in other go programs. [PR](https://github.com/roadrunner-server/roadrunner/pull/1214), (thanks @khepin) -- โ๏ธ **gRPC Plugin**: Implement Google's `gRPC` [errors API](https://cloud.google.com/apis/design/errors). Exception might be passed as a `Status` structure in the `Metadata` (key - `error`) to be parsed and returned to the user w/o worker restart. NOTE: `Status` structure should be marshaled via `proto` marshaller, not `json`. [FR](https://github.com/roadrunner-server/roadrunner/issues/1001) -- โ๏ธ **gRPC Plugin**: `gRPC` reflection server. [GoDocs](https://github.com/grpc/grpc-go/blob/master/Documentation/server-reflection-tutorial.md). -- โ๏ธ **Logger Plugin**: Get rid of the `context deadline exceeded` error on worker's allocation. We updated the error message with the link to the docs with the most common causes for the `worker allocation failed` error: https://roadrunner.dev/docs/known-issues-allocate-timeout/2.x/en. Feel free to add your cases here :) +## ๐งน Chore: -The reflection server might be activated to use [`grpc_cli`](https://github.com/grpc/grpc/blob/master/doc/command_line_tool.md), [`grpc-curl`](https://github.com/fullstorydev/grpcurl), [`grpc-ui`](https://github.com/fullstorydev/grpcui), or similar tools to intercept grpc payloads. +- ๐งฝ **Logger plugin**: use the parsable timestamp format for the `raw` logger mode. [CH](https://github.com/roadrunner-server/roadrunner/issues/1236), (thanks @ilsenem) -Configuration: -```yaml -grpc: - listen: "tcp://localhost:9001" +## ๐ง Maintenance: - # GRPC reflection server [SINCE 2.11] - # - # This option is optional. The reflection server might be activated to use `grpc_cli`, `grpc-ui`, `grpc-curl`, or similar tools to intercept grpc payloads. - enable_reflection_server: false - proto: - - "first.proto" - - "second.proto" -``` +- Temporal `GO-SDK` and `API` updated to the latest versions. +- All plugins, including RR, now use Go 1.19 --- @@ -9,44 +9,44 @@ require ( github.com/fatih/color v1.13.0 github.com/joho/godotenv v1.4.0 github.com/olekukonko/tablewriter v0.0.5 - github.com/roadrunner-server/amqp/v2 v2.17.13 - github.com/roadrunner-server/api/v2 v2.21.0 - github.com/roadrunner-server/beanstalk/v2 v2.16.10 - github.com/roadrunner-server/boltdb/v2 v2.16.11 - github.com/roadrunner-server/broadcast/v2 v2.13.2 - github.com/roadrunner-server/config/v2 v2.15.1 - github.com/roadrunner-server/endure v1.4.3 + github.com/roadrunner-server/amqp/v2 v2.17.14 + github.com/roadrunner-server/api/v2 v2.21.1 + github.com/roadrunner-server/beanstalk/v2 v2.16.11 + github.com/roadrunner-server/boltdb/v2 v2.16.12 + github.com/roadrunner-server/broadcast/v2 v2.13.3 + github.com/roadrunner-server/config/v2 v2.15.2 + github.com/roadrunner-server/endure v1.4.4 github.com/roadrunner-server/errors v1.2.0 - github.com/roadrunner-server/fileserver/v2 v2.13.12 - github.com/roadrunner-server/goridge/v3 v3.5.1 - github.com/roadrunner-server/grpc/v2 v2.21.1 - github.com/roadrunner-server/gzip/v2 v2.12.8 - github.com/roadrunner-server/headers/v2 v2.12.9 - github.com/roadrunner-server/http/v2 v2.21.2 - github.com/roadrunner-server/informer/v2 v2.12.2 - github.com/roadrunner-server/jobs/v2 v2.17.2 - github.com/roadrunner-server/kafka/v2 v2.1.3 - github.com/roadrunner-server/kv/v2 v2.13.2 - github.com/roadrunner-server/logger/v2 v2.14.2 - github.com/roadrunner-server/memcached/v2 v2.12.10 - github.com/roadrunner-server/memory/v2 v2.16.1 - github.com/roadrunner-server/metrics/v2 v2.13.13 - github.com/roadrunner-server/nats/v2 v2.16.9 - github.com/roadrunner-server/otel/v2 v2.4.1 - github.com/roadrunner-server/prometheus/v2 v2.13.12 - github.com/roadrunner-server/proxy_ip_parser/v2 v2.4.3 - github.com/roadrunner-server/redis/v2 v2.15.10 - github.com/roadrunner-server/reload/v2 v2.13.2 - github.com/roadrunner-server/resetter/v2 v2.12.2 - github.com/roadrunner-server/rpc/v2 v2.14.2 - github.com/roadrunner-server/send/v2 v2.12.9 - github.com/roadrunner-server/server/v2 v2.15.1 - github.com/roadrunner-server/service/v2 v2.15.6 - github.com/roadrunner-server/sqs/v2 v2.18.1 - github.com/roadrunner-server/static/v2 v2.13.10 - github.com/roadrunner-server/status/v2 v2.14.2 - github.com/roadrunner-server/tcp/v2 v2.14.1 - github.com/roadrunner-server/websockets/v2 v2.15.1 + github.com/roadrunner-server/fileserver/v2 v2.13.13 + github.com/roadrunner-server/goridge/v3 v3.5.2 + github.com/roadrunner-server/grpc/v2 v2.21.2 + github.com/roadrunner-server/gzip/v2 v2.12.9 + github.com/roadrunner-server/headers/v2 v2.12.10 + github.com/roadrunner-server/http/v2 v2.21.3 + github.com/roadrunner-server/informer/v2 v2.12.3 + github.com/roadrunner-server/jobs/v2 v2.17.3 + github.com/roadrunner-server/kafka/v2 v2.1.4 + github.com/roadrunner-server/kv/v2 v2.13.3 + github.com/roadrunner-server/logger/v2 v2.14.3 + github.com/roadrunner-server/memcached/v2 v2.12.11 + github.com/roadrunner-server/memory/v2 v2.16.2 + github.com/roadrunner-server/metrics/v2 v2.13.14 + github.com/roadrunner-server/nats/v2 v2.16.10 + github.com/roadrunner-server/otel/v2 v2.4.2 + github.com/roadrunner-server/prometheus/v2 v2.13.13 + github.com/roadrunner-server/proxy_ip_parser/v2 v2.4.4 + github.com/roadrunner-server/redis/v2 v2.15.11 + github.com/roadrunner-server/reload/v2 v2.13.3 + github.com/roadrunner-server/resetter/v2 v2.12.3 + github.com/roadrunner-server/rpc/v2 v2.14.3 + github.com/roadrunner-server/send/v2 v2.12.10 + github.com/roadrunner-server/server/v2 v2.15.2 + github.com/roadrunner-server/service/v2 v2.16.1 + github.com/roadrunner-server/sqs/v2 v2.18.2 + github.com/roadrunner-server/static/v2 v2.13.11 + github.com/roadrunner-server/status/v2 v2.14.3 + github.com/roadrunner-server/tcp/v2 v2.14.2 + github.com/roadrunner-server/websockets/v2 v2.15.2 github.com/spf13/cobra v1.5.0 github.com/spf13/viper v1.12.0 github.com/stretchr/testify v1.8.0 @@ -103,7 +103,7 @@ require ( github.com/gobwas/httphead v0.1.0 // indirect github.com/gobwas/pool v0.2.1 // indirect github.com/gobwas/ws v1.1.0 // indirect - github.com/goccy/go-json v0.9.10 // indirect + github.com/goccy/go-json v0.9.11 // indirect github.com/gofiber/fiber/v2 v2.36.0 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect @@ -168,7 +168,7 @@ require ( github.com/rabbitmq/amqp091-go v1.4.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rivo/uniseg v0.3.4 // indirect - github.com/roadrunner-server/sdk/v2 v2.18.3 // indirect + github.com/roadrunner-server/sdk/v2 v2.18.4 // indirect github.com/roadrunner-server/tcplisten v1.2.0 // indirect github.com/robfig/cron v1.2.0 // indirect github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 // indirect @@ -218,16 +218,16 @@ require ( go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.8.0 // indirect go.uber.org/zap v1.22.0 // indirect - golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect + golang.org/x/crypto v0.0.0-20220817201139-bc19a97f63c8 // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 //indirect golang.org/x/net v0.0.0-20220812174116-3211cb980234 // indirect golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect - golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab // indirect + golang.org/x/sys v0.0.0-20220817070843-5a390386f1f2 // indirect golang.org/x/text v0.3.7 // indirect golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9 // indirect golang.org/x/tools v0.1.12 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20220815135757-37a418bb8959 // indirect + google.golang.org/genproto v0.0.0-20220817144833-d7fd3f11b9b1 // indirect google.golang.org/grpc v1.48.0 // indirect google.golang.org/protobuf v1.28.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect @@ -230,8 +230,9 @@ github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6Wezm github.com/gobwas/ws v1.1.0 h1:7RFti/xnNkMJnrK7D1yQ/iCIB5OrrY/54/H930kIbHA= github.com/gobwas/ws v1.1.0/go.mod h1:nzvNcVha5eUziGrbxFCo6qFIojQHjJV5cLYIbezhfL0= github.com/goccy/go-json v0.9.8/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/goccy/go-json v0.9.10 h1:hCeNmprSNLB8B8vQKWl6DpuH0t60oEs+TAk9a7CScKc= github.com/goccy/go-json v0.9.10/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= +github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofiber/fiber/v2 v2.36.0 h1:1qLMe5rhXFLPa2SjK10Wz7WFgLwYi4TYg7XrjztJHqA= github.com/gofiber/fiber/v2 v2.36.0/go.mod h1:tgCr+lierLwLoVHHO/jn3Niannv34WRkQETU8wiL9fQ= @@ -561,89 +562,89 @@ github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqn github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.3.4 h1:3Z3Eu6FGHZWSfNKJTOUiPatWwfc7DzJRU04jFUqJODw= github.com/rivo/uniseg v0.3.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/roadrunner-server/amqp/v2 v2.17.13 h1:BpY4TWWH61SVxCTBOloOK5HrjY/pApRyduPAUQjf/xk= -github.com/roadrunner-server/amqp/v2 v2.17.13/go.mod h1:aiC+QxwiGiz0+zUleU5YRatm6qZQtGmoG7an/x2yszo= +github.com/roadrunner-server/amqp/v2 v2.17.14 h1:m/gkGCTcJwoQxg1uOveq4+QCcM5pfbkfdR7AXGW+uCk= +github.com/roadrunner-server/amqp/v2 v2.17.14/go.mod h1:d9RnG76jTc2ao7c5PWaG/RW5KoIH+3kigc4LhV7GWjk= github.com/roadrunner-server/api/v2 v2.19.0/go.mod h1:VDlFUKfyL2nKCY1aaIKNlDwi7c9B158RKdJ4jif4h9w= -github.com/roadrunner-server/api/v2 v2.21.0 h1:OtzTLvZt9ENgfWtR9eAomMrF1ZwDkTj95Upb/AkvVD0= -github.com/roadrunner-server/api/v2 v2.21.0/go.mod h1:i6+EpU/ZSZIPZNvM/Tk8lobqVSNQ6+iOe4LSBO2iORo= -github.com/roadrunner-server/beanstalk/v2 v2.16.10 h1:NZfOrnU6yjOwRnV+wNPR7xRJlG5Dl/mLzGR7L9vvI4s= -github.com/roadrunner-server/beanstalk/v2 v2.16.10/go.mod h1:MdMU0SVXZczLPKuq/kCR257Yw7S89EZ4/9MaIYPmJ3g= -github.com/roadrunner-server/boltdb/v2 v2.16.11 h1:M35+sdmrt/xTtyJZCoui1f+V3CdixcLjBGutrgSID+E= -github.com/roadrunner-server/boltdb/v2 v2.16.11/go.mod h1:E0wFK4j7k1t7VcloI+AhZYy3S8egdRXhDA83sER9oOI= -github.com/roadrunner-server/broadcast/v2 v2.13.2 h1:24S8XF7RA1+D6kClkWCQxlcbjUy81liQBiq79nr/cjs= -github.com/roadrunner-server/broadcast/v2 v2.13.2/go.mod h1:QehJT91LV0+5HLxG20wDoju+QvVC6XRY7CMxUawQ+50= -github.com/roadrunner-server/config/v2 v2.15.1 h1:Ti/wheh+GuQJ19OneY5DBWsUogvWYd3N2cR3JLjJFeY= -github.com/roadrunner-server/config/v2 v2.15.1/go.mod h1:HgobRAEviKCS8hsg3iZd1ijS3iMe3tyikHdN1oSpGWc= -github.com/roadrunner-server/endure v1.4.3 h1:LkKt3270MFxppkiPtWw/50K8/eQYey5WSvT5slnBQXE= -github.com/roadrunner-server/endure v1.4.3/go.mod h1:yJszg9MEabHYJfLnLB2pyWbEYBuhDnJhhXzbxJE/uQg= +github.com/roadrunner-server/api/v2 v2.21.1 h1:PZp8sSrg0b+wVp+EVffEdH4HYyoVtnHX9WJCA3VsoTA= +github.com/roadrunner-server/api/v2 v2.21.1/go.mod h1:GfXe+LhT14URGTU5rwFDKET74yMwR7au5Ik88HBwgY8= +github.com/roadrunner-server/beanstalk/v2 v2.16.11 h1:stN+9n3eoIE9Y3TMzRk+367oggR0GsVH8exBGR7xfoc= +github.com/roadrunner-server/beanstalk/v2 v2.16.11/go.mod h1:b48bLMcPOWkfTgk2U5xalg3uPy9ZxjhkKz2Qi9FJ8+E= +github.com/roadrunner-server/boltdb/v2 v2.16.12 h1:5/HF4KU4nM5PV+TcWeQXjwLTlMxMAsxP+SaYLAB67Xk= +github.com/roadrunner-server/boltdb/v2 v2.16.12/go.mod h1:HpISUKAPUjSeOQLkmie3d08xf6xRDN72YTw4W4+DumM= +github.com/roadrunner-server/broadcast/v2 v2.13.3 h1:lSo3+j3a5HI93fNE0my0cKeWM0bfJM/CrrixniZ70Hw= +github.com/roadrunner-server/broadcast/v2 v2.13.3/go.mod h1:1DgrUzoNMGp0ct9FyYaLFzd7moOFRXLumkdCOwaQwe0= +github.com/roadrunner-server/config/v2 v2.15.2 h1:1AiHG428aN2d3iyTqGrpPU+KOvx070dAdYxYJ6lUu0U= +github.com/roadrunner-server/config/v2 v2.15.2/go.mod h1:l1xSQepAHXVljKXtaSpe49D4R6Ha5esVCX3VHHG8z+Y= +github.com/roadrunner-server/endure v1.4.4 h1:ypSuMJ1foXNe61bFzpAM6PevgFx7BBVoUSCQGwE7XTs= +github.com/roadrunner-server/endure v1.4.4/go.mod h1:yJszg9MEabHYJfLnLB2pyWbEYBuhDnJhhXzbxJE/uQg= github.com/roadrunner-server/errors v1.1.2/go.mod h1:jVSh32nFtRMzKItYUM9W2CTLLpXAM8HseL2lUENPYtU= 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/v2 v2.13.12 h1:uaOfw6bh8g8j6bWbn02bGg8+zCC3djDijsbtGqn40Qc= -github.com/roadrunner-server/fileserver/v2 v2.13.12/go.mod h1:CWHRxdpun0Uy//lOxR7fAwkHAkLaHfH8jRjMGUJz/9U= +github.com/roadrunner-server/fileserver/v2 v2.13.13 h1:KxhU2Qp7Ij3sAX/x8wBeJ/+7rx11b2NF3l5SBIDD8+A= +github.com/roadrunner-server/fileserver/v2 v2.13.13/go.mod h1:mxkMQGhd6jqrXFNOATNR4WHpub9Jkn2o6tQziBo8sJw= github.com/roadrunner-server/goridge/v3 v3.4.5/go.mod h1:zGbUad2YyaaW9Vt9dqLBDcyrA45KlYoRh8jB7TUsStM= -github.com/roadrunner-server/goridge/v3 v3.5.1 h1:qpsmaLSZLxS3kOQPhkYTbUGG4vX0mVcM1uW49s5cw4k= -github.com/roadrunner-server/goridge/v3 v3.5.1/go.mod h1:qC5nRtwk4jtkTmAARv3iS/wmaXPP4Vk3FIAPsTcZ8jc= -github.com/roadrunner-server/grpc/v2 v2.21.1 h1:HuuuafiPkqSngaPjxKYQqo0H80cf4PgG+HqY1lKeX7o= -github.com/roadrunner-server/grpc/v2 v2.21.1/go.mod h1:h6IbyBmZf7dkCLlgBVAuGQL1TxMB9dfxM3Rux3uy2so= -github.com/roadrunner-server/gzip/v2 v2.12.8 h1:IXG6pIKPM4/mgAWB3prJT63NsJyYQqSCBpuERd/gnVY= -github.com/roadrunner-server/gzip/v2 v2.12.8/go.mod h1:BP3EkoN+NMdqWMRVpmgVqNXn5UoIGShbhlHfjU1jKlw= -github.com/roadrunner-server/headers/v2 v2.12.9 h1:AUfWEEYNRnOuvfkG0KKqnWNWRldP3bkbO+aVR9xSlm0= -github.com/roadrunner-server/headers/v2 v2.12.9/go.mod h1:hxe8l/ityF15yjBOFH80essBQ6Sp2N2oHWccYhQioB4= -github.com/roadrunner-server/http/v2 v2.21.2 h1:/5afQtNrU285jK11QCbWpguFn7C0Pya+I7CV0yZDVag= -github.com/roadrunner-server/http/v2 v2.21.2/go.mod h1:7dEj2mJ+9/nVkyJMxLIpukRoimxyoU0f8SCK+iax0b8= -github.com/roadrunner-server/informer/v2 v2.12.2 h1:rgkdJFb4K6GR0XnKyXaSBMquXHP3aq9GrlXFwBJf0w8= -github.com/roadrunner-server/informer/v2 v2.12.2/go.mod h1:3QLOK2uGwhz3fbDY/aBBTPhRuXN/c2dFTixiXUZglKY= -github.com/roadrunner-server/jobs/v2 v2.17.2 h1:vbwdaThe93G1dudyBci39BNPF6BhF7nco8ThfmV7cMY= -github.com/roadrunner-server/jobs/v2 v2.17.2/go.mod h1:tdl1X24I0YrKh0N5+xaKaHYHdMdT6UR4XIRdKttasuQ= -github.com/roadrunner-server/kafka/v2 v2.1.3 h1:gigE6Vdi7kgOU1xFceX9aDZM3yM7mZubIwNfHUwOWEA= -github.com/roadrunner-server/kafka/v2 v2.1.3/go.mod h1:3eUl16MpomF3zmY63v8JxcCRVga6w8EGkyDUY56GWqM= -github.com/roadrunner-server/kv/v2 v2.13.2 h1:KHdEP/uQ7clb8OQ6biBSzVgRWwmVJ9onOoJtEbmSKGU= -github.com/roadrunner-server/kv/v2 v2.13.2/go.mod h1:JBaeEH0eCU+hZpQRea1JAYaYWrXlXLHxL2SEMFgDW1E= -github.com/roadrunner-server/logger/v2 v2.14.2 h1:zLTljtUuUX3jlq+hUWStfOFnDfqjKkIEkxmpkTIajxA= -github.com/roadrunner-server/logger/v2 v2.14.2/go.mod h1:4mPqkFCBs9g0WyRmGKrnfEGdUNwBwubYSdgtskAfJgs= -github.com/roadrunner-server/memcached/v2 v2.12.10 h1:q/yJdsOW1TgyDEfT7bFDQ0K+XEjgQLpYVRNLlqnZ0KA= -github.com/roadrunner-server/memcached/v2 v2.12.10/go.mod h1:pqwSoLCqBPFw5g+UEU5mpRqT8M8ZB08qh6hAS3RITTk= -github.com/roadrunner-server/memory/v2 v2.16.1 h1:Jn+4fmkZyaD6yuHPVmQqutM5++hYmtcWjqkr/P0Xv0s= -github.com/roadrunner-server/memory/v2 v2.16.1/go.mod h1:+tpAqF9Zv9Xq8Icc+9Boe2ZUlXAmWvu+JMJSbW6wf/4= -github.com/roadrunner-server/metrics/v2 v2.13.13 h1:7p42E1lg97i5FzDf/T9Q+fmlWaUReKLVH/7VYnyeX2w= -github.com/roadrunner-server/metrics/v2 v2.13.13/go.mod h1:xTa4uMaJgAG98ORdfReF+FuRz3zaNjC1IHKbfd5exHY= -github.com/roadrunner-server/nats/v2 v2.16.9 h1:ICJ6tORAFH59A6l7bFQ4kSue+Qti19D1omFXK+4ta+g= -github.com/roadrunner-server/nats/v2 v2.16.9/go.mod h1:JLpox+zFhtVbXHC5h92FW3nFKXnEFOryJkEOu4eohdI= -github.com/roadrunner-server/otel/v2 v2.4.1 h1:Jqk/vwqFNJzZ6I9JxS7+Z/JTjDC1fUE15cMOIf6CI3c= -github.com/roadrunner-server/otel/v2 v2.4.1/go.mod h1:+LmZiSAr01C8WVw68Iw7osYbt7ID0nzMMv7cy+BaYHI= -github.com/roadrunner-server/prometheus/v2 v2.13.12 h1:UdqbRKBHecc8b2azu3PwCpT8B8NLZqE0ZSo3O2UGpkU= -github.com/roadrunner-server/prometheus/v2 v2.13.12/go.mod h1:HRgFQLF2ReyzPLkTSkM6PhtKGWCOsWkDMOPgpHXDryk= -github.com/roadrunner-server/proxy_ip_parser/v2 v2.4.3 h1:BwXA4nz/0ZQHfwcWNmZQzjbPKnsRmwUu/2R65T05p1k= -github.com/roadrunner-server/proxy_ip_parser/v2 v2.4.3/go.mod h1:rrvLj795tmp5X19chx1y3cShJBge85fXSu7DCfSWPIU= -github.com/roadrunner-server/redis/v2 v2.15.10 h1:jm17MLXdW40woV1QtZeLI2olCd9+uVzeOohu8YU1CyA= -github.com/roadrunner-server/redis/v2 v2.15.10/go.mod h1:wUS+NYp55agLtVSOjFBlCgZWWutxIrUvagFxBskL+LM= -github.com/roadrunner-server/reload/v2 v2.13.2 h1:IzBPeru33DVAM7IQgrWPfeSO7yaCutc4YOpPQ2f1yl8= -github.com/roadrunner-server/reload/v2 v2.13.2/go.mod h1:qAByGhHIxeyx69wtIGVFuZVprTeZT8AQV8LqlZVFG7g= -github.com/roadrunner-server/resetter/v2 v2.12.2 h1:Y8MSk1rUMitYff3G76Squ0v1CPjbbdwCo3ck4IPE1/s= -github.com/roadrunner-server/resetter/v2 v2.12.2/go.mod h1:GibBa486uE9EbLBQvCXveZkpXeiXVNX21cmyo6EosLs= -github.com/roadrunner-server/rpc/v2 v2.14.2 h1:f3Z7MMqI26Up0CTQ7BF8pwJsiAMPJAy8wc8oFJZ6Od4= -github.com/roadrunner-server/rpc/v2 v2.14.2/go.mod h1:MFUi/1Y46w/XfK4yNO8JF1Ygsw/gf0XgNm6TAOGToQE= -github.com/roadrunner-server/sdk/v2 v2.18.3 h1:2nywVM5XexByq3QEdZE3VYrwoqGcXTfOSOPydwYBHXM= -github.com/roadrunner-server/sdk/v2 v2.18.3/go.mod h1:5M5NkYpP/g76CPBHJYO9s/tSw/N8Xg7CnPIriUYzx9c= -github.com/roadrunner-server/send/v2 v2.12.9 h1:8R/9QSwwErP+RAI8xWHakyZoGJYOOMjWNNzS0qIHFPw= -github.com/roadrunner-server/send/v2 v2.12.9/go.mod h1:oYGLJN2KRvKlnZA1lbudn2JyGG0jxY29PYBvIgv9xjg= -github.com/roadrunner-server/server/v2 v2.15.1 h1:yRuUGg0vZwjlMUFq8QI/r/fdt4l9jt8xt/mjzHKRIRY= -github.com/roadrunner-server/server/v2 v2.15.1/go.mod h1:Jg+sXOawWv4L2YnutuKJujcU0OXHY+6F7Y5mpGmKn3Q= -github.com/roadrunner-server/service/v2 v2.15.6 h1:keOXiLNov9Dz0Q1pCGINJblHAwTxm1PnPoEeXGHhChw= -github.com/roadrunner-server/service/v2 v2.15.6/go.mod h1:cKitImTBzRWVYBPms6TupRpTco70EDjmvOevn2dXWWg= -github.com/roadrunner-server/sqs/v2 v2.18.1 h1:XSt7In7AR69z7w1MVwixyFa1DXHLKwXa2xj6KIC+J20= -github.com/roadrunner-server/sqs/v2 v2.18.1/go.mod h1:FZvck66HNMt2+74RRct6C9zxtmvyesx5X9nzG76rk50= -github.com/roadrunner-server/static/v2 v2.13.10 h1:qlPRJ4bGV3p7LwYwONvPdWFwGtlnOhmbFw5GdteLi5Y= -github.com/roadrunner-server/static/v2 v2.13.10/go.mod h1:Pe8dxwUvghvOYYGOd4AnXcNC7v9ovQFl30FAzvuAh5M= -github.com/roadrunner-server/status/v2 v2.14.2 h1:ejp1KN6RXorMMMkpAIVhWo/xGj1WPTcTB4Wbl9m5Ed4= -github.com/roadrunner-server/status/v2 v2.14.2/go.mod h1:ZoAsBIribf6VNIcux0EAe37nyuW6+GQb+vD+11ZvSK8= -github.com/roadrunner-server/tcp/v2 v2.14.1 h1:KQnH2YbQhzaWRod4/h4x8yIpY/Dujf1WfUCmOwvXHDQ= -github.com/roadrunner-server/tcp/v2 v2.14.1/go.mod h1:Q3tTVqs51N7pDXXJFe6kXbIK+hM/YW7sVhzPma92854= +github.com/roadrunner-server/goridge/v3 v3.5.2 h1:I0GK/LQmlTOs8fd3F4grq5nKQBArLQrON7xla+84xLE= +github.com/roadrunner-server/goridge/v3 v3.5.2/go.mod h1:ju0NNhhw9G1M8aCNsC0T0/2+aQ9yEHztrWIMlzv4LpE= +github.com/roadrunner-server/grpc/v2 v2.21.2 h1:ZlI0cjMm3D6xirob5BKMmvA0DVd2nYtCv490fh7BnTM= +github.com/roadrunner-server/grpc/v2 v2.21.2/go.mod h1:R/+cqkg26NiI8YAqs100eEHmMWJPvR1ZBLgniOs04WI= +github.com/roadrunner-server/gzip/v2 v2.12.9 h1:+LjEAWTBRsc2vAp1sOKK6+RXxQwT20gFvsx5m8kc9hM= +github.com/roadrunner-server/gzip/v2 v2.12.9/go.mod h1:OHXf/ejoSJu0LJGFBaPzof/sCESeft+RgsljwlW/Zn4= +github.com/roadrunner-server/headers/v2 v2.12.10 h1:cdG9AxAlpTt/7/kLRdU42H3hiUAm0wAm5jhzZBo4aok= +github.com/roadrunner-server/headers/v2 v2.12.10/go.mod h1:5onbeoQoM0d1cXFklTIBbqNKWkGCXibSuVxZJ0BgMPs= +github.com/roadrunner-server/http/v2 v2.21.3 h1:bWWmX0F5zGkUou7MrpK4ylzbitENUqnh0QoJc8L6b5U= +github.com/roadrunner-server/http/v2 v2.21.3/go.mod h1:TiYofK4abF6viKxgK5ZO+YwSJOOi0cgjX3wgfzHMwRo= +github.com/roadrunner-server/informer/v2 v2.12.3 h1:dZsV9E7wf3A8tUjjGTmFjZ9vFjr6+dImBW6E7qDAK7I= +github.com/roadrunner-server/informer/v2 v2.12.3/go.mod h1:BRlNeoHeRkRBr581aNqcQuh7OZXYLIThkwzVMY7WiPc= +github.com/roadrunner-server/jobs/v2 v2.17.3 h1:0xirAkrY6b4cIO32KUvymEZnoH5EBUTtsXKqYtmcyes= +github.com/roadrunner-server/jobs/v2 v2.17.3/go.mod h1:OU+NVrPPypnJWxcO6X3kIXwyrJaxRhFIKWoH73ZAu0E= +github.com/roadrunner-server/kafka/v2 v2.1.4 h1:lMirZ1Qt8dHhVm/NMwaqPMG0aR24KtcRPu8EpwmBOVA= +github.com/roadrunner-server/kafka/v2 v2.1.4/go.mod h1:KvcMnkE97MjARhpNRIVCGG/K8DtykGIAKjooTtIO7KI= +github.com/roadrunner-server/kv/v2 v2.13.3 h1:d9TruFCFdfXtgYnkPTQ/fU+cn4jR9n6P1QGpCbqjXpE= +github.com/roadrunner-server/kv/v2 v2.13.3/go.mod h1:PjhPfwwQAzLex9OCYmE2sxdPdvsCSdtemUJESbB+GK8= +github.com/roadrunner-server/logger/v2 v2.14.3 h1:B/QTLPhNS0nnfxt8jtgyeU9GjDMDG7EosP7Z9D/N0oM= +github.com/roadrunner-server/logger/v2 v2.14.3/go.mod h1:oQGcO+F6Du4enD7c+e4lRNNAHW1Ztl+WUgmhtpLnRLQ= +github.com/roadrunner-server/memcached/v2 v2.12.11 h1:cArg37vIHO59WwoQT42Lb49sUrJVtdvRY1AoNF1RmgM= +github.com/roadrunner-server/memcached/v2 v2.12.11/go.mod h1:K16wfkGAfS93OpWMz2S25ZZN8o/l9u0PLYn8yBYcSGc= +github.com/roadrunner-server/memory/v2 v2.16.2 h1:aPqDiMo4c9awSlN3Gkt4XJI5kLND/Is/FTDu1DvYXGM= +github.com/roadrunner-server/memory/v2 v2.16.2/go.mod h1:peBax8M12KU0RsBCYZXSclxdKgGGZ4zl9yM839pMKiE= +github.com/roadrunner-server/metrics/v2 v2.13.14 h1:bUAq1zvZ3DRxsKOZDHlJpAQRV4CS8V8Oump8Z2LiE/k= +github.com/roadrunner-server/metrics/v2 v2.13.14/go.mod h1:1A6yY6Aam2vkaK/+25IhLwLh1XVOBmaFn2149DOD8xE= +github.com/roadrunner-server/nats/v2 v2.16.10 h1:hoD68bfbMUTLVcD3xh3aojzXwqf9doV04sYUx1gGqp0= +github.com/roadrunner-server/nats/v2 v2.16.10/go.mod h1:ratleF5u23AHk9ddod+SsfWY2UwT7DBeSdnTtysLbJ4= +github.com/roadrunner-server/otel/v2 v2.4.2 h1:jWoakRw/+JqdhQk7+hOS4qvy7Cy1QPWG/nC5hv8pTAk= +github.com/roadrunner-server/otel/v2 v2.4.2/go.mod h1:FpmXL48mkhHqojdG3sfU0yZo0Oa0WuYHPt9e2Cg+snU= +github.com/roadrunner-server/prometheus/v2 v2.13.13 h1:CcWui2Ov1wc3NgRSNNzgNeeaN2hTkKz2seXqAMig1MQ= +github.com/roadrunner-server/prometheus/v2 v2.13.13/go.mod h1:kOaPgtGRcXr1JcjP3fvdFkyOGaI5s5xpGeEOce0eAjs= +github.com/roadrunner-server/proxy_ip_parser/v2 v2.4.4 h1:9DkyMZd3/VZaLFP8WqcsUayTOmuhcWDpsZCUayaKiaE= +github.com/roadrunner-server/proxy_ip_parser/v2 v2.4.4/go.mod h1:vlegJZ+NS+Z4IxuMZHmIr1R294JgfcdIWKgwrgrQlRI= +github.com/roadrunner-server/redis/v2 v2.15.11 h1:j+O9oShaQEMYKLdIhE5cbILBRRRAHqt/2YNijgNCktA= +github.com/roadrunner-server/redis/v2 v2.15.11/go.mod h1:Yr5Hfn+KL1g3gV781rXlTBVUWMg7kumHwBm37XS5JHM= +github.com/roadrunner-server/reload/v2 v2.13.3 h1:fi16kLfqzRvTaAVs5OohD3MlcdQDDK0afLXSYCeHmws= +github.com/roadrunner-server/reload/v2 v2.13.3/go.mod h1:u95zxdSSxZ+hYh8qYMjp1GcMjOlGNpx4qn/wamzKW7E= +github.com/roadrunner-server/resetter/v2 v2.12.3 h1:wGC+mbL/z+imhfSOqAmdfBqPyKddLZT7kyX7mxYX5+0= +github.com/roadrunner-server/resetter/v2 v2.12.3/go.mod h1:gkYXqNuxoKaNIJNo3MVmKxUmWPXurjJ7j0Z6J+opi5c= +github.com/roadrunner-server/rpc/v2 v2.14.3 h1:12gqLSx8Hx/8NT8QdkZ9ANr4NMmK/v/zZFuyjiwArgo= +github.com/roadrunner-server/rpc/v2 v2.14.3/go.mod h1:zvQzIU+ta2eYaLEaBC/oFmDO1gQUEWE/YvsDs+SKu8o= +github.com/roadrunner-server/sdk/v2 v2.18.4 h1:qOI8uCE5k2bTorq132h8vCsUkQOH9GrfQcYgN1J5nYM= +github.com/roadrunner-server/sdk/v2 v2.18.4/go.mod h1:tt0g8PEzbaAD54tzHp2pvpqreH4UDYEGPKvAMNZKEPc= +github.com/roadrunner-server/send/v2 v2.12.10 h1:FlnCKl38fPsV3XGOTdVckYlRYJAjeZOeAjfw0fLSTwY= +github.com/roadrunner-server/send/v2 v2.12.10/go.mod h1:9j05w/xkU2WAsCZoNO7hlDBzlKu9HAgcakN59CvM5RE= +github.com/roadrunner-server/server/v2 v2.15.2 h1:7s3BoUVM1rGN35SBDz4UKt+EXEVxwcHGhNPC4/qyPFE= +github.com/roadrunner-server/server/v2 v2.15.2/go.mod h1:Jen5WCAr7Jtt6Phkhc8Xs34lrvQQLm1AKbkj6XmvzLY= +github.com/roadrunner-server/service/v2 v2.16.1 h1:0rLPLDW7YzCzph7rcXEeab9xeGt9vCFyc+UMSOxh/9g= +github.com/roadrunner-server/service/v2 v2.16.1/go.mod h1:ofdUDnoy/BGU+wbe9sznsXxANx1fzU25C4dHRZV5YYo= +github.com/roadrunner-server/sqs/v2 v2.18.2 h1:ryrVAs4EiFxy0pgJ2y6kMTuSoYaCuzvxYLl05XzwmH0= +github.com/roadrunner-server/sqs/v2 v2.18.2/go.mod h1:RRho1Kf+AaYTBDbcGqurSoeH2yeVNsYcXUDo87WA0ho= +github.com/roadrunner-server/static/v2 v2.13.11 h1:nMPGdubhiYGwOExMi9CyjHDsYU/uX+bt/q1L84INFXE= +github.com/roadrunner-server/static/v2 v2.13.11/go.mod h1:VZv3ukWXAiBTtWLqxpUJmz70cvzoI+izwS21dXuhzTU= +github.com/roadrunner-server/status/v2 v2.14.3 h1:qfcRfoeQ675D7V/U3iQjP6hvHjmoYkcn+bLdTjcTGtI= +github.com/roadrunner-server/status/v2 v2.14.3/go.mod h1:Qo5tRArMGS4O1VxhwJlvckv/QKigNA2q2lUY5dEl+Qk= +github.com/roadrunner-server/tcp/v2 v2.14.2 h1:/ZDi4jSQCqjZR0yVZrDKKGwfoaPZDcuK/vJCk6UAWc4= +github.com/roadrunner-server/tcp/v2 v2.14.2/go.mod h1:1Y82reR09Qnf20NubqehDWccEgcIC2J30eAWhOPjJTk= github.com/roadrunner-server/tcplisten v1.2.0 h1:nsiXEEb0zP7vjAsCWNHKpM0HdwFK/KlafFF/2gsTJlg= github.com/roadrunner-server/tcplisten v1.2.0/go.mod h1:NhumKvt7dbIKVNZnqR1fA4ET1D8ngIKsg0TxnuJTL6A= -github.com/roadrunner-server/websockets/v2 v2.15.1 h1:Ri4iUlCZdJ91z/gwCAzeHEEvZs7ZSeBab9ISV+sW8Mc= -github.com/roadrunner-server/websockets/v2 v2.15.1/go.mod h1:L7kVfCQ0dSpXHtjSFYFBh6ecCh8+rsLeP4egyyR3fBQ= +github.com/roadrunner-server/websockets/v2 v2.15.2 h1:shV4NS+3ltZ86RR1gfxwLW/XUARJJJdK8+h71Gm0UFM= +github.com/roadrunner-server/websockets/v2 v2.15.2/go.mod h1:Jpl4UnzeT94WzNhUcRox5lJC9VXPrIpi5pzpvKFaI9w= github.com/robfig/cron v1.2.0 h1:ZjScXvvxeQ63Dbyxy76Fj3AT3Ut0aKsyd2/tl3DTMuQ= github.com/robfig/cron v1.2.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= @@ -842,8 +843,9 @@ golang.org/x/crypto v0.0.0-20210920023735-84f357641f63/go.mod h1:GvvjBRRGRdwPK5y 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-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa h1:zuSxTR4o9y82ebqCUJYNGJbGPo6sKVl54f/TVDObg1c= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220817201139-bc19a97f63c8 h1:GIAS/yBem/gq2MUqgNIzUHW7cJMmx3TGZOrnyYaNQ6c= +golang.org/x/crypto v0.0.0-20220817201139-bc19a97f63c8/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1044,8 +1046,9 @@ golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab h1:2QkjZIsXupsJbJIdSjjUOgWK3aEtzyuh2mPt3l/CkeU= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220817070843-5a390386f1f2 h1:fqTvyMIIj+HRzMmnzr9NtpHP6uVpvB5fkHcgPDC4nu8= +golang.org/x/sys v0.0.0-20220817070843-5a390386f1f2/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1201,8 +1204,8 @@ google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEc google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20220630174209-ad1d48641aa7/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= google.golang.org/genproto v0.0.0-20220725144611-272f38e5d71b/go.mod h1:iHe1svFLAZg9VWz891+QbRMwUv9O/1Ww+/mngYeThbc= -google.golang.org/genproto v0.0.0-20220815135757-37a418bb8959 h1:hw4Y42zL1VyVKxPgRHHh191fpVBGV8sNVmcow5Z8VXY= -google.golang.org/genproto v0.0.0-20220815135757-37a418bb8959/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220817144833-d7fd3f11b9b1 h1:C2UVWqrgLYKrT5nh5oU6hLRm1AeEklCK5eloQA1NtFY= +google.golang.org/genproto v0.0.0-20220817144833-d7fd3f11b9b1/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= diff --git a/schemas/config/2.0.schema.json b/schemas/config/2.0.schema.json index 14f20620..d3a794cf 100644 --- a/schemas/config/2.0.schema.json +++ b/schemas/config/2.0.schema.json @@ -350,6 +350,11 @@ "minimum": 0, "default": 0 }, + "access_logs": { + "description": "HTTP access logs", + "type": "boolean", + "default": false + }, "middleware": { "description": "Middleware for the http plugin, order is important", "type": "array", @@ -361,7 +366,6 @@ "static", "websockets", "sendfile", - "new_relic", "http_metrics", "cache", "proxy_ip_parser", @@ -402,8 +406,210 @@ "description": "Default route basepath for every additional APIs to avoid conflicts with existing routes", "type": "string", "default": null + }, + "prometheus": { + "type": "object", + "description": "Prometheus exposed metrics", + "properties": { + "basepath": { + "type": "string", + "default": null + } + } + }, + "souin": { + "type": "object", + "description": "Souin listing keys and cache management", + "properties": { + "basepath": { + "type": "string", + "default": null + } + } + } + } + }, + "cache_keys": { + "type": "object", + "patternProperties": { + "^[a-zA-Z0-9._-]+$": { + "description": "cache keys configuration", + "type": "object", + "properties": { + "disable_body": { + "type": "boolean", + "default": false + }, + "disable_host": { + "type": "boolean", + "default": false + }, + "disable_method": { + "type": "boolean", + "default": false + } + } + } + } + }, + "cdn": { + "description": "If Souin is set after a CDN fill these information", + "type": "object", + "properties": { + "api_key": { + "type": "string", + "description": "Your provider API key if mandatory" + }, + "provider": { + "description": "The provider placed before Souin (e.g. fastly, cloudflare, akamai, varnish)", + "type": "string", + "enum": [ + "fastly", + "cloudflare", + "akamai", + "varnish" + ] + }, + "strategy": { + "description": "The strategy to purge the CDN cache based on tags (e.g. soft, hard)", + "type": "string", + "enum": [ + "soft", + "hard" + ] + }, + "dynamic": { + "description": "If true, you'll be able to add custom keys than the ones defined under the surrogate_keys key", + "type": "boolean", + "default": false } } + }, + "default_cache": { + "type": "object", + "properties": { + "allowed_http_verbs": { + "type": "array", + "default": [ + "GET", + "POST" + ] + }, + "cache_name": { + "description": "Override the cache name to use in the Cache-Status header", + "type": "string", + "default": "roadrunner" + }, + "distributed": { + "type": "boolean", + "default": false, + "description": "Use Olric or Etcd distributed storage" + }, + "headers": { + "description": "Default headers concatenated in stored keys", + "type": "array", + "default": null + }, + "key": { + "type": "object", + "properties": { + "disable_body": { + "type": "boolean", + "default": false + }, + "disable_host": { + "type": "boolean", + "default": false + }, + "disable_method": { + "type": "boolean", + "default": false + } + } + }, + "etcd": { + "description": "If distributed is set to true, you'll have to define either the etcd or olric section", + "type": "object", + "properties": { + "configuration": { + "type": "object", + "description": "Configure directly the Etcd client", + "properties": { + "endpoints": { + "description": "Define multiple endpoints", + "type": "array", + "default": null + } + } + } + } + }, + "olric": { + "type": "object", + "description": "If distributed is set to true, you'll have to define either the etcd or olric section", + "properties": { + "url": { + "description": "Olric server", + "type": "string", + "default": "http://127.0.0.1:3320" + } + } + }, + "regex": { + "type": "object", + "description": "Regex to exclude from cache", + "properties": { + "exclude": { + "type": "string", + "default": null + } + } + }, + "stale": { + "type": "string", + "description": "Stale duration", + "default": "1000s" + }, + "timeout": { + "description": "Timeout configuration", + "type": "object", + "properties": { + "backend": { + "description": "Backend timeout before returning an HTTP unavailable response", + "type": "string", + "default": "10s" + }, + "cache": { + "description": "Cache provider (badger, etcd, nutsdb, olric, depending the configuration you set) timeout before returning a miss", + "type": "string", + "default": "20ms" + } + } + }, + "ttl": { + "description": "Default TTL", + "type": "string", + "default": "1000s" + }, + "default_cache_control": { + "description": "Set default value for Cache-Control response header if not set by upstream", + "type": "string", + "default": "no-store" + } + } + }, + "log_level": { + "type": "string", + "description": "Logs verbosity", + "default": "INFO", + "enum": [ + "DEBUG", + "INFO", + "WARN", + "DPANIC", + "PANIC", + "FATAL" + ] } } }, @@ -1028,6 +1234,9 @@ "boltdb": { "$ref": "#/definitions/BoltDB_J" }, + "kafka": { + "$ref": "#/definitions/KAFKA_J" + }, "amqp": { "description": "AMQP jobs driver", "type": "object", @@ -1131,7 +1340,8 @@ "beanstalk", "boltdb", "memory", - "nats" + "nats", + "kafka" ] } }, @@ -1204,6 +1414,141 @@ "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 + } + } + }, + "producer_options": { + "description": "Kafka producer options", + "type": "object", + "properties": { + "max_message_bytes": { + "type": "integer", + "default": 1000000 + }, + "required_acks": { + "description": "The level of acknowledgement reliability needed from the broker.", + "type": "integer", + "default": -1 + }, + "timeout": { + "description": "The maximum duration in seconds the broker will wait the receipt of the number of required_acks.", + "default": 10, + "type": "integer" + }, + "compression_codec": { + "type": "string", + "default": "none", + "enum": [ + "none", + "gzip", + "snappy", + "lz4", + "zstd" + ] + }, + "compression_level": { + "description": "The level of compression to use on messages.", + "type": "integer", + "default": null + }, + "idempotent": { + "description": "If enabled, the producer will ensure that exactly one copy of each message is written.", + "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 + }, + "max_fetch_message_size": { + "type": "integer", + "description": "The default number of message bytes to fetch from the broker in each request", + "default": 1000000 + }, + "session_timeout": { + "type": "integer", + "description": "The timeout in seconds used to detect consumer failures when using Kafka's group management facility.", + "default": 10 + }, + "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 + } + } + } + } + }, + { + "properties": { + "priority": { + "description": "Pipeline priority. If the job pushed to the pipeline has priority set to 0, it will inherit the pipeline's priority", + "type": "integer", + "default": 10 + }, "prefetch": { "description": "Number of job to prefetch from the driver", "type": "integer", @@ -1911,6 +2256,12 @@ }, "additionalProperties": false }, + "HashMapInt": { + "type": "object", + "additionalProperties": { + "type": "integer" + } + }, "NATS_J": { "description": "NATS jobs driver", "type": "object", @@ -1922,6 +2273,16 @@ } } }, + "KAFKA_J": { + "description": "Kafka jobs driver", + "type": "object", + "properties": { + "addr": { + "description": "Kafka server addresses", + "type": "array" + } + } + }, "BoltDB_J": { "description": "Boltdb jobs driver", "type": "object", |