From 63bafa31a59a644b2f174c5f2b68d86ef09d7f3d Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Mon, 26 Oct 2026 14:16:33 +0000 Subject: [PATCH 1/3] [Automated] Draft docs (agentgateway): filters: better error handling Signed-off-by: GitHub Action --- .../main/documentation/configuration/resiliency/mirroring.md | 1 + .../configuration/traffic-management/direct-response.md | 2 ++ .../configuration/traffic-management/manipulation.md | 1 + .../documentation/configuration/traffic-management/redirects.md | 2 ++ .../documentation/configuration/traffic-management/rewrites.md | 2 ++ content/docs/standalone/main/release-notes/release-notes.md | 1 + 6 files changed, 9 insertions(+) diff --git a/content/docs/standalone/main/documentation/configuration/resiliency/mirroring.md b/content/docs/standalone/main/documentation/configuration/resiliency/mirroring.md index c69ae7026..c2b643b75 100644 --- a/content/docs/standalone/main/documentation/configuration/resiliency/mirroring.md +++ b/content/docs/standalone/main/documentation/configuration/resiliency/mirroring.md @@ -18,6 +18,7 @@ Attaches to: {{< badge content="Route" path="/documentation/configuration/routes Request {{< gloss "Mirroring" >}}mirroring{{< /gloss >}} allows sending a copy of each request to an alternative backend. These requests will not be retried if they fail. +Set `percentage` to a decimal from `0.0` to `1.0`. Standalone configuration validation rejects values outside that range. {{< tabs >}} {{< tab name="Simplified (MCP)" >}} diff --git a/content/docs/standalone/main/documentation/configuration/traffic-management/direct-response.md b/content/docs/standalone/main/documentation/configuration/traffic-management/direct-response.md index a861b4d69..35a679514 100644 --- a/content/docs/standalone/main/documentation/configuration/traffic-management/direct-response.md +++ b/content/docs/standalone/main/documentation/configuration/traffic-management/direct-response.md @@ -58,6 +58,8 @@ routes: {{< /tab >}} {{< /tabs >}} +Set either `body` or `bodyExpression`, not both. Standalone configuration validation rejects direct response policies that set both fields. + {{< doc-test paths="direct-response" >}} cat <<'EOF' > config.yaml # yaml-language-server: $schema=https://agentgateway.dev/schema/config diff --git a/content/docs/standalone/main/documentation/configuration/traffic-management/manipulation.md b/content/docs/standalone/main/documentation/configuration/traffic-management/manipulation.md index eed42ae99..c4d1bcbfb 100644 --- a/content/docs/standalone/main/documentation/configuration/traffic-management/manipulation.md +++ b/content/docs/standalone/main/documentation/configuration/traffic-management/manipulation.md @@ -21,6 +21,7 @@ There are a few different policies that offer manipulation of HTTP requests and The `requestHeaderModifier` and `responseHeaderModifier` modify request and response headers respectively. These allow you to `add`, `set`, or `remove` headers. `add` and `set` differ in the case the header already exists; `set` will replace it while `add` will append. +Standalone configuration validation rejects a header modifier when a header name or value is not a valid HTTP header. {{< tabs >}} {{< tab name="Simplified (MCP)" >}} diff --git a/content/docs/standalone/main/documentation/configuration/traffic-management/redirects.md b/content/docs/standalone/main/documentation/configuration/traffic-management/redirects.md index a43918154..86b297741 100644 --- a/content/docs/standalone/main/documentation/configuration/traffic-management/redirects.md +++ b/content/docs/standalone/main/documentation/configuration/traffic-management/redirects.md @@ -18,6 +18,8 @@ Attaches to: {{< badge content="Route" path="/documentation/configuration/routes Request {{< gloss "Redirect" >}}redirects{{< /gloss >}} allow returning a direct response redirecting users to another location. +For `path.full` and `path.prefix`, use an empty value or start the value with `/`. If you use `path.prefix` on a route that does not delegate to a route group, every match on the route must use `pathPrefix`. + For example, the following configuration will return a `307 Temporary Redirect` response with the header `location: https://example.com/new-path`: {{< tabs >}} diff --git a/content/docs/standalone/main/documentation/configuration/traffic-management/rewrites.md b/content/docs/standalone/main/documentation/configuration/traffic-management/rewrites.md index ec81af931..9a6b92b8a 100644 --- a/content/docs/standalone/main/documentation/configuration/traffic-management/rewrites.md +++ b/content/docs/standalone/main/documentation/configuration/traffic-management/rewrites.md @@ -18,6 +18,8 @@ Attaches to: {{< badge content="Route" path="/documentation/configuration/routes Modify URLs of incoming requests with {{< gloss "Rewrite" >}}rewrite{{< /gloss >}} policies. +For `path.full` and `path.prefix`, use an empty value or start the value with `/`. If you use `path.prefix` on a route that does not delegate to a route group, every match on the route must use `pathPrefix`. + For example, the following configuration modifies the request hostname to `example.com` and the request path to `/new-path`. {{< tabs >}} diff --git a/content/docs/standalone/main/release-notes/release-notes.md b/content/docs/standalone/main/release-notes/release-notes.md index 4924aaaa1..f4847e382 100644 --- a/content/docs/standalone/main/release-notes/release-notes.md +++ b/content/docs/standalone/main/release-notes/release-notes.md @@ -104,6 +104,7 @@ For more information, see [Session key]({{< link-hextra path="/integrations/mcp/ **Traffic management** - Local gRPC policy call failures, such as DNS errors, unavailable endpoints, refused connections, and timeouts, are reported with the mapped gRPC status instead of `UNKNOWN`. +- Standalone configuration validation rejects invalid header modifiers, conflicting direct response body fields, invalid redirect or rewrite paths, and request mirror percentages outside `0.0` to `1.0`. **LLM** From e00b944e6fcb804ff9b8e971a96bcfbc8bca8610 Mon Sep 17 00:00:00 2001 From: Art Berger Date: Mon, 26 Oct 2026 12:27:32 -0400 Subject: [PATCH 2/3] move release notes to #1351 Signed-off-by: Art Berger --- content/docs/standalone/main/release-notes/release-notes.md | 1 - 1 file changed, 1 deletion(-) diff --git a/content/docs/standalone/main/release-notes/release-notes.md b/content/docs/standalone/main/release-notes/release-notes.md index f4847e382..4924aaaa1 100644 --- a/content/docs/standalone/main/release-notes/release-notes.md +++ b/content/docs/standalone/main/release-notes/release-notes.md @@ -104,7 +104,6 @@ For more information, see [Session key]({{< link-hextra path="/integrations/mcp/ **Traffic management** - Local gRPC policy call failures, such as DNS errors, unavailable endpoints, refused connections, and timeouts, are reported with the mapped gRPC status instead of `UNKNOWN`. -- Standalone configuration validation rejects invalid header modifiers, conflicting direct response body fields, invalid redirect or rewrite paths, and request mirror percentages outside `0.0` to `1.0`. **LLM** From 150edd177e422be4c792fbe2be0c0b63021c8f28 Mon Sep 17 00:00:00 2001 From: Art Berger Date: Mon, 26 Oct 2026 12:37:29 -0400 Subject: [PATCH 3/3] docs: correct filter validation rules, drop the release-note hunk - path.full and path.prefix must start with '/'. An empty value fails at load with 'empty string' (PathAndQuery parse in de_redirect_path), verified with --validate-only on b75bb313. - Reword the other sentences to say what agentgateway rejects. - release-notes.md belongs to #1351. Restore it to main. Signed-off-by: Art Berger --- .../main/documentation/configuration/resiliency/mirroring.md | 2 +- .../configuration/traffic-management/direct-response.md | 2 +- .../configuration/traffic-management/manipulation.md | 2 +- .../documentation/configuration/traffic-management/redirects.md | 2 +- .../documentation/configuration/traffic-management/rewrites.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/content/docs/standalone/main/documentation/configuration/resiliency/mirroring.md b/content/docs/standalone/main/documentation/configuration/resiliency/mirroring.md index c2b643b75..390188cc9 100644 --- a/content/docs/standalone/main/documentation/configuration/resiliency/mirroring.md +++ b/content/docs/standalone/main/documentation/configuration/resiliency/mirroring.md @@ -18,7 +18,7 @@ Attaches to: {{< badge content="Route" path="/documentation/configuration/routes Request {{< gloss "Mirroring" >}}mirroring{{< /gloss >}} allows sending a copy of each request to an alternative backend. These requests will not be retried if they fail. -Set `percentage` to a decimal from `0.0` to `1.0`. Standalone configuration validation rejects values outside that range. +Set `percentage` to a value from `0.0` to `1.0`. For example, `0.5` mirrors half of the requests. Agentgateway rejects a configuration with a value outside that range, such as `percentage: 50`. {{< tabs >}} {{< tab name="Simplified (MCP)" >}} diff --git a/content/docs/standalone/main/documentation/configuration/traffic-management/direct-response.md b/content/docs/standalone/main/documentation/configuration/traffic-management/direct-response.md index 35a679514..b9ebb6e65 100644 --- a/content/docs/standalone/main/documentation/configuration/traffic-management/direct-response.md +++ b/content/docs/standalone/main/documentation/configuration/traffic-management/direct-response.md @@ -58,7 +58,7 @@ routes: {{< /tab >}} {{< /tabs >}} -Set either `body` or `bodyExpression`, not both. Standalone configuration validation rejects direct response policies that set both fields. +Set either `body` or `bodyExpression`, not both. Agentgateway rejects a configuration with a direct response policy that sets both fields. {{< doc-test paths="direct-response" >}} cat <<'EOF' > config.yaml diff --git a/content/docs/standalone/main/documentation/configuration/traffic-management/manipulation.md b/content/docs/standalone/main/documentation/configuration/traffic-management/manipulation.md index c4d1bcbfb..210a6d142 100644 --- a/content/docs/standalone/main/documentation/configuration/traffic-management/manipulation.md +++ b/content/docs/standalone/main/documentation/configuration/traffic-management/manipulation.md @@ -21,7 +21,7 @@ There are a few different policies that offer manipulation of HTTP requests and The `requestHeaderModifier` and `responseHeaderModifier` modify request and response headers respectively. These allow you to `add`, `set`, or `remove` headers. `add` and `set` differ in the case the header already exists; `set` will replace it while `add` will append. -Standalone configuration validation rejects a header modifier when a header name or value is not a valid HTTP header. +Agentgateway rejects a configuration with a header modifier that contains an invalid HTTP header name or value. {{< tabs >}} {{< tab name="Simplified (MCP)" >}} diff --git a/content/docs/standalone/main/documentation/configuration/traffic-management/redirects.md b/content/docs/standalone/main/documentation/configuration/traffic-management/redirects.md index 86b297741..bf699cbc4 100644 --- a/content/docs/standalone/main/documentation/configuration/traffic-management/redirects.md +++ b/content/docs/standalone/main/documentation/configuration/traffic-management/redirects.md @@ -18,7 +18,7 @@ Attaches to: {{< badge content="Route" path="/documentation/configuration/routes Request {{< gloss "Redirect" >}}redirects{{< /gloss >}} allow returning a direct response redirecting users to another location. -For `path.full` and `path.prefix`, use an empty value or start the value with `/`. If you use `path.prefix` on a route that does not delegate to a route group, every match on the route must use `pathPrefix`. +Start the `path.full` and `path.prefix` values with `/`. If you use `path.prefix` on a route that does not delegate to a route group, every match on the route must use `pathPrefix`. Agentgateway rejects a configuration that does not follow these rules. For example, the following configuration will return a `307 Temporary Redirect` response with the header `location: https://example.com/new-path`: diff --git a/content/docs/standalone/main/documentation/configuration/traffic-management/rewrites.md b/content/docs/standalone/main/documentation/configuration/traffic-management/rewrites.md index 9a6b92b8a..5cdb3fe79 100644 --- a/content/docs/standalone/main/documentation/configuration/traffic-management/rewrites.md +++ b/content/docs/standalone/main/documentation/configuration/traffic-management/rewrites.md @@ -18,7 +18,7 @@ Attaches to: {{< badge content="Route" path="/documentation/configuration/routes Modify URLs of incoming requests with {{< gloss "Rewrite" >}}rewrite{{< /gloss >}} policies. -For `path.full` and `path.prefix`, use an empty value or start the value with `/`. If you use `path.prefix` on a route that does not delegate to a route group, every match on the route must use `pathPrefix`. +Start the `path.full` and `path.prefix` values with `/`. If you use `path.prefix` on a route that does not delegate to a route group, every match on the route must use `pathPrefix`. Agentgateway rejects a configuration that does not follow these rules. For example, the following configuration modifies the request hostname to `example.com` and the request path to `/new-path`.