summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValery Piashchynski <[email protected]>2024-04-11 18:32:14 +0200
committerGitHub <[email protected]>2024-04-11 18:32:14 +0200
commitc0d3df2b33bc2a9e9726dbbd73d7fe125ab9d045 (patch)
treefe0e7cc2586690f79073d7c1c2740db8fdb31c57
parent731e4b614d79b2e53d31b10b1e2a660aba0ade9a (diff)
parent107e582d48ab4629e901a1ea65ab4f33d1000944 (diff)
[#1902]: release: v2024.1.0v2024.1.0
-rw-r--r--.github/workflows/release.yml12
-rw-r--r--.github/workflows/release_dep.yml4
-rw-r--r--.github/workflows/release_dep_aarch64.yml4
-rw-r--r--.github/workflows/tests.yml4
-rw-r--r--.rr.yaml36
-rw-r--r--CHANGELOG-2023.md2498
-rw-r--r--CHANGELOG.md2500
-rw-r--r--Dockerfile4
-rw-r--r--README.md12
-rw-r--r--benchmarks/simple.js2
-rw-r--r--cmd/rr/main.go2
-rw-r--r--container/config_test.go2
-rw-r--r--go.mod134
-rw-r--r--go.sum259
-rw-r--r--internal/cli/jobs/command.go2
-rw-r--r--internal/cli/jobs/command_test.go2
-rw-r--r--internal/cli/reset/command.go4
-rw-r--r--internal/cli/reset/command_test.go2
-rw-r--r--internal/cli/root.go14
-rw-r--r--internal/cli/root_test.go2
-rw-r--r--internal/cli/serve/command.go6
-rw-r--r--internal/cli/serve/command_test.go2
-rw-r--r--internal/cli/stop/command.go2
-rw-r--r--internal/cli/stop/command_test.go2
-rw-r--r--internal/cli/workers/command.go4
-rw-r--r--internal/cli/workers/command_test.go2
-rw-r--r--internal/debug/server_test.go2
-rw-r--r--internal/rpc/client_test.go2
-rw-r--r--internal/sdnotify/sdnotify.go2
-rw-r--r--lib/roadrunner.go4
-rw-r--r--lib/roadrunner_test.go2
-rw-r--r--roadrunner.pprofbin306913 -> 43255 bytes
-rw-r--r--schemas/config/3.0.schema.json38
33 files changed, 2817 insertions, 2750 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index b4874514..55d1149f 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -88,8 +88,8 @@ jobs:
CGO_ENABLED: 0
LDFLAGS: >-
-s
- -X github.com/roadrunner-server/roadrunner/v2023/internal/meta.version=${{ steps.values.outputs.version }}
- -X github.com/roadrunner-server/roadrunner/v2023/internal/meta.buildTime=${{ steps.values.outputs.timestamp }}
+ -X github.com/roadrunner-server/roadrunner/v2024/internal/meta.version=${{ steps.values.outputs.version }}
+ -X github.com/roadrunner-server/roadrunner/v2024/internal/meta.buildTime=${{ steps.values.outputs.timestamp }}
run: |
go build -pgo=roadrunner.pprof -trimpath -ldflags "$LDFLAGS" -o "./${{ steps.values.outputs.binary-name }}" ./cmd/rr
stat "./${{ steps.values.outputs.binary-name }}"
@@ -190,10 +190,10 @@ jobs:
tags: |
spiralscout/roadrunner:${{ steps.values.outputs.version_full}}
spiralscout/roadrunner:latest
- spiralscout/roadrunner:2023
- spiralscout/roadrunner:2023.3
+ spiralscout/roadrunner:2024
+ spiralscout/roadrunner:2024.1
ghcr.io/roadrunner-server/roadrunner:${{ steps.values.outputs.version_full}}
ghcr.io/roadrunner-server/roadrunner:latest
- ghcr.io/roadrunner-server/roadrunner:2023
- ghcr.io/roadrunner-server/roadrunner:2023.3
+ ghcr.io/roadrunner-server/roadrunner:2024
+ ghcr.io/roadrunner-server/roadrunner:2024.1
diff --git a/.github/workflows/release_dep.yml b/.github/workflows/release_dep.yml
index e6eeb1d3..a971e4c1 100644
--- a/.github/workflows/release_dep.yml
+++ b/.github/workflows/release_dep.yml
@@ -55,8 +55,8 @@ jobs:
CGO_ENABLED: 0
LDFLAGS: >-
-s
- -X github.com/roadrunner-server/roadrunner/v2023/internal/meta.version=${{ steps.values.outputs.version }}
- -X github.com/roadrunner-server/roadrunner/v2023/internal/meta.buildTime=${{ steps.values.outputs.timestamp }}
+ -X github.com/roadrunner-server/roadrunner/v2024/internal/meta.version=${{ steps.values.outputs.version }}
+ -X github.com/roadrunner-server/roadrunner/v2024/internal/meta.buildTime=${{ steps.values.outputs.timestamp }}
run: |
go build -trimpath -ldflags "$LDFLAGS" -o "./${{ steps.values.outputs.binary-name }}" ./cmd/rr
stat "./${{ steps.values.outputs.binary-name }}"
diff --git a/.github/workflows/release_dep_aarch64.yml b/.github/workflows/release_dep_aarch64.yml
index e556cf24..176bda56 100644
--- a/.github/workflows/release_dep_aarch64.yml
+++ b/.github/workflows/release_dep_aarch64.yml
@@ -55,8 +55,8 @@ jobs:
CGO_ENABLED: 0
LDFLAGS: >-
-s
- -X github.com/roadrunner-server/roadrunner/v2023/internal/meta.version=${{ steps.values.outputs.version }}
- -X github.com/roadrunner-server/roadrunner/v2023/internal/meta.buildTime=${{ steps.values.outputs.timestamp }}
+ -X github.com/roadrunner-server/roadrunner/v2024/internal/meta.version=${{ steps.values.outputs.version }}
+ -X github.com/roadrunner-server/roadrunner/v2024/internal/meta.buildTime=${{ steps.values.outputs.timestamp }}
run: |
go build -trimpath -ldflags "$LDFLAGS" -o "./${{ steps.values.outputs.binary-name }}" ./cmd/rr
stat "./${{ steps.values.outputs.binary-name }}"
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index cb2210a5..403fb1ae 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -117,8 +117,8 @@ jobs:
GOARCH: amd64
CGO_ENABLED: 0
LDFLAGS: -s
- -X github.com/roadrunner-server/roadrunner/v2023/internal/meta.version=${{ steps.values.outputs.version }}
- -X github.com/roadrunner-server/roadrunner/v2023/internal/meta.buildTime=${{ steps.values.outputs.timestamp }}
+ -X github.com/roadrunner-server/roadrunner/v2024/internal/meta.version=${{ steps.values.outputs.version }}
+ -X github.com/roadrunner-server/roadrunner/v2024/internal/meta.buildTime=${{ steps.values.outputs.timestamp }}
run: go build -pgo=roadrunner.pprof -trimpath -ldflags "$LDFLAGS" -o ./rr ./cmd/rr
- name: Try to execute
diff --git a/.rr.yaml b/.rr.yaml
index cacd673a..5bf290c3 100644
--- a/.rr.yaml
+++ b/.rr.yaml
@@ -75,11 +75,6 @@ server:
# Default: "pipes"
relay: pipes
- # Timeout for relay connection establishing (only for socket and TCP port relay).
- #
- # Default: 60s
- relay_timeout: 60s
-
# Logging settings (docs: https://roadrunner.dev/docs/plugins-logger/2.x/en)
logs:
# Logging mode can be "development", "production" or "raw". Do not forget to change this value for production environment.
@@ -1226,11 +1221,40 @@ kafka:
# Required to use Kafka driver
brokers: ["127.0.0.1:9092", "127.0.0.1:9002"]
+ # SSL/TLS configuration
+ #
+ # Optional, default: empty
+ tls:
+ # Secure connection timeout
+ #
+ # Examples: "2s", "5m"
+ # Optional, default: "10s"
+ timeout: "10s"
+
+ # Path to the key file
+ #
+ # This option is required
+ key: ""
+
+ # Path to the certificate
+ #
+ # This option is required
+ cert: ""
+
+ # 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.
+ #
+ # This option is optional
+ root_ca: ""
+
+ # Client auth type.
+ #
+ # This option is optional. Default value: no_client_certs. Possible values: request_client_cert, require_any_client_cert, verify_client_cert_if_given, require_and_verify_client_cert, no_client_certs
+ client_auth_type: no_client_certs
+
# SASL authentication options to use for all connections. Depending on the auth type, plain/SCRAM or aws_msk_plain sections should be removed.
#
# Optional, default: empty
sasl:
-
# ----------- 1. PLAIN and SCRAM auth section ---------------
# Mechanism used for the authentication
diff --git a/CHANGELOG-2023.md b/CHANGELOG-2023.md
new file mode 100644
index 00000000..fad62f9d
--- /dev/null
+++ b/CHANGELOG-2023.md
@@ -0,0 +1,2498 @@
+# CHANGELOG
+
+# <center> ๐Ÿš€ v2023.3.12 ๐Ÿš€ </center>
+
+### `Centrifuge` plugin:
+- ๐Ÿ”ฅ Add support for the `NotifyChannelState` centrifuge API.
+
+### `Temporal` plugin:
+- ๐Ÿ”ฅ Add support for the [Updates API](https://docs.temporal.io/dev-guide/go/features#updates).
+- ๐Ÿ”ฅ Add support for the healthchecks: [FR](https://github.com/roadrunner-server/roadrunner/issues/1872), (thanks @shanginn).
+
+### <center>๐Ÿงน Chore:</center>
+
+- ๐Ÿง‘โ€๐Ÿญ: All `since` log entries are now always shown as milliseconds, [FR](https://github.com/roadrunner-server/roadrunner/issues/1858), (thanks @dmitryuk).
+
+---
+
+# <center> ๐Ÿš€ v2023.3.11 ๐Ÿš€ </center>
+
+### `Centrifuge` plugin:
+- ๐Ÿ›๏ธ Check the connection propertly before attempting to send a request: [PR](https://github.com/roadrunner-server/centrifuge/pull/78)
+
+### `OTEL` plugin:
+- ๐Ÿ›๏ธ Do not force to set `endpoint` and `headers`: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1848). Update docs on OTEL env usage: [Docs](https://docs.roadrunner.dev/logging-and-observability/otel), (thanks @fasdalf and @arku31).
+
+### <center>๐Ÿงน Chore:</center>
+
+- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: Build with Go 1.22.0.
+
+---
+
+# <center> ๐Ÿš€ v2023.3.10 ๐Ÿš€ </center>
+
+### Core `SDK` bugfixes:
+
+- ๐Ÿ›๏ธ Request queue gets too large, [BUG/FR](https://github.com/roadrunner-server/roadrunner/issues/1841), [Docs](https://docs.roadrunner.dev/php-worker/pool) (thanks, @L3tum)
+- ๐Ÿ›๏ธ Huge memory allocation in the debug mode [FIX](https://github.com/roadrunner-server/sdk/pull/110).
+- ๐Ÿ›๏ธ Stop handler (`worker->stop()`) was returned (breaking change fix) [FIX](https://github.com/roadrunner-server/sdk/pull/109), (thanks @Zylius)
+
+### <center>๐Ÿงน Chore:</center>
+
+- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project/system dependencies.
+
+---
+
+# <center> ๐Ÿš€ v2023.3.9 ๐Ÿš€ </center>
+
+### `HTTP` plugin
+
+- ๐Ÿ›๏ธ Streaming responses can experience a lock-up when the client disconnects early, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1830), (thanks @segrax)
+
+### `SQS` JOBS driver
+
+- ๐Ÿ›๏ธ Use user specified credentials if they are set even if we're inside AWS, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1833), (thanks @matteokov)
+
+### `Service` plugin
+
+- ๐Ÿ›๏ธ Services directly killed when restarting on terminating. [BUG](https://github.com/roadrunner-server/roadrunner/issues/1814), (thanks @chazzbg)
+
+### `Server` plugin
+
+- ๐Ÿ”ฅ Add `user` param to `on_init` command section. [PR](https://github.com/roadrunner-server/server/pull/68), [docs](https://roadrunner.dev/docs/plugins-server/current/en#configuration), (thanks @Kaspiman)
+
+### `Redis` KV driver
+
+- ๐Ÿ›๏ธ Correctly finish the OTEL span. [PR](https://github.com/roadrunner-server/redis/pull/62), (thanks @Kaspiman)
+
+### <center>๐Ÿงน Chore:</center>
+
+- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project/system dependencies.
+- ๐Ÿง‘โ€๐Ÿญ **Docs**: update docs, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1819).
+
+---
+
+# <center> ๐Ÿš€ v2023.3.8 ๐Ÿš€ </center>
+
+### `HTTP` plugin
+
+- ๐Ÿ”ฅ Experimental HTTP3 server, [FR](https://github.com/roadrunner-server/roadrunner/issues/926), docs: [link](https://roadrunner.dev/docs/experimental-experimental/current/en#support-for-the-http3-server-202338), (thanks @cv65kr & @cidious)
+
+### `gRPC` plugin
+
+- ๐Ÿ”ฅ Experimental support for the OTLP protocol inside the `gRPC` plugin: [FR](https://roadrunner.dev/docs/experimental-experimental/current/en#otlp-support-in-the-grpc-plugin-202338), (thanks @rauanmayemir)
+
+### `Beanstalk` driver
+
+- ๐Ÿ›๏ธ Fix NPE on empty options [BUG](https://github.com/roadrunner-server/roadrunner/issues/1804), (thanks @SerhiiMova).
+
+### `Velox` plugin
+
+- ๐Ÿ”ฅ To ensure that Velox is able to build every RoadRunner version, we've added a new CI CRON job that builds RoadRunner with Velox daily. This job is not related to the RoadRunner release process, but it will help us to ensure that Velox is always compatible with the latest RoadRunner version.
+
+### <center>๐Ÿงน Chore:</center>
+
+- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project/system dependencies.
+
+---
+
+# <center> ๐Ÿš€ v2023.3.7 ๐Ÿš€ </center>
+
+### `gRPC` plugin:
+
+- ๐Ÿ”ฅ Re-enable HTTP health and readiness checks via regular endpoints `/health` and `/ready`.
+
+### `AMQP` driver:
+
+- ๐Ÿ›๏ธ Fix mapping for the RabbitMQ type `List` (Golang `[]any`), [BUG](https://github.com/roadrunner-server/roadrunner/issues/1793), (thanks @iborysenko).
+- ๐Ÿ›๏ธ Fix an edge case for the DLX queue type when user doesn't specify any queue, but use `Push` method with delays, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1792), (thanks @fereron).
+
+### <center>๐Ÿงน Chore:</center>
+
+- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project/system dependencies.
+
+---
+
+# <center> ๐Ÿš€ v2023.3.6 ๐Ÿš€ </center>
+
+### CI releases:
+
+- ๐Ÿ”ฅ Add support for the `arm64` deb packages: [FR](https://github.com/roadrunner-server/roadrunner/issues/1785), (thanks @stevenbrookes)
+
+### <center>๐Ÿงน Chore:</center>
+
+- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project/system dependencies.
+
+
+---
+
+# <center> ๐Ÿš€ v2023.3.5 ๐Ÿš€ </center>
+
+### Config plugin:
+
+- ๐Ÿ”ฅ Add ability to include `.env` files in the configuration (experimental feature): [Docs](https://roadrunner.dev/docs/experimental-experimental/current/en#support-for-loading-envfiles-in-the-rryaml--v202335), (thanks @OO00O0O).
+
+### Temporal plugin:
+
+- ๐Ÿ›๏ธ Fix bug with incorrect pool destroy order: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1776), (thanks @pfy-oleksii-storozhylov).
+
+### HTTP plugin:
+
+- ๐Ÿ”ฅ Allow showing PHP exception traces in the response: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1781), (thanks @speller).
+
+
+### <center>๐Ÿงน Chore:</center>
+
+- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project (system) dependencies.
+
+
+---
+
+# <center> ๐Ÿš€ v2023.3.4 ๐Ÿš€ </center>
+
+## ๐Ÿ”ฅ Features:
+
+### RR Core:
+
+- โœ’๏ธ **Experimental features:** Add support for the experimental features: [Docs](https://roadrunner.dev/docs/experimental-experimental/current/en).
+
+## ๐Ÿ‘€ Plugins:
+
+- โœ’๏ธ **NATS driver:** Replace the old JetStream client with the new one: [FR](https://github.com/roadrunner-server/roadrunner/issues/1574), [API](https://github.com/nats-io/nats.go/blob/main/jetstream/README.md).
+- โœ’๏ธ **Config driver:** Add experimental support for merging two and more configuration files: [FR](https://github.com/roadrunner-server/roadrunner/issues/935), [Docs](https://roadrunner.dev/docs/experimental-experimental/current/en), (thanks @hugochinchilla)
+- โœ’๏ธ **Headers middleware:** Add support for the regular expressions for `origin`: [FR](https://github.com/roadrunner-server/roadrunner/issues/1709), [Docs](https://roadrunner.dev/docs/http-headers/current/en#cors), (thanks @orlandothoeny)
+
+## ๐Ÿฉน Fixes
+
+- ๐Ÿ› **HTTP Plugin**: Unable to POST relatively chunky POST: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1765), (thanks @FluffyDiscord)
+
+
+---
+
+# <center> ๐Ÿš€ v2023.3.3 [Bugfix] ๐Ÿš€ </center>
+
+## ๐Ÿฉน Fixes
+
+- ๐Ÿ› **RR Core**: Fix removed by mistake RPC endpoint: [ISSUE](https://github.com/roadrunner-server/roadrunner/issues/1758), (thanks @Kaspiman)
+
+---
+
+
+# <center> ๐Ÿš€ v2023.3.2 [Maintenance] ๐Ÿš€ </center>
+
+## ๐Ÿฉน Fixes
+
+- ๐Ÿ› **Temporal**: Fix incorrect log entry: [ISSUE](https://github.com/roadrunner-server/roadrunner/issues/1752), (thanks @roxblnfk)
+
+---
+
+### <center>๐Ÿงน Chore:</center>
+
+- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies (including CVE in transitive dependencies, especially gofiber).
+
+---
+
+
+# <center> ๐Ÿš€ v2023.3.1 [Maintenance] ๐Ÿš€ </center>
+
+### <center>๐Ÿงน Chore:</center>
+
+- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies (including CVE in Go libraries).
+- ๐Ÿง‘โ€๐Ÿญ **Go**: Update Golang to version 1.21.3.
+
+---
+
+
+# <center> ๐Ÿš€ v2023.3.0 ๐Ÿš€ </center>
+
+## ๐Ÿ”ฅ Features:
+
+### RR Core:
+
+- โœ’๏ธ `sdnotify` support: [FR](https://github.com/roadrunner-server/roadrunner/pull/1671), (thanks @Kaspiman), Docs: [link](https://roadrunner.dev/docs/app-server-systemd/current/en)
+
+## ๐Ÿ‘€ JOBS plugin:
+
+- โœ’๏ธ **AMQP Driver:** Support for a custom `routing_key` in the JOBS payload: [FR](https://github.com/roadrunner-server/roadrunner/issues/1555), (thanks @rauanmayemir)
+- โœ’๏ธ **JOBS plugin**: Parallel pipelines start/stop/destroy initialization. If you have much number of the pipelines,
+this feature should significantly reduce RR startup/shutdown time: [FR](https://github.com/roadrunner-server/roadrunner/issues/1672), (thanks @Kaspiman)
+
+## ๐Ÿ‘€ KV drivers (all):
+
+- โœ’๏ธ Support for OTEL across all KV drivers: [FR](https://github.com/roadrunner-server/roadrunner/issues/1635)
+
+## ๐Ÿ‘€ App-Logger plugin:
+
+- โœ’๏ธ Added new methods for your logger to log with context (message + key-values array): [FR](https://github.com/roadrunner-server/roadrunner/issues/1633), (thanks @Baiquette)
+
+## ๐Ÿ‘€ Temporal plugin:
+
+- โœ’๏ธ Replay API support [SINCE PHP-SDK 2.6.0]: [FR](https://github.com/roadrunner-server/roadrunner/issues/1640)
+- โœ’๏ธ Add support for the Worker Versioning: [FR](https://github.com/roadrunner-server/roadrunner/issues/1689)
+
+## ๐Ÿ‘€ Service plugin:
+
+- โœ’๏ธ Support for the user/group per-service: [FR](https://github.com/roadrunner-server/roadrunner/issues/1570), (thanks @Kaspiman)
+#### Configuration example:
+```yaml
+service:
+ schedule:run:
+ command: "bin/console schedule:run"
+ process_num: 1
+ exec_timeout: 0s
+ remain_after_exit: true
+ service_name_in_log: false
+ restart_sec: 60
+ user: www-data # <---------- [NEW]
+ group: www-data # <---------- [NEW]
+```
+
+## ๐Ÿ‘€ HTTP plugin:
+
+- โœ’๏ธ Response streaming support [FR](https://github.com/roadrunner-server/http/pull/152), (thanks @roxblnfk)
+
+Worker example:
+
+```php
+
+<?php
+
+require __DIR__ . '/vendor/autoload.php';
+
+use Spiral\RoadRunner;
+
+ini_set('display_errors', 'stderr');
+require __DIR__ . "/vendor/autoload.php";
+
+$worker = RoadRunner\Worker::create();
+$http = new RoadRunner\Http\HttpWorker($worker);
+$read = static function (): Generator {
+ foreach (\file(__DIR__ . '/test.txt') as $line) {
+ try {
+ yield $line;
+ } catch (Spiral\RoadRunner\Http\Exception\StreamStoppedException) {
+ // Just stop sending data
+ return;
+ }
+ }
+};
+
+try {
+ while ($req = $http->waitRequest()) {
+ $http->respond(200, $read());
+ }
+} catch (\Throwable $e) {
+ $worker->error($e->getMessage());
+}
+```
+
+- โœ’๏ธ Support for the `103` Early Hints via streamed response: [FR](https://github.com/roadrunner-server/roadrunner/issues/918), (thanks @azjezz)
+
+Worker example:
+
+```php
+<?php
+
+use Spiral\RoadRunner;
+
+ini_set('display_errors', 'stderr');
+require __DIR__ . "/vendor/autoload.php";
+
+$worker = RoadRunner\Worker::create();
+$http = new RoadRunner\Http\HttpWorker($worker);
+$read = static function (): Generator {
+ $limit = 10;
+ foreach (\file(__DIR__ . '/test.txt') as $line) {
+ foreach (explode('"', $line) as $chunk) {
+ try {
+ usleep(50_000);
+ yield $chunk;
+ } catch (Spiral\RoadRunner\Http\Exception\StreamStoppedException $e) {
+ // Just stop sending data
+ return;
+ }
+ if (--$limit === 0) {
+ return;
+ }
+ }
+ }
+};
+
+
+try {
+ while ($req = $http->waitRequest()) {
+ $http->respond(103, '', headers: ['Link' => ['</style111.css>; rel=preload; as=style'], 'X-103' => ['103']], endOfStream: false);
+ $http->respond(200, $read(), headers: ['X-200' => ['200']], endOfStream: true); // your regular response
+ }
+} catch (\Throwable $e) {
+ $worker->error($e->getMessage());
+}
+```
+
+## ๐Ÿ‘€ Server plugin:
+
+- โœ’๏ธ **RAW command support**: Support for raw commands, which are not validated by RR and may contain spaces. Note that this feature is only supported via `.rr.yaml` configuration: [FR](https://github.com/roadrunner-server/roadrunner/issues/1667), (thanks @nunomaduro)
+First argument should be a command (executable) and the rest of the arguments are passed to the command as arguments.
+
+```yaml
+version: "3"
+
+server:
+ command: ["php", "../../php_test_files/client.php echo pipes"]
+ relay: "pipes"
+ relay_timeout: "20s"
+```
+2.
+```yaml
+version: "3"
+
+server:
+ command:
+ - "php"
+ - "../../php_test_files/client.php echo pipes"
+ relay: "pipes"
+ relay_timeout: "20s"
+```
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› **RR Core**: Actualize according to the docs `./rr jobs list/stop/resume` commands: [PR](https://github.com/roadrunner-server/roadrunner/pull/1675), (thanks @gam6itko).
+- ๐Ÿ› **JOBS plugin**: Correctly handle OTEL span on listener error: [PR](https://github.com/roadrunner-server/amqp/pull/87), (thanks @Kaspiman).
+- ๐Ÿ› **RR tests**: Fix tests failures on Darwin: [PR](https://github.com/roadrunner-server/roadrunner/pull/1680), (thanks @shyim).
+- ๐Ÿ› **Streaming**: Add stream timeout (will be configurable in the next release). Fix loss of the first chunk of the streamed response.
+
+
+### <center>๐Ÿงน Chore:</center>
+- ๐Ÿง‘โ€๐Ÿญ **Golang**: Update Golang version to v1.21.
+- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies.
+
+---
+
+# <center> ๐Ÿš€ v2023.2.2 ๐Ÿš€ </center>
+
+## ๐Ÿฉน Fixes
+
+- ๐Ÿ› **JOBS plugin**: Fix typo in the `RPC` span name: [PR](https://github.com/roadrunner-server/jobs/pull/92), (thanks @Kaspiman).
+- ๐Ÿ› **SDK**: Fix incorrect workers state when worker reached `idleTTL` state: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1669), (thanks @Aleksa1996).
+
+### <center>๐Ÿงน Chore:</center>
+
+- ๐Ÿง‘โ€๐Ÿญ **HTTP plugin**: faster PostForm/MultipartForm processing [PR](https://github.com/roadrunner-server/http/pull/145).
+- ๐Ÿง‘โ€๐Ÿญ **Golang**: Update Golang version to v1.21.
+- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies.
+
+---
+
+# <center> ๐Ÿš€ v2023.2.1 ๐Ÿš€ </center>
+
+## ๐Ÿฉน Fixes
+
+- ๐Ÿ› **NATS driver**: Segfault when sending job via third-party sender without `consume_all` option set to `true`: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1650), (thanks @KernelMrex).
+- ๐Ÿ› **Metrics plugin**: Irregular panic when declaring metrics via `on_init` option: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1648), (thanks @Kaspiman).
+- ๐Ÿ› **Headers middleware**: Inconsistent usage of CORS options, failed to apply `allowed_*` options with spaces: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1655), (thanks @gam6itko).
+
+### <center>๐Ÿงน Chore:</center>
+
+- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies.
+
+---
+
+# <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`.
+- โœ’๏ธ **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
+
+- โœ’๏ธ **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`.
+- โœ’๏ธ **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)
+
+### <center>๐Ÿงน Chore:</center>
+
+- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies.
+
+---
+
+# <center> ๐Ÿš€ v2023.1.5 ๐Ÿš€ </center>
+
+## ๐Ÿฉน Fixes
+
+- ๐Ÿ› **KV plugin**: Correct plugin startup order: [PR](https://github.com/roadrunner-server/roadrunner/issues/1589), (thanks @ekisu)
+- ๐Ÿ› **JOBS plugin**: Check the pool pointer: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1597), (thanks @Kaspiman)
+- ๐Ÿ› **Send Middleware**: Fix bug in http.ResponseWriter wrapper: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1593), (thanks @tux-rampage)
+- ๐Ÿ› **XFF Middleware**: Split XFF content without space: [BUG](https://github.com/roadrunner-server/proxy_ip_parser/pull/35), (thanks @eightfourseventwo)
+
+## ๐Ÿ‘€ New
+
+- โœ’๏ธ **Docker** Add tags with minor version (e.g.: `v2023.1`, `v2023.2`, etc.): [FR](https://github.com/roadrunner-server/roadrunner/issues/1581), (thanks @Kaspiman)
+
+### <center>๐Ÿงน Chore:</center>
+
+- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies.
+
+---
+
+# <center> ๐Ÿš€ v2023.1.4 ๐Ÿš€ </center>
+
+## ๐Ÿฉน Fixes
+
+- ๐Ÿ› **gRPC plugin**: allow specifying wildcards in the `proto` field: [PR](https://github.com/roadrunner-server/grpc/pull/90), (thanks @MaxSem)
+- ๐Ÿ› **SDK (internal)**: Workers are killed during processing when memory usage is exeeded: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1561), (thanks @ekisu)
+- ๐Ÿ› **JOBS plugin**: Jobs plugin hangd on many workers and pollers: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1568), (thanks @embargo2710)
+- ๐Ÿ› **JOBS plugin**: Safe shutdown occurs before the specified time: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1567), (thanks @embargo2710)
+- ๐Ÿ› **AMQP plugin**: Typo in the property name (`multiple_ack`): [BUG](https://github.com/roadrunner-server/roadrunner/issues/1565), (thanks @embargo2710)
+
+### <center>๐Ÿงน Chore:</center>
+
+- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies.
+
+---
+
+# <center> ๐Ÿš€ v2023.1.3 ๐Ÿš€ </center>
+
+## ๐Ÿฉน Fixes
+
+- ๐Ÿ› **AMQP plugin**: Driver crash when not using OTEL metrics: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1553), (thanks @rauanmayemir)
+- ๐Ÿ› **JOBS plugin**: Incorrect parsing of JSON configuraion values: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1557), (thanks @embargo2710)
+
+### <center>๐Ÿงน Chore:</center>
+
+- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies.
+
+---
+
+# <center> ๐Ÿš€ v2023.1.2 ๐Ÿš€ </center>
+
+## ๐Ÿฉน Fixes
+
+- ๐Ÿ› **SQS plugin**: Revert optimized check for the AWS environment, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1550), (thanks @sergey-telpuk)
+
+
+### <center>๐Ÿงน Chore:</center>
+
+- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies.
+
+---
+
+# <center> ๐Ÿš€ v2023.1.1 ๐Ÿš€ </center>
+
+## ๐Ÿฉน Fixes
+
+- ๐Ÿ› **Centrifuge plugin**: Fix incorrect proto package import that caused panic on large payload.
+- ๐Ÿ› **PHP metapackage**: Unable to install RoadRunner via Composer, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1540), (thanks @monkenWu, @butschster)
+- ๐Ÿ› **HTTP plugin**: Fix double unmarshal of the main plugin configuration.
+- ๐Ÿ› **RR**: Fix `TestCommandWorkingDir` predifined temp directory, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1545), (thanks @shyim)
+- ๐Ÿ› **Status plugin**: Fix `superfluous response.WriteHeader` bug, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1544), (thanks @mfadul24)
+
+---
+
+# <center> ๐Ÿš€ v2023.1.0 ๐Ÿš€ </center>
+
+## โš ๏ธ The `reload` plugin has been removed from the default plugins list. Please use `*.pool.debug=true` instead.
+
+## ๐Ÿ‘€ New
+
+- โœ’๏ธ **Kafka plugin:** Completely rewritten Kafka plugin. Now supports regexps for topics, marked commits for group consumers, and SASL authentication. Configuration reference: [link](https://roadrunner.dev/docs/plugins-jobs/2.x/en#kafka-driver).
+- โœ’๏ธ **RPC plugin:** The RPC plugin would be available immediately before worker initialization. This means that PHP worker can use all RPC methods immediately.
+
+- โœ’๏ธ Endure v2 support (internal change).
+- โœ’๏ธ Bash script to download the latest RR archive. Later we'll release a non-archived binary in addition to the regular archived releases. Sample of usage:
+```bash
+curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/roadrunner-server/roadrunner/master/download-latest.sh | sh
+
+```
+- โœ’๏ธ RoadRunner Composer metapackage: Removed the `require` section: [PR](https://github.com/roadrunner-server/roadrunner/pull/1422), (thanks @roxblnfk)
+- โœ’๏ธ **Lock plugin:** New plugin to handle shared resource access.
+- โœ’๏ธ **AMQP plugin:** RR passes the queue, pipeline, and driver names to the PHP client in all modes, including the consuming payloads from the other senders.
+- โœ’๏ธ **AMQP plugin:** `consumer_id` can now be set in configuration, [FR](https://github.com/roadrunner-server/roadrunner/issues/1432), (thanks @codercms)
+- โœ’๏ธ **AMQP plugin:** Since `v2023.1.0` RR did not accept the empty queue name, [CH](https://github.com/roadrunner-server/roadrunner/issues/1443)
+- โœ’๏ธ **OTEL plugin:** ๏ธSupport OpenTelemetry for the `temporal`, `http`, `gRPC` and `Jobs` plugins, including all `Jobs` drivers.
+- โœ’๏ธ **Config plugin:** Configuration version updated to `version: '3'`.
+- โœ’๏ธ **Logger plugin:** Now uses UTC timestamps [CH](https://github.com/roadrunner-server/roadrunner/issues/1442), (thanks @cv65kr)
+- โœ’๏ธ **Service plugin:** Instead of `SIGKILL`, send `SIGINT` with a 5s timeout to stop the underlying processes.
+
+- โœ’๏ธ **Configuration plugin:** Support for bash syntax with default values for keys. Starting from this release, you can use the following variables anywhere (values) in the configuration: `${LOG-LEVEL:-debug}`. That is, if the `LOG-LEVEL` env variable is not set, use `debug`.
+
+- โœ’๏ธ **gRPC plugin:** Support for custom interceptors. Will be generally available in the `2023.2.0`.
+- โœ’๏ธ **Temporal plugin:** Support for custom interceptors. Will be generally available in the `2023.2.0`.
+
+## ๐Ÿฉน Fixes
+
+- ๐Ÿ› **HTTP plugin**: Edge case where empty form value overwrites existing value, [PR](https://github.com/roadrunner-server/http/pull/87), (thanks @tungfinblox).
+- ๐Ÿ› **AMQP plugin**: Redial failed if user only uses consumer, [PR](https://github.com/roadrunner-server/roadrunner/issues/1472), (thanks @iborysenko).
+
+- ๐Ÿ› **RR CLI**: ./rr jobs` command panics when used without arguments, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1479), (thanks @embargo2710)
+
+- ๐Ÿ› **gRPC Plugin:** panic when calling `grpc.Workers` immediately after RR start.[BUG](https://github.com/roadrunner-server/roadrunner/issues/1532), (thanks @genhoi)
+- ๐Ÿ› **Proxy IP parser middleware:** Correctly handle the proxy headers from CloudFlare: [Discussion](https://github.com/orgs/roadrunner-server/discussions/1516), (thanks @victor-sudakov, @vladimir-vv)
+
+---
+
+###### tags: `roadrunner` `v2.12.3`
+
+## v2.12.3 (16.02.2023)
+
+## <center> ๐Ÿš€ v2.12.3 ๐Ÿš€ </center>
+
+## <center>๐Ÿ‘€ New: <center>
+
+- โœ’๏ธ **Composer.json:** add contributors, funds, project description: [PR](https://github.com/roadrunner-server/roadrunner/pull/1451), (thanks @roxblnfk)
+
+
+### <center>๐Ÿงน Chore:</center>
+
+- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies.
+- ๐Ÿง‘โ€๐Ÿญ **Go**: update Go to `1.20`.
+
+---
+
+###### tags: `roadrunner` `v2.12.2`
+
+## v2.12.2 (12.01.2023)
+
+## <center> ๐Ÿš€ v2.12.2 ๐Ÿš€ </center>
+
+## <center>๐Ÿ‘€ New: <center>
+
+- โœ’๏ธ **AMQP plugin:** Custom headers in AMQP driver, [FR](https://github.com/roadrunner-server/roadrunner/issues/1388), (thanks @ykweb)
+
+
+ ### <center>๐Ÿฉน Fixes:</center>
+
+- ๐Ÿ› **Velox**: Unable to build RoadRunner with custom velox configuration, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1400), (thanks @mprokocki)
+- ๐Ÿ› **RR**: JSON Schema - wrong type for service `exec_timeout` option, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1410), (thanks @Chi-teck)
+- ๐Ÿ› **RR**: Fix the description of the `--silent` flag, [PR](https://github.com/roadrunner-server/roadrunner/pull/1401), (thanks @maximal)
+
+
+---
+
+###### tags: `roadrunner` `v2.12.2`
+
+## <center>๐Ÿš€ v2.12.2-alpha.1 ๐Ÿš€<center>
+
+## <center>๐Ÿ‘€ New: <center>
+
+- โœ **AMQP plugin:** pass headers to the `Queue` declaration command to create quorum, lazy, etc. queues and provide additional options supported by RabbitMQ, [FR](https://github.com/roadrunner-server/roadrunner/issues/1388), (thanks @ykweb)
+
+- โœ **AMQP plugin:** do not create a queue if the user does not consume it, [FR](https://github.com/spiral/roadrunner-jobs/issues/30), (thanks @Colomix)
+
+### <center>๐Ÿฉน Fixes:</center>
+
+- ๐Ÿ› **X-Sendfile middleware:** make it work as expected (as the response header), [BUG](https://github.com/roadrunner-server/roadrunner/issues/1386), (thanks @tux-rampage)
+
+---
+
+## v2.12.1 (01.12.2022)
+
+###### tags: `roadrunner` `v2.12.1`
+
+## <center> ๐Ÿš€ v2.12.1 ๐Ÿš€ </center>
+## <center>๐Ÿ‘€ New: </center>
+
+- โœ **RR:** Automatically set the `GOMAXPROCS` to match the container CPU quota.
+- โœ **AMQP plugin:** implement `Status` to check the AMQP connection [PR](https://github.com/roadrunner-server/amqp/pull/33).
+- โœ **SQS plugin:** `prefetch` option now works as expected. RR will not consume new JOBS when reaches `prefetch` limit, until already accepted messages are not ACK/NACK-ed.
+- โœ **JOBS(memory) plugin:** `prefetch` option now works as expected (see SQS). You can now emulate FIFO in memory by setting the `prefetch` option to 1.
+
+### <center>๐Ÿฉน Fixes:</center>
+
+- **gRPC plugin**: server options are applied only when TLS is set. [Discussion](https://github.com/roadrunner-server/roadrunner/discussions/1384).
+- **AMQP plugin**: fix a few typos in the configuration.
+
+## v2.12.0 (24.11.2022)
+
+# โš ๏ธ `websocket` and `broadcast` plugins were replaced by the new `centrifuge` plugin.
+# โš ๏ธ All plugins, `sdk` and `api` updated to `v3`. There are no breaking changes, we moved all Go code from the `api` to `sdk`.
+
+## ๐Ÿ‘€ New:
+
+- โœ **All plugins**: update to `v3`. This is done not because of some breaking change but because of the internal update.
+- โœ **RPC plugin**: add new API to provide a running RR version and RR configuration in JSON format.
+- โœ **Metrics plugin**: add new API to unregister previously registered collector. (thanks @butschster)
+- โœ **Server plugin**: add new API to get statuses about the service and its child processes. (thanks @butschster)
+- โœ **App logger plugin**: Application logger plugin, [FR](https://github.com/roadrunner-server/roadrunner/issues/1227) (thanks @wolfy-j)
+ **Docs**: [PHP-lib](https://github.com/roadrunner-php/app-logger)
+- โœ **AMQP plugin**: new configuration options. [FR](https://github.com/roadrunner-server/roadrunner/issues/1351), (thanks @andrey-tech)
+```yaml
+jobs:
+ pipelines:
+ example:
+ driver: amqp
+ config:
+ # Durable exchange
+ #
+ # Default: true
+ exchange_durable: true
+
+ # Auto-deleted exchange
+ #
+ # Default: false
+ exchange_auto_deleted: false
+
+ # Auto-deleted queue
+ #
+ # Default: false
+ queue_auto_deleted: false
+```
+
+- โœ **Workers pool (SDK)**: New option to control the `reset_timeout`. Note that the `pool.Reset` is protected by mutexes, meaning that if you have some requests already in the pool, you'll have to wait for these requests to be processed. The `reset_timeout` does not count this time.
+
+```yaml
+pool:
+ allocate_timeout: 10s
+ reset_timeout: 10s
+ destroy_timeout: 10s
+```
+
+- โœ **Centrifugo plugin**: New `centrifugo` plugin. Which is going to replace existing `broadcast` + `websockets` plugins. [FR](https://github.com/roadrunner-server/roadrunner/issues/1134).
+ **Docs**: [PHP-lib](https://github.com/roadrunner-php/centrifugo)
+
+RoadRunner config:
+
+```yaml
+version: "2.7"
+
+centrifuge:
+ # Centrifugo server proxy address (docs: https://centrifugal.dev/docs/server/proxy#grpc-proxy)
+ #
+ # Optional, default: tcp://127.0.0.1:30000
+ proxy_address: "tcp://127.0.0.1:30000"
+
+ # gRPC server API address (docs: https://centrifugal.dev/docs/server/server_api#grpc-api)
+ #
+ # Optional, default: tcp://127.0.0.1:30000. Centrifugo: `grpc_api` should be set to true and `grpc_port` should be the same as in the RR's config.
+ grpc_api_address: tcp://127.0.0.1:30000
+
+ # Use gRPC gzip compressor
+ #
+ # Optional, default: false
+ use_compressor: true
+
+ # Your application version
+ #
+ # Optional, default: v1.0.0
+ version: "v1.0.0"
+
+ # Your application name
+ #
+ # Optional, default: roadrunner
+ name: "roadrunner"
+
+ # TLS configuration
+ #
+ # Optional, default: null
+ tls:
+ # TLS key
+ #
+ # Required
+ key: /path/to/key.pem
+
+ # TLS certificate
+ #
+ # Required
+ cert: /path/to/cert.pem
+
+
+ # Workers pool settings. link: https://github.com/roadrunner-server/roadrunner/blob/master/.rr.yaml#L812
+ #
+ # Optional, default: null (see default values)
+ pool: {}
+```
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› **Headers middleware**: Header size is too small, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1336) (thanks @masterjus)
+- ๐Ÿ› **gRPC plugin**: Protobuf compiler plugin segfaults on import statements, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1337) (thanks @phroggyy)
+- ๐Ÿ› **Service plugin**: Get services list via RPC, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1339) (thanks @butschster)
+- ๐Ÿ› **gRPC plugin**: Remote `protoc-gen-php-grpc` plugin error, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1341) (thanks @rapita)
+- ๐Ÿ› **HTTP plugin**: Fail to upload files when RR's permissions are different from worker's, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1314) (thanks @egonbraun)
+
+
+## v2.11.4 (06.10.2022)
+
+## ๐Ÿ‘€ New:
+
+- โœ **Temporal plugin**: Support for the `SearchAttributes`. [FR](https://github.com/temporalio/roadrunner-temporal/pull/275), (thanks @cv65kr).
+
+**Docs**: [link](https://docs.temporal.io/concepts/what-is-a-search-attribute)
+**Samples**: [link](https://github.com/temporalio/samples-php/tree/master/app/src/SearchAttributes)
+
+## ๐Ÿ”ง Maintenance:
+
+- `roadrunner-temporal` plugin updated to: `1.7.0`
+- `http` plugin updated to: `2.23.5`
+- `sqs` plugin updated to: `2.20.4`
+- `config` plugin updated to: `2.16.5`
+- `grpc` plugin updated to: `2.23.3`
+- `nats` plugin updated to: `2.17.3`
+- `jobs` plugin updated to: `2.18.4`
+- `server` plugin updated to: `2.16.4`
+- `tcp` plugin updated to: `2.15.4`
+- `websockets` plugin updated to: `2.16.5`
+- `otel` plugin updated to: `2.5.6`
+- `kafka` plugin updated to: `2.2.3`
+
+---
+
+
+## v2.11.3 (29.09.2022)
+
+## ๐Ÿ‘€ New:
+- โœ **[ALPHA] gRPC plugin**: `buf` remote plugins support for the `protoc-gen-php-grpc` plugin. [FR](https://github.com/roadrunner-server/roadrunner/issues/1297), (thanks @rauanmayemir)
+- โœ **Temporal plugin**: `mTLS` support. [FR](https://github.com/roadrunner-server/roadrunner/issues/1300), (thanks @seregazhuk)
+
+[Configuration sample](https://github.com/roadrunner-server/roadrunner/blob/master/.rr.yaml#L252):
+
+```yaml
+temporal:
+ address: 127.0.0.1:7233
+ cache_size: 100000
+ activities:
+ num_workers: 4
+
+ tls:
+ key: client.key
+ cert: client.pem
+ root_ca: ca.cert
+ client_auth_type: require_and_verify_client_cert
+ server_name: "tls-sample"
+```
+
+
+## ๐Ÿฉน Fixes:
+- ๐Ÿ› **Config plugin**: properly replace environment variables for the array `yaml` values. [BUG](https://github.com/roadrunner-server/roadrunner/issues/1308), (thanks @lyt8384)
+
+## ๐Ÿงน Chore:
+
+- ๐Ÿง‘โ€๐Ÿญ: **[ALPHA] gRPC plugin**: `base64` decoder for the google's `ErrorProto` structure. [FR](https://github.com/roadrunner-server/roadrunner/issues/1273), (thanks @rauanmayemir)
+
+---
+
+## v2.11.2 (13.09.2022)
+
+## ๐Ÿ‘€ New:
+
+- โœ **Kafka plugin**: **[ โš ๏ธ EXPERIMENTAL OPTION โš ๏ธ ]** Kafka plugin now waits for 1 minute (automatically) for the broker to be available, [FR](https://github.com/roadrunner-server/roadrunner/issues/1267), (thanks @Baiquette)
+- โœ **Internal**: PHP Worker now uses an [FSM](https://en.wikipedia.org/wiki/Finite-state_machine) to transition between states (`working`, `ready`, `invalid`, etc).
+- โœ **Internal**: `./rr reset` now works in parallel. All workers will be restarted simultaneously instead of a one-by-one sync approach.
+- โœ **Internal**: `./rr reset` and destroy (when stopping RR) now gracefully stop the workers (giving a chance for the finalizers to work). If the worker doesn't respond in 10 seconds, it'll be killed.
+
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› **SQS plugin**: Incorrect detection of the `AWS IMDSv2` instances, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1250) (thanks @paulermo)
+- ๐Ÿ› **Temporal plugin**: Segmentation violation when using TLS, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1278), (thanks @seregazhuk)
+- ๐Ÿ› **NATS plugin**: Properly check the `stream not found` error from NATS, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1274), (thanks @pjtuxe)
+
+## ๐Ÿงน Chore:
+
+- ๐Ÿง‘โ€๐Ÿญ: **Temporal plugin**: Support for the `statsd` daemon for stats aggregation, [FR](https://github.com/temporalio/roadrunner-temporal/issues/265), (thanks @cv65kr)
+Configuration stays the same (**no breaking changes**), but additionally, you may specify a `driver`:
+
+**Prometheus:**
+```yaml
+temporal:
+ address: "127.0.0.1:7233"
+ metrics:
+ driver: prometheus # <---- prometheus used by default (you may omit the driver in this case)
+ address: "127.0.0.1:9095"
+ prefix: "samples"
+ type: "summary"
+ activities:
+ num_workers: 4
+```
+
+**Statsd:**
+```yaml
+temporal:
+ address: "127.0.0.1:7233"
+ metrics:
+ driver: statsd # <---- Should be specified to use a statsd driver
+ host_port: "127.0.0.1:8125"
+ prefix: "samples"
+ flush_interval: 1s
+ flush_bytes: 512
+ tags:
+ - foo: bar
+ activities:
+ num_workers: 4
+```
+
+Detailed description is here: [link](https://github.com/roadrunner-server/roadrunner/blob/master/.rr.yaml#L169)
+
+---
+
+## v2.11.1 (25.08.2022)
+
+## ๐Ÿ‘€ New:
+
+- โœ **http plugin**: Send raw body (unescaped) to the PHP worker for the `application/x-www-form-urlencoded` content type. [FR1](https://github.com/roadrunner-server/roadrunner/issues/1264), [FR2](https://github.com/roadrunner-server/roadrunner/issues/1206), (thanks @ekisu, @rlantingmove4mobile)
+Configuration:
+```yaml
+http:
+ raw_body: true/false (by default)
+```
+- โœ **temporal plugin**: Overwrite `client-name` and `client-version` in Go client to represent PHP-SDK, [FR](https://github.com/roadrunner-server/roadrunner/issues/1249), (thanks, @wolfy-j)
+
+## ๐Ÿงน Chore:
+
+- ๐Ÿง‘โ€๐Ÿญ: Autocomplete `.rr.yaml` configuration for the `cache` plugin. [link](https://cdn.jsdelivr.net/gh/roadrunner-server/roadrunner@latest/schemas/config/2.0.schema.json)
+
+---
+
+## 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](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.
+
+Configuration:
+```yaml
+temporal:
+ tls:
+ key: path/to/key
+ cert: path/to/cert
+ # other options
+```
+
+## ๐Ÿฉน 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.
+- ๐Ÿ› **SDK**: Use `pool.allocate_timeout` for the sockets/tcp relays instead of silently used of `relay_timeout`.
+
+## ๐Ÿงน 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.
+- All plugins, including RR, now use Go 1.19
+
+---
+
+## v2.10.7 (14.07.2022)
+
+## ๐Ÿ‘€ New:
+
+- โœ๏ธ **OTEL Middleware**: Support for the `jaeger_agent` exporter - [BUG](https://github.com/roadrunner-server/roadrunner/issues/1205), (thanks @L3tum)
+
+## ๐Ÿ“ฆ Packages:
+
+- ๐Ÿ“ฆ `OTEL` SDK updated to `v1.8.0`
+- ๐Ÿ“ฆ `google.golang.org/gRPC` updated to `v1.48.0`
+- ๐Ÿ“ฆ `logger` plugin updated to `v2.13.5`
+- ๐Ÿ“ฆ `Go` updated to `v1.18.4`
+
+---
+
+## v2.10.6 (07.07.2022)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› **SDK**: In some cases, worker watcher might freeze if the user kills the worker right after allocation but before `wait4` syscall and become a zombie. [BUG](https://github.com/roadrunner-server/roadrunner/issues/1180)
+- ๐Ÿ› **AMQP Plugin**: Ignored prefetch option when dynamically creating a pipeline. [BUG](https://github.com/roadrunner-server/roadrunner/issues/1197) (thanks @rauanmayemir)
+
+## ๐Ÿ‘€ New:
+
+- โœ๏ธ **VELOX**: Velox now supports environment variables for the `version`, `buildtime`, GitHub, and GitLab `tokens` in the `velox.toml`.
+- โœ๏ธ **Logger**: Say bye-bye to the `CRC verification failed` error. Starting from the `v2.10.6`, RR will show user-friendly message with the link to our docs on the most common causes for this type of error. [Docs](https://roadrunner.dev/docs/known-issues-stdout-crc/2.x/en)
+
+---
+
+## v2.10.5 (23.06.2022)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› **SDK**: Increase `stderr` buffer size from 32kb to 65kb, [man7](https://linux.die.net/man/7/pipe), [BUG](https://github.com/roadrunner-server/roadrunner/issues/1171), (thanks @7krasov)
+- ๐Ÿ› **AMQP Plugin**: Fix incorrect queue binding to the `default` routing key. [BUG](https://github.com/roadrunner-server/roadrunner/issues/1181), (thanks @rauanmayemir)
+- ๐Ÿ› **HTTP Plugin**: Fix `x-www-form-urlencoded` requests 10Mb limit. [BUG](https://github.com/roadrunner-server/roadrunner/issues/1172) (thanks @StreetYo)
+
+---
+
+## v2.10.4 (11.06.2022)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: incorrect `reset` behavior for the workers pool.
+- ๐Ÿ› Fix: correct `reset` order for the RR and Temporal workers.
+
+---
+
+## v2.10.3 (02.06.2022)
+
+## ๐Ÿ‘€ New:
+
+- โœ๏ธ **CLI**: `rr stop` command. `rr stop` will read the `.pid` file to send a graceful stop signal to the main RR process (`SIGTERM`). [FR](https://github.com/roadrunner-server/roadrunner/issues/1162) (thanks @Baiquette)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: incorrect `reset` behavior for the `temporal` plugin. [BUG](https://github.com/temporalio/sdk-php/issues/174), [BUG](https://github.com/temporalio/sdk-php/issues/170), [BUG](https://github.com/temporalio/sdk-php/issues/177). (thanks @dmitry-pilipenko, @mzavatsky)
+
+---
+
+## v2.10.2 (26.05.2022)
+
+## ๐Ÿ‘€ New:
+- โœ๏ธ **WORKER**: Starting from this release, RR is able to show full error messages sent to the `STDOUT` during the worker bootstrap.
+- โœ๏ธ **HTTP**: Connection might be upgraded from the `http/1.1` to `h2c`: [rfc7540](https://datatracker.ietf.org/doc/html/rfc7540#section-3.4)
+Headers, which should be sent to upgrade connection:
+ 1. `Upgrade`: `h2c`
+ 2. `Connection`: `HTTP2-Settings`
+ 3. `Connection`: `Upgrade`
+ 4. `HTTP2-Settings`: `AAMAAABkAARAAAAAAAIAAAAA` [RFC](https://datatracker.ietf.org/doc/html/rfc7540#section-3.2.1)
+
+- โœ๏ธ [**VELOX**](https://github.com/roadrunner-server/velox): Add GitLab support. Starting from the `beta.2` you may use `GitHub` and `GitLab` plugins together. Configuration updated. Keep in mind, until stable release `1.0.0` configuration might be changed with breaking changes.
+- โœ๏ธ **protoc-gen-php-grpc**: Use of fully qualified names in place of imports. [PR](https://github.com/roadrunner-server/grpc/pull/30) (thanks @ryanjcohen)
+
+---
+
+## v2.10.1 (19.05.2022)
+
+## ๐Ÿ‘€ New:
+- โœ๏ธ **Jobs (queues)** plugin now can consume any payload from the queue. If RR fails in converting payload into the `Job` structure, it'll create and fill all available fields manually. To turn **on** this feature, use `consume_all: true` in the driver configuration, e.g.:
+Supported drivers: `amqp`, `sqs`,`beanstalk`,`nats`.
+
+```yaml
+jobs:
+ num_pollers: 10
+ pipeline_size: 100000
+ pool:
+ num_workers: 10
+
+ pipelines:
+ test-raw:
+ driver: sqs
+ config:
+ consume_all: true # <------- NEW OPTION
+
+ consume: [ "test-raw" ]
+```
+
+- โœ๏ธ **SQS** Jobs driver now can skip queue declaration in favor of getting queue URL instead. To use this feature, use `skip_queue_declaration: true` sqs driver option. [FR](https://github.com/roadrunner-server/roadrunner/issues/980), (thanks @sergey-telpuk)
+
+```yaml
+jobs:
+ num_pollers: 10
+ pipeline_size: 100000
+ pool:
+ num_workers: 10
+
+ pipelines:
+ test-2:
+ driver: sqs
+ config:
+ skip_queue_declaration: true # <----- NEW OPTION
+
+ consume: [ "test-2" ]
+```
+
+- โœ๏ธ OpenTelemetry middleware now supports `Jaeger` exporter and propagator.
+
+```yaml
+http:
+ address: 127.0.0.1:43239
+ max_request_size: 1024
+ middleware: [gzip, otel]
+ pool:
+ num_workers: 2
+ max_jobs: 0
+ allocate_timeout: 60s
+ destroy_timeout: 60s
+
+otel:
+ exporter: jaeger # <----- NEW OPTION
+```
+
+- โœ๏ธ **HTTP Plugin** now supports [`mTLS` authentication](https://www.cloudflare.com/en-gb/learning/access-management/what-is-mutual-tls/). Possible values for the `client_auth_type` are the same as for the `gRPC` (`no_client_cert`, `request_client_cert`,`require_any_client_cert`,`verify_client_cert_if_given`,`require_and_verify_client_cert`) [FR](https://github.com/roadrunner-server/roadrunner/issues/1111), (thanks @fwolfsjaeger)
+
+```yaml
+version: '2.7'
+
+server:
+ command: "php ../../php_test_files/http/client.php echo pipes"
+ relay: "pipes"
+ relay_timeout: "20s"
+
+http:
+ address: :8085
+ max_request_size: 1024
+ middleware: [ ]
+ pool:
+ num_workers: 1
+ max_jobs: 0
+ allocate_timeout: 60s
+ destroy_timeout: 60s
+ ssl:
+ address: :8895
+ key: "key"
+ cert: "cert"
+ root_ca: "rootCA.pem" # <---- REQUIRED to use mTLS
+ client_auth_type: require_and_verify_client_cert # <---- NEW OPTION
+logs:
+ mode: development
+ level: error
+```
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: **HTTP plugin**: non-documented behavior on non-standard (but valid) http codes. [BUG](https://github.com/roadrunner-server/roadrunner/issues/1136), (thanks, @Meroje)
+- ๐Ÿ› Fix: **SQS driver**: `rr_auto_ack` attribute won't fail the existing messages.
+
+---
+
+## v2.10.0 (16.05.2022)
+
+## ๐Ÿ‘€ New:
+- โœ๏ธ Documentation update: [link](https://roadrunner.dev).
+- โœ๏ธ **RoadRunner-Temporal plugin now supports local activities**. Here is the brief overview: [link](https://docs.temporal.io/docs/temporal-explained/activities/#local-activity).
+- โœ๏ธ Add Debian `amd64` releases. [FEATURE](https://github.com/roadrunner-server/roadrunner/issues/940)
+- โœ๏ธ Add signed releases. Starting from the `v2.10.0`, every released binary can be checked with a provided `*.asc` key. For example:
+```bash
+$ gpg --verify rr.asc
+```
+
+The openPGP key can be verified here: [keyserver](https://keyserver.ubuntu.com/pks/lookup?search=0x9480A51C85D357D0&fingerprint=on&op=index)
+
+- โœ๏ธ All proto api for the `Go` programming language located here: [link](https://buf.build/roadrunner-server/api). To use it, just import the latest stable version `go.buf.build/protocolbuffers/go/roadrunner-server/api latest`.
+- โœ๏ธ `Service` plugin now supports auto-reload. It can be added to the `reload` plugin targets and on change, it'll reload all underlying processes.
+- โœ๏ธ `AutoAck` jobs option. For the messages (jobs), which are acceptable to lose. Or which execution can lead to a worker's stop (for example - OOM).
+- โœ๏ธ **[BETA] OpenTelemetry support**. Starting from now, the `new_relic` middleware is deprecated, it'll receive only dependency updates and will be removed from the RR bundle in the `v2.12.0`. (thanks @brettmc)
+OpenTelemetry plugin supports the following exporters:
+ 1. OTLP (open telemetry protocol): `datadog`, `new relic`.
+ 2. zipkin
+ 3. stdout
+ All these exporters can send their data via `http` or `grpc` clients.
+
+Configuration sample (stdout exporter):
+```yaml
+http:
+ address: 127.0.0.1:43239
+ max_request_size: 1024
+ middleware: [gzip, otel]
+ pool:
+ num_workers: 2
+ max_jobs: 0
+ allocate_timeout: 60s
+ destroy_timeout: 60s
+
+otel:
+ insecure: false
+ compress: true
+ exporter: stdout
+ service_name: rr_test
+ service_version: 1.0.0
+```
+
+New Relic exporter via `http` client: [link](https://docs.newrelic.com/docs/more-integrations/open-source-telemetry-integrations/opentelemetry/opentelemetry-setup/#review-settings)
+```yaml
+http:
+ address: 127.0.0.1:43239
+ max_request_size: 1024
+ middleware: [gzip, otel]
+ pool:
+ num_workers: 2
+ max_jobs: 0
+ allocate_timeout: 60s
+ destroy_timeout: 60s
+otel:
+ insecure: false
+ compress: true
+ client: http
+ exporter: stdout
+ custom_url: ""
+ service_name: rr_test
+ service_version: 1.0.0
+ endpoint: otlp.eu01.nr-data.net:4318
+ headers:
+ - api-key: xxx # your api key here
+```
+
+PHP worker can access tracing data via `w3c` [headers](https://www.w3.org/TR/trace-context/#trace-context-http-headers-format).
+
+- โœ๏ธ Jobs can be auto-ack'ed now. New option used to acknowledge a message after RR receive it from the queue. [FR](https://github.com/roadrunner-server/roadrunner/issues/1089), (thanks @hustlahusky)
+- โœ๏ธ `protoc-gen-php-grpc` now supports `optional` fields. (thanks @genhoi)
+
+## ๐Ÿงน Chore:
+
+- ๐Ÿง‘โ€๐Ÿญ: All spaces and new-lines from the `Service` plugin output will be automatically trimmed. [CHORE](https://github.com/roadrunner-server/roadrunner/issues/1060), (thanks, @OO00O0O)
+
+---
+
+## v2.9.4 (06.05.2022)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: **HTTP plugin:** request max body size incorrectly parsed. [BUG](https://github.com/roadrunner-server/roadrunner/issues/1115), (thanks, @Opekunov)
+
+---
+
+## v2.9.3 (06.05.2022)
+
+## ๐Ÿ‘€ New:
+
+- โœ๏ธ: `--silent` flag. This flag will hide startup message and `./rr reset` output.
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: **AMQP** driver didn't reconnect on timeouts, which led to stopping consuming messages w/o a proper notification. [BUG](https://github.com/roadrunner-server/roadrunner/issues/1103), (thanks @hustlahusky)
+- ๐Ÿ› Fix: `reset` command (`./rr reset`) gets stuck when using output redirects. [BUG](https://github.com/roadrunner-server/roadrunner/issues/1108), (thanks @maximal)
+
+## ๐Ÿงน Chore:
+
+- ๐Ÿ—๏ธ **HTTP** plugin: better looking error message on wrong status code. [ISSUE](https://github.com/roadrunner-server/roadrunner/issues/1107), (thanks @gam6itko)
+
+---
+
+## v2.10.0-alpha.1 (07.04.2022)
+
+## ๐Ÿ‘€ New:
+
+- โœ๏ธ **[ALPHA]** HTTP response streaming. Available only in the alfa builds.
+
+Worker sample:
+```php
+<?php
+
+use Nyholm\Psr7\Factory\Psr17Factory;
+use Nyholm\Psr7\Response;
+use Nyholm\Psr7\Stream;
+use Spiral\RoadRunner;
+
+ini_set('display_errors', 'stderr');
+require __DIR__ . "/vendor/autoload.php";
+
+$worker = RoadRunner\Worker::create();
+$psr7 = new RoadRunner\Http\PSR7Worker(
+ $worker,
+ new Psr17Factory(),
+ new Psr17Factory(),
+ new Psr17Factory()
+);
+
+$psr7->chunk_size = 10 * 10 * 1024;
+$filename = 'file.tmp'; // big file or response
+
+while ($req = $psr7->waitRequest()) {
+ try {
+ $fp = \fopen($filename, 'rb');
+ \flock($fp, LOCK_SH);
+ $resp = (new Response())->withBody(Stream::create($fp));
+ $psr7->respond($resp);
+ } catch (\Throwable $e) {
+ $psr7->getWorker()->error((string)$e);
+ }
+
+```
+
+Known issues:
+1. RR will not notify a worker if HTTP connection was interrupted. RR will read all response from the worker and drop it. That will be fixed in the stable streaming release.
+2. Sometimes RR may miss the immediate error from the worker and send a 0 payload with 200 status. This is related only to the http response.
+
+
+- โœ๏ธ **[BETA]** Local activities support [link](https://docs.temporal.io/docs/concepts/what-is-a-local-activity).
+
+
+---
+
+
+## v2.9.2 (28.04.2022)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: incorrect `-w` flag behavior (set working dir). [BUG](https://github.com/roadrunner-server/roadrunner/issues/1101), (thanks @rauanmayemir)
+
+---
+
+## v2.9.1 (11.04.2022)
+
+### โš ๏ธ This is important. `trusted_subnets` HTTP option will work only when `proxy_ip_parser` was added to the list of the middlewares.
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: incorrect usage of the `ExecWithTTL` SDK method which leads to skipping the `exec_ttl` supervisor option [BUG](https://github.com/laravel/octane/issues/504) (thanks @Baiquette)
+
+## ๐Ÿ‘€ New:
+
+- โœ๏ธ Add [`proxy_ip_parser`](https://github.com/roadrunner-server/proxy_ip_parser) HTTP middleware responsible for parsing `X-Forwarded-For`, `Forwarded`, `True-Client-IP` and `X-Real-Ip`.
+
+---
+
+## v2.9.0 (07.04.2022)
+
+---
+๐Ÿ‡บ๐Ÿ‡ฆ๐Ÿ‡บ๐Ÿ‡ฆ๐Ÿ‡บ๐Ÿ‡ฆ `#StandWithUkraine` ๐Ÿ‡บ๐Ÿ‡ฆ๐Ÿ‡บ๐Ÿ‡ฆ๐Ÿ‡บ๐Ÿ‡ฆ
+
+---
+
+## ๐Ÿ‘€ New:
+
+- โœ๏ธ [**API**](https://github.com/roadrunner-server/api): add service proto api to manage services, [FR](https://github.com/roadrunner-server/roadrunner/issues/1009) (thanks @butschster). Documentation is here: [link](https://roadrunner.dev/docs/beep-beep-service).
+- โœ๏ธ Grafana dashboard [PATH](dashboards/RR_Dashboard.json). Exposed metrics:
+1. **General**:
+ 1. Uptime (seconds).
+ 2. Memory used by RR (MB).
+ 3. Number of active goroutines.
+2. **HTTP**:
+ 1. Number of workers by its state (ready, working, invalid).
+ 2. Total RSS memory used by workers.
+ 3. Memory used by each worker individually (with PID).
+ 4. Latency (ms).
+ 5. Requests queue size.
+ 6. Requests per minute.
+3. **JOBS**:
+ 1. Number of workers by its state (ready, working, invalid).
+ 2. Total RSS memory used by workers.
+ 3. Memory used by each worker individually (with PID).
+ 4. Successfully processed jobs (rate, 5m).
+ 5. Failed jobs (rate, 5m).
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: Goroutines leak in the `amqp` plugin when destroying pipelines.
+
+## ๐Ÿงน Chore:
+
+- ๐Ÿง‘โ€๐Ÿญ Update all dependencies to the most recent versions.
+
+---
+
+## v2.8.8 (31.03.2022)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: Chdir (if the user sets the `-w` flag) before searching for the configuration.
+
+## ๐Ÿ“ฆ Packages:
+
+- ๐Ÿ“ฆ Update SQS and Go deps to the most recent versions.
+
+---
+
+## v2.8.6 (24.03.2022)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: Websocket access validator requests don't send cookies [BUG](https://github.com/roadrunner-server/roadrunner/issues/1064), (@steffendietz)
+
+---
+
+## v2.8.5 (23.03.2022)
+
+## ๐Ÿงน Chore:
+
+- ๐Ÿง‘โ€๐Ÿญ Update all dependencies to the most recent versions.
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: Incorrect pointer assign to read the configuration [BUG](https://github.com/roadrunner-server/roadrunner/issues/1066)
+
+---
+
+## v2.8.4 (17.03.2022)
+
+## ๐Ÿ‘€ New:
+
+- Go update to version `1.18`
+
+## ๐Ÿงน Chore:
+
+- ๐Ÿง‘โ€๐Ÿญ Update all dependencies to the most recent versions.
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: No longer able to set environment variables for service [BUG](https://github.com/roadrunner-server/roadrunner/issues/1055), (reporter @andrei-dascalu)
+
+---
+
+## v2.8.3 (13.03.2022)
+
+## ๐Ÿ‘€ New:
+
+- โœ๏ธ Better env variables parser. Now RR is able to parse the sentences like: `"mysql://${MYSQL_USER}:${MYSQL_PASSWORD}@${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_DATABASE}?serverVersion=5.7"` and get all environment variables. [FR](https://github.com/roadrunner-server/roadrunner/issues/1035), (reporter @Tony-Sol)
+
+## ๐Ÿงน Chore:
+
+- ๐Ÿง‘โ€๐Ÿญ Update all dependencies to the most recent versions.
+- ๐Ÿง‘โ€๐Ÿญ Remove `configuration` plugin from the `root.go` and other files. Used only in the `serve` where it should be.
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: call of the `kv.TTL` for the Redis drivers returns non RFC3339 time format [BUG](https://github.com/roadrunner-server/roadrunner/issues/1024), (reporter @antikirra)
+- ๐Ÿ› Fix: `rr workers` command doesn't work for the `service` plugin [BUG](https://github.com/roadrunner-server/roadrunner/issues/1033), (reporter @OO00O0O)
+
+---
+
+## v2.8.2 (22.02.2022)
+
+## ๐Ÿงน Chore:
+
+- Docker: migrate to the `trivy` action instead of `grype` [PR](https://github.com/roadrunner-server/roadrunner/pull/1020), (contributor: @tarampampam)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: **CONFIG**: `version` can't be passed as inline option: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1021), (reporter @nunomaduro)
+
+---
+
+## v2.8.1 (21.02.2022)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: **HTTP**: incorrect middleware chain order [BUG](https://github.com/roadrunner-server/roadrunner/issues/1017), (reporter @nitrogenium)
+```yaml
+http:
+ middleware: ["static", "gzip"]
+```
+
+Middleware applied from the right to left, i.e. first will be `gzip` and then `static`.
+
+## ๐Ÿ‘€ New:
+
+- โœ๏ธ **HTTP**: Properly parse `Forwarder` header, [RFC](https://datatracker.ietf.org/doc/html/rfc7239), [FR](https://github.com/roadrunner-server/roadrunner/issues/1018) (reporter @digitalkaoz)
+- โœ๏ธ **TEMPORAL**: Add `rr_activities_pool_queue_size` and `rr_workflows_pool_queue_size` metrics. These metrics shows the number of activities/workflows waiting for the worker [BUG](https://github.com/temporalio/roadrunner-temporal/issues/183), (reporter @Zylius)
+- โœ๏ธ **API**: `Queuer` interface for the workers pool to show the number of requests waiting for the worker. Implemented in **SDK**.
+
+---
+
+## v2.8.0 (17.02.2022)
+
+### โš ๏ธ For the RR `v2.8.0` your `.rr.yaml` configuration version should be [`2.7`](https://github.com/roadrunner-server/roadrunner/blob/master/.rr.yaml), so please update your config and add `version: '2.7'` at the top.
+
+## ๐Ÿ‘€ New:
+
+- โœ๏ธ Timeout for the SQS create/get queue operations (30seconds) [FR](https://github.com/roadrunner-server/roadrunner/issues/903) (reporter @sergey-telpuk)
+- โœ๏ธ New workers pool option -> `command`:
+```yaml
+http:
+ address: 127.0.0.1:8080
+ max_request_size: 256
+ middleware: ["headers", "gzip"]
+ trusted_subnets: []
+
+ # Workers pool settings.
+ pool:
+ command: "php app.php" <---- NEW
+```
+This option is used to override the `server`'s command with the new one. The new command will inherit all server options. It can be used in any plugin (`jobs`, `grpc`, `tcp`, `http`, etc) using workers pool (`http` used here as a sample). No need to update your config. By default server command will be used as in the previous RR versions. Note, you can't leave the `server` command option empty. If you wanted to override the command in every plugin you use, put a placeholder in the `server.command`.
+- โœ๏ธ Add `Rr_newrelic_ignore` header support. Now you can send the `Rr_newrelic_ignore:true` header and RR will ignore such transactions. No data will be sent to the `newrelic` server. [FR](https://github.com/roadrunner-server/roadrunner/issues/900) (reporter @arku31)
+- โœ๏ธ Add support for the SQS FIFO queues [FR](https://github.com/roadrunner-server/roadrunner/issues/906) (reporter @paulermo)
+- โœ๏ธ Add support for the gRPC Healthcheck protocol v1 in the `grpc` plugin. [Doc](https://github.com/grpc/grpc/blob/master/doc/health-checking.md), [FR](https://github.com/roadrunner-server/roadrunner/issues/928) (reporter @porozhnyy)
+
+---
+
+## v2.7.9 (14.02.2022)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: errors on workers reallocating when the unix/tcp socket transport is used: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1008), (reporter @tarampampam)
+
+---
+
+## 2.7.8 (12.02.2022)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: worker sometimes panics when `unix/tcp sockets` transport used: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1006), (reporter @tarampampam)
+
+---
+
+## 2.7.7 (10.02.2022)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: case-sensitive attributes for SQS [BUG](https://github.com/roadrunner-server/roadrunner/issues/994), (reporter @paulermo)
+- ๐Ÿ› Fix: grpc plugin incorrectly parses the error response from the worker [BUG](https://github.com/roadrunner-server/roadrunner/issues/995), (reporter @rauanmayemir)
+- ๐Ÿ› Fix: destroy operation hangs if the number of workers is 0 [BUG](https://github.com/roadrunner-server/roadrunner/issues/1003), (reporter @benalf)
+
+---
+
+## 2.7.6 (06.02.2022)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: temporal: `ActivityNotRegisteredError` on the local activity workers [BUG](https://github.com/temporalio/roadrunner-temporal/issues/163) (reporter @Zylius)
+
+---
+
+
+## 2.7.5 (04.02.2022)
+
+## ๐Ÿ‘€ New:
+
+- โœ๏ธ Better workers' statistic. Add `worker state`, per-worker memory usage and worker's PID stats for the `JOBS`, `GRPC`, `HTTP` plugins [FR](https://github.com/roadrunner-server/roadrunner/issues/970)
+
+---
+
+## 2.7.4 (27.01.2022)
+
+## ๐Ÿ‘€ New:
+
+- โœ๏ธ Return an error if the user uses the `.env` file, but it doesn't exist. [BUG](https://github.com/roadrunner-server/roadrunner/issues/954), (reporter @O00O0O)
+- โœ๏ธ Parallel workers allocation within the plugin. [FR](https://github.com/roadrunner-server/roadrunner/issues/951), (reporter @roquie)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: RR workers are blocked when one of them should send a big (> 100mb) response and when the time to send the response is bigger than the supervisor's `watch_tick` [BUG](https://github.com/roadrunner-server/roadrunner/issues/957) (reported by: @OO00O0O)
+
+---
+
+## 2.7.3 (19.01.2022)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: `jobs` pipeline shadowing if registering the pipeline with the existing name [BUG](https://github.com/roadrunner-server/roadrunner/issues/943)
+- ๐Ÿ› Fix: `reload` plugin doesn't collect a resettable plugins [BUG](https://github.com/roadrunner-server/roadrunner/issues/942)
+
+---
+
+## v2.7.2 (17.01.2022)
+
+## ๐Ÿ‘€ New:
+- Moved to the new organization.
+
+---
+
+## v2.7.0 (14.01.2022)
+
+## ๐Ÿ‘€ New:
+
+- โœ๏ธ RR `workers pool`, `worker`, `worker_watcher` now has their own log levels. `stderr/stdout` logged as before at the `info` log level. All other messages moved to the `debug` log level except a few events from the `worker_watcher` when RR can't allocate the new worker which are moved to the `warn`.
+- โœ๏ธ Use the common logger for the whole roadrunner-sdk and roadrunner-plugins.
+- โœ๏ธ `.rr.yaml` now support versions. You may safely use your old configurations w/o specifying versions. Configuration w/o version will be treated as `2.6`. It is safe to use configuration w/o version or with version `2.6` with RR `2.7` because RR is able to automatically transform the old configuration.
+ But if you use configuration version `2.7` you must update the `jobs` pipelines config.
+ **At this point we can guarantee, that no breaking changes will be introduced in the configuration w/o auto-convert from the older configuration version**
+ For example, if we introduce a configuration update let's say in version `2.10`, we will support automatic conversion from at least 2 previous versions w/o involving the user into the process. In the example case, versions `2.9` and `2.8` will be automatically converted. From our release cycle, you will have at least 3 months to update the configuration from version `2.8` and 2 months from `2.9`.Version located at the top of the `.rr.yaml`:
+
+**Compatibility matrix located here**: TODO
+**Configuration changelog**: TODO
+
+```yaml
+version: "2.6"
+
+# ..... PLUGINS ......
+```
+
+**Before:**
+```yaml
+ pipelines:
+ test-local:
+ driver: memory
+ priority: 10
+ prefetch: 10000
+
+ test-local-1:
+ driver: boltdb
+ priority: 10
+ file: "rr.db"
+ prefetch: 10000
+
+ test-local-2:
+ driver: amqp
+ prefetch: 10
+ priority: 1
+ queue: test-1-queue
+ exchange: default
+ exchange_type: direct
+ routing_key: test
+ exclusive: false
+ multiple_ack: false
+ requeue_on_fail: false
+
+ test-local-3:
+ driver: beanstalk
+ priority: 11
+ tube_priority: 1
+ tube: default-1
+ reserve_timeout: 10s
+
+ test-local-4:
+ driver: sqs
+ priority: 10
+ prefetch: 10
+ visibility_timeout: 0
+ wait_time_seconds: 0
+ queue: default
+ attributes:
+ DelaySeconds: 0
+ MaximumMessageSize: 262144
+ MessageRetentionPeriod: 345600
+ ReceiveMessageWaitTimeSeconds: 0
+ VisibilityTimeout: 30
+ tags:
+ test: "tag"
+
+ test-local-5:
+ driver: nats
+ priority: 2
+ prefetch: 100
+ subject: default
+ stream: foo
+ deliver_new: true
+ rate_limit: 100
+ delete_stream_on_stop: false
+ delete_after_ack: false
+```
+
+**After**:
+Now, pipelines have only `driver` key with the configuration under the `config` key. We did that to uniform configuration across all drivers (like in the `KV`).
+```yaml
+ pipelines:
+ test-local:
+ driver: memory
+
+ config: # <------------------ NEW
+ priority: 10
+ prefetch: 10000
+
+ test-local-1:
+ driver: boltdb
+
+ config: # <------------------ NEW
+ priority: 10
+ file: "test-local-1-bolt.db"
+ prefetch: 10000
+
+ test-local-2:
+ driver: amqp
+
+ config: # <------------------ NEW
+ priority: 11
+ prefetch: 100
+ queue: test-12-queue
+ exchange: default
+ exchange_type: direct
+ routing_key: test
+ exclusive: false
+ multiple_ack: false
+ requeue_on_fail: false
+
+ test-local-3:
+ driver: beanstalk
+
+ config: # <------------------ NEW
+ priority: 11
+ tube_priority: 1
+ tube: default-2
+ reserve_timeout: 10s
+
+ test-local-4:
+ driver: sqs
+
+ config: # <------------------ NEW
+ priority: 10
+ prefetch: 10
+ visibility_timeout: 0
+ wait_time_seconds: 0
+ queue: default
+
+ attributes:
+ DelaySeconds: 0
+ MaximumMessageSize: 262144
+ MessageRetentionPeriod: 345600
+ ReceiveMessageWaitTimeSeconds: 0
+ VisibilityTimeout: 30
+ tags:
+ test: "tag"
+
+ test-local-5:
+ driver: nats
+
+ config: # <------------------ NEW
+ priority: 2
+ prefetch: 100
+ subject: default
+ stream: foo
+ deliver_new: true
+ rate_limit: 100
+ delete_stream_on_stop: false
+ delete_after_ack: false
+```
+
+- โœ๏ธ **[ALPHA]** New cache http middleware. It is still in alpha, but we started implementing the [rfc-7234](https://httpwg.org/specs/rfc7234.html) to support `Cache-Control` and caching in general. In the first alpha you may test the `max-age`, `Age` and `Authorization` support via the in-memory driver.
+
+**Configuration**:
+```yaml
+http:
+# .....
+ middleware: ["cache"]
+ cache:
+ driver: memory
+ cache_methods: ["GET", "HEAD", "POST"] # only GET in alpha
+ config: {} # empty configuration for the memory
+```
+
+- โœ๏ธ Logger unification. Starting this version we bound our logs to the `uber/zap` log library as one of the most popular and extensible.
+- โœ๏ธ API stabilization. All `v2` api interfaces moved to the `https://github.com/roadrunner-server/api` repository. Except logger (structure), all plugins depends only on the interfaces and don't import each other.
+- โœ๏ธ `GRPC` plugin now is able to work with gzipped payloads. [FR](https://github.com/spiral/roadrunner-plugins/issues/191) (reporter @hetao29)
+- โœ๏ธ `SQS` plugin now detects EC2 env and uses AWS credentials instead of static provider. [FR](https://github.com/spiral/roadrunner-plugins/issues/142) (reporter @paulermo)
+- โœ๏ธ `Jobs` plugin now acknowledges responses with incorrectly formed responses to prevent the infinity loop (with the error message in the logs). [BUG](https://github.com/spiral/roadrunner-plugins/issues/190) (reporter @sergey-telpuk)
+- โœ๏ธ `protoc` updated to the version `v3.19.2`.
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: RR may have missed the message from the `stderr` when the PHP script failed to start immediately after RR starts.
+- ๐Ÿ› Fix: 200 HTTP status code instead of 400 on readiness/health bad requests. [BUG](https://github.com/spiral/roadrunner-plugins/issues/180)
+- ๐Ÿ› Fix: `new_relic` plugin removes/modifies more headers than it should. [BUG](https://github.com/spiral/roadrunner-plugins/issues/185) (reporter: @arku31)
+
+
+## v2.6.6 (7.12.2021)
+
+## ๐Ÿ‘€ New:
+
+- โœ๏ธ Add events from the supervisor to the `server` plugin.
+-
+## ๐Ÿฉน Fixes:
+- ๐Ÿ› Fix: worker exited immediately after obtaining the response. [BUG](https://github.com/spiral/roadrunner/issues/871) (reporter: @samdark).
+
+## ๐Ÿ“ฆ Packages:
+
+- ๐Ÿ“ฆ Update RoadRunner to `v2.6.2`
+
+## v2.6.5 (7.12.2021)
+
+## ๐Ÿฉน Fixes:
+- ๐Ÿ› Fix: wrong metrics type for the `rr_http_requests_queue`, [bug](https://github.com/spiral/roadrunner-plugins/issues/162) (reporter: @victor-sudakov)
+- ๐Ÿ› Fix: memory leak when supervised static pool used. [PR](https://github.com/spiral/roadrunner/pull/870).
+
+## ๐Ÿ“ฆ Packages:
+
+- ๐Ÿ“ฆ Update RoadRunner to `v2.6.1`
+
+---
+
+## v2.6.4 (7.12.2021)
+
+## ๐Ÿ“ฆ Packages:
+
+- ๐Ÿ“ฆ Update endure to `v1.1.0`
+
+## ๐Ÿฉน Fixes:
+- ๐Ÿ› Fix: NPE in the `http.Reset`. [BUG](https://github.com/spiral/roadrunner-plugins/issues/155)
+
+---
+
+## v2.6.3 (3.12.2021)
+
+## ๐Ÿ‘€ New:
+- โœ๏ธ `informer.List` RPC call return all available plugins with workers instead of all available plugins. This behavior was changed because `Informer` has the dependency of every RR plugin, which led to the cycles. This is not an external API and used only internally.
+- โœ๏ธ Beanstalk queue returned to the **[ALPHA]** stage. It's very unstable when destroying pipelines and can lead to infinite read loops when something wrong with the connection. Use with care.
+- โœ๏ธ Go version updated to `v1.17.4`.
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: add missing plugins to the container: `fileserver`, `http_metrics`.
+---
+
+## v2.6.2 (3.12.2021)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: Random NPE on RR start. [BUG](https://github.com/spiral/roadrunner-plugins/issues/143)
+
+---
+
+## v2.6.1 (2.12.2021)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: logger incorrectly escaped HTML, JSON, and other special symbols.
+
+---
+
+## v2.6.0 (30.11.2021)
+
+## ๐Ÿ‘€ New:
+- โœ๏ธ New internal message bus. Available globally. Supports wildcard subscriptions (for example: `http.*` will subscribe you to the all events coming from the `http` plugin). The subscriptions can be made from any RR plugin to any RR plugin.
+- โœ๏ธ Now, RR will show in the returned error the bad header content in case of CRC mismatch error. More info in the [PR](https://github.com/spiral/roadrunner/pull/863).
+- โœ๏ธ **[BETA]** Support for the New Relic observability platform. Sample of the client library might be
+ found [here](https://github.com/arku31/roadrunner-newrelic). (Thanks @arku31)
+ New Relic middleware is a part of the HTTP plugin, thus configuration should be inside it:
+
+```yaml
+http:
+ address: 127.0.0.1:15389
+ middleware: [ "new_relic" ] <------- NEW
+ new_relic: <---------- NEW
+ app_name: "app"
+ license_key: "key"
+ pool:
+ num_workers: 10
+ allocate_timeout: 60s
+ destroy_timeout: 60s
+```
+
+License key and application name could be set via environment variables: (leave `app_name` and `license_key` empty)
+
+- license_key: `NEW_RELIC_LICENSE_KEY`.
+- app_name: `NEW_RELIC_APP_NAME`.
+
+To set the New Relic attributes, the PHP worker should send headers values withing the `rr_newrelic` header key.
+Attributes should be separated by the `:`, for example `foo:bar`, where `foo` is a key and `bar` is a value. New Relic
+attributes sent from the worker will not appear in the HTTP response, they will be sent directly to the New Relic.
+
+To see the sample of the PHP library, see the @arku31 implementation: https://github.com/arku31/roadrunner-newrelic
+
+The special key which PHP may set to overwrite the transaction name is: `transaction_name`. For
+example: `transaction_name:foo` means: set transaction name as `foo`. By default, `RequestURI` is used as the
+transaction name.
+
+```php
+ $resp = new \Nyholm\Psr7\Response();
+ $rrNewRelic = [
+ 'shopId:1', //custom data
+ 'auth:password', //custom data
+ 'transaction_name:test_transaction' //name - special key to override the name. By default it will use requestUri.
+ ];
+
+ $resp = $resp->withHeader('rr_newrelic', $rrNewRelic);
+```
+
+---
+
+- โœ๏ธ **[BETA]** New plugin: `TCP`. The TCP plugin is used to handle raw TCP payload with a bi-directional [protocol](tcp/docs/tcp.md) between the RR server and PHP worker.
+
+PHP client library: https://github.com/spiral/roadrunner-tcp
+
+Configuration:
+```yaml
+rpc:
+ listen: tcp://127.0.0.1:6001
+
+server:
+ command: "php ../../psr-worker-tcp-cont.php"
+
+tcp:
+ servers:
+ server1:
+ addr: 127.0.0.1:7778
+ delimiter: "\r\n"
+ server2:
+ addr: 127.0.0.1:8811
+ read_buf_size: 10
+ server3:
+ addr: 127.0.0.1:8812
+ delimiter: "\r\n"
+ read_buf_size: 1
+
+ pool:
+ num_workers: 5
+ max_jobs: 0
+ allocate_timeout: 60s
+ destroy_timeout: 60s
+```
+
+---
+
+- โœ๏ธ New HTTP middleware: `http_metrics`.
+```yaml
+http:
+ address: 127.0.0.1:15389
+ middleware: [ "http_metrics" ] <------- NEW
+ pool:
+ num_workers: 10
+ allocate_timeout: 60s
+ destroy_timeout: 60s
+```
+All old and new http metrics will be available after the middleware is activated. Be careful, this middleware may slow down your requests. New metrics:
+
+ - `rr_http_requests_queue_sum` - number of queued requests.
+ - `rr_http_no_free_workers_total` - number of the occurrences of the `NoFreeWorkers` errors.
+
+
+-----
+
+- โœ๏ธ New file server to serve static files. It works on a different address, so it doesn't affect the HTTP performance. It uses advanced configuration specific for the static file servers. It can handle any number of directories with its own HTTP prefixes.
+ Config:
+
+```yaml
+fileserver:
+ # File server address
+ #
+ # Error on empty
+ address: 127.0.0.1:10101
+ # Etag calculation. Request body CRC32.
+ #
+ # Default: false
+ calculate_etag: true
+
+ # Weak etag calculation
+ #
+ # Default: false
+ weak: false
+
+ # Enable body streaming for the files more than 4KB
+ #
+ # Default: false
+ stream_request_body: true
+
+ serve:
+ # HTTP prefix
+ #
+ # Error on empty
+ - prefix: "/foo"
+
+ # Directory to serve
+ #
+ # Default: "."
+ root: "../../../tests"
+
+ # When set to true, the server tries minimizing CPU usage by caching compressed files
+ #
+ # Default: false
+ compress: false
+
+ # Expiration duration for inactive file handlers. Units: seconds.
+ #
+ # Default: 10, use a negative value to disable it.
+ cache_duration: 10
+
+ # The value for the Cache-Control HTTP-header. Units: seconds
+ #
+ # Default: 10 seconds
+ max_age: 10
+
+ # Enable range requests
+ # https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests
+ #
+ # Default: false
+ bytes_range: true
+
+ - prefix: "/foo/bar"
+ root: "../../../tests"
+ compress: false
+ cache_duration: 10s
+ max_age: 10
+ bytes_range: true
+```
+
+- โœ๏ธ `on_init` option for the `server` plugin. `on_init` code executed before the regular command and can be used to warm up the application for example. Failed `on_init` command doesn't affect the main command, so, the RR will continue to run. Thanks (@OO00O0O)
+
+Config:
+```yaml
+# Application server settings (docs: https://roadrunner.dev/docs/php-worker)
+server:
+ on_init: <----------- NEW
+ # Command to execute before the main server's command
+ #
+ # This option is required if using on_init
+ command: "any php or script here"
+
+ # Script execute timeout
+ #
+ # Default: 60s [60m, 60h], if used w/o units its means - NANOSECONDS.
+ exec_timeout: 20s
+
+ # Environment variables for the worker processes.
+ #
+ # Default: <empty map>
+ env:
+ - SOME_KEY: "SOME_VALUE"
+ - SOME_KEY2: "SOME_VALUE2"
+
+ # ..REGULAR SERVER OPTIONS...
+```
+
+---
+
+- โœ๏ธ **[BETA]** GRPC can handle multiply proto files.
+ Config:
+```yaml
+# GRPC service configuration
+grpc:
+ # Proto files to use
+ #
+ # This option is required. At least one proto file must be specified.
+ proto:
+ - "first.proto"
+ - "second.proto"
+
+## ... OTHER REGULAR GRPC OPTIONS ...
+```
+
+---
+
+- โœ๏ธ New `allow` configuration option for the `http.uploads` and multipart requests. The new option allows you to filter upload extensions knowing only allowed. Now, there is no need to have a looong list with all possible extensions to forbid. [FR](https://github.com/spiral/roadrunner-plugins/issues/123) (Thanks @rjd22)
+ `http.uploads.forbid` has a higher priority, so, if you have duplicates in the `http.uploads.allow` and `http.uploads.forbid` the duplicated extension will be forbidden.
+ Config:
+
+```yaml
+http:
+ address: 127.0.0.1:18903
+ max_request_size: 1024
+ middleware: ["pluginMiddleware", "pluginMiddleware2"]
+ uploads:
+ forbid: [".php", ".exe", ".bat"]
+ allow: [".html", ".aaa" ] <------------- NEW
+ trusted_subnets:
+ [
+ "10.0.0.0/8",
+ "127.0.0.0/8",
+ "172.16.0.0/12",
+ "192.168.0.0/16",
+ "::1/128",
+ "fc00::/7",
+ "fe80::/10",
+ ]
+ pool:
+ num_workers: 2
+ max_jobs: 0
+ allocate_timeout: 60s
+ destroy_timeout: 60s
+```
+
+- โœ๏ธ Beanstalk queue reject stop RPC calls if there are jobs in the priority queue associated with the requested
+ pipeline.
+
+- โœ๏ธ Startup message when the RR has started.
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: GRPC server will show message when started.
+- ๐Ÿ› Fix: Static plugin headers were added to all requests. [BUG](https://github.com/spiral/roadrunner-plugins/issues/115)
+- ๐Ÿ› Fix: zombie processes in the `pool.debug` mode.
+
+## ๐Ÿ“ฆ Packages:
+
+- ๐Ÿ“ฆ roadrunner `v2.6.0`
+- ๐Ÿ“ฆ roadrunner-plugins `v2.6.0`
+- ๐Ÿ“ฆ roadrunner-temporal `v1.0.11`
+- ๐Ÿ“ฆ endure `v1.0.8`
+- ๐Ÿ“ฆ goridge `v3.2.4`
+- ๐Ÿ“ฆ temporal.io/sdk `v1.11.1`
+
+## v2.5.3 (27.10.2021)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: panic in the TLS layer. The `http` plugin used `http` server instead of `https` in the rootCA routine.
+
+## v2.5.2 (23.10.2021)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: ASLR builds causes [problems](https://github.com/roadrunner-server/roadrunner/issues/120) in the docker.
+
+
+## v2.5.1 (22.10.2021)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: [base64](https://github.com/spiral/roadrunner-plugins/issues/86) response instead of json in some edge cases.
+
+## v2.5.0 (20.10.2021)
+
+# ๐Ÿ’” Breaking change:
+
+- ๐Ÿ”จ Some drivers now use a new `config` key to handle local configuration. Involved plugins and drivers:
+- `plugins`: `broadcast`, `kv`
+- `drivers`: `memory`, `redis`, `memcached`, `boltdb`.
+
+### Old style:
+
+```yaml
+broadcast:
+ default:
+ driver: memory
+ interval: 1
+```
+
+### New style:
+
+```yaml
+broadcast:
+ default:
+ driver: memory
+ config: {} <--------------- NEW
+```
+
+```yaml
+kv:
+ memory-rr:
+ driver: memory
+ config: <--------------- NEW
+ interval: 1
+
+kv:
+ memcached-rr:
+ driver: memcached
+ config: <--------------- NEW
+ addr:
+ - "127.0.0.1:11211"
+
+broadcast:
+ default:
+ driver: redis
+ config: <------------------ NEW
+ addrs:
+ - "127.0.0.1:6379"
+```
+
+## ๐Ÿ‘€ New:
+
+- โœ๏ธ **[BETA]** GRPC plugin update to v2.
+- โœ๏ธ [Roadrunner-plugins](https://github.com/spiral/roadrunner-plugins) repository. This is the new home for the roadrunner plugins with documentation, configuration samples, and common problems.
+- โœ๏ธ **[BETA]** Let's Encrypt support. RR now can obtain an SSL certificate/PK for your domain automatically. Here is the new configuration:
+```yaml
+ ssl:
+ # Host and port to listen on (eg.: `127.0.0.1:443`).
+ #
+ # Default: ":443"
+ address: "127.0.0.1:443"
+
+ # Use ACME certificates provider (Let's encrypt)
+ acme:
+ # Directory to use as a certificate/pk, account info storage
+ #
+ # Optional. Default: rr_cache
+ certs_dir: rr_le_certs
+
+ # User email
+ #
+ # Used to create LE account. Mandatory. Error on empty.
+ email: you-email-here@email
+
+ # Alternate port for the http challenge. Challenge traffic should be redirected to this port if overridden.
+ #
+ # Optional. Default: 80
+ alt_http_port: 80,
+
+
+ # Alternate port for the tls-alpn-01 challenge. Challenge traffic should be redirected to this port if overridden.
+ #
+ # Optional. Default: 443.
+ alt_tlsalpn_port: 443,
+
+ # Challenge types
+ #
+ # Optional. Default: http-01. Possible values: http-01, tlsalpn-01
+ challenge_type: http-01
+
+ # Use production or staging endpoints. NOTE, try to use the staging endpoint (`use_production_endpoint`: `false`) to make sure, that everything works correctly.
+ #
+ # Optional, but for production should be set to true. Default: false
+ use_production_endpoint: true
+
+ # List of your domains to obtain certificates
+ #
+ # Mandatory. Error on empty.
+ domains: [
+ "your-cool-domain.here",
+ "your-second-domain.here"
+ ]
+```
+
+- โœ๏ธ Add a new option to the `logs` plugin to configure the line ending. By default, used `\n`.
+
+**New option**:
+```yaml
+# Logs plugin settings
+logs:
+ (....)
+ # Line ending
+ #
+ # Default: "\n".
+ line_ending: "\n"
+```
+
+- โœ๏ธ HTTP [Access log support](https://github.com/spiral/roadrunner-plugins/issues/34) at the `Info` log level.
+```yaml
+http:
+ address: 127.0.0.1:55555
+ max_request_size: 1024
+ access_logs: true <-------- Access Logs ON/OFF
+ middleware: []
+
+ pool:
+ num_workers: 2
+ max_jobs: 0
+ allocate_timeout: 60s
+ destroy_timeout: 60s
+```
+- โœ๏ธ HTTP middleware to handle `X-Sendfile` [header](https://github.com/spiral/roadrunner-plugins/issues/9).
+ Middleware reads the file in 10MB chunks. So, for example for the 5Gb file, only 10MB of RSS will be used. If the file size is smaller than 10MB, the middleware fits the buffer to the file size.
+```yaml
+http:
+ address: 127.0.0.1:44444
+ max_request_size: 1024
+ middleware: ["sendfile"] <----- NEW MIDDLEWARE
+
+ pool:
+ num_workers: 2
+ max_jobs: 0
+ allocate_timeout: 60s
+ destroy_timeout: 60s
+```
+
+- โœ๏ธ Service plugin now supports env variables passing to the script/executable/binary/any like in the `server` plugin:
+```yaml
+service:
+ some_service_1:
+ command: "php test_files/loop_env.php"
+ process_num: 1
+ exec_timeout: 5s # s,m,h (seconds, minutes, hours)
+ remain_after_exit: true
+ env: <----------------- NEW
+ foo: "BAR"
+ restart_sec: 1
+```
+
+- โœ๏ธ Server plugin can accept scripts (sh, bash, etc) in it's `command` configuration key:
+```yaml
+server:
+ command: "./script.sh OR sh script.sh" <--- UPDATED
+ relay: "pipes"
+ relay_timeout: "20s"
+```
+The script should start a worker as the last command. For the `pipes`, scripts should not contain programs, which can close `stdin`, `stdout` or `stderr`.
+
+- โœ๏ธ Nats jobs driver support - [PR](https://github.com/spiral/roadrunner-plugins/pull/68).
+```yaml
+nats:
+ addr: "demo.nats.io"
+
+jobs:
+ num_pollers: 10
+ pipeline_size: 100000
+ pool:
+ num_workers: 10
+ max_jobs: 0
+ allocate_timeout: 60s
+ destroy_timeout: 60s
+
+ pipelines:
+ test-1:
+ driver: nats
+ prefetch: 100
+ subject: "default"
+ stream: "foo"
+ deliver_new: "true"
+ rate_limit: 100
+ delete_stream_on_stop: false
+ delete_after_ack: false
+ priority: 2
+
+ consume: [ "test-1" ]
+```
+- Driver uses NATS JetStream API and is not compatible with non-js API.
+
+
+- โœ๏ธ Response API for the NATS, RabbitMQ, SQS and Beanstalk drivers. This means, that you'll be able to respond to a specified in the response queue.
+ Limitations:
+ - To send a response to the queue maintained by the RR, you should send it as a `Job` type. There are no limitations for the responses into the other queues (tubes, subjects).
+ - Driver uses the same endpoint (address) to send the response as specified in the configuration.
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: local and global configuration parsing.
+- ๐Ÿ› Fix: `boltdb-jobs` connection left open after RPC close command.
+- ๐Ÿ› Fix: close `beanstalk` connection and release associated resources after pipeline stopped.
+- ๐Ÿ› Fix: grpc plugin fails to handle requests after calling `reset`.
+- ๐Ÿ› Fix: superfluous response.WriteHeader call when connection is broken.
+
+## ๐Ÿ“ฆ Packages:
+
+- ๐Ÿ“ฆ roadrunner `v2.5.0`
+- ๐Ÿ“ฆ roadrunner-plugins `v2.5.0`
+- ๐Ÿ“ฆ roadrunner-temporal `v1.0.10`
+- ๐Ÿ“ฆ endure `v1.0.6`
+- ๐Ÿ“ฆ goridge `v3.2.3`
+
+## v2.4.1 (13.09.2021)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: bug with not-idempotent call to the `attributes.Init`.
+- ๐Ÿ› Fix: memory jobs driver behavior. Now memory driver starts consuming automatically if the user consumes the pipeline in the configuration.
+
+## v2.4.0 (02.09.2021)
+
+## ๐Ÿ’” Internal BC:
+
+- ๐Ÿ”จ Pool, worker interfaces: payload now passed and returned by the pointer.
+
+## ๐Ÿ‘€ New:
+
+- โœ๏ธ Long-awaited, reworked `Jobs` plugin with pluggable drivers. Now you can allocate/destroy pipelines in the runtime. Drivers included in the initial release: `RabbitMQ (0-9-1)`, `SQS v2`, `beanstalk`, `memory` and local queue powered by the `boltdb`. [PR](https://github.com/spiral/roadrunner/pull/726)
+- โœ๏ธ Support for the IPv6 (`tcp|http(s)|empty [::]:port`, `tcp|http(s)|empty [::1]:port`, `tcp|http(s)|empty :// [0:0:0:0:0:0:0:1]:port`) for RPC, HTTP and other plugins. [RFC](https://datatracker.ietf.org/doc/html/rfc2732#section-2)
+- โœ๏ธ Support for the Docker images via GitHub packages.
+- โœ๏ธ Go 1.17 support for the all spiral packages.
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: fixed bug with goroutines waiting on the internal worker's container channel, [issue](https://github.com/spiral/roadrunner/issues/750).
+- ๐Ÿ› Fix: RR become unresponsive when new workers failed to re-allocate, [issue](https://github.com/spiral/roadrunner/issues/772).
+- ๐Ÿ› Fix: add `debug` pool config key to the `.rr.yaml` configuration [reference](https://github.com/roadrunner-server/roadrunner/issues/79).
+
+## ๐Ÿ“ฆ Packages:
+
+- ๐Ÿ“ฆ Update goridge to `v3.2.1`
+- ๐Ÿ“ฆ Update temporal to `v1.0.9`
+- ๐Ÿ“ฆ Update endure to `v1.0.4`
+
+## ๐Ÿ“ˆ Summary:
+
+- RR Milestone [2.4.0](https://github.com/spiral/roadrunner/milestone/29?closed=1)
+- RR-Binary Milestone [2.4.0](https://github.com/roadrunner-server/roadrunner/milestone/10?closed=1)
+
+---
+
+## v2.3.2 (14.07.2021)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: Do not call the container's Stop method after the container stopped by an error.
+- ๐Ÿ› Fix: Bug with ttl incorrectly handled by the worker [PR](https://github.com/spiral/roadrunner/pull/749)
+- ๐Ÿ› Fix: Add `RR_BROADCAST_PATH` to the `websockets` plugin [PR](https://github.com/spiral/roadrunner/pull/749)
+
+## ๐Ÿ“ˆ Summary:
+
+- RR Milestone [2.3.2](https://github.com/spiral/roadrunner/milestone/31?closed=1)
+
+---
+
+## v2.3.1 (30.06.2021)
+
+## ๐Ÿ‘€ New:
+
+- โœ๏ธ Rework `broadcast` plugin. Add architecture diagrams to the `doc`
+ folder. [PR](https://github.com/spiral/roadrunner/pull/732)
+- โœ๏ธ Add `Clear` method to the KV plugin RPC. [PR](https://github.com/spiral/roadrunner/pull/736)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: Bug with channel deadlock when `exec_ttl` was used and TTL limit
+ reached [PR](https://github.com/spiral/roadrunner/pull/738)
+- ๐Ÿ› Fix: Bug with healthcheck endpoint when workers were marked as invalid and stay is that state until next
+ request [PR](https://github.com/spiral/roadrunner/pull/738)
+- ๐Ÿ› Fix: Bugs with `boltdb` storage: [Boom](https://github.com/spiral/roadrunner/issues/717)
+ , [Boom](https://github.com/spiral/roadrunner/issues/718), [Boom](https://github.com/spiral/roadrunner/issues/719)
+- ๐Ÿ› Fix: Bug with incorrect redis initialization and usage [Bug](https://github.com/spiral/roadrunner/issues/720)
+- ๐Ÿ› Fix: Bug, Goridge duplicate error messages [Bug](https://github.com/spiral/goridge/issues/128)
+- ๐Ÿ› Fix: Bug, incorrect request `origin` check [Bug](https://github.com/spiral/roadrunner/issues/727)
+
+## ๐Ÿ“ฆ Packages:
+
+- ๐Ÿ“ฆ Update goridge to `v3.1.4`
+- ๐Ÿ“ฆ Update temporal to `v1.0.8`
+
+## ๐Ÿ“ˆ Summary:
+
+- RR Milestone [2.3.1](https://github.com/spiral/roadrunner/milestone/30?closed=1)
+- Temporal Milestone [1.0.8](https://github.com/temporalio/roadrunner-temporal/milestone/11?closed=1)
+- Goridge Milestone [3.1.4](https://github.com/spiral/goridge/milestone/11?closed=1)
+
+---
+
+## v2.3.0 (08.06.2021)
+
+## ๐Ÿ‘€ New:
+
+- โœ๏ธ Brand new `broadcast` plugin now has the name - `websockets` with broadcast capabilities. It can handle hundreds of
+ thousands websocket connections very efficiently (~300k messages per second with 1k connected clients, in-memory bus
+ on 2CPU cores and 1GB of RAM) [Issue](https://github.com/spiral/roadrunner/issues/513)
+- โœ๏ธ Protobuf binary messages for the `websockets` and `kv` RPC calls under the
+ hood. [Issue](https://github.com/spiral/roadrunner/issues/711)
+- โœ๏ธ Json-schemas for the config file v1.0 (it also registered
+ in [schemastore.org](https://github.com/SchemaStore/schemastore/pull/1614))
+- โœ๏ธ `latest` docker image tag supported now (but we strongly recommend using a versioned tag (like `0.2.3`) instead)
+- โœ๏ธ Add new option to the `http` config section: `internal_error_code` to override default (500) internal error
+ code. [Issue](https://github.com/spiral/roadrunner/issues/659)
+- โœ๏ธ Expose HTTP plugin metrics (workers memory, requests count, requests duration)
+ . [Issue](https://github.com/spiral/roadrunner/issues/489)
+- โœ๏ธ Scan `server.command` and find errors related to the wrong path to a `PHP` file, or `.ph`, `.sh`
+ scripts. [Issue](https://github.com/spiral/roadrunner/issues/658)
+- โœ๏ธ Support file logger with log rotation [Wiki](https://en.wikipedia.org/wiki/Log_rotation)
+ , [Issue](https://github.com/spiral/roadrunner/issues/545)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: Bug with `informer.Workers` worked incorrectly: [Bug](https://github.com/spiral/roadrunner/issues/686)
+- ๐Ÿ› Fix: Internal error messages will not be shown to the user (except HTTP status code). Error message will be in
+ logs: [Bug](https://github.com/spiral/roadrunner/issues/659)
+- ๐Ÿ› Fix: Error message will be properly shown in the log in case of `SoftJob`
+ error: [Bug](https://github.com/spiral/roadrunner/issues/691)
+- ๐Ÿ› Fix: Wrong applied middlewares for the `fcgi` server leads to the
+ NPE: [Bug](https://github.com/spiral/roadrunner/issues/701)
+
+## ๐Ÿ“ฆ Packages:
+
+- ๐Ÿ“ฆ Update goridge to `v3.1.0`
+
+---
+
+## v2.2.1 (13.05.2021)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: revert static plugin. It stays as a separate plugin on the main route (`/`) and supports all the previously
+ announced features.
+- ๐Ÿ› Fix: remove `build` and other old targets from the Makefile.
+
+---
+
+## v2.2.0 (11.05.2021)
+
+## ๐Ÿ‘€ New:
+
+- โœ๏ธ Reworked `static` plugin. Now, it does not affect the performance of the main route and persist on the separate
+ file server (within the `http` plugin). Looong awaited feature: `Etag` (+ weak Etags) as well with the `If-Mach`
+ , `If-None-Match`, `If-Range`, `Last-Modified`
+ and `If-Modified-Since` tags supported. Static plugin has a bunch of new options such as: `allow`, `calculate_etag`
+ , `weak` and `pattern`.
+
+ ### Option `always` was deleted from the plugin.
+
+- โœ๏ธ Update `informer.List` implementation. Now it returns a list with the all available plugins in the runtime.
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: issue with wrong ordered middlewares (reverse). Now the order is correct.
+- ๐Ÿ› Fix: issue when RR fails if a user sets `debug` mode with the `exec_ttl` supervisor option.
+- ๐Ÿ› Fix: uniform log levels. Use everywhere the same levels (warn, error, debug, info, panic).
+
+---
+
+## v2.1.1 (29.04.2021)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: issue with endure provided wrong logger interface implementation.
+
+## v2.1.0 (27.04.2021)
+
+## ๐Ÿ‘€ New:
+
+- โœ๏ธ New `service` plugin. Docs: [link](https://roadrunner.dev/docs/beep-beep-service)
+- โœ๏ธ Stabilize `kv` plugin with `boltdb`, `in-memory`, `memcached` and `redis` drivers.
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: Logger didn't provide an anonymous log instance to a plugins w/o `Named` interface implemented.
+- ๐Ÿ› Fix: http handler was without log listener after `rr reset`.
+
+## v2.0.4 (06.04.2021)
+
+## ๐Ÿ‘€ New:
+
+- โœ๏ธ Add support for `linux/arm64` platform for docker image (thanks @tarampampam).
+- โœ๏ธ Add dotenv file support (`.env` in working directory by default; file location can be changed using CLI
+ flag `--dotenv` or `DOTENV_PATH` environment variable) (thanks @tarampampam).
+- ๐Ÿ“œ Add a new `raw` mode for the `logger` plugin to keep the stderr log message of the worker unmodified (logger
+ severity level should be at least `INFO`).
+- ๐Ÿ†• Add Readiness probe check. The `status` plugin provides `/ready` endpoint which return the `204` HTTP code if there
+ are no workers in the `Ready` state and `200 OK` status if there are at least 1 worker in the `Ready` state.
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: bug with the temporal worker which does not follow general graceful shutdown period.
+
+## v2.0.3 (29.03.2021)
+
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› Fix: slow last response when reached `max_jobs` limit.
+
+## v2.0.2 (06.04.2021)
+
+- ๐Ÿ› Fix: Bug with required Root CA certificate for the SSL, now it's optional.
+- ๐Ÿ› Fix: Bug with incorrectly consuming metrics collector from the RPC calls (thanks @dstrop).
+- ๐Ÿ†• New: HTTP/FCGI/HTTPS internal logs instead of going to the raw stdout will be displayed in the RR logger at
+ the `Info` log level.
+- โšก New: Builds for the Mac with the M1 processor (arm64).
+- ๐Ÿ‘ท Rework ServeHTTP handler logic. Use http.Error instead of writing code directly to the response writer. Other small
+ improvements.
+
+## v2.0.1 (09.03.2021)
+
+- ๐Ÿ› Fix: incorrect PHP command validation
+- ๐Ÿ› Fix: ldflags properly inject RR version
+- โฌ†๏ธ Update: README, links to the go.pkg from v1 to v2
+- ๐Ÿ“ฆ Bump golang version in the Dockerfile and in the `go.mod` to 1.16
+- ๐Ÿ“ฆ Bump Endure container to v1.0.0.
+
+## v2.0.0 (02.03.2021)
+
+- โœ”๏ธ Add a shared server to create PHP worker pools instead of isolated worker pool in each individual plugin.
+- ๐Ÿ†• New plugin system with auto-recovery, easier plugin API.
+- ๐Ÿ“œ New `logger` plugin to configure logging for each plugin individually.
+- ๐Ÿ” Up to 50% performance increase in HTTP workloads.
+- โœ”๏ธ Add **[Temporal Workflow](https://temporal.io)** plugin to run distributed computations on scale.
+- โœ”๏ธ Add `debug` flag to reload PHP worker ahead of a request (emulates PHP-FPM behavior).
+- โŒ Eliminate `limit` service, now each worker pool includes `supervisor` configuration.
+- ๐Ÿ†• New resetter, informer plugins to perform hot reloads and observe loggers in a system.
+- ๐Ÿ’ซ Expose more HTTP plugin configuration options.
+- ๐Ÿ†• Headers, static and gzip services now located in HTTP config.
+- ๐Ÿ†• Ability to configure the middleware sequence.
+- ๐Ÿ’ฃ Faster Goridge protocol (eliminated 50% of syscalls).
+- ๐Ÿ’พ Add support for binary payloads for RPC (`msgpack`).
+- ๐Ÿ†• Server no longer stops when a PHP worker dies (attempts to restart).
+- ๐Ÿ’พ New RR binary server downloader.
+- ๐Ÿ’ฃ Echoing no longer breaks execution (yay!).
+- ๐Ÿ†• Migration to ZapLogger instead of Logrus.
+- ๐Ÿ’ฅ RR can no longer stuck when studding down with broken tasks in a pipeline.
+- ๐Ÿงช More tests, more static analysis.
+- ๐Ÿ’ฅ Create a new foundation for new KV, WebSocket, GRPC and Queue plugins.
+
+## v2.0.0-RC.4 (20.02.2021)
+
+- PHP tests use latest signatures (https://github.com/spiral/roadrunner/pull/550).
+- Endure container update to v1.0.0-RC.2 version.
+- Remove unneeded mutex from the `http.Workers` method.
+- Rename `checker` plugin package to `status`, remove `/v1` endpoint prefix (#557).
+- Add static, headers, status, gzip plugins to the `main.go`.
+- Fix workers pool behavior -> idle_ttl, ttl, max_memory are soft errors and exec_ttl is hard error.
+
+## v2.0.0-RC.3 (17.02.2021)
+
+- Add support for the overwriting `.rr.yaml` keys with values (ref: https://roadrunner.dev/docs/intro-config)
+- Make logger plugin optional to define in the config. Default values: level -> `debug`, mode -> `development`
+- Add the ability to read env variables from the `.rr.yaml` in the form of: `rpc.listen: {RPC_ADDR}`. Reference:
+ ref: https://roadrunner.dev/docs/intro-config (Environment Variables paragraph)
+
+## v2.0.0-RC.2 (11.02.2021)
+
+- Update RR to version v2.0.0-RC.2
+- Update Temporal plugin to version v2.0.0-RC.1
+- Update Goridge to version v3.0.1
+- Update Endure to version v1.0.0-RC.1
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fad62f9d..82318fa7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,2498 +1,14 @@
# CHANGELOG
-# <center> ๐Ÿš€ v2023.3.12 ๐Ÿš€ </center>
+# ๐Ÿš€ v2024.1.0 ๐Ÿš€
-### `Centrifuge` plugin:
-- ๐Ÿ”ฅ Add support for the `NotifyChannelState` centrifuge API.
+## Upgrade guide: [link](https://docs.roadrunner.dev/general/compatibility)
-### `Temporal` plugin:
-- ๐Ÿ”ฅ Add support for the [Updates API](https://docs.temporal.io/dev-guide/go/features#updates).
-- ๐Ÿ”ฅ Add support for the healthchecks: [FR](https://github.com/roadrunner-server/roadrunner/issues/1872), (thanks @shanginn).
+### `HTTP` plugin:
+- ๐Ÿ”ฅ Use `protobuf` encoded payloads to prevent field reordering and JSON escaped symbols.
-### <center>๐Ÿงน Chore:</center>
+### `Kafka` driver:
+- ๐Ÿ”ฅ Support [TLS configuration](https://docs.roadrunner.dev/queues-and-jobs/kafka#configuration) (thanks @dkomarek)
-- ๐Ÿง‘โ€๐Ÿญ: All `since` log entries are now always shown as milliseconds, [FR](https://github.com/roadrunner-server/roadrunner/issues/1858), (thanks @dmitryuk).
-
----
-
-# <center> ๐Ÿš€ v2023.3.11 ๐Ÿš€ </center>
-
-### `Centrifuge` plugin:
-- ๐Ÿ›๏ธ Check the connection propertly before attempting to send a request: [PR](https://github.com/roadrunner-server/centrifuge/pull/78)
-
-### `OTEL` plugin:
-- ๐Ÿ›๏ธ Do not force to set `endpoint` and `headers`: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1848). Update docs on OTEL env usage: [Docs](https://docs.roadrunner.dev/logging-and-observability/otel), (thanks @fasdalf and @arku31).
-
-### <center>๐Ÿงน Chore:</center>
-
-- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: Build with Go 1.22.0.
-
----
-
-# <center> ๐Ÿš€ v2023.3.10 ๐Ÿš€ </center>
-
-### Core `SDK` bugfixes:
-
-- ๐Ÿ›๏ธ Request queue gets too large, [BUG/FR](https://github.com/roadrunner-server/roadrunner/issues/1841), [Docs](https://docs.roadrunner.dev/php-worker/pool) (thanks, @L3tum)
-- ๐Ÿ›๏ธ Huge memory allocation in the debug mode [FIX](https://github.com/roadrunner-server/sdk/pull/110).
-- ๐Ÿ›๏ธ Stop handler (`worker->stop()`) was returned (breaking change fix) [FIX](https://github.com/roadrunner-server/sdk/pull/109), (thanks @Zylius)
-
-### <center>๐Ÿงน Chore:</center>
-
-- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project/system dependencies.
-
----
-
-# <center> ๐Ÿš€ v2023.3.9 ๐Ÿš€ </center>
-
-### `HTTP` plugin
-
-- ๐Ÿ›๏ธ Streaming responses can experience a lock-up when the client disconnects early, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1830), (thanks @segrax)
-
-### `SQS` JOBS driver
-
-- ๐Ÿ›๏ธ Use user specified credentials if they are set even if we're inside AWS, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1833), (thanks @matteokov)
-
-### `Service` plugin
-
-- ๐Ÿ›๏ธ Services directly killed when restarting on terminating. [BUG](https://github.com/roadrunner-server/roadrunner/issues/1814), (thanks @chazzbg)
-
-### `Server` plugin
-
-- ๐Ÿ”ฅ Add `user` param to `on_init` command section. [PR](https://github.com/roadrunner-server/server/pull/68), [docs](https://roadrunner.dev/docs/plugins-server/current/en#configuration), (thanks @Kaspiman)
-
-### `Redis` KV driver
-
-- ๐Ÿ›๏ธ Correctly finish the OTEL span. [PR](https://github.com/roadrunner-server/redis/pull/62), (thanks @Kaspiman)
-
-### <center>๐Ÿงน Chore:</center>
-
-- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project/system dependencies.
-- ๐Ÿง‘โ€๐Ÿญ **Docs**: update docs, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1819).
-
----
-
-# <center> ๐Ÿš€ v2023.3.8 ๐Ÿš€ </center>
-
-### `HTTP` plugin
-
-- ๐Ÿ”ฅ Experimental HTTP3 server, [FR](https://github.com/roadrunner-server/roadrunner/issues/926), docs: [link](https://roadrunner.dev/docs/experimental-experimental/current/en#support-for-the-http3-server-202338), (thanks @cv65kr & @cidious)
-
-### `gRPC` plugin
-
-- ๐Ÿ”ฅ Experimental support for the OTLP protocol inside the `gRPC` plugin: [FR](https://roadrunner.dev/docs/experimental-experimental/current/en#otlp-support-in-the-grpc-plugin-202338), (thanks @rauanmayemir)
-
-### `Beanstalk` driver
-
-- ๐Ÿ›๏ธ Fix NPE on empty options [BUG](https://github.com/roadrunner-server/roadrunner/issues/1804), (thanks @SerhiiMova).
-
-### `Velox` plugin
-
-- ๐Ÿ”ฅ To ensure that Velox is able to build every RoadRunner version, we've added a new CI CRON job that builds RoadRunner with Velox daily. This job is not related to the RoadRunner release process, but it will help us to ensure that Velox is always compatible with the latest RoadRunner version.
-
-### <center>๐Ÿงน Chore:</center>
-
-- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project/system dependencies.
-
----
-
-# <center> ๐Ÿš€ v2023.3.7 ๐Ÿš€ </center>
-
-### `gRPC` plugin:
-
-- ๐Ÿ”ฅ Re-enable HTTP health and readiness checks via regular endpoints `/health` and `/ready`.
-
-### `AMQP` driver:
-
-- ๐Ÿ›๏ธ Fix mapping for the RabbitMQ type `List` (Golang `[]any`), [BUG](https://github.com/roadrunner-server/roadrunner/issues/1793), (thanks @iborysenko).
-- ๐Ÿ›๏ธ Fix an edge case for the DLX queue type when user doesn't specify any queue, but use `Push` method with delays, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1792), (thanks @fereron).
-
-### <center>๐Ÿงน Chore:</center>
-
-- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project/system dependencies.
-
----
-
-# <center> ๐Ÿš€ v2023.3.6 ๐Ÿš€ </center>
-
-### CI releases:
-
-- ๐Ÿ”ฅ Add support for the `arm64` deb packages: [FR](https://github.com/roadrunner-server/roadrunner/issues/1785), (thanks @stevenbrookes)
-
-### <center>๐Ÿงน Chore:</center>
-
-- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project/system dependencies.
-
-
----
-
-# <center> ๐Ÿš€ v2023.3.5 ๐Ÿš€ </center>
-
-### Config plugin:
-
-- ๐Ÿ”ฅ Add ability to include `.env` files in the configuration (experimental feature): [Docs](https://roadrunner.dev/docs/experimental-experimental/current/en#support-for-loading-envfiles-in-the-rryaml--v202335), (thanks @OO00O0O).
-
-### Temporal plugin:
-
-- ๐Ÿ›๏ธ Fix bug with incorrect pool destroy order: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1776), (thanks @pfy-oleksii-storozhylov).
-
-### HTTP plugin:
-
-- ๐Ÿ”ฅ Allow showing PHP exception traces in the response: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1781), (thanks @speller).
-
-
-### <center>๐Ÿงน Chore:</center>
-
-- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project (system) dependencies.
-
-
----
-
-# <center> ๐Ÿš€ v2023.3.4 ๐Ÿš€ </center>
-
-## ๐Ÿ”ฅ Features:
-
-### RR Core:
-
-- โœ’๏ธ **Experimental features:** Add support for the experimental features: [Docs](https://roadrunner.dev/docs/experimental-experimental/current/en).
-
-## ๐Ÿ‘€ Plugins:
-
-- โœ’๏ธ **NATS driver:** Replace the old JetStream client with the new one: [FR](https://github.com/roadrunner-server/roadrunner/issues/1574), [API](https://github.com/nats-io/nats.go/blob/main/jetstream/README.md).
-- โœ’๏ธ **Config driver:** Add experimental support for merging two and more configuration files: [FR](https://github.com/roadrunner-server/roadrunner/issues/935), [Docs](https://roadrunner.dev/docs/experimental-experimental/current/en), (thanks @hugochinchilla)
-- โœ’๏ธ **Headers middleware:** Add support for the regular expressions for `origin`: [FR](https://github.com/roadrunner-server/roadrunner/issues/1709), [Docs](https://roadrunner.dev/docs/http-headers/current/en#cors), (thanks @orlandothoeny)
-
-## ๐Ÿฉน Fixes
-
-- ๐Ÿ› **HTTP Plugin**: Unable to POST relatively chunky POST: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1765), (thanks @FluffyDiscord)
-
-
----
-
-# <center> ๐Ÿš€ v2023.3.3 [Bugfix] ๐Ÿš€ </center>
-
-## ๐Ÿฉน Fixes
-
-- ๐Ÿ› **RR Core**: Fix removed by mistake RPC endpoint: [ISSUE](https://github.com/roadrunner-server/roadrunner/issues/1758), (thanks @Kaspiman)
-
----
-
-
-# <center> ๐Ÿš€ v2023.3.2 [Maintenance] ๐Ÿš€ </center>
-
-## ๐Ÿฉน Fixes
-
-- ๐Ÿ› **Temporal**: Fix incorrect log entry: [ISSUE](https://github.com/roadrunner-server/roadrunner/issues/1752), (thanks @roxblnfk)
-
----
-
-### <center>๐Ÿงน Chore:</center>
-
-- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies (including CVE in transitive dependencies, especially gofiber).
-
----
-
-
-# <center> ๐Ÿš€ v2023.3.1 [Maintenance] ๐Ÿš€ </center>
-
-### <center>๐Ÿงน Chore:</center>
-
-- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies (including CVE in Go libraries).
-- ๐Ÿง‘โ€๐Ÿญ **Go**: Update Golang to version 1.21.3.
-
----
-
-
-# <center> ๐Ÿš€ v2023.3.0 ๐Ÿš€ </center>
-
-## ๐Ÿ”ฅ Features:
-
-### RR Core:
-
-- โœ’๏ธ `sdnotify` support: [FR](https://github.com/roadrunner-server/roadrunner/pull/1671), (thanks @Kaspiman), Docs: [link](https://roadrunner.dev/docs/app-server-systemd/current/en)
-
-## ๐Ÿ‘€ JOBS plugin:
-
-- โœ’๏ธ **AMQP Driver:** Support for a custom `routing_key` in the JOBS payload: [FR](https://github.com/roadrunner-server/roadrunner/issues/1555), (thanks @rauanmayemir)
-- โœ’๏ธ **JOBS plugin**: Parallel pipelines start/stop/destroy initialization. If you have much number of the pipelines,
-this feature should significantly reduce RR startup/shutdown time: [FR](https://github.com/roadrunner-server/roadrunner/issues/1672), (thanks @Kaspiman)
-
-## ๐Ÿ‘€ KV drivers (all):
-
-- โœ’๏ธ Support for OTEL across all KV drivers: [FR](https://github.com/roadrunner-server/roadrunner/issues/1635)
-
-## ๐Ÿ‘€ App-Logger plugin:
-
-- โœ’๏ธ Added new methods for your logger to log with context (message + key-values array): [FR](https://github.com/roadrunner-server/roadrunner/issues/1633), (thanks @Baiquette)
-
-## ๐Ÿ‘€ Temporal plugin:
-
-- โœ’๏ธ Replay API support [SINCE PHP-SDK 2.6.0]: [FR](https://github.com/roadrunner-server/roadrunner/issues/1640)
-- โœ’๏ธ Add support for the Worker Versioning: [FR](https://github.com/roadrunner-server/roadrunner/issues/1689)
-
-## ๐Ÿ‘€ Service plugin:
-
-- โœ’๏ธ Support for the user/group per-service: [FR](https://github.com/roadrunner-server/roadrunner/issues/1570), (thanks @Kaspiman)
-#### Configuration example:
-```yaml
-service:
- schedule:run:
- command: "bin/console schedule:run"
- process_num: 1
- exec_timeout: 0s
- remain_after_exit: true
- service_name_in_log: false
- restart_sec: 60
- user: www-data # <---------- [NEW]
- group: www-data # <---------- [NEW]
-```
-
-## ๐Ÿ‘€ HTTP plugin:
-
-- โœ’๏ธ Response streaming support [FR](https://github.com/roadrunner-server/http/pull/152), (thanks @roxblnfk)
-
-Worker example:
-
-```php
-
-<?php
-
-require __DIR__ . '/vendor/autoload.php';
-
-use Spiral\RoadRunner;
-
-ini_set('display_errors', 'stderr');
-require __DIR__ . "/vendor/autoload.php";
-
-$worker = RoadRunner\Worker::create();
-$http = new RoadRunner\Http\HttpWorker($worker);
-$read = static function (): Generator {
- foreach (\file(__DIR__ . '/test.txt') as $line) {
- try {
- yield $line;
- } catch (Spiral\RoadRunner\Http\Exception\StreamStoppedException) {
- // Just stop sending data
- return;
- }
- }
-};
-
-try {
- while ($req = $http->waitRequest()) {
- $http->respond(200, $read());
- }
-} catch (\Throwable $e) {
- $worker->error($e->getMessage());
-}
-```
-
-- โœ’๏ธ Support for the `103` Early Hints via streamed response: [FR](https://github.com/roadrunner-server/roadrunner/issues/918), (thanks @azjezz)
-
-Worker example:
-
-```php
-<?php
-
-use Spiral\RoadRunner;
-
-ini_set('display_errors', 'stderr');
-require __DIR__ . "/vendor/autoload.php";
-
-$worker = RoadRunner\Worker::create();
-$http = new RoadRunner\Http\HttpWorker($worker);
-$read = static function (): Generator {
- $limit = 10;
- foreach (\file(__DIR__ . '/test.txt') as $line) {
- foreach (explode('"', $line) as $chunk) {
- try {
- usleep(50_000);
- yield $chunk;
- } catch (Spiral\RoadRunner\Http\Exception\StreamStoppedException $e) {
- // Just stop sending data
- return;
- }
- if (--$limit === 0) {
- return;
- }
- }
- }
-};
-
-
-try {
- while ($req = $http->waitRequest()) {
- $http->respond(103, '', headers: ['Link' => ['</style111.css>; rel=preload; as=style'], 'X-103' => ['103']], endOfStream: false);
- $http->respond(200, $read(), headers: ['X-200' => ['200']], endOfStream: true); // your regular response
- }
-} catch (\Throwable $e) {
- $worker->error($e->getMessage());
-}
-```
-
-## ๐Ÿ‘€ Server plugin:
-
-- โœ’๏ธ **RAW command support**: Support for raw commands, which are not validated by RR and may contain spaces. Note that this feature is only supported via `.rr.yaml` configuration: [FR](https://github.com/roadrunner-server/roadrunner/issues/1667), (thanks @nunomaduro)
-First argument should be a command (executable) and the rest of the arguments are passed to the command as arguments.
-
-```yaml
-version: "3"
-
-server:
- command: ["php", "../../php_test_files/client.php echo pipes"]
- relay: "pipes"
- relay_timeout: "20s"
-```
-2.
-```yaml
-version: "3"
-
-server:
- command:
- - "php"
- - "../../php_test_files/client.php echo pipes"
- relay: "pipes"
- relay_timeout: "20s"
-```
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› **RR Core**: Actualize according to the docs `./rr jobs list/stop/resume` commands: [PR](https://github.com/roadrunner-server/roadrunner/pull/1675), (thanks @gam6itko).
-- ๐Ÿ› **JOBS plugin**: Correctly handle OTEL span on listener error: [PR](https://github.com/roadrunner-server/amqp/pull/87), (thanks @Kaspiman).
-- ๐Ÿ› **RR tests**: Fix tests failures on Darwin: [PR](https://github.com/roadrunner-server/roadrunner/pull/1680), (thanks @shyim).
-- ๐Ÿ› **Streaming**: Add stream timeout (will be configurable in the next release). Fix loss of the first chunk of the streamed response.
-
-
-### <center>๐Ÿงน Chore:</center>
-- ๐Ÿง‘โ€๐Ÿญ **Golang**: Update Golang version to v1.21.
-- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies.
-
----
-
-# <center> ๐Ÿš€ v2023.2.2 ๐Ÿš€ </center>
-
-## ๐Ÿฉน Fixes
-
-- ๐Ÿ› **JOBS plugin**: Fix typo in the `RPC` span name: [PR](https://github.com/roadrunner-server/jobs/pull/92), (thanks @Kaspiman).
-- ๐Ÿ› **SDK**: Fix incorrect workers state when worker reached `idleTTL` state: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1669), (thanks @Aleksa1996).
-
-### <center>๐Ÿงน Chore:</center>
-
-- ๐Ÿง‘โ€๐Ÿญ **HTTP plugin**: faster PostForm/MultipartForm processing [PR](https://github.com/roadrunner-server/http/pull/145).
-- ๐Ÿง‘โ€๐Ÿญ **Golang**: Update Golang version to v1.21.
-- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies.
-
----
-
-# <center> ๐Ÿš€ v2023.2.1 ๐Ÿš€ </center>
-
-## ๐Ÿฉน Fixes
-
-- ๐Ÿ› **NATS driver**: Segfault when sending job via third-party sender without `consume_all` option set to `true`: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1650), (thanks @KernelMrex).
-- ๐Ÿ› **Metrics plugin**: Irregular panic when declaring metrics via `on_init` option: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1648), (thanks @Kaspiman).
-- ๐Ÿ› **Headers middleware**: Inconsistent usage of CORS options, failed to apply `allowed_*` options with spaces: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1655), (thanks @gam6itko).
-
-### <center>๐Ÿงน Chore:</center>
-
-- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies.
-
----
-
-# <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`.
-- โœ’๏ธ **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
-
-- โœ’๏ธ **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`.
-- โœ’๏ธ **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)
-
-### <center>๐Ÿงน Chore:</center>
-
-- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies.
-
----
-
-# <center> ๐Ÿš€ v2023.1.5 ๐Ÿš€ </center>
-
-## ๐Ÿฉน Fixes
-
-- ๐Ÿ› **KV plugin**: Correct plugin startup order: [PR](https://github.com/roadrunner-server/roadrunner/issues/1589), (thanks @ekisu)
-- ๐Ÿ› **JOBS plugin**: Check the pool pointer: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1597), (thanks @Kaspiman)
-- ๐Ÿ› **Send Middleware**: Fix bug in http.ResponseWriter wrapper: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1593), (thanks @tux-rampage)
-- ๐Ÿ› **XFF Middleware**: Split XFF content without space: [BUG](https://github.com/roadrunner-server/proxy_ip_parser/pull/35), (thanks @eightfourseventwo)
-
-## ๐Ÿ‘€ New
-
-- โœ’๏ธ **Docker** Add tags with minor version (e.g.: `v2023.1`, `v2023.2`, etc.): [FR](https://github.com/roadrunner-server/roadrunner/issues/1581), (thanks @Kaspiman)
-
-### <center>๐Ÿงน Chore:</center>
-
-- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies.
-
----
-
-# <center> ๐Ÿš€ v2023.1.4 ๐Ÿš€ </center>
-
-## ๐Ÿฉน Fixes
-
-- ๐Ÿ› **gRPC plugin**: allow specifying wildcards in the `proto` field: [PR](https://github.com/roadrunner-server/grpc/pull/90), (thanks @MaxSem)
-- ๐Ÿ› **SDK (internal)**: Workers are killed during processing when memory usage is exeeded: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1561), (thanks @ekisu)
-- ๐Ÿ› **JOBS plugin**: Jobs plugin hangd on many workers and pollers: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1568), (thanks @embargo2710)
-- ๐Ÿ› **JOBS plugin**: Safe shutdown occurs before the specified time: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1567), (thanks @embargo2710)
-- ๐Ÿ› **AMQP plugin**: Typo in the property name (`multiple_ack`): [BUG](https://github.com/roadrunner-server/roadrunner/issues/1565), (thanks @embargo2710)
-
-### <center>๐Ÿงน Chore:</center>
-
-- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies.
-
----
-
-# <center> ๐Ÿš€ v2023.1.3 ๐Ÿš€ </center>
-
-## ๐Ÿฉน Fixes
-
-- ๐Ÿ› **AMQP plugin**: Driver crash when not using OTEL metrics: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1553), (thanks @rauanmayemir)
-- ๐Ÿ› **JOBS plugin**: Incorrect parsing of JSON configuraion values: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1557), (thanks @embargo2710)
-
-### <center>๐Ÿงน Chore:</center>
-
-- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies.
-
----
-
-# <center> ๐Ÿš€ v2023.1.2 ๐Ÿš€ </center>
-
-## ๐Ÿฉน Fixes
-
-- ๐Ÿ› **SQS plugin**: Revert optimized check for the AWS environment, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1550), (thanks @sergey-telpuk)
-
-
-### <center>๐Ÿงน Chore:</center>
-
-- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies.
-
----
-
-# <center> ๐Ÿš€ v2023.1.1 ๐Ÿš€ </center>
-
-## ๐Ÿฉน Fixes
-
-- ๐Ÿ› **Centrifuge plugin**: Fix incorrect proto package import that caused panic on large payload.
-- ๐Ÿ› **PHP metapackage**: Unable to install RoadRunner via Composer, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1540), (thanks @monkenWu, @butschster)
-- ๐Ÿ› **HTTP plugin**: Fix double unmarshal of the main plugin configuration.
-- ๐Ÿ› **RR**: Fix `TestCommandWorkingDir` predifined temp directory, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1545), (thanks @shyim)
-- ๐Ÿ› **Status plugin**: Fix `superfluous response.WriteHeader` bug, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1544), (thanks @mfadul24)
-
----
-
-# <center> ๐Ÿš€ v2023.1.0 ๐Ÿš€ </center>
-
-## โš ๏ธ The `reload` plugin has been removed from the default plugins list. Please use `*.pool.debug=true` instead.
-
-## ๐Ÿ‘€ New
-
-- โœ’๏ธ **Kafka plugin:** Completely rewritten Kafka plugin. Now supports regexps for topics, marked commits for group consumers, and SASL authentication. Configuration reference: [link](https://roadrunner.dev/docs/plugins-jobs/2.x/en#kafka-driver).
-- โœ’๏ธ **RPC plugin:** The RPC plugin would be available immediately before worker initialization. This means that PHP worker can use all RPC methods immediately.
-
-- โœ’๏ธ Endure v2 support (internal change).
-- โœ’๏ธ Bash script to download the latest RR archive. Later we'll release a non-archived binary in addition to the regular archived releases. Sample of usage:
-```bash
-curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/roadrunner-server/roadrunner/master/download-latest.sh | sh
-
-```
-- โœ’๏ธ RoadRunner Composer metapackage: Removed the `require` section: [PR](https://github.com/roadrunner-server/roadrunner/pull/1422), (thanks @roxblnfk)
-- โœ’๏ธ **Lock plugin:** New plugin to handle shared resource access.
-- โœ’๏ธ **AMQP plugin:** RR passes the queue, pipeline, and driver names to the PHP client in all modes, including the consuming payloads from the other senders.
-- โœ’๏ธ **AMQP plugin:** `consumer_id` can now be set in configuration, [FR](https://github.com/roadrunner-server/roadrunner/issues/1432), (thanks @codercms)
-- โœ’๏ธ **AMQP plugin:** Since `v2023.1.0` RR did not accept the empty queue name, [CH](https://github.com/roadrunner-server/roadrunner/issues/1443)
-- โœ’๏ธ **OTEL plugin:** ๏ธSupport OpenTelemetry for the `temporal`, `http`, `gRPC` and `Jobs` plugins, including all `Jobs` drivers.
-- โœ’๏ธ **Config plugin:** Configuration version updated to `version: '3'`.
-- โœ’๏ธ **Logger plugin:** Now uses UTC timestamps [CH](https://github.com/roadrunner-server/roadrunner/issues/1442), (thanks @cv65kr)
-- โœ’๏ธ **Service plugin:** Instead of `SIGKILL`, send `SIGINT` with a 5s timeout to stop the underlying processes.
-
-- โœ’๏ธ **Configuration plugin:** Support for bash syntax with default values for keys. Starting from this release, you can use the following variables anywhere (values) in the configuration: `${LOG-LEVEL:-debug}`. That is, if the `LOG-LEVEL` env variable is not set, use `debug`.
-
-- โœ’๏ธ **gRPC plugin:** Support for custom interceptors. Will be generally available in the `2023.2.0`.
-- โœ’๏ธ **Temporal plugin:** Support for custom interceptors. Will be generally available in the `2023.2.0`.
-
-## ๐Ÿฉน Fixes
-
-- ๐Ÿ› **HTTP plugin**: Edge case where empty form value overwrites existing value, [PR](https://github.com/roadrunner-server/http/pull/87), (thanks @tungfinblox).
-- ๐Ÿ› **AMQP plugin**: Redial failed if user only uses consumer, [PR](https://github.com/roadrunner-server/roadrunner/issues/1472), (thanks @iborysenko).
-
-- ๐Ÿ› **RR CLI**: ./rr jobs` command panics when used without arguments, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1479), (thanks @embargo2710)
-
-- ๐Ÿ› **gRPC Plugin:** panic when calling `grpc.Workers` immediately after RR start.[BUG](https://github.com/roadrunner-server/roadrunner/issues/1532), (thanks @genhoi)
-- ๐Ÿ› **Proxy IP parser middleware:** Correctly handle the proxy headers from CloudFlare: [Discussion](https://github.com/orgs/roadrunner-server/discussions/1516), (thanks @victor-sudakov, @vladimir-vv)
-
----
-
-###### tags: `roadrunner` `v2.12.3`
-
-## v2.12.3 (16.02.2023)
-
-## <center> ๐Ÿš€ v2.12.3 ๐Ÿš€ </center>
-
-## <center>๐Ÿ‘€ New: <center>
-
-- โœ’๏ธ **Composer.json:** add contributors, funds, project description: [PR](https://github.com/roadrunner-server/roadrunner/pull/1451), (thanks @roxblnfk)
-
-
-### <center>๐Ÿงน Chore:</center>
-
-- ๐Ÿง‘โ€๐Ÿญ **Dependencies**: update project dependencies.
-- ๐Ÿง‘โ€๐Ÿญ **Go**: update Go to `1.20`.
-
----
-
-###### tags: `roadrunner` `v2.12.2`
-
-## v2.12.2 (12.01.2023)
-
-## <center> ๐Ÿš€ v2.12.2 ๐Ÿš€ </center>
-
-## <center>๐Ÿ‘€ New: <center>
-
-- โœ’๏ธ **AMQP plugin:** Custom headers in AMQP driver, [FR](https://github.com/roadrunner-server/roadrunner/issues/1388), (thanks @ykweb)
-
-
- ### <center>๐Ÿฉน Fixes:</center>
-
-- ๐Ÿ› **Velox**: Unable to build RoadRunner with custom velox configuration, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1400), (thanks @mprokocki)
-- ๐Ÿ› **RR**: JSON Schema - wrong type for service `exec_timeout` option, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1410), (thanks @Chi-teck)
-- ๐Ÿ› **RR**: Fix the description of the `--silent` flag, [PR](https://github.com/roadrunner-server/roadrunner/pull/1401), (thanks @maximal)
-
-
----
-
-###### tags: `roadrunner` `v2.12.2`
-
-## <center>๐Ÿš€ v2.12.2-alpha.1 ๐Ÿš€<center>
-
-## <center>๐Ÿ‘€ New: <center>
-
-- โœ **AMQP plugin:** pass headers to the `Queue` declaration command to create quorum, lazy, etc. queues and provide additional options supported by RabbitMQ, [FR](https://github.com/roadrunner-server/roadrunner/issues/1388), (thanks @ykweb)
-
-- โœ **AMQP plugin:** do not create a queue if the user does not consume it, [FR](https://github.com/spiral/roadrunner-jobs/issues/30), (thanks @Colomix)
-
-### <center>๐Ÿฉน Fixes:</center>
-
-- ๐Ÿ› **X-Sendfile middleware:** make it work as expected (as the response header), [BUG](https://github.com/roadrunner-server/roadrunner/issues/1386), (thanks @tux-rampage)
-
----
-
-## v2.12.1 (01.12.2022)
-
-###### tags: `roadrunner` `v2.12.1`
-
-## <center> ๐Ÿš€ v2.12.1 ๐Ÿš€ </center>
-## <center>๐Ÿ‘€ New: </center>
-
-- โœ **RR:** Automatically set the `GOMAXPROCS` to match the container CPU quota.
-- โœ **AMQP plugin:** implement `Status` to check the AMQP connection [PR](https://github.com/roadrunner-server/amqp/pull/33).
-- โœ **SQS plugin:** `prefetch` option now works as expected. RR will not consume new JOBS when reaches `prefetch` limit, until already accepted messages are not ACK/NACK-ed.
-- โœ **JOBS(memory) plugin:** `prefetch` option now works as expected (see SQS). You can now emulate FIFO in memory by setting the `prefetch` option to 1.
-
-### <center>๐Ÿฉน Fixes:</center>
-
-- **gRPC plugin**: server options are applied only when TLS is set. [Discussion](https://github.com/roadrunner-server/roadrunner/discussions/1384).
-- **AMQP plugin**: fix a few typos in the configuration.
-
-## v2.12.0 (24.11.2022)
-
-# โš ๏ธ `websocket` and `broadcast` plugins were replaced by the new `centrifuge` plugin.
-# โš ๏ธ All plugins, `sdk` and `api` updated to `v3`. There are no breaking changes, we moved all Go code from the `api` to `sdk`.
-
-## ๐Ÿ‘€ New:
-
-- โœ **All plugins**: update to `v3`. This is done not because of some breaking change but because of the internal update.
-- โœ **RPC plugin**: add new API to provide a running RR version and RR configuration in JSON format.
-- โœ **Metrics plugin**: add new API to unregister previously registered collector. (thanks @butschster)
-- โœ **Server plugin**: add new API to get statuses about the service and its child processes. (thanks @butschster)
-- โœ **App logger plugin**: Application logger plugin, [FR](https://github.com/roadrunner-server/roadrunner/issues/1227) (thanks @wolfy-j)
- **Docs**: [PHP-lib](https://github.com/roadrunner-php/app-logger)
-- โœ **AMQP plugin**: new configuration options. [FR](https://github.com/roadrunner-server/roadrunner/issues/1351), (thanks @andrey-tech)
-```yaml
-jobs:
- pipelines:
- example:
- driver: amqp
- config:
- # Durable exchange
- #
- # Default: true
- exchange_durable: true
-
- # Auto-deleted exchange
- #
- # Default: false
- exchange_auto_deleted: false
-
- # Auto-deleted queue
- #
- # Default: false
- queue_auto_deleted: false
-```
-
-- โœ **Workers pool (SDK)**: New option to control the `reset_timeout`. Note that the `pool.Reset` is protected by mutexes, meaning that if you have some requests already in the pool, you'll have to wait for these requests to be processed. The `reset_timeout` does not count this time.
-
-```yaml
-pool:
- allocate_timeout: 10s
- reset_timeout: 10s
- destroy_timeout: 10s
-```
-
-- โœ **Centrifugo plugin**: New `centrifugo` plugin. Which is going to replace existing `broadcast` + `websockets` plugins. [FR](https://github.com/roadrunner-server/roadrunner/issues/1134).
- **Docs**: [PHP-lib](https://github.com/roadrunner-php/centrifugo)
-
-RoadRunner config:
-
-```yaml
-version: "2.7"
-
-centrifuge:
- # Centrifugo server proxy address (docs: https://centrifugal.dev/docs/server/proxy#grpc-proxy)
- #
- # Optional, default: tcp://127.0.0.1:30000
- proxy_address: "tcp://127.0.0.1:30000"
-
- # gRPC server API address (docs: https://centrifugal.dev/docs/server/server_api#grpc-api)
- #
- # Optional, default: tcp://127.0.0.1:30000. Centrifugo: `grpc_api` should be set to true and `grpc_port` should be the same as in the RR's config.
- grpc_api_address: tcp://127.0.0.1:30000
-
- # Use gRPC gzip compressor
- #
- # Optional, default: false
- use_compressor: true
-
- # Your application version
- #
- # Optional, default: v1.0.0
- version: "v1.0.0"
-
- # Your application name
- #
- # Optional, default: roadrunner
- name: "roadrunner"
-
- # TLS configuration
- #
- # Optional, default: null
- tls:
- # TLS key
- #
- # Required
- key: /path/to/key.pem
-
- # TLS certificate
- #
- # Required
- cert: /path/to/cert.pem
-
-
- # Workers pool settings. link: https://github.com/roadrunner-server/roadrunner/blob/master/.rr.yaml#L812
- #
- # Optional, default: null (see default values)
- pool: {}
-```
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› **Headers middleware**: Header size is too small, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1336) (thanks @masterjus)
-- ๐Ÿ› **gRPC plugin**: Protobuf compiler plugin segfaults on import statements, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1337) (thanks @phroggyy)
-- ๐Ÿ› **Service plugin**: Get services list via RPC, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1339) (thanks @butschster)
-- ๐Ÿ› **gRPC plugin**: Remote `protoc-gen-php-grpc` plugin error, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1341) (thanks @rapita)
-- ๐Ÿ› **HTTP plugin**: Fail to upload files when RR's permissions are different from worker's, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1314) (thanks @egonbraun)
-
-
-## v2.11.4 (06.10.2022)
-
-## ๐Ÿ‘€ New:
-
-- โœ **Temporal plugin**: Support for the `SearchAttributes`. [FR](https://github.com/temporalio/roadrunner-temporal/pull/275), (thanks @cv65kr).
-
-**Docs**: [link](https://docs.temporal.io/concepts/what-is-a-search-attribute)
-**Samples**: [link](https://github.com/temporalio/samples-php/tree/master/app/src/SearchAttributes)
-
-## ๐Ÿ”ง Maintenance:
-
-- `roadrunner-temporal` plugin updated to: `1.7.0`
-- `http` plugin updated to: `2.23.5`
-- `sqs` plugin updated to: `2.20.4`
-- `config` plugin updated to: `2.16.5`
-- `grpc` plugin updated to: `2.23.3`
-- `nats` plugin updated to: `2.17.3`
-- `jobs` plugin updated to: `2.18.4`
-- `server` plugin updated to: `2.16.4`
-- `tcp` plugin updated to: `2.15.4`
-- `websockets` plugin updated to: `2.16.5`
-- `otel` plugin updated to: `2.5.6`
-- `kafka` plugin updated to: `2.2.3`
-
----
-
-
-## v2.11.3 (29.09.2022)
-
-## ๐Ÿ‘€ New:
-- โœ **[ALPHA] gRPC plugin**: `buf` remote plugins support for the `protoc-gen-php-grpc` plugin. [FR](https://github.com/roadrunner-server/roadrunner/issues/1297), (thanks @rauanmayemir)
-- โœ **Temporal plugin**: `mTLS` support. [FR](https://github.com/roadrunner-server/roadrunner/issues/1300), (thanks @seregazhuk)
-
-[Configuration sample](https://github.com/roadrunner-server/roadrunner/blob/master/.rr.yaml#L252):
-
-```yaml
-temporal:
- address: 127.0.0.1:7233
- cache_size: 100000
- activities:
- num_workers: 4
-
- tls:
- key: client.key
- cert: client.pem
- root_ca: ca.cert
- client_auth_type: require_and_verify_client_cert
- server_name: "tls-sample"
-```
-
-
-## ๐Ÿฉน Fixes:
-- ๐Ÿ› **Config plugin**: properly replace environment variables for the array `yaml` values. [BUG](https://github.com/roadrunner-server/roadrunner/issues/1308), (thanks @lyt8384)
-
-## ๐Ÿงน Chore:
-
-- ๐Ÿง‘โ€๐Ÿญ: **[ALPHA] gRPC plugin**: `base64` decoder for the google's `ErrorProto` structure. [FR](https://github.com/roadrunner-server/roadrunner/issues/1273), (thanks @rauanmayemir)
-
----
-
-## v2.11.2 (13.09.2022)
-
-## ๐Ÿ‘€ New:
-
-- โœ **Kafka plugin**: **[ โš ๏ธ EXPERIMENTAL OPTION โš ๏ธ ]** Kafka plugin now waits for 1 minute (automatically) for the broker to be available, [FR](https://github.com/roadrunner-server/roadrunner/issues/1267), (thanks @Baiquette)
-- โœ **Internal**: PHP Worker now uses an [FSM](https://en.wikipedia.org/wiki/Finite-state_machine) to transition between states (`working`, `ready`, `invalid`, etc).
-- โœ **Internal**: `./rr reset` now works in parallel. All workers will be restarted simultaneously instead of a one-by-one sync approach.
-- โœ **Internal**: `./rr reset` and destroy (when stopping RR) now gracefully stop the workers (giving a chance for the finalizers to work). If the worker doesn't respond in 10 seconds, it'll be killed.
-
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› **SQS plugin**: Incorrect detection of the `AWS IMDSv2` instances, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1250) (thanks @paulermo)
-- ๐Ÿ› **Temporal plugin**: Segmentation violation when using TLS, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1278), (thanks @seregazhuk)
-- ๐Ÿ› **NATS plugin**: Properly check the `stream not found` error from NATS, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1274), (thanks @pjtuxe)
-
-## ๐Ÿงน Chore:
-
-- ๐Ÿง‘โ€๐Ÿญ: **Temporal plugin**: Support for the `statsd` daemon for stats aggregation, [FR](https://github.com/temporalio/roadrunner-temporal/issues/265), (thanks @cv65kr)
-Configuration stays the same (**no breaking changes**), but additionally, you may specify a `driver`:
-
-**Prometheus:**
-```yaml
-temporal:
- address: "127.0.0.1:7233"
- metrics:
- driver: prometheus # <---- prometheus used by default (you may omit the driver in this case)
- address: "127.0.0.1:9095"
- prefix: "samples"
- type: "summary"
- activities:
- num_workers: 4
-```
-
-**Statsd:**
-```yaml
-temporal:
- address: "127.0.0.1:7233"
- metrics:
- driver: statsd # <---- Should be specified to use a statsd driver
- host_port: "127.0.0.1:8125"
- prefix: "samples"
- flush_interval: 1s
- flush_bytes: 512
- tags:
- - foo: bar
- activities:
- num_workers: 4
-```
-
-Detailed description is here: [link](https://github.com/roadrunner-server/roadrunner/blob/master/.rr.yaml#L169)
-
----
-
-## v2.11.1 (25.08.2022)
-
-## ๐Ÿ‘€ New:
-
-- โœ **http plugin**: Send raw body (unescaped) to the PHP worker for the `application/x-www-form-urlencoded` content type. [FR1](https://github.com/roadrunner-server/roadrunner/issues/1264), [FR2](https://github.com/roadrunner-server/roadrunner/issues/1206), (thanks @ekisu, @rlantingmove4mobile)
-Configuration:
-```yaml
-http:
- raw_body: true/false (by default)
-```
-- โœ **temporal plugin**: Overwrite `client-name` and `client-version` in Go client to represent PHP-SDK, [FR](https://github.com/roadrunner-server/roadrunner/issues/1249), (thanks, @wolfy-j)
-
-## ๐Ÿงน Chore:
-
-- ๐Ÿง‘โ€๐Ÿญ: Autocomplete `.rr.yaml` configuration for the `cache` plugin. [link](https://cdn.jsdelivr.net/gh/roadrunner-server/roadrunner@latest/schemas/config/2.0.schema.json)
-
----
-
-## 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](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.
-
-Configuration:
-```yaml
-temporal:
- tls:
- key: path/to/key
- cert: path/to/cert
- # other options
-```
-
-## ๐Ÿฉน 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.
-- ๐Ÿ› **SDK**: Use `pool.allocate_timeout` for the sockets/tcp relays instead of silently used of `relay_timeout`.
-
-## ๐Ÿงน 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.
-- All plugins, including RR, now use Go 1.19
-
----
-
-## v2.10.7 (14.07.2022)
-
-## ๐Ÿ‘€ New:
-
-- โœ๏ธ **OTEL Middleware**: Support for the `jaeger_agent` exporter - [BUG](https://github.com/roadrunner-server/roadrunner/issues/1205), (thanks @L3tum)
-
-## ๐Ÿ“ฆ Packages:
-
-- ๐Ÿ“ฆ `OTEL` SDK updated to `v1.8.0`
-- ๐Ÿ“ฆ `google.golang.org/gRPC` updated to `v1.48.0`
-- ๐Ÿ“ฆ `logger` plugin updated to `v2.13.5`
-- ๐Ÿ“ฆ `Go` updated to `v1.18.4`
-
----
-
-## v2.10.6 (07.07.2022)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› **SDK**: In some cases, worker watcher might freeze if the user kills the worker right after allocation but before `wait4` syscall and become a zombie. [BUG](https://github.com/roadrunner-server/roadrunner/issues/1180)
-- ๐Ÿ› **AMQP Plugin**: Ignored prefetch option when dynamically creating a pipeline. [BUG](https://github.com/roadrunner-server/roadrunner/issues/1197) (thanks @rauanmayemir)
-
-## ๐Ÿ‘€ New:
-
-- โœ๏ธ **VELOX**: Velox now supports environment variables for the `version`, `buildtime`, GitHub, and GitLab `tokens` in the `velox.toml`.
-- โœ๏ธ **Logger**: Say bye-bye to the `CRC verification failed` error. Starting from the `v2.10.6`, RR will show user-friendly message with the link to our docs on the most common causes for this type of error. [Docs](https://roadrunner.dev/docs/known-issues-stdout-crc/2.x/en)
-
----
-
-## v2.10.5 (23.06.2022)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› **SDK**: Increase `stderr` buffer size from 32kb to 65kb, [man7](https://linux.die.net/man/7/pipe), [BUG](https://github.com/roadrunner-server/roadrunner/issues/1171), (thanks @7krasov)
-- ๐Ÿ› **AMQP Plugin**: Fix incorrect queue binding to the `default` routing key. [BUG](https://github.com/roadrunner-server/roadrunner/issues/1181), (thanks @rauanmayemir)
-- ๐Ÿ› **HTTP Plugin**: Fix `x-www-form-urlencoded` requests 10Mb limit. [BUG](https://github.com/roadrunner-server/roadrunner/issues/1172) (thanks @StreetYo)
-
----
-
-## v2.10.4 (11.06.2022)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: incorrect `reset` behavior for the workers pool.
-- ๐Ÿ› Fix: correct `reset` order for the RR and Temporal workers.
-
----
-
-## v2.10.3 (02.06.2022)
-
-## ๐Ÿ‘€ New:
-
-- โœ๏ธ **CLI**: `rr stop` command. `rr stop` will read the `.pid` file to send a graceful stop signal to the main RR process (`SIGTERM`). [FR](https://github.com/roadrunner-server/roadrunner/issues/1162) (thanks @Baiquette)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: incorrect `reset` behavior for the `temporal` plugin. [BUG](https://github.com/temporalio/sdk-php/issues/174), [BUG](https://github.com/temporalio/sdk-php/issues/170), [BUG](https://github.com/temporalio/sdk-php/issues/177). (thanks @dmitry-pilipenko, @mzavatsky)
-
----
-
-## v2.10.2 (26.05.2022)
-
-## ๐Ÿ‘€ New:
-- โœ๏ธ **WORKER**: Starting from this release, RR is able to show full error messages sent to the `STDOUT` during the worker bootstrap.
-- โœ๏ธ **HTTP**: Connection might be upgraded from the `http/1.1` to `h2c`: [rfc7540](https://datatracker.ietf.org/doc/html/rfc7540#section-3.4)
-Headers, which should be sent to upgrade connection:
- 1. `Upgrade`: `h2c`
- 2. `Connection`: `HTTP2-Settings`
- 3. `Connection`: `Upgrade`
- 4. `HTTP2-Settings`: `AAMAAABkAARAAAAAAAIAAAAA` [RFC](https://datatracker.ietf.org/doc/html/rfc7540#section-3.2.1)
-
-- โœ๏ธ [**VELOX**](https://github.com/roadrunner-server/velox): Add GitLab support. Starting from the `beta.2` you may use `GitHub` and `GitLab` plugins together. Configuration updated. Keep in mind, until stable release `1.0.0` configuration might be changed with breaking changes.
-- โœ๏ธ **protoc-gen-php-grpc**: Use of fully qualified names in place of imports. [PR](https://github.com/roadrunner-server/grpc/pull/30) (thanks @ryanjcohen)
-
----
-
-## v2.10.1 (19.05.2022)
-
-## ๐Ÿ‘€ New:
-- โœ๏ธ **Jobs (queues)** plugin now can consume any payload from the queue. If RR fails in converting payload into the `Job` structure, it'll create and fill all available fields manually. To turn **on** this feature, use `consume_all: true` in the driver configuration, e.g.:
-Supported drivers: `amqp`, `sqs`,`beanstalk`,`nats`.
-
-```yaml
-jobs:
- num_pollers: 10
- pipeline_size: 100000
- pool:
- num_workers: 10
-
- pipelines:
- test-raw:
- driver: sqs
- config:
- consume_all: true # <------- NEW OPTION
-
- consume: [ "test-raw" ]
-```
-
-- โœ๏ธ **SQS** Jobs driver now can skip queue declaration in favor of getting queue URL instead. To use this feature, use `skip_queue_declaration: true` sqs driver option. [FR](https://github.com/roadrunner-server/roadrunner/issues/980), (thanks @sergey-telpuk)
-
-```yaml
-jobs:
- num_pollers: 10
- pipeline_size: 100000
- pool:
- num_workers: 10
-
- pipelines:
- test-2:
- driver: sqs
- config:
- skip_queue_declaration: true # <----- NEW OPTION
-
- consume: [ "test-2" ]
-```
-
-- โœ๏ธ OpenTelemetry middleware now supports `Jaeger` exporter and propagator.
-
-```yaml
-http:
- address: 127.0.0.1:43239
- max_request_size: 1024
- middleware: [gzip, otel]
- pool:
- num_workers: 2
- max_jobs: 0
- allocate_timeout: 60s
- destroy_timeout: 60s
-
-otel:
- exporter: jaeger # <----- NEW OPTION
-```
-
-- โœ๏ธ **HTTP Plugin** now supports [`mTLS` authentication](https://www.cloudflare.com/en-gb/learning/access-management/what-is-mutual-tls/). Possible values for the `client_auth_type` are the same as for the `gRPC` (`no_client_cert`, `request_client_cert`,`require_any_client_cert`,`verify_client_cert_if_given`,`require_and_verify_client_cert`) [FR](https://github.com/roadrunner-server/roadrunner/issues/1111), (thanks @fwolfsjaeger)
-
-```yaml
-version: '2.7'
-
-server:
- command: "php ../../php_test_files/http/client.php echo pipes"
- relay: "pipes"
- relay_timeout: "20s"
-
-http:
- address: :8085
- max_request_size: 1024
- middleware: [ ]
- pool:
- num_workers: 1
- max_jobs: 0
- allocate_timeout: 60s
- destroy_timeout: 60s
- ssl:
- address: :8895
- key: "key"
- cert: "cert"
- root_ca: "rootCA.pem" # <---- REQUIRED to use mTLS
- client_auth_type: require_and_verify_client_cert # <---- NEW OPTION
-logs:
- mode: development
- level: error
-```
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: **HTTP plugin**: non-documented behavior on non-standard (but valid) http codes. [BUG](https://github.com/roadrunner-server/roadrunner/issues/1136), (thanks, @Meroje)
-- ๐Ÿ› Fix: **SQS driver**: `rr_auto_ack` attribute won't fail the existing messages.
-
----
-
-## v2.10.0 (16.05.2022)
-
-## ๐Ÿ‘€ New:
-- โœ๏ธ Documentation update: [link](https://roadrunner.dev).
-- โœ๏ธ **RoadRunner-Temporal plugin now supports local activities**. Here is the brief overview: [link](https://docs.temporal.io/docs/temporal-explained/activities/#local-activity).
-- โœ๏ธ Add Debian `amd64` releases. [FEATURE](https://github.com/roadrunner-server/roadrunner/issues/940)
-- โœ๏ธ Add signed releases. Starting from the `v2.10.0`, every released binary can be checked with a provided `*.asc` key. For example:
-```bash
-$ gpg --verify rr.asc
-```
-
-The openPGP key can be verified here: [keyserver](https://keyserver.ubuntu.com/pks/lookup?search=0x9480A51C85D357D0&fingerprint=on&op=index)
-
-- โœ๏ธ All proto api for the `Go` programming language located here: [link](https://buf.build/roadrunner-server/api). To use it, just import the latest stable version `go.buf.build/protocolbuffers/go/roadrunner-server/api latest`.
-- โœ๏ธ `Service` plugin now supports auto-reload. It can be added to the `reload` plugin targets and on change, it'll reload all underlying processes.
-- โœ๏ธ `AutoAck` jobs option. For the messages (jobs), which are acceptable to lose. Or which execution can lead to a worker's stop (for example - OOM).
-- โœ๏ธ **[BETA] OpenTelemetry support**. Starting from now, the `new_relic` middleware is deprecated, it'll receive only dependency updates and will be removed from the RR bundle in the `v2.12.0`. (thanks @brettmc)
-OpenTelemetry plugin supports the following exporters:
- 1. OTLP (open telemetry protocol): `datadog`, `new relic`.
- 2. zipkin
- 3. stdout
- All these exporters can send their data via `http` or `grpc` clients.
-
-Configuration sample (stdout exporter):
-```yaml
-http:
- address: 127.0.0.1:43239
- max_request_size: 1024
- middleware: [gzip, otel]
- pool:
- num_workers: 2
- max_jobs: 0
- allocate_timeout: 60s
- destroy_timeout: 60s
-
-otel:
- insecure: false
- compress: true
- exporter: stdout
- service_name: rr_test
- service_version: 1.0.0
-```
-
-New Relic exporter via `http` client: [link](https://docs.newrelic.com/docs/more-integrations/open-source-telemetry-integrations/opentelemetry/opentelemetry-setup/#review-settings)
-```yaml
-http:
- address: 127.0.0.1:43239
- max_request_size: 1024
- middleware: [gzip, otel]
- pool:
- num_workers: 2
- max_jobs: 0
- allocate_timeout: 60s
- destroy_timeout: 60s
-otel:
- insecure: false
- compress: true
- client: http
- exporter: stdout
- custom_url: ""
- service_name: rr_test
- service_version: 1.0.0
- endpoint: otlp.eu01.nr-data.net:4318
- headers:
- - api-key: xxx # your api key here
-```
-
-PHP worker can access tracing data via `w3c` [headers](https://www.w3.org/TR/trace-context/#trace-context-http-headers-format).
-
-- โœ๏ธ Jobs can be auto-ack'ed now. New option used to acknowledge a message after RR receive it from the queue. [FR](https://github.com/roadrunner-server/roadrunner/issues/1089), (thanks @hustlahusky)
-- โœ๏ธ `protoc-gen-php-grpc` now supports `optional` fields. (thanks @genhoi)
-
-## ๐Ÿงน Chore:
-
-- ๐Ÿง‘โ€๐Ÿญ: All spaces and new-lines from the `Service` plugin output will be automatically trimmed. [CHORE](https://github.com/roadrunner-server/roadrunner/issues/1060), (thanks, @OO00O0O)
-
----
-
-## v2.9.4 (06.05.2022)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: **HTTP plugin:** request max body size incorrectly parsed. [BUG](https://github.com/roadrunner-server/roadrunner/issues/1115), (thanks, @Opekunov)
-
----
-
-## v2.9.3 (06.05.2022)
-
-## ๐Ÿ‘€ New:
-
-- โœ๏ธ: `--silent` flag. This flag will hide startup message and `./rr reset` output.
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: **AMQP** driver didn't reconnect on timeouts, which led to stopping consuming messages w/o a proper notification. [BUG](https://github.com/roadrunner-server/roadrunner/issues/1103), (thanks @hustlahusky)
-- ๐Ÿ› Fix: `reset` command (`./rr reset`) gets stuck when using output redirects. [BUG](https://github.com/roadrunner-server/roadrunner/issues/1108), (thanks @maximal)
-
-## ๐Ÿงน Chore:
-
-- ๐Ÿ—๏ธ **HTTP** plugin: better looking error message on wrong status code. [ISSUE](https://github.com/roadrunner-server/roadrunner/issues/1107), (thanks @gam6itko)
-
----
-
-## v2.10.0-alpha.1 (07.04.2022)
-
-## ๐Ÿ‘€ New:
-
-- โœ๏ธ **[ALPHA]** HTTP response streaming. Available only in the alfa builds.
-
-Worker sample:
-```php
-<?php
-
-use Nyholm\Psr7\Factory\Psr17Factory;
-use Nyholm\Psr7\Response;
-use Nyholm\Psr7\Stream;
-use Spiral\RoadRunner;
-
-ini_set('display_errors', 'stderr');
-require __DIR__ . "/vendor/autoload.php";
-
-$worker = RoadRunner\Worker::create();
-$psr7 = new RoadRunner\Http\PSR7Worker(
- $worker,
- new Psr17Factory(),
- new Psr17Factory(),
- new Psr17Factory()
-);
-
-$psr7->chunk_size = 10 * 10 * 1024;
-$filename = 'file.tmp'; // big file or response
-
-while ($req = $psr7->waitRequest()) {
- try {
- $fp = \fopen($filename, 'rb');
- \flock($fp, LOCK_SH);
- $resp = (new Response())->withBody(Stream::create($fp));
- $psr7->respond($resp);
- } catch (\Throwable $e) {
- $psr7->getWorker()->error((string)$e);
- }
-
-```
-
-Known issues:
-1. RR will not notify a worker if HTTP connection was interrupted. RR will read all response from the worker and drop it. That will be fixed in the stable streaming release.
-2. Sometimes RR may miss the immediate error from the worker and send a 0 payload with 200 status. This is related only to the http response.
-
-
-- โœ๏ธ **[BETA]** Local activities support [link](https://docs.temporal.io/docs/concepts/what-is-a-local-activity).
-
-
----
-
-
-## v2.9.2 (28.04.2022)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: incorrect `-w` flag behavior (set working dir). [BUG](https://github.com/roadrunner-server/roadrunner/issues/1101), (thanks @rauanmayemir)
-
----
-
-## v2.9.1 (11.04.2022)
-
-### โš ๏ธ This is important. `trusted_subnets` HTTP option will work only when `proxy_ip_parser` was added to the list of the middlewares.
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: incorrect usage of the `ExecWithTTL` SDK method which leads to skipping the `exec_ttl` supervisor option [BUG](https://github.com/laravel/octane/issues/504) (thanks @Baiquette)
-
-## ๐Ÿ‘€ New:
-
-- โœ๏ธ Add [`proxy_ip_parser`](https://github.com/roadrunner-server/proxy_ip_parser) HTTP middleware responsible for parsing `X-Forwarded-For`, `Forwarded`, `True-Client-IP` and `X-Real-Ip`.
-
----
-
-## v2.9.0 (07.04.2022)
-
----
-๐Ÿ‡บ๐Ÿ‡ฆ๐Ÿ‡บ๐Ÿ‡ฆ๐Ÿ‡บ๐Ÿ‡ฆ `#StandWithUkraine` ๐Ÿ‡บ๐Ÿ‡ฆ๐Ÿ‡บ๐Ÿ‡ฆ๐Ÿ‡บ๐Ÿ‡ฆ
-
----
-
-## ๐Ÿ‘€ New:
-
-- โœ๏ธ [**API**](https://github.com/roadrunner-server/api): add service proto api to manage services, [FR](https://github.com/roadrunner-server/roadrunner/issues/1009) (thanks @butschster). Documentation is here: [link](https://roadrunner.dev/docs/beep-beep-service).
-- โœ๏ธ Grafana dashboard [PATH](dashboards/RR_Dashboard.json). Exposed metrics:
-1. **General**:
- 1. Uptime (seconds).
- 2. Memory used by RR (MB).
- 3. Number of active goroutines.
-2. **HTTP**:
- 1. Number of workers by its state (ready, working, invalid).
- 2. Total RSS memory used by workers.
- 3. Memory used by each worker individually (with PID).
- 4. Latency (ms).
- 5. Requests queue size.
- 6. Requests per minute.
-3. **JOBS**:
- 1. Number of workers by its state (ready, working, invalid).
- 2. Total RSS memory used by workers.
- 3. Memory used by each worker individually (with PID).
- 4. Successfully processed jobs (rate, 5m).
- 5. Failed jobs (rate, 5m).
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: Goroutines leak in the `amqp` plugin when destroying pipelines.
-
-## ๐Ÿงน Chore:
-
-- ๐Ÿง‘โ€๐Ÿญ Update all dependencies to the most recent versions.
-
----
-
-## v2.8.8 (31.03.2022)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: Chdir (if the user sets the `-w` flag) before searching for the configuration.
-
-## ๐Ÿ“ฆ Packages:
-
-- ๐Ÿ“ฆ Update SQS and Go deps to the most recent versions.
-
----
-
-## v2.8.6 (24.03.2022)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: Websocket access validator requests don't send cookies [BUG](https://github.com/roadrunner-server/roadrunner/issues/1064), (@steffendietz)
-
----
-
-## v2.8.5 (23.03.2022)
-
-## ๐Ÿงน Chore:
-
-- ๐Ÿง‘โ€๐Ÿญ Update all dependencies to the most recent versions.
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: Incorrect pointer assign to read the configuration [BUG](https://github.com/roadrunner-server/roadrunner/issues/1066)
-
----
-
-## v2.8.4 (17.03.2022)
-
-## ๐Ÿ‘€ New:
-
-- Go update to version `1.18`
-
-## ๐Ÿงน Chore:
-
-- ๐Ÿง‘โ€๐Ÿญ Update all dependencies to the most recent versions.
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: No longer able to set environment variables for service [BUG](https://github.com/roadrunner-server/roadrunner/issues/1055), (reporter @andrei-dascalu)
-
----
-
-## v2.8.3 (13.03.2022)
-
-## ๐Ÿ‘€ New:
-
-- โœ๏ธ Better env variables parser. Now RR is able to parse the sentences like: `"mysql://${MYSQL_USER}:${MYSQL_PASSWORD}@${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_DATABASE}?serverVersion=5.7"` and get all environment variables. [FR](https://github.com/roadrunner-server/roadrunner/issues/1035), (reporter @Tony-Sol)
-
-## ๐Ÿงน Chore:
-
-- ๐Ÿง‘โ€๐Ÿญ Update all dependencies to the most recent versions.
-- ๐Ÿง‘โ€๐Ÿญ Remove `configuration` plugin from the `root.go` and other files. Used only in the `serve` where it should be.
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: call of the `kv.TTL` for the Redis drivers returns non RFC3339 time format [BUG](https://github.com/roadrunner-server/roadrunner/issues/1024), (reporter @antikirra)
-- ๐Ÿ› Fix: `rr workers` command doesn't work for the `service` plugin [BUG](https://github.com/roadrunner-server/roadrunner/issues/1033), (reporter @OO00O0O)
-
----
-
-## v2.8.2 (22.02.2022)
-
-## ๐Ÿงน Chore:
-
-- Docker: migrate to the `trivy` action instead of `grype` [PR](https://github.com/roadrunner-server/roadrunner/pull/1020), (contributor: @tarampampam)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: **CONFIG**: `version` can't be passed as inline option: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1021), (reporter @nunomaduro)
-
----
-
-## v2.8.1 (21.02.2022)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: **HTTP**: incorrect middleware chain order [BUG](https://github.com/roadrunner-server/roadrunner/issues/1017), (reporter @nitrogenium)
-```yaml
-http:
- middleware: ["static", "gzip"]
-```
-
-Middleware applied from the right to left, i.e. first will be `gzip` and then `static`.
-
-## ๐Ÿ‘€ New:
-
-- โœ๏ธ **HTTP**: Properly parse `Forwarder` header, [RFC](https://datatracker.ietf.org/doc/html/rfc7239), [FR](https://github.com/roadrunner-server/roadrunner/issues/1018) (reporter @digitalkaoz)
-- โœ๏ธ **TEMPORAL**: Add `rr_activities_pool_queue_size` and `rr_workflows_pool_queue_size` metrics. These metrics shows the number of activities/workflows waiting for the worker [BUG](https://github.com/temporalio/roadrunner-temporal/issues/183), (reporter @Zylius)
-- โœ๏ธ **API**: `Queuer` interface for the workers pool to show the number of requests waiting for the worker. Implemented in **SDK**.
-
----
-
-## v2.8.0 (17.02.2022)
-
-### โš ๏ธ For the RR `v2.8.0` your `.rr.yaml` configuration version should be [`2.7`](https://github.com/roadrunner-server/roadrunner/blob/master/.rr.yaml), so please update your config and add `version: '2.7'` at the top.
-
-## ๐Ÿ‘€ New:
-
-- โœ๏ธ Timeout for the SQS create/get queue operations (30seconds) [FR](https://github.com/roadrunner-server/roadrunner/issues/903) (reporter @sergey-telpuk)
-- โœ๏ธ New workers pool option -> `command`:
-```yaml
-http:
- address: 127.0.0.1:8080
- max_request_size: 256
- middleware: ["headers", "gzip"]
- trusted_subnets: []
-
- # Workers pool settings.
- pool:
- command: "php app.php" <---- NEW
-```
-This option is used to override the `server`'s command with the new one. The new command will inherit all server options. It can be used in any plugin (`jobs`, `grpc`, `tcp`, `http`, etc) using workers pool (`http` used here as a sample). No need to update your config. By default server command will be used as in the previous RR versions. Note, you can't leave the `server` command option empty. If you wanted to override the command in every plugin you use, put a placeholder in the `server.command`.
-- โœ๏ธ Add `Rr_newrelic_ignore` header support. Now you can send the `Rr_newrelic_ignore:true` header and RR will ignore such transactions. No data will be sent to the `newrelic` server. [FR](https://github.com/roadrunner-server/roadrunner/issues/900) (reporter @arku31)
-- โœ๏ธ Add support for the SQS FIFO queues [FR](https://github.com/roadrunner-server/roadrunner/issues/906) (reporter @paulermo)
-- โœ๏ธ Add support for the gRPC Healthcheck protocol v1 in the `grpc` plugin. [Doc](https://github.com/grpc/grpc/blob/master/doc/health-checking.md), [FR](https://github.com/roadrunner-server/roadrunner/issues/928) (reporter @porozhnyy)
-
----
-
-## v2.7.9 (14.02.2022)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: errors on workers reallocating when the unix/tcp socket transport is used: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1008), (reporter @tarampampam)
-
----
-
-## 2.7.8 (12.02.2022)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: worker sometimes panics when `unix/tcp sockets` transport used: [BUG](https://github.com/roadrunner-server/roadrunner/issues/1006), (reporter @tarampampam)
-
----
-
-## 2.7.7 (10.02.2022)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: case-sensitive attributes for SQS [BUG](https://github.com/roadrunner-server/roadrunner/issues/994), (reporter @paulermo)
-- ๐Ÿ› Fix: grpc plugin incorrectly parses the error response from the worker [BUG](https://github.com/roadrunner-server/roadrunner/issues/995), (reporter @rauanmayemir)
-- ๐Ÿ› Fix: destroy operation hangs if the number of workers is 0 [BUG](https://github.com/roadrunner-server/roadrunner/issues/1003), (reporter @benalf)
-
----
-
-## 2.7.6 (06.02.2022)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: temporal: `ActivityNotRegisteredError` on the local activity workers [BUG](https://github.com/temporalio/roadrunner-temporal/issues/163) (reporter @Zylius)
-
----
-
-
-## 2.7.5 (04.02.2022)
-
-## ๐Ÿ‘€ New:
-
-- โœ๏ธ Better workers' statistic. Add `worker state`, per-worker memory usage and worker's PID stats for the `JOBS`, `GRPC`, `HTTP` plugins [FR](https://github.com/roadrunner-server/roadrunner/issues/970)
-
----
-
-## 2.7.4 (27.01.2022)
-
-## ๐Ÿ‘€ New:
-
-- โœ๏ธ Return an error if the user uses the `.env` file, but it doesn't exist. [BUG](https://github.com/roadrunner-server/roadrunner/issues/954), (reporter @O00O0O)
-- โœ๏ธ Parallel workers allocation within the plugin. [FR](https://github.com/roadrunner-server/roadrunner/issues/951), (reporter @roquie)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: RR workers are blocked when one of them should send a big (> 100mb) response and when the time to send the response is bigger than the supervisor's `watch_tick` [BUG](https://github.com/roadrunner-server/roadrunner/issues/957) (reported by: @OO00O0O)
-
----
-
-## 2.7.3 (19.01.2022)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: `jobs` pipeline shadowing if registering the pipeline with the existing name [BUG](https://github.com/roadrunner-server/roadrunner/issues/943)
-- ๐Ÿ› Fix: `reload` plugin doesn't collect a resettable plugins [BUG](https://github.com/roadrunner-server/roadrunner/issues/942)
-
----
-
-## v2.7.2 (17.01.2022)
-
-## ๐Ÿ‘€ New:
-- Moved to the new organization.
-
----
-
-## v2.7.0 (14.01.2022)
-
-## ๐Ÿ‘€ New:
-
-- โœ๏ธ RR `workers pool`, `worker`, `worker_watcher` now has their own log levels. `stderr/stdout` logged as before at the `info` log level. All other messages moved to the `debug` log level except a few events from the `worker_watcher` when RR can't allocate the new worker which are moved to the `warn`.
-- โœ๏ธ Use the common logger for the whole roadrunner-sdk and roadrunner-plugins.
-- โœ๏ธ `.rr.yaml` now support versions. You may safely use your old configurations w/o specifying versions. Configuration w/o version will be treated as `2.6`. It is safe to use configuration w/o version or with version `2.6` with RR `2.7` because RR is able to automatically transform the old configuration.
- But if you use configuration version `2.7` you must update the `jobs` pipelines config.
- **At this point we can guarantee, that no breaking changes will be introduced in the configuration w/o auto-convert from the older configuration version**
- For example, if we introduce a configuration update let's say in version `2.10`, we will support automatic conversion from at least 2 previous versions w/o involving the user into the process. In the example case, versions `2.9` and `2.8` will be automatically converted. From our release cycle, you will have at least 3 months to update the configuration from version `2.8` and 2 months from `2.9`.Version located at the top of the `.rr.yaml`:
-
-**Compatibility matrix located here**: TODO
-**Configuration changelog**: TODO
-
-```yaml
-version: "2.6"
-
-# ..... PLUGINS ......
-```
-
-**Before:**
-```yaml
- pipelines:
- test-local:
- driver: memory
- priority: 10
- prefetch: 10000
-
- test-local-1:
- driver: boltdb
- priority: 10
- file: "rr.db"
- prefetch: 10000
-
- test-local-2:
- driver: amqp
- prefetch: 10
- priority: 1
- queue: test-1-queue
- exchange: default
- exchange_type: direct
- routing_key: test
- exclusive: false
- multiple_ack: false
- requeue_on_fail: false
-
- test-local-3:
- driver: beanstalk
- priority: 11
- tube_priority: 1
- tube: default-1
- reserve_timeout: 10s
-
- test-local-4:
- driver: sqs
- priority: 10
- prefetch: 10
- visibility_timeout: 0
- wait_time_seconds: 0
- queue: default
- attributes:
- DelaySeconds: 0
- MaximumMessageSize: 262144
- MessageRetentionPeriod: 345600
- ReceiveMessageWaitTimeSeconds: 0
- VisibilityTimeout: 30
- tags:
- test: "tag"
-
- test-local-5:
- driver: nats
- priority: 2
- prefetch: 100
- subject: default
- stream: foo
- deliver_new: true
- rate_limit: 100
- delete_stream_on_stop: false
- delete_after_ack: false
-```
-
-**After**:
-Now, pipelines have only `driver` key with the configuration under the `config` key. We did that to uniform configuration across all drivers (like in the `KV`).
-```yaml
- pipelines:
- test-local:
- driver: memory
-
- config: # <------------------ NEW
- priority: 10
- prefetch: 10000
-
- test-local-1:
- driver: boltdb
-
- config: # <------------------ NEW
- priority: 10
- file: "test-local-1-bolt.db"
- prefetch: 10000
-
- test-local-2:
- driver: amqp
-
- config: # <------------------ NEW
- priority: 11
- prefetch: 100
- queue: test-12-queue
- exchange: default
- exchange_type: direct
- routing_key: test
- exclusive: false
- multiple_ack: false
- requeue_on_fail: false
-
- test-local-3:
- driver: beanstalk
-
- config: # <------------------ NEW
- priority: 11
- tube_priority: 1
- tube: default-2
- reserve_timeout: 10s
-
- test-local-4:
- driver: sqs
-
- config: # <------------------ NEW
- priority: 10
- prefetch: 10
- visibility_timeout: 0
- wait_time_seconds: 0
- queue: default
-
- attributes:
- DelaySeconds: 0
- MaximumMessageSize: 262144
- MessageRetentionPeriod: 345600
- ReceiveMessageWaitTimeSeconds: 0
- VisibilityTimeout: 30
- tags:
- test: "tag"
-
- test-local-5:
- driver: nats
-
- config: # <------------------ NEW
- priority: 2
- prefetch: 100
- subject: default
- stream: foo
- deliver_new: true
- rate_limit: 100
- delete_stream_on_stop: false
- delete_after_ack: false
-```
-
-- โœ๏ธ **[ALPHA]** New cache http middleware. It is still in alpha, but we started implementing the [rfc-7234](https://httpwg.org/specs/rfc7234.html) to support `Cache-Control` and caching in general. In the first alpha you may test the `max-age`, `Age` and `Authorization` support via the in-memory driver.
-
-**Configuration**:
-```yaml
-http:
-# .....
- middleware: ["cache"]
- cache:
- driver: memory
- cache_methods: ["GET", "HEAD", "POST"] # only GET in alpha
- config: {} # empty configuration for the memory
-```
-
-- โœ๏ธ Logger unification. Starting this version we bound our logs to the `uber/zap` log library as one of the most popular and extensible.
-- โœ๏ธ API stabilization. All `v2` api interfaces moved to the `https://github.com/roadrunner-server/api` repository. Except logger (structure), all plugins depends only on the interfaces and don't import each other.
-- โœ๏ธ `GRPC` plugin now is able to work with gzipped payloads. [FR](https://github.com/spiral/roadrunner-plugins/issues/191) (reporter @hetao29)
-- โœ๏ธ `SQS` plugin now detects EC2 env and uses AWS credentials instead of static provider. [FR](https://github.com/spiral/roadrunner-plugins/issues/142) (reporter @paulermo)
-- โœ๏ธ `Jobs` plugin now acknowledges responses with incorrectly formed responses to prevent the infinity loop (with the error message in the logs). [BUG](https://github.com/spiral/roadrunner-plugins/issues/190) (reporter @sergey-telpuk)
-- โœ๏ธ `protoc` updated to the version `v3.19.2`.
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: RR may have missed the message from the `stderr` when the PHP script failed to start immediately after RR starts.
-- ๐Ÿ› Fix: 200 HTTP status code instead of 400 on readiness/health bad requests. [BUG](https://github.com/spiral/roadrunner-plugins/issues/180)
-- ๐Ÿ› Fix: `new_relic` plugin removes/modifies more headers than it should. [BUG](https://github.com/spiral/roadrunner-plugins/issues/185) (reporter: @arku31)
-
-
-## v2.6.6 (7.12.2021)
-
-## ๐Ÿ‘€ New:
-
-- โœ๏ธ Add events from the supervisor to the `server` plugin.
--
-## ๐Ÿฉน Fixes:
-- ๐Ÿ› Fix: worker exited immediately after obtaining the response. [BUG](https://github.com/spiral/roadrunner/issues/871) (reporter: @samdark).
-
-## ๐Ÿ“ฆ Packages:
-
-- ๐Ÿ“ฆ Update RoadRunner to `v2.6.2`
-
-## v2.6.5 (7.12.2021)
-
-## ๐Ÿฉน Fixes:
-- ๐Ÿ› Fix: wrong metrics type for the `rr_http_requests_queue`, [bug](https://github.com/spiral/roadrunner-plugins/issues/162) (reporter: @victor-sudakov)
-- ๐Ÿ› Fix: memory leak when supervised static pool used. [PR](https://github.com/spiral/roadrunner/pull/870).
-
-## ๐Ÿ“ฆ Packages:
-
-- ๐Ÿ“ฆ Update RoadRunner to `v2.6.1`
-
----
-
-## v2.6.4 (7.12.2021)
-
-## ๐Ÿ“ฆ Packages:
-
-- ๐Ÿ“ฆ Update endure to `v1.1.0`
-
-## ๐Ÿฉน Fixes:
-- ๐Ÿ› Fix: NPE in the `http.Reset`. [BUG](https://github.com/spiral/roadrunner-plugins/issues/155)
-
----
-
-## v2.6.3 (3.12.2021)
-
-## ๐Ÿ‘€ New:
-- โœ๏ธ `informer.List` RPC call return all available plugins with workers instead of all available plugins. This behavior was changed because `Informer` has the dependency of every RR plugin, which led to the cycles. This is not an external API and used only internally.
-- โœ๏ธ Beanstalk queue returned to the **[ALPHA]** stage. It's very unstable when destroying pipelines and can lead to infinite read loops when something wrong with the connection. Use with care.
-- โœ๏ธ Go version updated to `v1.17.4`.
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: add missing plugins to the container: `fileserver`, `http_metrics`.
----
-
-## v2.6.2 (3.12.2021)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: Random NPE on RR start. [BUG](https://github.com/spiral/roadrunner-plugins/issues/143)
-
----
-
-## v2.6.1 (2.12.2021)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: logger incorrectly escaped HTML, JSON, and other special symbols.
-
----
-
-## v2.6.0 (30.11.2021)
-
-## ๐Ÿ‘€ New:
-- โœ๏ธ New internal message bus. Available globally. Supports wildcard subscriptions (for example: `http.*` will subscribe you to the all events coming from the `http` plugin). The subscriptions can be made from any RR plugin to any RR plugin.
-- โœ๏ธ Now, RR will show in the returned error the bad header content in case of CRC mismatch error. More info in the [PR](https://github.com/spiral/roadrunner/pull/863).
-- โœ๏ธ **[BETA]** Support for the New Relic observability platform. Sample of the client library might be
- found [here](https://github.com/arku31/roadrunner-newrelic). (Thanks @arku31)
- New Relic middleware is a part of the HTTP plugin, thus configuration should be inside it:
-
-```yaml
-http:
- address: 127.0.0.1:15389
- middleware: [ "new_relic" ] <------- NEW
- new_relic: <---------- NEW
- app_name: "app"
- license_key: "key"
- pool:
- num_workers: 10
- allocate_timeout: 60s
- destroy_timeout: 60s
-```
-
-License key and application name could be set via environment variables: (leave `app_name` and `license_key` empty)
-
-- license_key: `NEW_RELIC_LICENSE_KEY`.
-- app_name: `NEW_RELIC_APP_NAME`.
-
-To set the New Relic attributes, the PHP worker should send headers values withing the `rr_newrelic` header key.
-Attributes should be separated by the `:`, for example `foo:bar`, where `foo` is a key and `bar` is a value. New Relic
-attributes sent from the worker will not appear in the HTTP response, they will be sent directly to the New Relic.
-
-To see the sample of the PHP library, see the @arku31 implementation: https://github.com/arku31/roadrunner-newrelic
-
-The special key which PHP may set to overwrite the transaction name is: `transaction_name`. For
-example: `transaction_name:foo` means: set transaction name as `foo`. By default, `RequestURI` is used as the
-transaction name.
-
-```php
- $resp = new \Nyholm\Psr7\Response();
- $rrNewRelic = [
- 'shopId:1', //custom data
- 'auth:password', //custom data
- 'transaction_name:test_transaction' //name - special key to override the name. By default it will use requestUri.
- ];
-
- $resp = $resp->withHeader('rr_newrelic', $rrNewRelic);
-```
-
----
-
-- โœ๏ธ **[BETA]** New plugin: `TCP`. The TCP plugin is used to handle raw TCP payload with a bi-directional [protocol](tcp/docs/tcp.md) between the RR server and PHP worker.
-
-PHP client library: https://github.com/spiral/roadrunner-tcp
-
-Configuration:
-```yaml
-rpc:
- listen: tcp://127.0.0.1:6001
-
-server:
- command: "php ../../psr-worker-tcp-cont.php"
-
-tcp:
- servers:
- server1:
- addr: 127.0.0.1:7778
- delimiter: "\r\n"
- server2:
- addr: 127.0.0.1:8811
- read_buf_size: 10
- server3:
- addr: 127.0.0.1:8812
- delimiter: "\r\n"
- read_buf_size: 1
-
- pool:
- num_workers: 5
- max_jobs: 0
- allocate_timeout: 60s
- destroy_timeout: 60s
-```
-
----
-
-- โœ๏ธ New HTTP middleware: `http_metrics`.
-```yaml
-http:
- address: 127.0.0.1:15389
- middleware: [ "http_metrics" ] <------- NEW
- pool:
- num_workers: 10
- allocate_timeout: 60s
- destroy_timeout: 60s
-```
-All old and new http metrics will be available after the middleware is activated. Be careful, this middleware may slow down your requests. New metrics:
-
- - `rr_http_requests_queue_sum` - number of queued requests.
- - `rr_http_no_free_workers_total` - number of the occurrences of the `NoFreeWorkers` errors.
-
-
------
-
-- โœ๏ธ New file server to serve static files. It works on a different address, so it doesn't affect the HTTP performance. It uses advanced configuration specific for the static file servers. It can handle any number of directories with its own HTTP prefixes.
- Config:
-
-```yaml
-fileserver:
- # File server address
- #
- # Error on empty
- address: 127.0.0.1:10101
- # Etag calculation. Request body CRC32.
- #
- # Default: false
- calculate_etag: true
-
- # Weak etag calculation
- #
- # Default: false
- weak: false
-
- # Enable body streaming for the files more than 4KB
- #
- # Default: false
- stream_request_body: true
-
- serve:
- # HTTP prefix
- #
- # Error on empty
- - prefix: "/foo"
-
- # Directory to serve
- #
- # Default: "."
- root: "../../../tests"
-
- # When set to true, the server tries minimizing CPU usage by caching compressed files
- #
- # Default: false
- compress: false
-
- # Expiration duration for inactive file handlers. Units: seconds.
- #
- # Default: 10, use a negative value to disable it.
- cache_duration: 10
-
- # The value for the Cache-Control HTTP-header. Units: seconds
- #
- # Default: 10 seconds
- max_age: 10
-
- # Enable range requests
- # https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests
- #
- # Default: false
- bytes_range: true
-
- - prefix: "/foo/bar"
- root: "../../../tests"
- compress: false
- cache_duration: 10s
- max_age: 10
- bytes_range: true
-```
-
-- โœ๏ธ `on_init` option for the `server` plugin. `on_init` code executed before the regular command and can be used to warm up the application for example. Failed `on_init` command doesn't affect the main command, so, the RR will continue to run. Thanks (@OO00O0O)
-
-Config:
-```yaml
-# Application server settings (docs: https://roadrunner.dev/docs/php-worker)
-server:
- on_init: <----------- NEW
- # Command to execute before the main server's command
- #
- # This option is required if using on_init
- command: "any php or script here"
-
- # Script execute timeout
- #
- # Default: 60s [60m, 60h], if used w/o units its means - NANOSECONDS.
- exec_timeout: 20s
-
- # Environment variables for the worker processes.
- #
- # Default: <empty map>
- env:
- - SOME_KEY: "SOME_VALUE"
- - SOME_KEY2: "SOME_VALUE2"
-
- # ..REGULAR SERVER OPTIONS...
-```
-
----
-
-- โœ๏ธ **[BETA]** GRPC can handle multiply proto files.
- Config:
-```yaml
-# GRPC service configuration
-grpc:
- # Proto files to use
- #
- # This option is required. At least one proto file must be specified.
- proto:
- - "first.proto"
- - "second.proto"
-
-## ... OTHER REGULAR GRPC OPTIONS ...
-```
-
----
-
-- โœ๏ธ New `allow` configuration option for the `http.uploads` and multipart requests. The new option allows you to filter upload extensions knowing only allowed. Now, there is no need to have a looong list with all possible extensions to forbid. [FR](https://github.com/spiral/roadrunner-plugins/issues/123) (Thanks @rjd22)
- `http.uploads.forbid` has a higher priority, so, if you have duplicates in the `http.uploads.allow` and `http.uploads.forbid` the duplicated extension will be forbidden.
- Config:
-
-```yaml
-http:
- address: 127.0.0.1:18903
- max_request_size: 1024
- middleware: ["pluginMiddleware", "pluginMiddleware2"]
- uploads:
- forbid: [".php", ".exe", ".bat"]
- allow: [".html", ".aaa" ] <------------- NEW
- trusted_subnets:
- [
- "10.0.0.0/8",
- "127.0.0.0/8",
- "172.16.0.0/12",
- "192.168.0.0/16",
- "::1/128",
- "fc00::/7",
- "fe80::/10",
- ]
- pool:
- num_workers: 2
- max_jobs: 0
- allocate_timeout: 60s
- destroy_timeout: 60s
-```
-
-- โœ๏ธ Beanstalk queue reject stop RPC calls if there are jobs in the priority queue associated with the requested
- pipeline.
-
-- โœ๏ธ Startup message when the RR has started.
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: GRPC server will show message when started.
-- ๐Ÿ› Fix: Static plugin headers were added to all requests. [BUG](https://github.com/spiral/roadrunner-plugins/issues/115)
-- ๐Ÿ› Fix: zombie processes in the `pool.debug` mode.
-
-## ๐Ÿ“ฆ Packages:
-
-- ๐Ÿ“ฆ roadrunner `v2.6.0`
-- ๐Ÿ“ฆ roadrunner-plugins `v2.6.0`
-- ๐Ÿ“ฆ roadrunner-temporal `v1.0.11`
-- ๐Ÿ“ฆ endure `v1.0.8`
-- ๐Ÿ“ฆ goridge `v3.2.4`
-- ๐Ÿ“ฆ temporal.io/sdk `v1.11.1`
-
-## v2.5.3 (27.10.2021)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: panic in the TLS layer. The `http` plugin used `http` server instead of `https` in the rootCA routine.
-
-## v2.5.2 (23.10.2021)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: ASLR builds causes [problems](https://github.com/roadrunner-server/roadrunner/issues/120) in the docker.
-
-
-## v2.5.1 (22.10.2021)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: [base64](https://github.com/spiral/roadrunner-plugins/issues/86) response instead of json in some edge cases.
-
-## v2.5.0 (20.10.2021)
-
-# ๐Ÿ’” Breaking change:
-
-- ๐Ÿ”จ Some drivers now use a new `config` key to handle local configuration. Involved plugins and drivers:
-- `plugins`: `broadcast`, `kv`
-- `drivers`: `memory`, `redis`, `memcached`, `boltdb`.
-
-### Old style:
-
-```yaml
-broadcast:
- default:
- driver: memory
- interval: 1
-```
-
-### New style:
-
-```yaml
-broadcast:
- default:
- driver: memory
- config: {} <--------------- NEW
-```
-
-```yaml
-kv:
- memory-rr:
- driver: memory
- config: <--------------- NEW
- interval: 1
-
-kv:
- memcached-rr:
- driver: memcached
- config: <--------------- NEW
- addr:
- - "127.0.0.1:11211"
-
-broadcast:
- default:
- driver: redis
- config: <------------------ NEW
- addrs:
- - "127.0.0.1:6379"
-```
-
-## ๐Ÿ‘€ New:
-
-- โœ๏ธ **[BETA]** GRPC plugin update to v2.
-- โœ๏ธ [Roadrunner-plugins](https://github.com/spiral/roadrunner-plugins) repository. This is the new home for the roadrunner plugins with documentation, configuration samples, and common problems.
-- โœ๏ธ **[BETA]** Let's Encrypt support. RR now can obtain an SSL certificate/PK for your domain automatically. Here is the new configuration:
-```yaml
- ssl:
- # Host and port to listen on (eg.: `127.0.0.1:443`).
- #
- # Default: ":443"
- address: "127.0.0.1:443"
-
- # Use ACME certificates provider (Let's encrypt)
- acme:
- # Directory to use as a certificate/pk, account info storage
- #
- # Optional. Default: rr_cache
- certs_dir: rr_le_certs
-
- # User email
- #
- # Used to create LE account. Mandatory. Error on empty.
- email: you-email-here@email
-
- # Alternate port for the http challenge. Challenge traffic should be redirected to this port if overridden.
- #
- # Optional. Default: 80
- alt_http_port: 80,
-
-
- # Alternate port for the tls-alpn-01 challenge. Challenge traffic should be redirected to this port if overridden.
- #
- # Optional. Default: 443.
- alt_tlsalpn_port: 443,
-
- # Challenge types
- #
- # Optional. Default: http-01. Possible values: http-01, tlsalpn-01
- challenge_type: http-01
-
- # Use production or staging endpoints. NOTE, try to use the staging endpoint (`use_production_endpoint`: `false`) to make sure, that everything works correctly.
- #
- # Optional, but for production should be set to true. Default: false
- use_production_endpoint: true
-
- # List of your domains to obtain certificates
- #
- # Mandatory. Error on empty.
- domains: [
- "your-cool-domain.here",
- "your-second-domain.here"
- ]
-```
-
-- โœ๏ธ Add a new option to the `logs` plugin to configure the line ending. By default, used `\n`.
-
-**New option**:
-```yaml
-# Logs plugin settings
-logs:
- (....)
- # Line ending
- #
- # Default: "\n".
- line_ending: "\n"
-```
-
-- โœ๏ธ HTTP [Access log support](https://github.com/spiral/roadrunner-plugins/issues/34) at the `Info` log level.
-```yaml
-http:
- address: 127.0.0.1:55555
- max_request_size: 1024
- access_logs: true <-------- Access Logs ON/OFF
- middleware: []
-
- pool:
- num_workers: 2
- max_jobs: 0
- allocate_timeout: 60s
- destroy_timeout: 60s
-```
-- โœ๏ธ HTTP middleware to handle `X-Sendfile` [header](https://github.com/spiral/roadrunner-plugins/issues/9).
- Middleware reads the file in 10MB chunks. So, for example for the 5Gb file, only 10MB of RSS will be used. If the file size is smaller than 10MB, the middleware fits the buffer to the file size.
-```yaml
-http:
- address: 127.0.0.1:44444
- max_request_size: 1024
- middleware: ["sendfile"] <----- NEW MIDDLEWARE
-
- pool:
- num_workers: 2
- max_jobs: 0
- allocate_timeout: 60s
- destroy_timeout: 60s
-```
-
-- โœ๏ธ Service plugin now supports env variables passing to the script/executable/binary/any like in the `server` plugin:
-```yaml
-service:
- some_service_1:
- command: "php test_files/loop_env.php"
- process_num: 1
- exec_timeout: 5s # s,m,h (seconds, minutes, hours)
- remain_after_exit: true
- env: <----------------- NEW
- foo: "BAR"
- restart_sec: 1
-```
-
-- โœ๏ธ Server plugin can accept scripts (sh, bash, etc) in it's `command` configuration key:
-```yaml
-server:
- command: "./script.sh OR sh script.sh" <--- UPDATED
- relay: "pipes"
- relay_timeout: "20s"
-```
-The script should start a worker as the last command. For the `pipes`, scripts should not contain programs, which can close `stdin`, `stdout` or `stderr`.
-
-- โœ๏ธ Nats jobs driver support - [PR](https://github.com/spiral/roadrunner-plugins/pull/68).
-```yaml
-nats:
- addr: "demo.nats.io"
-
-jobs:
- num_pollers: 10
- pipeline_size: 100000
- pool:
- num_workers: 10
- max_jobs: 0
- allocate_timeout: 60s
- destroy_timeout: 60s
-
- pipelines:
- test-1:
- driver: nats
- prefetch: 100
- subject: "default"
- stream: "foo"
- deliver_new: "true"
- rate_limit: 100
- delete_stream_on_stop: false
- delete_after_ack: false
- priority: 2
-
- consume: [ "test-1" ]
-```
-- Driver uses NATS JetStream API and is not compatible with non-js API.
-
-
-- โœ๏ธ Response API for the NATS, RabbitMQ, SQS and Beanstalk drivers. This means, that you'll be able to respond to a specified in the response queue.
- Limitations:
- - To send a response to the queue maintained by the RR, you should send it as a `Job` type. There are no limitations for the responses into the other queues (tubes, subjects).
- - Driver uses the same endpoint (address) to send the response as specified in the configuration.
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: local and global configuration parsing.
-- ๐Ÿ› Fix: `boltdb-jobs` connection left open after RPC close command.
-- ๐Ÿ› Fix: close `beanstalk` connection and release associated resources after pipeline stopped.
-- ๐Ÿ› Fix: grpc plugin fails to handle requests after calling `reset`.
-- ๐Ÿ› Fix: superfluous response.WriteHeader call when connection is broken.
-
-## ๐Ÿ“ฆ Packages:
-
-- ๐Ÿ“ฆ roadrunner `v2.5.0`
-- ๐Ÿ“ฆ roadrunner-plugins `v2.5.0`
-- ๐Ÿ“ฆ roadrunner-temporal `v1.0.10`
-- ๐Ÿ“ฆ endure `v1.0.6`
-- ๐Ÿ“ฆ goridge `v3.2.3`
-
-## v2.4.1 (13.09.2021)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: bug with not-idempotent call to the `attributes.Init`.
-- ๐Ÿ› Fix: memory jobs driver behavior. Now memory driver starts consuming automatically if the user consumes the pipeline in the configuration.
-
-## v2.4.0 (02.09.2021)
-
-## ๐Ÿ’” Internal BC:
-
-- ๐Ÿ”จ Pool, worker interfaces: payload now passed and returned by the pointer.
-
-## ๐Ÿ‘€ New:
-
-- โœ๏ธ Long-awaited, reworked `Jobs` plugin with pluggable drivers. Now you can allocate/destroy pipelines in the runtime. Drivers included in the initial release: `RabbitMQ (0-9-1)`, `SQS v2`, `beanstalk`, `memory` and local queue powered by the `boltdb`. [PR](https://github.com/spiral/roadrunner/pull/726)
-- โœ๏ธ Support for the IPv6 (`tcp|http(s)|empty [::]:port`, `tcp|http(s)|empty [::1]:port`, `tcp|http(s)|empty :// [0:0:0:0:0:0:0:1]:port`) for RPC, HTTP and other plugins. [RFC](https://datatracker.ietf.org/doc/html/rfc2732#section-2)
-- โœ๏ธ Support for the Docker images via GitHub packages.
-- โœ๏ธ Go 1.17 support for the all spiral packages.
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: fixed bug with goroutines waiting on the internal worker's container channel, [issue](https://github.com/spiral/roadrunner/issues/750).
-- ๐Ÿ› Fix: RR become unresponsive when new workers failed to re-allocate, [issue](https://github.com/spiral/roadrunner/issues/772).
-- ๐Ÿ› Fix: add `debug` pool config key to the `.rr.yaml` configuration [reference](https://github.com/roadrunner-server/roadrunner/issues/79).
-
-## ๐Ÿ“ฆ Packages:
-
-- ๐Ÿ“ฆ Update goridge to `v3.2.1`
-- ๐Ÿ“ฆ Update temporal to `v1.0.9`
-- ๐Ÿ“ฆ Update endure to `v1.0.4`
-
-## ๐Ÿ“ˆ Summary:
-
-- RR Milestone [2.4.0](https://github.com/spiral/roadrunner/milestone/29?closed=1)
-- RR-Binary Milestone [2.4.0](https://github.com/roadrunner-server/roadrunner/milestone/10?closed=1)
-
----
-
-## v2.3.2 (14.07.2021)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: Do not call the container's Stop method after the container stopped by an error.
-- ๐Ÿ› Fix: Bug with ttl incorrectly handled by the worker [PR](https://github.com/spiral/roadrunner/pull/749)
-- ๐Ÿ› Fix: Add `RR_BROADCAST_PATH` to the `websockets` plugin [PR](https://github.com/spiral/roadrunner/pull/749)
-
-## ๐Ÿ“ˆ Summary:
-
-- RR Milestone [2.3.2](https://github.com/spiral/roadrunner/milestone/31?closed=1)
-
----
-
-## v2.3.1 (30.06.2021)
-
-## ๐Ÿ‘€ New:
-
-- โœ๏ธ Rework `broadcast` plugin. Add architecture diagrams to the `doc`
- folder. [PR](https://github.com/spiral/roadrunner/pull/732)
-- โœ๏ธ Add `Clear` method to the KV plugin RPC. [PR](https://github.com/spiral/roadrunner/pull/736)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: Bug with channel deadlock when `exec_ttl` was used and TTL limit
- reached [PR](https://github.com/spiral/roadrunner/pull/738)
-- ๐Ÿ› Fix: Bug with healthcheck endpoint when workers were marked as invalid and stay is that state until next
- request [PR](https://github.com/spiral/roadrunner/pull/738)
-- ๐Ÿ› Fix: Bugs with `boltdb` storage: [Boom](https://github.com/spiral/roadrunner/issues/717)
- , [Boom](https://github.com/spiral/roadrunner/issues/718), [Boom](https://github.com/spiral/roadrunner/issues/719)
-- ๐Ÿ› Fix: Bug with incorrect redis initialization and usage [Bug](https://github.com/spiral/roadrunner/issues/720)
-- ๐Ÿ› Fix: Bug, Goridge duplicate error messages [Bug](https://github.com/spiral/goridge/issues/128)
-- ๐Ÿ› Fix: Bug, incorrect request `origin` check [Bug](https://github.com/spiral/roadrunner/issues/727)
-
-## ๐Ÿ“ฆ Packages:
-
-- ๐Ÿ“ฆ Update goridge to `v3.1.4`
-- ๐Ÿ“ฆ Update temporal to `v1.0.8`
-
-## ๐Ÿ“ˆ Summary:
-
-- RR Milestone [2.3.1](https://github.com/spiral/roadrunner/milestone/30?closed=1)
-- Temporal Milestone [1.0.8](https://github.com/temporalio/roadrunner-temporal/milestone/11?closed=1)
-- Goridge Milestone [3.1.4](https://github.com/spiral/goridge/milestone/11?closed=1)
-
----
-
-## v2.3.0 (08.06.2021)
-
-## ๐Ÿ‘€ New:
-
-- โœ๏ธ Brand new `broadcast` plugin now has the name - `websockets` with broadcast capabilities. It can handle hundreds of
- thousands websocket connections very efficiently (~300k messages per second with 1k connected clients, in-memory bus
- on 2CPU cores and 1GB of RAM) [Issue](https://github.com/spiral/roadrunner/issues/513)
-- โœ๏ธ Protobuf binary messages for the `websockets` and `kv` RPC calls under the
- hood. [Issue](https://github.com/spiral/roadrunner/issues/711)
-- โœ๏ธ Json-schemas for the config file v1.0 (it also registered
- in [schemastore.org](https://github.com/SchemaStore/schemastore/pull/1614))
-- โœ๏ธ `latest` docker image tag supported now (but we strongly recommend using a versioned tag (like `0.2.3`) instead)
-- โœ๏ธ Add new option to the `http` config section: `internal_error_code` to override default (500) internal error
- code. [Issue](https://github.com/spiral/roadrunner/issues/659)
-- โœ๏ธ Expose HTTP plugin metrics (workers memory, requests count, requests duration)
- . [Issue](https://github.com/spiral/roadrunner/issues/489)
-- โœ๏ธ Scan `server.command` and find errors related to the wrong path to a `PHP` file, or `.ph`, `.sh`
- scripts. [Issue](https://github.com/spiral/roadrunner/issues/658)
-- โœ๏ธ Support file logger with log rotation [Wiki](https://en.wikipedia.org/wiki/Log_rotation)
- , [Issue](https://github.com/spiral/roadrunner/issues/545)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: Bug with `informer.Workers` worked incorrectly: [Bug](https://github.com/spiral/roadrunner/issues/686)
-- ๐Ÿ› Fix: Internal error messages will not be shown to the user (except HTTP status code). Error message will be in
- logs: [Bug](https://github.com/spiral/roadrunner/issues/659)
-- ๐Ÿ› Fix: Error message will be properly shown in the log in case of `SoftJob`
- error: [Bug](https://github.com/spiral/roadrunner/issues/691)
-- ๐Ÿ› Fix: Wrong applied middlewares for the `fcgi` server leads to the
- NPE: [Bug](https://github.com/spiral/roadrunner/issues/701)
-
-## ๐Ÿ“ฆ Packages:
-
-- ๐Ÿ“ฆ Update goridge to `v3.1.0`
-
----
-
-## v2.2.1 (13.05.2021)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: revert static plugin. It stays as a separate plugin on the main route (`/`) and supports all the previously
- announced features.
-- ๐Ÿ› Fix: remove `build` and other old targets from the Makefile.
-
----
-
-## v2.2.0 (11.05.2021)
-
-## ๐Ÿ‘€ New:
-
-- โœ๏ธ Reworked `static` plugin. Now, it does not affect the performance of the main route and persist on the separate
- file server (within the `http` plugin). Looong awaited feature: `Etag` (+ weak Etags) as well with the `If-Mach`
- , `If-None-Match`, `If-Range`, `Last-Modified`
- and `If-Modified-Since` tags supported. Static plugin has a bunch of new options such as: `allow`, `calculate_etag`
- , `weak` and `pattern`.
-
- ### Option `always` was deleted from the plugin.
-
-- โœ๏ธ Update `informer.List` implementation. Now it returns a list with the all available plugins in the runtime.
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: issue with wrong ordered middlewares (reverse). Now the order is correct.
-- ๐Ÿ› Fix: issue when RR fails if a user sets `debug` mode with the `exec_ttl` supervisor option.
-- ๐Ÿ› Fix: uniform log levels. Use everywhere the same levels (warn, error, debug, info, panic).
-
----
-
-## v2.1.1 (29.04.2021)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: issue with endure provided wrong logger interface implementation.
-
-## v2.1.0 (27.04.2021)
-
-## ๐Ÿ‘€ New:
-
-- โœ๏ธ New `service` plugin. Docs: [link](https://roadrunner.dev/docs/beep-beep-service)
-- โœ๏ธ Stabilize `kv` plugin with `boltdb`, `in-memory`, `memcached` and `redis` drivers.
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: Logger didn't provide an anonymous log instance to a plugins w/o `Named` interface implemented.
-- ๐Ÿ› Fix: http handler was without log listener after `rr reset`.
-
-## v2.0.4 (06.04.2021)
-
-## ๐Ÿ‘€ New:
-
-- โœ๏ธ Add support for `linux/arm64` platform for docker image (thanks @tarampampam).
-- โœ๏ธ Add dotenv file support (`.env` in working directory by default; file location can be changed using CLI
- flag `--dotenv` or `DOTENV_PATH` environment variable) (thanks @tarampampam).
-- ๐Ÿ“œ Add a new `raw` mode for the `logger` plugin to keep the stderr log message of the worker unmodified (logger
- severity level should be at least `INFO`).
-- ๐Ÿ†• Add Readiness probe check. The `status` plugin provides `/ready` endpoint which return the `204` HTTP code if there
- are no workers in the `Ready` state and `200 OK` status if there are at least 1 worker in the `Ready` state.
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: bug with the temporal worker which does not follow general graceful shutdown period.
-
-## v2.0.3 (29.03.2021)
-
-## ๐Ÿฉน Fixes:
-
-- ๐Ÿ› Fix: slow last response when reached `max_jobs` limit.
-
-## v2.0.2 (06.04.2021)
-
-- ๐Ÿ› Fix: Bug with required Root CA certificate for the SSL, now it's optional.
-- ๐Ÿ› Fix: Bug with incorrectly consuming metrics collector from the RPC calls (thanks @dstrop).
-- ๐Ÿ†• New: HTTP/FCGI/HTTPS internal logs instead of going to the raw stdout will be displayed in the RR logger at
- the `Info` log level.
-- โšก New: Builds for the Mac with the M1 processor (arm64).
-- ๐Ÿ‘ท Rework ServeHTTP handler logic. Use http.Error instead of writing code directly to the response writer. Other small
- improvements.
-
-## v2.0.1 (09.03.2021)
-
-- ๐Ÿ› Fix: incorrect PHP command validation
-- ๐Ÿ› Fix: ldflags properly inject RR version
-- โฌ†๏ธ Update: README, links to the go.pkg from v1 to v2
-- ๐Ÿ“ฆ Bump golang version in the Dockerfile and in the `go.mod` to 1.16
-- ๐Ÿ“ฆ Bump Endure container to v1.0.0.
-
-## v2.0.0 (02.03.2021)
-
-- โœ”๏ธ Add a shared server to create PHP worker pools instead of isolated worker pool in each individual plugin.
-- ๐Ÿ†• New plugin system with auto-recovery, easier plugin API.
-- ๐Ÿ“œ New `logger` plugin to configure logging for each plugin individually.
-- ๐Ÿ” Up to 50% performance increase in HTTP workloads.
-- โœ”๏ธ Add **[Temporal Workflow](https://temporal.io)** plugin to run distributed computations on scale.
-- โœ”๏ธ Add `debug` flag to reload PHP worker ahead of a request (emulates PHP-FPM behavior).
-- โŒ Eliminate `limit` service, now each worker pool includes `supervisor` configuration.
-- ๐Ÿ†• New resetter, informer plugins to perform hot reloads and observe loggers in a system.
-- ๐Ÿ’ซ Expose more HTTP plugin configuration options.
-- ๐Ÿ†• Headers, static and gzip services now located in HTTP config.
-- ๐Ÿ†• Ability to configure the middleware sequence.
-- ๐Ÿ’ฃ Faster Goridge protocol (eliminated 50% of syscalls).
-- ๐Ÿ’พ Add support for binary payloads for RPC (`msgpack`).
-- ๐Ÿ†• Server no longer stops when a PHP worker dies (attempts to restart).
-- ๐Ÿ’พ New RR binary server downloader.
-- ๐Ÿ’ฃ Echoing no longer breaks execution (yay!).
-- ๐Ÿ†• Migration to ZapLogger instead of Logrus.
-- ๐Ÿ’ฅ RR can no longer stuck when studding down with broken tasks in a pipeline.
-- ๐Ÿงช More tests, more static analysis.
-- ๐Ÿ’ฅ Create a new foundation for new KV, WebSocket, GRPC and Queue plugins.
-
-## v2.0.0-RC.4 (20.02.2021)
-
-- PHP tests use latest signatures (https://github.com/spiral/roadrunner/pull/550).
-- Endure container update to v1.0.0-RC.2 version.
-- Remove unneeded mutex from the `http.Workers` method.
-- Rename `checker` plugin package to `status`, remove `/v1` endpoint prefix (#557).
-- Add static, headers, status, gzip plugins to the `main.go`.
-- Fix workers pool behavior -> idle_ttl, ttl, max_memory are soft errors and exec_ttl is hard error.
-
-## v2.0.0-RC.3 (17.02.2021)
-
-- Add support for the overwriting `.rr.yaml` keys with values (ref: https://roadrunner.dev/docs/intro-config)
-- Make logger plugin optional to define in the config. Default values: level -> `debug`, mode -> `development`
-- Add the ability to read env variables from the `.rr.yaml` in the form of: `rpc.listen: {RPC_ADDR}`. Reference:
- ref: https://roadrunner.dev/docs/intro-config (Environment Variables paragraph)
-
-## v2.0.0-RC.2 (11.02.2021)
-
-- Update RR to version v2.0.0-RC.2
-- Update Temporal plugin to version v2.0.0-RC.1
-- Update Goridge to version v3.0.1
-- Update Endure to version v1.0.0-RC.1
+### `SDK`:
+- ๐Ÿ”ฅ Use a small random jitter to prevent the [Thundering herd problem](https://en.wikipedia.org/wiki/Thundering_herd_problem) when user uses `max_jobs` option and all the workers restarted at the same time. This feature is enabled automatically. (thanks @Kaspiman)
diff --git a/Dockerfile b/Dockerfile
index 05cd8eae..8363b2cf 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -12,8 +12,8 @@ WORKDIR /src
# arguments to pass on each go tool link invocation
ENV LDFLAGS="-s \
--X github.com/roadrunner-server/roadrunner/v2023/internal/meta.version=$APP_VERSION \
--X github.com/roadrunner-server/roadrunner/v2023/internal/meta.buildTime=$BUILD_TIME"
+-X github.com/roadrunner-server/roadrunner/v2024/internal/meta.version=$APP_VERSION \
+-X github.com/roadrunner-server/roadrunner/v2024/internal/meta.buildTime=$BUILD_TIME"
# compile binary file
RUN set -x
diff --git a/README.md b/README.md
index b9fa40c1..57738064 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@
</a>
<p align="center">
<a href="https://packagist.org/packages/spiral/roadrunner"><img src="https://poser.pugx.org/spiral/roadrunner/version"></a>
- <a href="https://pkg.go.dev/github.com/roadrunner-server/roadrunner/v2023?tab=doc"><img src="https://godoc.org/github.com/roadrunner-server/roadrunner/v2023?status.svg"></a>
+ <a href="https://pkg.go.dev/github.com/roadrunner-server/roadrunner/v2024?tab=doc"><img src="https://godoc.org/github.com/roadrunner-server/roadrunner/v2024?status.svg"></a>
<a href="https://twitter.com/spiralphp"><img src="https://img.shields.io/twitter/follow/spiralphp?style=social"></a>
<a href="https://codecov.io/gh/roadrunner-server/roadrunner/"><img src="https://codecov.io/gh/roadrunner-server/roadrunner/branch/master/graph/badge.svg"></a>
<a href="https://github.com/roadrunner-server/roadrunner/actions"><img src="https://github.com/roadrunner-server/roadrunner/workflows/rr_cli_tests/badge.svg" alt=""></a>
@@ -52,12 +52,12 @@ OSX, Linux, FreeBSD, and Windows. Instructions for using these binaries are on t
## Docker:
-To get the roadrunner binary file you can use our docker image: `ghcr.io/roadrunner-server/roadrunner:2023.X.X` (more information about
+To get the roadrunner binary file you can use our docker image: `ghcr.io/roadrunner-server/roadrunner:2024.X.X` (more information about
image and tags can be found [here](https://github.com/roadrunner-server/roadrunner/pkgs/container/roadrunner)).
```dockerfile
-FROM ghcr.io/roadrunner-server/roadrunner:2023.X.X AS roadrunner
-FROM php:8.2-cli
+FROM ghcr.io/roadrunner-server/roadrunner:2024.X.X AS roadrunner
+FROM php:8.3-cli
COPY --from=roadrunner /usr/bin/rr /usr/local/bin/rr
@@ -87,8 +87,8 @@ Server binary will be available at the root of your project.
## Installation option for the Debian-derivatives (Ubuntu, Mint, MX, etc)
```bash
-wget https://github.com/roadrunner-server/roadrunner/releases/download/v2023.X.X/roadrunner-2023.X.X-linux-amd64.deb
-sudo dpkg -i roadrunner-2023.X.X-linux-amd64.deb
+wget https://github.com/roadrunner-server/roadrunner/releases/download/v2024.X.X/roadrunner-2024.X.X-linux-amd64.deb
+sudo dpkg -i roadrunner-2024.X.X-linux-amd64.deb
```
## Download the latest release via curl:
diff --git a/benchmarks/simple.js b/benchmarks/simple.js
index 3f0ebfe6..f7ca15bc 100644
--- a/benchmarks/simple.js
+++ b/benchmarks/simple.js
@@ -3,7 +3,7 @@ import { sleep } from 'k6';
export const options = {
// A number specifying the number of VUs to run concurrently.
- vus: 2000,
+ vus: 1000,
// A string specifying the total duration of the test run.
duration: '30s',
diff --git a/cmd/rr/main.go b/cmd/rr/main.go
index d2e13241..961f4c8e 100644
--- a/cmd/rr/main.go
+++ b/cmd/rr/main.go
@@ -5,7 +5,7 @@ import (
"path/filepath"
"github.com/fatih/color"
- "github.com/roadrunner-server/roadrunner/v2023/internal/cli"
+ "github.com/roadrunner-server/roadrunner/v2024/internal/cli"
"go.uber.org/automaxprocs/maxprocs"
)
diff --git a/container/config_test.go b/container/config_test.go
index 41e128aa..ab020b46 100644
--- a/container/config_test.go
+++ b/container/config_test.go
@@ -6,7 +6,7 @@ import (
"time"
"github.com/roadrunner-server/config/v4"
- "github.com/roadrunner-server/roadrunner/v2023/container"
+ "github.com/roadrunner-server/roadrunner/v2024/container"
"github.com/stretchr/testify/assert"
)
diff --git a/go.mod b/go.mod
index cd89027f..07f4f6fc 100644
--- a/go.mod
+++ b/go.mod
@@ -1,6 +1,6 @@
-module github.com/roadrunner-server/roadrunner/v2023
+module github.com/roadrunner-server/roadrunner/v2024
-go 1.22.1
+go 1.22.2
require (
github.com/buger/goterm v1.0.4
@@ -8,49 +8,49 @@ require (
github.com/fatih/color v1.16.0
github.com/joho/godotenv v1.5.1
github.com/olekukonko/tablewriter v0.0.5
- github.com/roadrunner-server/amqp/v4 v4.9.14
+ github.com/roadrunner-server/amqp/v4 v4.11.0
github.com/roadrunner-server/api/v4 v4.12.0
- github.com/roadrunner-server/app-logger/v4 v4.2.13
- github.com/roadrunner-server/beanstalk/v4 v4.6.7
- github.com/roadrunner-server/boltdb/v4 v4.7.15
- github.com/roadrunner-server/centrifuge/v4 v4.7.1
- github.com/roadrunner-server/config/v4 v4.6.9
+ github.com/roadrunner-server/app-logger/v4 v4.4.0
+ github.com/roadrunner-server/beanstalk/v4 v4.8.0
+ github.com/roadrunner-server/boltdb/v4 v4.9.0
+ github.com/roadrunner-server/centrifuge/v4 v4.9.0
+ github.com/roadrunner-server/config/v4 v4.8.0
github.com/roadrunner-server/endure/v2 v2.4.4
github.com/roadrunner-server/errors v1.4.0
- github.com/roadrunner-server/fileserver/v4 v4.1.17
- github.com/roadrunner-server/goridge/v3 v3.8.1
- github.com/roadrunner-server/grpc/v4 v4.6.7
- github.com/roadrunner-server/gzip/v4 v4.1.17
- github.com/roadrunner-server/headers/v4 v4.2.18
- github.com/roadrunner-server/http/v4 v4.5.3
- github.com/roadrunner-server/informer/v4 v4.3.16
- github.com/roadrunner-server/jobs/v4 v4.7.15
- github.com/roadrunner-server/kafka/v4 v4.4.18
- github.com/roadrunner-server/kv/v4 v4.4.16
- github.com/roadrunner-server/lock/v4 v4.5.14
- github.com/roadrunner-server/logger/v4 v4.2.16
- github.com/roadrunner-server/memcached/v4 v4.3.15
- github.com/roadrunner-server/memory/v4 v4.6.16
- github.com/roadrunner-server/metrics/v4 v4.1.18
- github.com/roadrunner-server/nats/v4 v4.6.9
- github.com/roadrunner-server/otel/v4 v4.3.15
- github.com/roadrunner-server/prometheus/v4 v4.1.17
- github.com/roadrunner-server/proxy_ip_parser/v4 v4.1.17
- github.com/roadrunner-server/redis/v4 v4.2.18
- github.com/roadrunner-server/resetter/v4 v4.1.2
- github.com/roadrunner-server/rpc/v4 v4.2.17
- github.com/roadrunner-server/sdk/v4 v4.6.0
- github.com/roadrunner-server/send/v4 v4.2.17
- github.com/roadrunner-server/server/v4 v4.5.9
- github.com/roadrunner-server/service/v4 v4.5.5
- github.com/roadrunner-server/sqs/v4 v4.6.4
- github.com/roadrunner-server/static/v4 v4.1.17
- github.com/roadrunner-server/status/v4 v4.4.15
- github.com/roadrunner-server/tcp/v4 v4.3.14
+ github.com/roadrunner-server/fileserver/v4 v4.3.0
+ github.com/roadrunner-server/goridge/v3 v3.8.2
+ github.com/roadrunner-server/grpc/v4 v4.8.0
+ github.com/roadrunner-server/gzip/v4 v4.3.0
+ github.com/roadrunner-server/headers/v4 v4.4.0
+ github.com/roadrunner-server/http/v4 v4.7.0
+ github.com/roadrunner-server/informer/v4 v4.5.0
+ github.com/roadrunner-server/jobs/v4 v4.9.0
+ github.com/roadrunner-server/kafka/v4 v4.6.0
+ github.com/roadrunner-server/kv/v4 v4.6.0
+ github.com/roadrunner-server/lock/v4 v4.7.0
+ github.com/roadrunner-server/logger/v4 v4.4.0
+ github.com/roadrunner-server/memcached/v4 v4.5.0
+ github.com/roadrunner-server/memory/v4 v4.8.0
+ github.com/roadrunner-server/metrics/v4 v4.3.0
+ github.com/roadrunner-server/nats/v4 v4.8.0
+ github.com/roadrunner-server/otel/v4 v4.5.0
+ github.com/roadrunner-server/prometheus/v4 v4.3.0
+ github.com/roadrunner-server/proxy_ip_parser/v4 v4.3.0
+ github.com/roadrunner-server/redis/v4 v4.4.0
+ github.com/roadrunner-server/resetter/v4 v4.3.0
+ github.com/roadrunner-server/rpc/v4 v4.4.0
+ github.com/roadrunner-server/sdk/v4 v4.7.1
+ github.com/roadrunner-server/send/v4 v4.4.0
+ github.com/roadrunner-server/server/v4 v4.8.0
+ github.com/roadrunner-server/service/v4 v4.7.0
+ github.com/roadrunner-server/sqs/v4 v4.8.0
+ github.com/roadrunner-server/static/v4 v4.3.0
+ github.com/roadrunner-server/status/v4 v4.6.0
+ github.com/roadrunner-server/tcp/v4 v4.5.0
github.com/spf13/cobra v1.8.0
github.com/spf13/viper v1.18.2
github.com/stretchr/testify v1.9.0
- github.com/temporalio/roadrunner-temporal/v4 v4.6.1
+ github.com/temporalio/roadrunner-temporal/v4 v4.7.0
go.uber.org/automaxprocs v1.5.3
)
@@ -64,10 +64,10 @@ exclude (
require (
github.com/andybalholm/brotli v1.1.0 // indirect
- github.com/aws/aws-sdk-go v1.51.14 // indirect
+ github.com/aws/aws-sdk-go v1.51.19 // indirect
github.com/aws/aws-sdk-go-v2 v1.26.1 // indirect
- github.com/aws/aws-sdk-go-v2/config v1.27.10 // indirect
- github.com/aws/aws-sdk-go-v2/credentials v1.17.10 // indirect
+ github.com/aws/aws-sdk-go-v2/config v1.27.11 // indirect
+ github.com/aws/aws-sdk-go-v2/credentials v1.17.11 // indirect
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect
@@ -75,7 +75,7 @@ require (
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect
github.com/aws/aws-sdk-go-v2/service/sqs v1.31.4 // indirect
- github.com/aws/aws-sdk-go-v2/service/sso v1.20.4 // indirect
+ github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 // indirect
github.com/aws/smithy-go v1.20.2 // indirect
@@ -85,7 +85,7 @@ require (
github.com/cactus/go-statsd-client/v5 v5.1.0 // indirect
github.com/caddyserver/certmagic v0.20.0 // indirect
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
- github.com/cespare/xxhash/v2 v2.2.0 // indirect
+ github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
github.com/emicklei/proto v1.13.2 // indirect
@@ -100,14 +100,14 @@ require (
github.com/gofiber/fiber/v2 v2.52.4 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/mock v1.7.0-rc.1 // indirect
- github.com/google/pprof v0.0.0-20240402174815-29b9bb013b0f // indirect
+ github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
- github.com/klauspost/compress v1.17.7 // indirect
+ github.com/klauspost/compress v1.17.8 // indirect
github.com/klauspost/cpuid/v2 v2.2.7 // indirect
github.com/libdns/libdns v0.2.2 // indirect
github.com/magiconair/properties v1.8.7 // indirect
@@ -129,7 +129,7 @@ require (
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/prometheus/client_golang v1.19.0 // indirect
github.com/prometheus/client_model v0.6.1 // indirect
- github.com/prometheus/common v0.52.2 // indirect
+ github.com/prometheus/common v0.52.3 // indirect
github.com/prometheus/procfs v0.13.0 // indirect
github.com/quic-go/qpack v0.4.0 // indirect
github.com/quic-go/quic-go v0.42.0 // indirect
@@ -165,21 +165,21 @@ require (
github.com/zeebo/blake3 v0.2.3 // indirect
go.etcd.io/bbolt v1.3.9 // indirect
go.opentelemetry.io/contrib/instrumentation/github.com/bradfitz/gomemcache/memcache/otelmemcache v0.43.0 // indirect
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect
- go.opentelemetry.io/contrib/propagators/jaeger v1.24.0 // indirect
- go.opentelemetry.io/otel v1.24.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.24.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.24.0 // indirect
- go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.24.0 // indirect
- go.opentelemetry.io/otel/exporters/zipkin v1.24.0 // indirect
- go.opentelemetry.io/otel/metric v1.24.0 // indirect
- go.opentelemetry.io/otel/sdk v1.24.0 // indirect
- go.opentelemetry.io/otel/trace v1.24.0 // indirect
- go.opentelemetry.io/proto/otlp v1.1.0 // indirect
- go.temporal.io/api v1.30.1 // indirect
- go.temporal.io/sdk v1.26.0 // indirect
+ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.50.0 // indirect
+ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.50.0 // indirect
+ go.opentelemetry.io/contrib/propagators/jaeger v1.25.0 // indirect
+ go.opentelemetry.io/otel v1.25.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.25.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.25.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.25.0 // indirect
+ go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.25.0 // indirect
+ go.opentelemetry.io/otel/exporters/zipkin v1.25.0 // indirect
+ go.opentelemetry.io/otel/metric v1.25.0 // indirect
+ go.opentelemetry.io/otel/sdk v1.25.0 // indirect
+ go.opentelemetry.io/otel/trace v1.25.0 // indirect
+ go.opentelemetry.io/proto/otlp v1.2.0 // indirect
+ go.temporal.io/api v1.32.0 // indirect
+ go.temporal.io/sdk v1.26.1 // indirect
go.temporal.io/sdk/contrib/opentelemetry v0.5.0 // indirect
go.temporal.io/sdk/contrib/tally v0.2.0 // indirect
go.temporal.io/server v1.23.0 // indirect
@@ -187,18 +187,18 @@ require (
go.uber.org/mock v0.4.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
- golang.org/x/crypto v0.21.0 // indirect
- golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 // indirect
+ golang.org/x/crypto v0.22.0 // indirect
+ golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8 // indirect
golang.org/x/mod v0.17.0 // indirect
- golang.org/x/net v0.23.0 // indirect
+ golang.org/x/net v0.24.0 // indirect
golang.org/x/sync v0.7.0 // indirect
golang.org/x/sys v0.19.0 // indirect
golang.org/x/text v0.14.0 // indirect
golang.org/x/time v0.5.0 // indirect
- golang.org/x/tools v0.19.0 // indirect
+ golang.org/x/tools v0.20.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20240401170217-c3f982113cda // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect
- google.golang.org/grpc v1.63.0 // indirect
+ google.golang.org/grpc v1.63.2 // indirect
google.golang.org/protobuf v1.33.0 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
diff --git a/go.sum b/go.sum
index 0191ea69..ceb8c9f2 100644
--- a/go.sum
+++ b/go.sum
@@ -10,14 +10,14 @@ github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk5
github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M=
github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY=
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
-github.com/aws/aws-sdk-go v1.51.14 h1:qedX6zZEO1a+5kra+D4ythOYR3TgaROC0hTPxhTFh8I=
-github.com/aws/aws-sdk-go v1.51.14/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk=
+github.com/aws/aws-sdk-go v1.51.19 h1:jp/Vx/mUpXttthvvo/4/Nn/3+zumirIlAFkp1Irf1kM=
+github.com/aws/aws-sdk-go v1.51.19/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk=
github.com/aws/aws-sdk-go-v2 v1.26.1 h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA=
github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM=
-github.com/aws/aws-sdk-go-v2/config v1.27.10 h1:PS+65jThT0T/snC5WjyfHHyUgG+eBoupSDV+f838cro=
-github.com/aws/aws-sdk-go-v2/config v1.27.10/go.mod h1:BePM7Vo4OBpHreKRUMuDXX+/+JWP38FLkzl5m27/Jjs=
-github.com/aws/aws-sdk-go-v2/credentials v1.17.10 h1:qDZ3EA2lv1KangvQB6y258OssCHD0xvaGiEDkG4X/10=
-github.com/aws/aws-sdk-go-v2/credentials v1.17.10/go.mod h1:6t3sucOaYDwDssHQa0ojH1RpmVmF5/jArkye1b2FKMI=
+github.com/aws/aws-sdk-go-v2/config v1.27.11 h1:f47rANd2LQEYHda2ddSCKYId18/8BhSRM4BULGmfgNA=
+github.com/aws/aws-sdk-go-v2/config v1.27.11/go.mod h1:SMsV78RIOYdve1vf36z8LmnszlRWkwMQtomCAI0/mIE=
+github.com/aws/aws-sdk-go-v2/credentials v1.17.11 h1:YuIB1dJNf1Re822rriUOTxopaHHvIq0l/pX3fwO+Tzs=
+github.com/aws/aws-sdk-go-v2/credentials v1.17.11/go.mod h1:AQtFPsDH9bI2O+71anW6EKL+NcD7LG3dpKGMV4SShgo=
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 h1:FVJ0r5XTHSmIHJV6KuDmdYhEpvlHpiSd38RQWhut5J4=
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1/go.mod h1:zusuAeqezXzAB24LGuzuekqMAEgWkVYukBec3kr3jUg=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 h1:aw39xVGeRWlWx9EzGVnhOR4yOjQDHPQ6o6NmBlscyQg=
@@ -32,8 +32,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 h1:ogRAwT1/g
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7/go.mod h1:YCsIZhXfRPLFFCl5xxY+1T9RKzOKjCut+28JSX2DnAk=
github.com/aws/aws-sdk-go-v2/service/sqs v1.31.4 h1:mE2ysZMEeQ3ulHWs4mmc4fZEhOfeY1o6QXAfDqjbSgw=
github.com/aws/aws-sdk-go-v2/service/sqs v1.31.4/go.mod h1:lCN2yKnj+Sp9F6UzpoPPTir+tSaC9Jwf6LcmTqnXFZw=
-github.com/aws/aws-sdk-go-v2/service/sso v1.20.4 h1:WzFol5Cd+yDxPAdnzTA5LmpHYSWinhmSj4rQChV0ee8=
-github.com/aws/aws-sdk-go-v2/service/sso v1.20.4/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM=
+github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 h1:vN8hEbpRnL7+Hopy9dzmRle1xmDc7o8tmY0klsr175w=
+github.com/aws/aws-sdk-go-v2/service/sso v1.20.5/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM=
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 h1:Jux+gDDyi1Lruk+KHF91tK2KCuY61kzoCpvtvJJBtOE=
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4/go.mod h1:mUYPBhaF2lGiukDEjJX2BLRRKTmoUSitGDUgM4tRxak=
github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 h1:cwIxeBttqPN3qkaAjcEcsh8NYr8n2HZPkcKgPAi1phU=
@@ -68,8 +68,9 @@ github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyY
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
+github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
@@ -163,8 +164,8 @@ github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/pprof v0.0.0-20240402174815-29b9bb013b0f h1:f00RU+zOX+B3rLAmMMkzHUF2h1z4DeYR9tTCvEq2REY=
-github.com/google/pprof v0.0.0-20240402174815-29b9bb013b0f/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw=
+github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd h1:gbpYu9NMq8jhDVbvlGkMFWCjLFlqqEZjEmObmhUy6Vo=
+github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw=
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@@ -195,8 +196,8 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg=
-github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
+github.com/klauspost/compress v1.17.8 h1:YcnTYrq7MikUT7k0Yb5eceMmALQPYBW/Xltxn0NAMnU=
+github.com/klauspost/compress v1.17.8/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
github.com/klauspost/cpuid/v2 v2.0.12/go.mod h1:g2LTdtYhdyuGPqyWyv7qRAmj1WBqxuObKfj5c0PQa7c=
github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM=
github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws=
@@ -281,8 +282,8 @@ github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQy
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
-github.com/prometheus/common v0.52.2 h1:LW8Vk7BccEdONfrJBDffQGRtpSzi5CQaRZGtboOO2ck=
-github.com/prometheus/common v0.52.2/go.mod h1:lrWtQx+iDfn2mbH5GUzlH9TSHyfZpHkSiG1W7y3sF2Q=
+github.com/prometheus/common v0.52.3 h1:5f8uj6ZwHSscOGNdIQg6OiZv/ybiK2CO2q2drVZAQSA=
+github.com/prometheus/common v0.52.3/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
@@ -305,84 +306,84 @@ github.com/redis/go-redis/v9 v9.5.1/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
-github.com/roadrunner-server/amqp/v4 v4.9.14 h1:WgTwC5W/0e60P2K/WDncoR4VUG5hZmnlmexjzhufXoQ=
-github.com/roadrunner-server/amqp/v4 v4.9.14/go.mod h1:3lfgBVU9XCgoLZ047ARHtXSw8C/5jipJyqxO/qgcZ3M=
+github.com/roadrunner-server/amqp/v4 v4.11.0 h1:iNiAAYg/f4uhJ0jO1L1qsMWT/aUa0If6q5AIT/W5dDs=
+github.com/roadrunner-server/amqp/v4 v4.11.0/go.mod h1:aXWMFDehIlaydqzOOwAiJafNUsP6kAVXg7pIyrmO7wk=
github.com/roadrunner-server/api/v4 v4.12.0 h1:N8AC+b7uzrDpTPnFTBVWNIs9ZMV42hwKDCo29X84iS8=
github.com/roadrunner-server/api/v4 v4.12.0/go.mod h1:nLV2f4O7tDh5DaMDff4oX1bNJ9erz7eyq+4TajgKGck=
-github.com/roadrunner-server/app-logger/v4 v4.2.13 h1:03VqTkc5E4LRiX/rC5yZ8MJEFzc/zLSsTaLNr38cvWo=
-github.com/roadrunner-server/app-logger/v4 v4.2.13/go.mod h1:REbcjLF36HXbd2h8jADZ9e+y2ME1IUGGHtXkhLUymEY=
-github.com/roadrunner-server/beanstalk/v4 v4.6.7 h1:Jdd5S3f7ldRmQtj16XEOnkV/5b+JgsOYo4if5QSrtNw=
-github.com/roadrunner-server/beanstalk/v4 v4.6.7/go.mod h1:FBuV99S5ictDIYncZibn7uLN/4cvGmDEbxYCzNf+FLY=
-github.com/roadrunner-server/boltdb/v4 v4.7.15 h1:kzICLKjMaWw0uMwiFmHHsTbksiqph9B3mvXa/OOpBGw=
-github.com/roadrunner-server/boltdb/v4 v4.7.15/go.mod h1:CoQbWjmQPQdtvuHiin8DennxKZuFen2MO3mSsx5jkOg=
-github.com/roadrunner-server/centrifuge/v4 v4.7.1 h1:fZ5XYSwp3Cz+o9o6lxanDisq5LpimgjEt3KufBW8TVQ=
-github.com/roadrunner-server/centrifuge/v4 v4.7.1/go.mod h1:vLxqX1qAXGTgGhbwdwbvgEWfjrPiZXdwpDhU43CdXGA=
-github.com/roadrunner-server/config/v4 v4.6.9 h1:yNs8xHelu3yBVqUuQH25v93Be2/yv7Teie4Tl3kqeUc=
-github.com/roadrunner-server/config/v4 v4.6.9/go.mod h1:Dj76Yq641BAI2sxKDt9XvJoPiURrFzBGmDPclwi4K9k=
+github.com/roadrunner-server/app-logger/v4 v4.4.0 h1:g4Tz0RoDAqp3Q69uiIpXx3rmRY6YdgfanpsUhYKRjsk=
+github.com/roadrunner-server/app-logger/v4 v4.4.0/go.mod h1:Wcyk/w2EICK6mioyCLKBDkbhABXLL0rVjULLgaq3Xrs=
+github.com/roadrunner-server/beanstalk/v4 v4.8.0 h1:yRn7yCSvtuFCHaKDTFR1ta5z5RYHbZk8EaG61aUSbqk=
+github.com/roadrunner-server/beanstalk/v4 v4.8.0/go.mod h1:Ypocrmmb8yDiYXTLdohiN8SuABbhYjoLSwpe2m9Li9s=
+github.com/roadrunner-server/boltdb/v4 v4.9.0 h1:6q7faXJCKI335wy1FcdT2LBZ4gI1jsmGA44Ekv70BzM=
+github.com/roadrunner-server/boltdb/v4 v4.9.0/go.mod h1:vqVKFGScGB6oywgGSUTdOI9btlGzRMIyZ7BpNA00O2c=
+github.com/roadrunner-server/centrifuge/v4 v4.9.0 h1:/WGjdPsy3biEiWXba7yPZKxSuFpEnlisuwFz3nGjY2Q=
+github.com/roadrunner-server/centrifuge/v4 v4.9.0/go.mod h1:OGZLBAD8mXqSF693oswHXfDLunPkyFLJcVsUoe2wNM0=
+github.com/roadrunner-server/config/v4 v4.8.0 h1:J4g5y3HGGlVMcFVX3horJV2JdYVausTMk6NAuKbkxMg=
+github.com/roadrunner-server/config/v4 v4.8.0/go.mod h1:gxajS0Q7SKWv1nBeZjayPk7sJ7C7guGj+ruKcrrlH88=
github.com/roadrunner-server/endure/v2 v2.4.4 h1:Fu7q3+Kx41ebUjfi+BH8f3yEj8+9onFERSg1T0BCHaQ=
github.com/roadrunner-server/endure/v2 v2.4.4/go.mod h1:SifASS4cWUoQPH9U4RJ3EZ8rYYG93i57vZ73pORRrtw=
github.com/roadrunner-server/errors v1.4.0 h1:Odjg3VZrj1q5Y8ILwoN+JgERyv0pkhrWPNOM4h68iQ8=
github.com/roadrunner-server/errors v1.4.0/go.mod h1:78PvraAFj+Sxy5nDmo0S+h6rEMLFIDszWZxA3B0sPAs=
-github.com/roadrunner-server/fileserver/v4 v4.1.17 h1:1gt6PiPj/Rv6lrk+I7sg2zOmhzgzfklgypGuLuePAdU=
-github.com/roadrunner-server/fileserver/v4 v4.1.17/go.mod h1:eVlebsAb84eDDPHrkmJaJ+fBU0ltMlrYXHuwjLf7upc=
-github.com/roadrunner-server/goridge/v3 v3.8.1 h1:mdS5lDKQwPuVJ2jwW7l5cngJNJiie7xEGwpgw7a6CuQ=
-github.com/roadrunner-server/goridge/v3 v3.8.1/go.mod h1:L5UkNzD8aKLz6TzpqmmiHOJ6EnsadsWEYNoqK/4qoK0=
-github.com/roadrunner-server/grpc/v4 v4.6.7 h1:L8+u737I1LUcjPUhUhQThvG9crVCgiukQlhUP9wPAhc=
-github.com/roadrunner-server/grpc/v4 v4.6.7/go.mod h1:wxIMSuHwsJiH5mxHZXRyvBhJV/gcaSENeG7nRz9tYDg=
-github.com/roadrunner-server/gzip/v4 v4.1.17 h1:X5YjcaVTn2GpqyFsIxvGOzY5bgUi6GYXXPopXb+D7KU=
-github.com/roadrunner-server/gzip/v4 v4.1.17/go.mod h1:VXhVVVAM23JqB/PK9/Wwu7TyZsCF4Y7o+8qVVtKCLFM=
-github.com/roadrunner-server/headers/v4 v4.2.18 h1:reOhbTY0FaJggKr0Ub7EjcDshr3JuvrM47moZYqMSHQ=
-github.com/roadrunner-server/headers/v4 v4.2.18/go.mod h1:c7a2pFfcLokzoF4FUJt0wufmsx/UqeH6ekYArGk6b+0=
-github.com/roadrunner-server/http/v4 v4.5.3 h1:0pEilNRSpbj6DWVuPK8mk27q+QG3gqF6s6x2HCRvnjo=
-github.com/roadrunner-server/http/v4 v4.5.3/go.mod h1:tOvt7MmUNTs1IQR4GBwSl5a/vrn3KCG+755wTfeIFz8=
-github.com/roadrunner-server/informer/v4 v4.3.16 h1:Lidww0lfGtIY3HGaLgZiQW8pOWjCFUzfrqbnUbk3k6I=
-github.com/roadrunner-server/informer/v4 v4.3.16/go.mod h1:GTgn8OSySm7Yk5NuQCSlRPnMf0YrqoxGXXIKpM3tLnU=
-github.com/roadrunner-server/jobs/v4 v4.7.15 h1:YTNxsd+KooSSoSS0twRsBQdhw/g68W0HUthuRzxhUJo=
-github.com/roadrunner-server/jobs/v4 v4.7.15/go.mod h1:GFixc/b3jppjRuIAbE3hz1w9T9pcv7bj7FO0SDJi7nE=
-github.com/roadrunner-server/kafka/v4 v4.4.18 h1:7SiQraJPmCGs7OMK9n29joswFgkXfzwmT7nIrQMbGXg=
-github.com/roadrunner-server/kafka/v4 v4.4.18/go.mod h1:VNtiLWzZHoOtI3jDmMUSOeqj33O1DW/H+i0plVsg5jY=
-github.com/roadrunner-server/kv/v4 v4.4.16 h1:66KMNbPuU85KrJCOHz6gBidrZxkdBoR7musPJbuSSQk=
-github.com/roadrunner-server/kv/v4 v4.4.16/go.mod h1:Y6g1bRZOsyPW9fyoy1cgv3AWG+63hb0C6SVnbEJWXm8=
-github.com/roadrunner-server/lock/v4 v4.5.14 h1:0Sep7UiJWb79hEk9rLutWN+/R21zaGKy72rQ4qRhqhU=
-github.com/roadrunner-server/lock/v4 v4.5.14/go.mod h1:/mD3zxNMumbcaYCKVw4krO2uyBormVmB8RWdKyh2mJ0=
-github.com/roadrunner-server/logger/v4 v4.2.16 h1:4mGVR5t9t/jGzJQEM/fiLpzrXV93sfhtVvgn5k1iW0E=
-github.com/roadrunner-server/logger/v4 v4.2.16/go.mod h1:HM0OwRLsC52C1bSDEe+55JNRt2j4pnaQRyLtQRpE6fg=
-github.com/roadrunner-server/memcached/v4 v4.3.15 h1:VqH/a9gE1bkQkubT+ZorTYsBP3Cg3DC2I6tEuxUlMcs=
-github.com/roadrunner-server/memcached/v4 v4.3.15/go.mod h1:HFZzhCq1fAyTsGaKDsOt8GtqsYROlyAeOtVltbHMfMk=
-github.com/roadrunner-server/memory/v4 v4.6.16 h1:mQnXn0HTDbXiJt1dVH7pD7VqU1wNH2yrGi7tSaS9l+I=
-github.com/roadrunner-server/memory/v4 v4.6.16/go.mod h1:EBz82pghK9Cfcgn96sPL2B+NRbeX6MMfD+mk0VG6GTE=
-github.com/roadrunner-server/metrics/v4 v4.1.18 h1:vMyjxt3z++XjsnMdDG5sq/CFZGZRG3CLVClIG5mzkdc=
-github.com/roadrunner-server/metrics/v4 v4.1.18/go.mod h1:YpJ7uH5COuqnAt5XkyCi/CuGrHyl8if7D1kAO8b7oMQ=
-github.com/roadrunner-server/nats/v4 v4.6.9 h1:kS0M0H1L1EOHk1PnDIn75IwfvuFY1STr7UN0/VOA3CU=
-github.com/roadrunner-server/nats/v4 v4.6.9/go.mod h1:OZSMmahZwuuS0zk6jVRBa5+jMOKG/DZj1SMyLOs+B+c=
-github.com/roadrunner-server/otel/v4 v4.3.15 h1:XUcYcykrQNAqAWlD33YAD5bZZsPdSG50L8vmxB56w18=
-github.com/roadrunner-server/otel/v4 v4.3.15/go.mod h1:LSOXPYgSekqpyZuc7K2B3OihYXANRacTK1CiuVLZ79E=
-github.com/roadrunner-server/prometheus/v4 v4.1.17 h1:wzH5AhlPj3RQtqEXjcdcK7AK0Y2BB9EUToMp4nXPyCs=
-github.com/roadrunner-server/prometheus/v4 v4.1.17/go.mod h1:9YmhRxHKogx5A5ole53zbsJqK3VF/sKzR4GU0eXBBtc=
-github.com/roadrunner-server/proxy_ip_parser/v4 v4.1.17 h1:yUkQx+cgFKWYPJipkpc6vebXO32WM71v+2z8RVe7Uu4=
-github.com/roadrunner-server/proxy_ip_parser/v4 v4.1.17/go.mod h1:0bAwfG0TL7DWmkPNW1MaAHaPO7spU8JBTrngre7sQCc=
-github.com/roadrunner-server/redis/v4 v4.2.18 h1:5OEbG6YTZNHl1gaWrFnooYeM3aOXgqGBHG2gmVQdRJs=
-github.com/roadrunner-server/redis/v4 v4.2.18/go.mod h1:H1QEls4GFueuxwXnijTiOxYFJCRR0JQNncUoBXRG77U=
-github.com/roadrunner-server/resetter/v4 v4.1.2 h1:WVQc9O8kOXVRYRcIB6o+g5hIaklW1pvVRQ0d7bhP0fE=
-github.com/roadrunner-server/resetter/v4 v4.1.2/go.mod h1:XyA34sVjhoJGvq1mirVO+e34qvggkOv3LTCOpb3XwfI=
-github.com/roadrunner-server/rpc/v4 v4.2.17 h1:zwstPmJHHJNBABmpRNTRyDiSHe2SSjoTocNjkMbOVj4=
-github.com/roadrunner-server/rpc/v4 v4.2.17/go.mod h1:HNWK2Htqc6ACpT/v94joc4Aq2ztIqTDcezRh51ZJY9w=
-github.com/roadrunner-server/sdk/v4 v4.6.0 h1:dXMN7V8+VKjQAZamhKBizPGSqrpfAfVG6r4OCF66hNY=
-github.com/roadrunner-server/sdk/v4 v4.6.0/go.mod h1:YzRn2S947MqcnBcOuwu04CpAhsQGf6JBf+xY+njqu5o=
-github.com/roadrunner-server/send/v4 v4.2.17 h1:NR3Pd/ihDU1M1/K0oW8oDoFp3+ciK5gq8gyMo+L3ozg=
-github.com/roadrunner-server/send/v4 v4.2.17/go.mod h1:iX299tm/zFD2rbPJM19U84aKUV2xUbfNGdlU2bJ5blk=
-github.com/roadrunner-server/server/v4 v4.5.9 h1:m7JCbrjU97EeQjBTPhR3x5j3dGmkv52eoaJo0DuKUV8=
-github.com/roadrunner-server/server/v4 v4.5.9/go.mod h1:YmisW+/CQ59+ucX56KJ9E6e2rM27Z5gkv3apIWIVurA=
-github.com/roadrunner-server/service/v4 v4.5.5 h1:B6Xf7g/KD2uBLltGVZVDRjTw8b25VYc+puQ77V8IQ7M=
-github.com/roadrunner-server/service/v4 v4.5.5/go.mod h1:BmUiBUjv4lDupcK7Dp48GNlMdQZzmXy2n8XmeVBA5eg=
-github.com/roadrunner-server/sqs/v4 v4.6.4 h1:rXtS/XSAuvmejS6RInRpOVjC78rBtsS5Y+9x/290N9Y=
-github.com/roadrunner-server/sqs/v4 v4.6.4/go.mod h1:DiyObF6MKzmGeunxTrx6kwfkgNrMCj9atsYmoZrpy4o=
-github.com/roadrunner-server/static/v4 v4.1.17 h1:UB3vADLS1jV/DThKhMTi99a2M1AA63Dv6d7mOjspQt8=
-github.com/roadrunner-server/static/v4 v4.1.17/go.mod h1:zJFMmFomYB1+AuQvsIg/kiB84UBQYVmCzOrKHTab3XU=
-github.com/roadrunner-server/status/v4 v4.4.15 h1:AAjCR/ofxxxIE7JdXRXV0jliaQM9ntSMdpgrqJH8MRk=
-github.com/roadrunner-server/status/v4 v4.4.15/go.mod h1:hWKyeEfbohz8XqLlrD4+GXgna4lBPUzto+SVYP5XKOY=
-github.com/roadrunner-server/tcp/v4 v4.3.14 h1:vh5nmtbS+PHinD4qEAwhQCGLM8hkG7634baP5p/Stwg=
-github.com/roadrunner-server/tcp/v4 v4.3.14/go.mod h1:Mj1oV+qOB95Gb5zTbMJrV6iPrW4el7rRBmT0NRzOfmI=
+github.com/roadrunner-server/fileserver/v4 v4.3.0 h1:PSiRizJPJF7kxg7WCud0LQGo1wLD2Bckoi0VOaHa42o=
+github.com/roadrunner-server/fileserver/v4 v4.3.0/go.mod h1:Tl0uV6x+YOAeb577WxiMgIrQKaDwpQcSQM3j4r9es/w=
+github.com/roadrunner-server/goridge/v3 v3.8.2 h1:4TpIJAMylMIVTva/L/STB4ZvYNVoQ77+Syr6abxj95c=
+github.com/roadrunner-server/goridge/v3 v3.8.2/go.mod h1:7IIDW50j1saxnOxktFeUPpkSIfyvM/dYopTrbGWXboA=
+github.com/roadrunner-server/grpc/v4 v4.8.0 h1:s0uNLYlTBOCW3VXz0Ox5vZ/Kze4BYuQqaN2T+Oy+Vlw=
+github.com/roadrunner-server/grpc/v4 v4.8.0/go.mod h1:L1BPQr0eU+WMGPtcQab2bpF25O2RobRm/uj80I1gvcI=
+github.com/roadrunner-server/gzip/v4 v4.3.0 h1:bo3oq5JNp/NxZSBaX19Y6SFNx8M6oul3Jam/bSvOfU8=
+github.com/roadrunner-server/gzip/v4 v4.3.0/go.mod h1:0E5BNBKNh06/OpISGCD4qkplkDo8JCqdP2CelYG18NI=
+github.com/roadrunner-server/headers/v4 v4.4.0 h1:Cb3P8BvKcMydNBSOeaEa0lxYEeYsEYlNP+JXjVn6JY4=
+github.com/roadrunner-server/headers/v4 v4.4.0/go.mod h1:q+W5tnsp+ynK3AtRn9D7UR1U/3aKlKxwS7bxjBis1qc=
+github.com/roadrunner-server/http/v4 v4.7.0 h1:tO1V71SU8Kw+QXqzMnjXxJLKTdZIhQBNp6f0goRkqL0=
+github.com/roadrunner-server/http/v4 v4.7.0/go.mod h1:qevR+PTnmGFijuOVbFptTh4CdwpEmnHBA+G82jauMbQ=
+github.com/roadrunner-server/informer/v4 v4.5.0 h1:ZYU0rfAq7uxJUQ/O7hX2M6YSGSOsXnMxY6ZZjZPG2FA=
+github.com/roadrunner-server/informer/v4 v4.5.0/go.mod h1:4g53dFq8MJzikDwMgBg8tWgpdds5wfaWbKIJR1vbBfc=
+github.com/roadrunner-server/jobs/v4 v4.9.0 h1:rATLkJIax4cEqoXTSsydz0wxFh1rUBk32SZj+P70ZVc=
+github.com/roadrunner-server/jobs/v4 v4.9.0/go.mod h1:m6D8UTn+5jkVQ6DQ2BMOPZBeMn/VexcR+3iaqgYG9wE=
+github.com/roadrunner-server/kafka/v4 v4.6.0 h1:+39UxTmf0K/RqIdbAb7fUk4r4pLA+e4DGcpIklaYgOE=
+github.com/roadrunner-server/kafka/v4 v4.6.0/go.mod h1:pdrdePf/5OywJhcA9ZswFFCLhreh7JD79cmhWR780jc=
+github.com/roadrunner-server/kv/v4 v4.6.0 h1:Ms1ys8qOno9bF9RJLqZPZSt3pjloQha2IgDpSyInB24=
+github.com/roadrunner-server/kv/v4 v4.6.0/go.mod h1:1aSA8THyxneFTT2zUYcREFIRNLMEGkf08F0n1tL7L1I=
+github.com/roadrunner-server/lock/v4 v4.7.0 h1:Kwpk5YX6y8SZCUvSK3I0ui7sTGBP0QPi32tYMN+N58k=
+github.com/roadrunner-server/lock/v4 v4.7.0/go.mod h1:YXt58akNSO8RkUYQnuiW7YXjKckHQyK7alj1PVL/5U4=
+github.com/roadrunner-server/logger/v4 v4.4.0 h1:7oJGb2IQFWqAxAx0fl4bNPuiLMuzzvg5yne1MpbejBA=
+github.com/roadrunner-server/logger/v4 v4.4.0/go.mod h1:nZaJuXuteCubZXBouXjQfvSqZQtAqZokNhbgANhZ+3A=
+github.com/roadrunner-server/memcached/v4 v4.5.0 h1:/0IxVplrKZdROtR2ZcGW1ujhGJ3Zrqg7ED/8LZGAsak=
+github.com/roadrunner-server/memcached/v4 v4.5.0/go.mod h1:28Zt/TmW7p5n2p+TdIMXpDnudGRBLDUdpenXlB24DP4=
+github.com/roadrunner-server/memory/v4 v4.8.0 h1:NxZLKEc8/vKR9b55vAsXWV5B4HjRJzdS9zClqsSOmpI=
+github.com/roadrunner-server/memory/v4 v4.8.0/go.mod h1:dszNm9O0Nl3MuxtFmAisH1C+TAwbntT0NrUofly2eqk=
+github.com/roadrunner-server/metrics/v4 v4.3.0 h1:eKT+/B+E/uM82+Dh+GBplHP2ammDzxFKe7gRJj2mCQM=
+github.com/roadrunner-server/metrics/v4 v4.3.0/go.mod h1:j4eHpWmGEkxpB6CSyJNZ+4hFnSLv0YtPlykDvzwUpq8=
+github.com/roadrunner-server/nats/v4 v4.8.0 h1:0SHTsp6MSDorGPf9W6AGfBbqXnyVzqommAvfO1xSkc0=
+github.com/roadrunner-server/nats/v4 v4.8.0/go.mod h1:AmKAZzh1lQJe7ln0A3XZUk+L1DS+ebXmy0R/WlhgWPw=
+github.com/roadrunner-server/otel/v4 v4.5.0 h1:OYemXQPodzEL3mxduTW7BD4GYxF1+rGSI89WTrj3guI=
+github.com/roadrunner-server/otel/v4 v4.5.0/go.mod h1:i8sR9GUQRe2myZ1KoHD4zcM1/MVXSF/1R0XHs+ndIMc=
+github.com/roadrunner-server/prometheus/v4 v4.3.0 h1:NG4gInJxgrMY3PSnsNnjFb+jbmL+K22O4uViko112AM=
+github.com/roadrunner-server/prometheus/v4 v4.3.0/go.mod h1:5xYHdCK3DYopl3PMr24dW3BRLEmILoK3RMrKllISGf8=
+github.com/roadrunner-server/proxy_ip_parser/v4 v4.3.0 h1:6LpBa2/j5Uq+HmrZwPecCnYOdvhYR8zx128NL5v0Eto=
+github.com/roadrunner-server/proxy_ip_parser/v4 v4.3.0/go.mod h1:ncRtQdYrX3N27sKc1h8i7scP6ofOAS3ecC/GMBwSOr8=
+github.com/roadrunner-server/redis/v4 v4.4.0 h1:rIhlc9hxcAybHn61AsPTNdJDCP3uipmyKzOL0wfzUEw=
+github.com/roadrunner-server/redis/v4 v4.4.0/go.mod h1:eB45pzhoLgPECnkrQdd8Wfq3C2maK8ibTARp9S4a6lI=
+github.com/roadrunner-server/resetter/v4 v4.3.0 h1:XVzsAno5Zyf9O1MYH5zoNQ6wPXrrTioA6/fKHsjnbjg=
+github.com/roadrunner-server/resetter/v4 v4.3.0/go.mod h1:6u2XolQjt9AL2qdr6tbr/IJbpQIvIgNTtxT+1Xdj7t0=
+github.com/roadrunner-server/rpc/v4 v4.4.0 h1:O6LUBjShzGN6X4O0kj5Xi4RGFv/feXQZtzUS+qQGU6M=
+github.com/roadrunner-server/rpc/v4 v4.4.0/go.mod h1:8jkjUpcMrQ7uc8d8Gzsssxt7kmbkxyIVSHz4aCtUo4Y=
+github.com/roadrunner-server/sdk/v4 v4.7.1 h1:/QacFUa1Nsd1Z0MqNXslqGL1AxUfWLN17Zid/wKmC04=
+github.com/roadrunner-server/sdk/v4 v4.7.1/go.mod h1:Hmdwhtotu6CcE0iDP1WKLXa/uimsNbHoA3oxEYHefV0=
+github.com/roadrunner-server/send/v4 v4.4.0 h1:Qj3sWu+kv72qMHU72clhq0JN+tVu3cN8eM0wpqahyl4=
+github.com/roadrunner-server/send/v4 v4.4.0/go.mod h1:hA5ypf3bXMdVmm8Mreey64vqdyCbY5ZbsRCmwRFQhds=
+github.com/roadrunner-server/server/v4 v4.8.0 h1:whGVxx0Vv3fVdGSAJvrhQ1tO8zCszBR7ZxkiiSklT6w=
+github.com/roadrunner-server/server/v4 v4.8.0/go.mod h1:MHjb/g/5BXotCxMXsJq9CUcJucFax1iJMGvTIlc24BA=
+github.com/roadrunner-server/service/v4 v4.7.0 h1:u4qMUzI3bUopYYuiHggsyYFjQ+R1HDsgpxwkLdbl1n8=
+github.com/roadrunner-server/service/v4 v4.7.0/go.mod h1:4fG/bD+OiUv+YTnOphpdYz6OWUJg/8PI8nJvCH76HT0=
+github.com/roadrunner-server/sqs/v4 v4.8.0 h1:jcqJ083vPXecCGSFpJTcHcn/tOwUZ2L/yJR9dyo9HYw=
+github.com/roadrunner-server/sqs/v4 v4.8.0/go.mod h1:eQuuS51ECXOhQV9k6NF7aZDKdZtGsyjp2qd37Z0Kilw=
+github.com/roadrunner-server/static/v4 v4.3.0 h1:UosIcNqrJafgd9fFnyJtzMld5586Mt9mB7FRIE1Rp3Y=
+github.com/roadrunner-server/static/v4 v4.3.0/go.mod h1:DlxZXF7E+2iHtRnDxabJLYNXMrAbH/p1Q73rU0gZuzY=
+github.com/roadrunner-server/status/v4 v4.6.0 h1:AGpqJ5PFX+WvTCaDizu9Byv9n7WFCF0fPYcLsqzrxS4=
+github.com/roadrunner-server/status/v4 v4.6.0/go.mod h1:5eXO7cbNyzG7HUmqC91+1/EYZqynKgRmaV/wFUqAVjw=
+github.com/roadrunner-server/tcp/v4 v4.5.0 h1:XXqCI1Yx84NDC0Kl5NFbTkw34LKIz6NKzvbWedc8jlo=
+github.com/roadrunner-server/tcp/v4 v4.5.0/go.mod h1:YXTEaeU5D0NADtKSW4OeoccapWdKTAaTFRp0Yu9LQxc=
github.com/roadrunner-server/tcplisten v1.4.0 h1:yWo09zktv/CSV6VywLfw4pwNcUchgTiIrW4uIICtO5M=
github.com/roadrunner-server/tcplisten v1.4.0/go.mod h1:A6+VSnW2ETGnN/e/CMdP63ZXqQDaC0UDMU6QmyuB0yM=
github.com/robfig/cron v1.2.0 h1:ZjScXvvxeQ63Dbyxy76Fj3AT3Ut0aKsyd2/tl3DTMuQ=
@@ -435,8 +436,8 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
-github.com/temporalio/roadrunner-temporal/v4 v4.6.1 h1:EGh4u3nJu96MlkboRklof0UpD985dozaEjd+KyOyVuo=
-github.com/temporalio/roadrunner-temporal/v4 v4.6.1/go.mod h1:fvwSRSMFoSYI2AbdDDVnoS/RyYCW45bb+ICRxjfvR+0=
+github.com/temporalio/roadrunner-temporal/v4 v4.7.0 h1:ItTSMuMBkPyyUz44Iqhmm5s3dYhKLjBcWS9ThAJ2FX4=
+github.com/temporalio/roadrunner-temporal/v4 v4.7.0/go.mod h1:T5tLKYIO77+0AIRHYCsKA6gA6bWbcQQuX2SKsAe5VTs=
github.com/tklauser/go-sysconf v0.3.13 h1:GBUpcahXSpR2xN01jhkNAbTLRk2Yzgggk8IM08lq3r4=
github.com/tklauser/go-sysconf v0.3.13/go.mod h1:zwleP4Q4OehZHGn4CYZDipCgg9usW5IJePewFCGVEa0=
github.com/tklauser/numcpus v0.7.0 h1:yjuerZP127QG9m5Zh/mSO4wqurYil27tHrqwRoRjpr4=
@@ -478,41 +479,41 @@ go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI=
go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE=
go.opentelemetry.io/contrib/instrumentation/github.com/bradfitz/gomemcache/memcache/otelmemcache v0.43.0 h1:UBMZi0bClix43Z5bGClUstfycTv5/GwGEpeXrkVCILw=
go.opentelemetry.io/contrib/instrumentation/github.com/bradfitz/gomemcache/memcache/otelmemcache v0.43.0/go.mod h1:Y4/69ywKyaWZ5jN/NypeJyGLuoFjSpdyKuWVLClgDgM=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw=
-go.opentelemetry.io/contrib/propagators/jaeger v1.24.0 h1:CKtIfwSgDvJmaWsZROcHzONZgmQdMYn9mVYWypOWT5o=
-go.opentelemetry.io/contrib/propagators/jaeger v1.24.0/go.mod h1:Q5JA/Cfdy/ta+5VeEhrMJRWGyS6UNRwFbl+yS3W1h5I=
-go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo=
-go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0 h1:t6wl9SPayj+c7lEIFgm4ooDBZVb01IhLB4InpomhRw8=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0/go.mod h1:iSDOcsnSA5INXzZtwaBPrKp/lWu/V14Dd+llD0oI2EA=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.24.0 h1:Mw5xcxMwlqoJd97vwPxA8isEaIoxsta9/Q51+TTJLGE=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.24.0/go.mod h1:CQNu9bj7o7mC6U7+CA/schKEYakYXWr79ucDHTMGhCM=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.24.0 h1:Xw8U6u2f8DK2XAkGRFV7BBLENgnTGX9i4rQRxJf+/vs=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.24.0/go.mod h1:6KW1Fm6R/s6Z3PGXwSJN2K4eT6wQB3vXX6CVnYX9NmM=
-go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.24.0 h1:s0PHtIkN+3xrbDOpt2M8OTG92cWqUESvzh2MxiR5xY8=
-go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.24.0/go.mod h1:hZlFbDbRt++MMPCCfSJfmhkGIWnX1h3XjkfxZUjLrIA=
-go.opentelemetry.io/otel/exporters/zipkin v1.24.0 h1:3evrL5poBuh1KF51D9gO/S+N/1msnm4DaBqs/rpXUqY=
-go.opentelemetry.io/otel/exporters/zipkin v1.24.0/go.mod h1:0EHgD8R0+8yRhUYJOGR8Hfg2dpiJQxDOszd5smVO9wM=
-go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI=
-go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco=
-go.opentelemetry.io/otel/sdk v1.24.0 h1:YMPPDNymmQN3ZgczicBY3B6sf9n62Dlj9pWD3ucgoDw=
-go.opentelemetry.io/otel/sdk v1.24.0/go.mod h1:KVrIYw6tEubO9E96HQpcmpTKDVn9gdv35HoYiQWGDFg=
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.50.0 h1:zvpPXY7RfYAGSdYQLjp6zxdJNSYD/+FFoCTQN9IPxBs=
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.50.0/go.mod h1:BMn8NB1vsxTljvuorms2hyOs8IBuuBEq0pl7ltOfy30=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.50.0 h1:cEPbyTSEHlQR89XVlyo78gqluF8Y3oMeBkXGWzQsfXY=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.50.0/go.mod h1:DKdbWcT4GH1D0Y3Sqt/PFXt2naRKDWtU+eE6oLdFNA8=
+go.opentelemetry.io/contrib/propagators/jaeger v1.25.0 h1:GPnu8mDgqHlISYc0Ub0EbYlPWCOJE0biicGrE7vcE/M=
+go.opentelemetry.io/contrib/propagators/jaeger v1.25.0/go.mod h1:WWa6gdfrRy23dFALEkiT+ynOI5Ke2g+fUa5Q2v0VGyg=
+go.opentelemetry.io/otel v1.25.0 h1:gldB5FfhRl7OJQbUHt/8s0a7cE8fbsPAtdpRaApKy4k=
+go.opentelemetry.io/otel v1.25.0/go.mod h1:Wa2ds5NOXEMkCmUou1WA7ZBfLTHWIsp034OVD7AO+Vg=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.25.0 h1:dT33yIHtmsqpixFsSQPwNeY5drM9wTcoL8h0FWF4oGM=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.25.0/go.mod h1:h95q0LBGh7hlAC08X2DhSeyIG02YQ0UyioTCVAqRPmc=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.25.0 h1:vOL89uRfOCCNIjkisd0r7SEdJF3ZJFyCNY34fdZs8eU=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.25.0/go.mod h1:8GlBGcDk8KKi7n+2S4BT/CPZQYH3erLu0/k64r1MYgo=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.25.0 h1:Mbi5PKN7u322woPa85d7ebZ+SOvEoPvoiBu+ryHWgfA=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.25.0/go.mod h1:e7ciERRhZaOZXVjx5MiL8TK5+Xv7G5Gv5PA2ZDEJdL8=
+go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.25.0 h1:0vZZdECYzhTt9MKQZ5qQ0V+J3MFu4MQaQ3COfugF+FQ=
+go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.25.0/go.mod h1:e7iXx3HjaSSBXfy9ykVUlupS2Vp7LBIBuT21ousM2Hk=
+go.opentelemetry.io/otel/exporters/zipkin v1.25.0 h1:iLzdsOsstvim/54ymA2BhEN4+1NbsvwGvOhSkQy2TaY=
+go.opentelemetry.io/otel/exporters/zipkin v1.25.0/go.mod h1:3QXxNo6ace1QZX6pSHEzGKKESVdjQxXR03FcIH7dNGs=
+go.opentelemetry.io/otel/metric v1.25.0 h1:LUKbS7ArpFL/I2jJHdJcqMGxkRdxpPHE0VU/D4NuEwA=
+go.opentelemetry.io/otel/metric v1.25.0/go.mod h1:rkDLUSd2lC5lq2dFNrX9LGAbINP5B7WBkC78RXCpH5s=
+go.opentelemetry.io/otel/sdk v1.25.0 h1:PDryEJPC8YJZQSyLY5eqLeafHtG+X7FWnf3aXMtxbqo=
+go.opentelemetry.io/otel/sdk v1.25.0/go.mod h1:oFgzCM2zdsxKzz6zwpTZYLLQsFwc+K0daArPdIhuxkw=
go.opentelemetry.io/otel/sdk/metric v1.21.0 h1:smhI5oD714d6jHE6Tie36fPx4WDFIg+Y6RfAY4ICcR0=
go.opentelemetry.io/otel/sdk/metric v1.21.0/go.mod h1:FJ8RAsoPGv/wYMgBdUJXOm+6pzFY3YdljnXtv1SBE8Q=
-go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI=
-go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU=
+go.opentelemetry.io/otel/trace v1.25.0 h1:tqukZGLwQYRIFtSQM2u2+yfMVTgGVeqRLPUYx1Dq6RM=
+go.opentelemetry.io/otel/trace v1.25.0/go.mod h1:hCCs70XM/ljO+BeQkyFnbK28SBIJ/Emuha+ccrCRT7I=
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
-go.opentelemetry.io/proto/otlp v1.1.0 h1:2Di21piLrCqJ3U3eXGCTPHE9R8Nh+0uglSnOyxikMeI=
-go.opentelemetry.io/proto/otlp v1.1.0/go.mod h1:GpBHCBWiqvVLDqmHZsoMM3C5ySeKTC7ej/RNTae6MdY=
+go.opentelemetry.io/proto/otlp v1.2.0 h1:pVeZGk7nXDC9O2hncA6nHldxEjm6LByfA2aN8IOkz94=
+go.opentelemetry.io/proto/otlp v1.2.0/go.mod h1:gGpR8txAl5M03pDhMC79G6SdqNV26naRm/KDsgaHD8A=
go.temporal.io/api v1.5.0/go.mod h1:BqKxEJJYdxb5dqf0ODfzfMxh8UEQ5L3zKS51FiIYYkA=
-go.temporal.io/api v1.30.1 h1:73UCTi+8l+Qy3GdDypW2FB5rj995A3Pi0mXkSu/qedw=
-go.temporal.io/api v1.30.1/go.mod h1:xI9UdP3s07881dgWzG8idIBAnZq3/aop+O682EIDoT0=
+go.temporal.io/api v1.32.0 h1:Jv0FieWDq0HJVqoHRE/kRHM+tIaRtR16RbXZZl+8Qb4=
+go.temporal.io/api v1.32.0/go.mod h1:MClRjMCgXZTKmxyItEJPRR5NuJRBhSEpuF9wuh97N6U=
go.temporal.io/sdk v1.12.0/go.mod h1:lSp3lH1lI0TyOsus0arnO3FYvjVXBZGi/G7DjnAnm6o=
-go.temporal.io/sdk v1.26.0 h1:QAi7irgKvJI+5cKmvy+1lkdCDJJDDNpIQAoXdr3dcyM=
-go.temporal.io/sdk v1.26.0/go.mod h1:rcAf1YWlbWgMsjJEuz7XiQd6UYxTQDOk2AqRRIDwq/U=
+go.temporal.io/sdk v1.26.1 h1:ggmFBythnuuW3yQRp0VzOTrmbOf+Ddbe00TZl+CQ+6U=
+go.temporal.io/sdk v1.26.1/go.mod h1:ph3K/74cry+JuSV9nJH+Q+Zeir2ddzoX2LjWL/e5yCo=
go.temporal.io/sdk/contrib/opentelemetry v0.5.0 h1:SOcS5VD7lWU+zwtY9PITn5nXLlSywgVzl5A7kWwQ6kI=
go.temporal.io/sdk/contrib/opentelemetry v0.5.0/go.mod h1:zJF/95YTBlTnsnMHLKiZzMFN76LnuTTGC7juBS7NeBY=
go.temporal.io/sdk/contrib/tally v0.2.0 h1:XnTJIQcjOv+WuCJ1u8Ve2nq+s2H4i/fys34MnWDRrOo=
@@ -544,11 +545,11 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
-golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
+golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30=
+golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 h1:aAcj0Da7eBAtrTp03QXWvm88pSyOt+UgdZw2BFZ+lEw=
-golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8/go.mod h1:CQ1k9gNrJ50XIzaKCRR2hssIjF07kZFEiieALBM/ARQ=
+golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8 h1:ESSUROHIBHg7USnszlcdmjBEwdMj9VUvU+OPk4yl2mc=
+golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8/go.mod h1:/lliqkxwWAhPjf5oSOIJup2XcqJaw8RGS6k3TGEc7GI=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
@@ -577,8 +578,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
golang.org/x/net v0.0.0-20210913180222-943fd674d43e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs=
-golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
+golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w=
+golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8=
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-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -646,8 +647,8 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
-golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw=
-golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc=
+golang.org/x/tools v0.20.0 h1:hz/CVckiOxybQvFw6h7b/q80NTr9IUQb4s1IIzW7KNY=
+golang.org/x/tools v0.20.0/go.mod h1:WvitBU7JJf6A4jOdg4S1tviW9bhUxkgeCui/0JHctQg=
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=
@@ -674,8 +675,8 @@ google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3Iji
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
-google.golang.org/grpc v1.63.0 h1:WjKe+dnvABXyPJMD7KDNLxtoGk5tgk+YFWN6cBWjZE8=
-google.golang.org/grpc v1.63.0/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA=
+google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM=
+google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
diff --git a/internal/cli/jobs/command.go b/internal/cli/jobs/command.go
index b2465875..80aebb60 100644
--- a/internal/cli/jobs/command.go
+++ b/internal/cli/jobs/command.go
@@ -3,7 +3,7 @@ package jobs
import (
"strings"
- internalRpc "github.com/roadrunner-server/roadrunner/v2023/internal/rpc"
+ internalRpc "github.com/roadrunner-server/roadrunner/v2024/internal/rpc"
"github.com/roadrunner-server/errors"
"github.com/spf13/cobra"
diff --git a/internal/cli/jobs/command_test.go b/internal/cli/jobs/command_test.go
index ec4912d1..92ba7cb7 100644
--- a/internal/cli/jobs/command_test.go
+++ b/internal/cli/jobs/command_test.go
@@ -3,7 +3,7 @@ package jobs_test
import (
"testing"
- "github.com/roadrunner-server/roadrunner/v2023/internal/cli/jobs"
+ "github.com/roadrunner-server/roadrunner/v2024/internal/cli/jobs"
"github.com/stretchr/testify/assert"
)
diff --git a/internal/cli/reset/command.go b/internal/cli/reset/command.go
index 0d6fecf3..0c9176f6 100644
--- a/internal/cli/reset/command.go
+++ b/internal/cli/reset/command.go
@@ -4,8 +4,8 @@ import (
"log"
"sync"
- internalRpc "github.com/roadrunner-server/roadrunner/v2023/internal/rpc"
- "github.com/roadrunner-server/roadrunner/v2023/internal/sdnotify"
+ internalRpc "github.com/roadrunner-server/roadrunner/v2024/internal/rpc"
+ "github.com/roadrunner-server/roadrunner/v2024/internal/sdnotify"
"github.com/roadrunner-server/errors"
"github.com/spf13/cobra"
diff --git a/internal/cli/reset/command_test.go b/internal/cli/reset/command_test.go
index 30e77556..7dfa52fc 100644
--- a/internal/cli/reset/command_test.go
+++ b/internal/cli/reset/command_test.go
@@ -3,7 +3,7 @@ package reset_test
import (
"testing"
- "github.com/roadrunner-server/roadrunner/v2023/internal/cli/reset"
+ "github.com/roadrunner-server/roadrunner/v2024/internal/cli/reset"
"github.com/stretchr/testify/assert"
)
diff --git a/internal/cli/root.go b/internal/cli/root.go
index 2b36d228..8be406ff 100644
--- a/internal/cli/root.go
+++ b/internal/cli/root.go
@@ -14,13 +14,13 @@ import (
"github.com/joho/godotenv"
"github.com/roadrunner-server/errors"
- "github.com/roadrunner-server/roadrunner/v2023/internal/cli/jobs"
- "github.com/roadrunner-server/roadrunner/v2023/internal/cli/reset"
- "github.com/roadrunner-server/roadrunner/v2023/internal/cli/serve"
- "github.com/roadrunner-server/roadrunner/v2023/internal/cli/stop"
- "github.com/roadrunner-server/roadrunner/v2023/internal/cli/workers"
- dbg "github.com/roadrunner-server/roadrunner/v2023/internal/debug"
- "github.com/roadrunner-server/roadrunner/v2023/internal/meta"
+ "github.com/roadrunner-server/roadrunner/v2024/internal/cli/jobs"
+ "github.com/roadrunner-server/roadrunner/v2024/internal/cli/reset"
+ "github.com/roadrunner-server/roadrunner/v2024/internal/cli/serve"
+ "github.com/roadrunner-server/roadrunner/v2024/internal/cli/stop"
+ "github.com/roadrunner-server/roadrunner/v2024/internal/cli/workers"
+ dbg "github.com/roadrunner-server/roadrunner/v2024/internal/debug"
+ "github.com/roadrunner-server/roadrunner/v2024/internal/meta"
"github.com/spf13/cobra"
)
diff --git a/internal/cli/root_test.go b/internal/cli/root_test.go
index 67ed9fdf..3d8e2411 100644
--- a/internal/cli/root_test.go
+++ b/internal/cli/root_test.go
@@ -5,7 +5,7 @@ import (
"path"
"testing"
- "github.com/roadrunner-server/roadrunner/v2023/internal/cli"
+ "github.com/roadrunner-server/roadrunner/v2024/internal/cli"
"github.com/stretchr/testify/require"
"github.com/spf13/cobra"
diff --git a/internal/cli/serve/command.go b/internal/cli/serve/command.go
index 95aeb067..37f26aef 100644
--- a/internal/cli/serve/command.go
+++ b/internal/cli/serve/command.go
@@ -7,9 +7,9 @@ import (
"syscall"
"github.com/roadrunner-server/endure/v2"
- "github.com/roadrunner-server/roadrunner/v2023/container"
- "github.com/roadrunner-server/roadrunner/v2023/internal/meta"
- "github.com/roadrunner-server/roadrunner/v2023/internal/sdnotify"
+ "github.com/roadrunner-server/roadrunner/v2024/container"
+ "github.com/roadrunner-server/roadrunner/v2024/internal/meta"
+ "github.com/roadrunner-server/roadrunner/v2024/internal/sdnotify"
configImpl "github.com/roadrunner-server/config/v4"
"github.com/roadrunner-server/errors"
diff --git a/internal/cli/serve/command_test.go b/internal/cli/serve/command_test.go
index 80da3949..aa382bc7 100644
--- a/internal/cli/serve/command_test.go
+++ b/internal/cli/serve/command_test.go
@@ -3,7 +3,7 @@ package serve_test
import (
"testing"
- "github.com/roadrunner-server/roadrunner/v2023/internal/cli/serve"
+ "github.com/roadrunner-server/roadrunner/v2024/internal/cli/serve"
"github.com/stretchr/testify/assert"
)
diff --git a/internal/cli/stop/command.go b/internal/cli/stop/command.go
index 79b6f16b..28f7a4d6 100644
--- a/internal/cli/stop/command.go
+++ b/internal/cli/stop/command.go
@@ -8,7 +8,7 @@ import (
"time"
"github.com/roadrunner-server/errors"
- "github.com/roadrunner-server/roadrunner/v2023/internal/sdnotify"
+ "github.com/roadrunner-server/roadrunner/v2024/internal/sdnotify"
"github.com/spf13/cobra"
)
diff --git a/internal/cli/stop/command_test.go b/internal/cli/stop/command_test.go
index a62ca987..0e3ae0b6 100644
--- a/internal/cli/stop/command_test.go
+++ b/internal/cli/stop/command_test.go
@@ -3,7 +3,7 @@ package stop_test
import (
"testing"
- "github.com/roadrunner-server/roadrunner/v2023/internal/cli/stop"
+ "github.com/roadrunner-server/roadrunner/v2024/internal/cli/stop"
"github.com/stretchr/testify/assert"
)
diff --git a/internal/cli/workers/command.go b/internal/cli/workers/command.go
index f23d9263..a95f9b64 100644
--- a/internal/cli/workers/command.go
+++ b/internal/cli/workers/command.go
@@ -9,7 +9,7 @@ import (
"time"
"github.com/roadrunner-server/api/v4/plugins/v1/jobs"
- internalRpc "github.com/roadrunner-server/roadrunner/v2023/internal/rpc"
+ internalRpc "github.com/roadrunner-server/roadrunner/v2024/internal/rpc"
tm "github.com/buger/goterm"
"github.com/fatih/color"
@@ -43,7 +43,7 @@ func NewCommand(cfgFile *string, override *[]string) *cobra.Command { //nolint:f
defer func() { _ = client.Close() }()
- plugins := args // by default we expect plugins list from user
+ plugins := args // by default, we expect a plugin list from user
if len(plugins) == 0 { // but if nothing was passed - request all informers list
if err = client.Call(informerList, true, &plugins); err != nil {
return err
diff --git a/internal/cli/workers/command_test.go b/internal/cli/workers/command_test.go
index 36e67ef0..b9b3c624 100644
--- a/internal/cli/workers/command_test.go
+++ b/internal/cli/workers/command_test.go
@@ -3,7 +3,7 @@ package workers_test
import (
"testing"
- "github.com/roadrunner-server/roadrunner/v2023/internal/cli/workers"
+ "github.com/roadrunner-server/roadrunner/v2024/internal/cli/workers"
"github.com/stretchr/testify/assert"
)
diff --git a/internal/debug/server_test.go b/internal/debug/server_test.go
index de48fbbc..8a71f66b 100644
--- a/internal/debug/server_test.go
+++ b/internal/debug/server_test.go
@@ -9,7 +9,7 @@ import (
"testing"
"time"
- "github.com/roadrunner-server/roadrunner/v2023/internal/debug"
+ "github.com/roadrunner-server/roadrunner/v2024/internal/debug"
"github.com/stretchr/testify/assert"
)
diff --git a/internal/rpc/client_test.go b/internal/rpc/client_test.go
index 5c5cb47e..9bd974a9 100644
--- a/internal/rpc/client_test.go
+++ b/internal/rpc/client_test.go
@@ -6,7 +6,7 @@ import (
"testing"
"github.com/roadrunner-server/config/v4"
- "github.com/roadrunner-server/roadrunner/v2023/internal/rpc"
+ "github.com/roadrunner-server/roadrunner/v2024/internal/rpc"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/assert"
diff --git a/internal/sdnotify/sdnotify.go b/internal/sdnotify/sdnotify.go
index b82e0dd4..7494deb3 100644
--- a/internal/sdnotify/sdnotify.go
+++ b/internal/sdnotify/sdnotify.go
@@ -1,6 +1,6 @@
// Copyright 2014 Docker, Inc.
// Copyright 2015-2018 CoreOS, Inc.
-// Copyright 2023 SpiralScout.
+// Copyright 2024 SpiralScout.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/lib/roadrunner.go b/lib/roadrunner.go
index 7f2d32a2..21504f04 100644
--- a/lib/roadrunner.go
+++ b/lib/roadrunner.go
@@ -6,12 +6,12 @@ import (
configImpl "github.com/roadrunner-server/config/v4"
"github.com/roadrunner-server/endure/v2"
- "github.com/roadrunner-server/roadrunner/v2023/container"
+ "github.com/roadrunner-server/roadrunner/v2024/container"
)
const (
rrPrefix string = "rr"
- rrModule string = "github.com/roadrunner-server/roadrunner/v2023"
+ rrModule string = "github.com/roadrunner-server/roadrunner/v2024"
)
type RR struct {
diff --git a/lib/roadrunner_test.go b/lib/roadrunner_test.go
index c7a1a4b5..a45365ad 100644
--- a/lib/roadrunner_test.go
+++ b/lib/roadrunner_test.go
@@ -7,7 +7,7 @@ import (
"github.com/roadrunner-server/informer/v4"
"github.com/roadrunner-server/resetter/v4"
- "github.com/roadrunner-server/roadrunner/v2023/lib"
+ "github.com/roadrunner-server/roadrunner/v2024/lib"
"github.com/stretchr/testify/assert"
)
diff --git a/roadrunner.pprof b/roadrunner.pprof
index f8e88edd..7b333348 100644
--- a/roadrunner.pprof
+++ b/roadrunner.pprof
Binary files differ
diff --git a/schemas/config/3.0.schema.json b/schemas/config/3.0.schema.json
index 34b19f57..98563373 100644
--- a/schemas/config/3.0.schema.json
+++ b/schemas/config/3.0.schema.json
@@ -174,11 +174,6 @@
"tcp://127.0.0.1:6002",
"unix:///var/run/rr.sock"
]
- },
- "relay_timeout": {
- "description": "Timeout for relay connection establishing (only for socket and TCP port relay)",
- "$ref": "#/definitions/Duration",
- "default": "60s"
}
},
"required": [
@@ -2488,6 +2483,39 @@
]
}
},
+ "tls": {
+ "description": "Kafka TLS configuration",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "Path to the key file",
+ "type": "string",
+ "default": null
+ },
+ "cert": {
+ "description": "Path to the certificate",
+ "type": "string",
+ "default": null
+ },
+ "root_ca": {
+ "description": "Path to the CA certificate",
+ "type": "string",
+ "default": null
+ },
+ "client_auth_type": {
+ "description": "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"
+ ]
+ }
+ }
+ },
"sasl": {
"description": "Mechanism used for the authentication",
"properties": {