From ee4b87100db09ea10b5ec45b165ed9abf649bb03 Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Wed, 18 Dec 2024 07:56:56 -0500 Subject: [PATCH 01/10] docs: adds server url template anbf Signed-off-by: Vincent Biret --- src/oas.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/oas.md b/src/oas.md index a5d98bdd8b..7a38e676a0 100644 --- a/src/oas.md +++ b/src/oas.md @@ -557,6 +557,23 @@ servers: An object representing a Server Variable for server URL template substitution. +The server URL templating is defined by the following [ABNF](https://tools.ietf.org/html/rfc5234) syntax. + +```abnf +server-url-template = 1*( server-literal / template-expression ) +server-literal = 1*pchar +template-expression = "{" template-expression-param-name "}" +template-expression-param-name = 1*( %x00-79 / %x7C / %x7E-10FFFF ) ; every UTF8 character except { and } + +pchar = unreserved / pct-encoded / sub-delims / ":" / "@" +unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" +pct-encoded = "%" HEXDIG HEXDIG +sub-delims = "!" / "$" / "&" / "'" / "(" / ")" + / "*" / "+" / "," / ";" / "=" +``` + +Here, `pchar`, `unreserved`, `pct-encoded` and `sub-delims` definitions are taken from [RFC 3986](https://tools.ietf.org/html/rfc3986). + ##### Fixed Fields | Field Name | Type | Description | From a89f36dd50846d82d528e36b87f1098cc6774b87 Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Thu, 19 Dec 2024 13:26:16 -0500 Subject: [PATCH 02/10] fix: expands the allowed set for server templates literal Signed-off-by: Vincent Biret --- src/oas.md | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/oas.md b/src/oas.md index 7a38e676a0..e57c48d1bf 100644 --- a/src/oas.md +++ b/src/oas.md @@ -560,19 +560,28 @@ An object representing a Server Variable for server URL template substitution. The server URL templating is defined by the following [ABNF](https://tools.ietf.org/html/rfc5234) syntax. ```abnf -server-url-template = 1*( server-literal / template-expression ) -server-literal = 1*pchar +server-url-template = 1*( literals / template-expression ) template-expression = "{" template-expression-param-name "}" template-expression-param-name = 1*( %x00-79 / %x7C / %x7E-10FFFF ) ; every UTF8 character except { and } +literals = 1*( %x21 / %x23-24 / %x26 / %x28-3B / %x3D / %x3F-5B + / %x5D / %x5F / %x61-7A / %x7E / ucschar / iprivate + / pct-encoded) + ; any Unicode character except: CTL, SP, + ; DQUOTE, "'", "%" (aside from pct-encoded), + ; "<", ">", "\", "^", "`", "{", "|", "}" + -pchar = unreserved / pct-encoded / sub-delims / ":" / "@" -unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" pct-encoded = "%" HEXDIG HEXDIG -sub-delims = "!" / "$" / "&" / "'" / "(" / ")" - / "*" / "+" / "," / ";" / "=" +ucschar = %xA0-D7FF / %xF900-FDCF / %xFDF0-FFEF + / %x10000-1FFFD / %x20000-2FFFD / %x30000-3FFFD + / %x40000-4FFFD / %x50000-5FFFD / %x60000-6FFFD + / %x70000-7FFFD / %x80000-8FFFD / %x90000-9FFFD + / %xA0000-AFFFD / %xB0000-BFFFD / %xC0000-CFFFD + / %xD0000-DFFFD / %xE1000-EFFFD +iprivate = %xE000-F8FF / %xF0000-FFFFD / %x100000-10FFFD ``` -Here, `pchar`, `unreserved`, `pct-encoded` and `sub-delims` definitions are taken from [RFC 3986](https://tools.ietf.org/html/rfc3986). +Here, `pct-encoded`, `uschar` and `iprivate` definitions are taken from [RFC 6570](https://www.rfc-editor.org/rfc/rfc6570). ##### Fixed Fields From 72eec2970fe52c99bbcc407319197a73bccb2b72 Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Thu, 19 Dec 2024 14:41:38 -0500 Subject: [PATCH 03/10] fix: adds literals to the list of imported definitions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Vladimír Gorej --- src/oas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/oas.md b/src/oas.md index e57c48d1bf..cf9e2bce4e 100644 --- a/src/oas.md +++ b/src/oas.md @@ -581,7 +581,7 @@ ucschar = %xA0-D7FF / %xF900-FDCF / %xFDF0-FFEF iprivate = %xE000-F8FF / %xF0000-FFFFD / %x100000-10FFFD ``` -Here, `pct-encoded`, `uschar` and `iprivate` definitions are taken from [RFC 6570](https://www.rfc-editor.org/rfc/rfc6570). +Here, `literals`, `pct-encoded`, `uschar` and `iprivate` definitions are taken from [RFC 6570](https://www.rfc-editor.org/rfc/rfc6570). ##### Fixed Fields From cf00256ec279bef554a221efe1401718badb7bea Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Thu, 19 Dec 2024 14:42:24 -0500 Subject: [PATCH 04/10] nit: groups literals with the imported definitions --- src/oas.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/oas.md b/src/oas.md index cf9e2bce4e..880143700f 100644 --- a/src/oas.md +++ b/src/oas.md @@ -563,14 +563,13 @@ The server URL templating is defined by the following [ABNF](https://tools.ietf. server-url-template = 1*( literals / template-expression ) template-expression = "{" template-expression-param-name "}" template-expression-param-name = 1*( %x00-79 / %x7C / %x7E-10FFFF ) ; every UTF8 character except { and } + literals = 1*( %x21 / %x23-24 / %x26 / %x28-3B / %x3D / %x3F-5B / %x5D / %x5F / %x61-7A / %x7E / ucschar / iprivate / pct-encoded) ; any Unicode character except: CTL, SP, ; DQUOTE, "'", "%" (aside from pct-encoded), ; "<", ">", "\", "^", "`", "{", "|", "}" - - pct-encoded = "%" HEXDIG HEXDIG ucschar = %xA0-D7FF / %xF900-FDCF / %xFDF0-FFEF / %x10000-1FFFD / %x20000-2FFFD / %x30000-3FFFD From 069f2be573bbda83192ce8c5d3b92ac95402676b Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Thu, 19 Dec 2024 14:44:18 -0500 Subject: [PATCH 05/10] nit: aligns literal definition Signed-off-by: Vincent Biret --- src/oas.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/oas.md b/src/oas.md index 880143700f..2aaf37f801 100644 --- a/src/oas.md +++ b/src/oas.md @@ -564,12 +564,12 @@ server-url-template = 1*( literals / template-expression ) template-expression = "{" template-expression-param-name "}" template-expression-param-name = 1*( %x00-79 / %x7C / %x7E-10FFFF ) ; every UTF8 character except { and } -literals = 1*( %x21 / %x23-24 / %x26 / %x28-3B / %x3D / %x3F-5B - / %x5D / %x5F / %x61-7A / %x7E / ucschar / iprivate - / pct-encoded) - ; any Unicode character except: CTL, SP, - ; DQUOTE, "'", "%" (aside from pct-encoded), - ; "<", ">", "\", "^", "`", "{", "|", "}" +literals = 1*( %x21 / %x23-24 / %x26 / %x28-3B / %x3D / %x3F-5B + / %x5D / %x5F / %x61-7A / %x7E / ucschar / iprivate + / pct-encoded) + ; any Unicode character except: CTL, SP, + ; DQUOTE, "'", "%" (aside from pct-encoded), + ; "<", ">", "\", "^", "`", "{", "|", "}" pct-encoded = "%" HEXDIG HEXDIG ucschar = %xA0-D7FF / %xF900-FDCF / %xFDF0-FFEF / %x10000-1FFFD / %x20000-2FFFD / %x30000-3FFFD From e3f9dca10863ec853da8325d577fa13e5ab2efe9 Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Fri, 20 Dec 2024 08:41:55 -0500 Subject: [PATCH 06/10] fix: updates literals with content from errata Co-authored-by: Ralf Handl --- src/oas.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/oas.md b/src/oas.md index 2aaf37f801..90348a8c89 100644 --- a/src/oas.md +++ b/src/oas.md @@ -564,11 +564,11 @@ server-url-template = 1*( literals / template-expression ) template-expression = "{" template-expression-param-name "}" template-expression-param-name = 1*( %x00-79 / %x7C / %x7E-10FFFF ) ; every UTF8 character except { and } -literals = 1*( %x21 / %x23-24 / %x26 / %x28-3B / %x3D / %x3F-5B +literals = 1*( %x21 / %x23-24 / %x26-3B / %x3D / %x3F-5B / %x5D / %x5F / %x61-7A / %x7E / ucschar / iprivate / pct-encoded) ; any Unicode character except: CTL, SP, - ; DQUOTE, "'", "%" (aside from pct-encoded), + ; DQUOTE, "%" (aside from pct-encoded), ; "<", ">", "\", "^", "`", "{", "|", "}" pct-encoded = "%" HEXDIG HEXDIG ucschar = %xA0-D7FF / %xF900-FDCF / %xFDF0-FFEF From d1ce2592614b2b317443483fb99c5e666613cdb6 Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Fri, 20 Dec 2024 08:44:50 -0500 Subject: [PATCH 07/10] nit: changes the server variable name to avoid confusion and allow for diverging future updates Signed-off-by: Vincent Biret --- src/oas.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/oas.md b/src/oas.md index 90348a8c89..6817adc236 100644 --- a/src/oas.md +++ b/src/oas.md @@ -560,9 +560,9 @@ An object representing a Server Variable for server URL template substitution. The server URL templating is defined by the following [ABNF](https://tools.ietf.org/html/rfc5234) syntax. ```abnf -server-url-template = 1*( literals / template-expression ) -template-expression = "{" template-expression-param-name "}" -template-expression-param-name = 1*( %x00-79 / %x7C / %x7E-10FFFF ) ; every UTF8 character except { and } +server-url-template = 1*( literals / server-variable ) +server-variable = "{" server-variable-name "}" +server-variable-name = 1*( %x00-79 / %x7C / %x7E-10FFFF ) ; every UTF8 character except { and } literals = 1*( %x21 / %x23-24 / %x26-3B / %x3D / %x3F-5B / %x5D / %x5F / %x61-7A / %x7E / ucschar / iprivate From 45f197af3e8e17cad2e86773147fc22ce66d3657 Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Mon, 23 Dec 2024 07:31:37 -0500 Subject: [PATCH 08/10] fix: adds mention that errata has been applied MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Vladimír Gorej --- src/oas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/oas.md b/src/oas.md index 6817adc236..2aed4825aa 100644 --- a/src/oas.md +++ b/src/oas.md @@ -580,7 +580,7 @@ ucschar = %xA0-D7FF / %xF900-FDCF / %xFDF0-FFEF iprivate = %xE000-F8FF / %xF0000-FFFFD / %x100000-10FFFD ``` -Here, `literals`, `pct-encoded`, `uschar` and `iprivate` definitions are taken from [RFC 6570](https://www.rfc-editor.org/rfc/rfc6570). +Here, `literals`, `pct-encoded`, `ucschar` and `iprivate` definitions are taken from [RFC 6570](https://www.rfc-editor.org/rfc/rfc6570), incorporating the corrections specified in [Errata 6937](https://www.rfc-editor.org/errata/eid6937) for `literals`. ##### Fixed Fields From bfd5088cab1783943bbfaf379e11eb4b7c85bb99 Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Fri, 27 Dec 2024 08:29:38 -0500 Subject: [PATCH 09/10] fix: missing z character MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Vladimír Gorej --- src/oas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/oas.md b/src/oas.md index 2aed4825aa..319af5fadc 100644 --- a/src/oas.md +++ b/src/oas.md @@ -562,7 +562,7 @@ The server URL templating is defined by the following [ABNF](https://tools.ietf. ```abnf server-url-template = 1*( literals / server-variable ) server-variable = "{" server-variable-name "}" -server-variable-name = 1*( %x00-79 / %x7C / %x7E-10FFFF ) ; every UTF8 character except { and } +server-variable-name = 1*( %x00-7A / %x7C / %x7E-10FFFF ) ; every UTF8 character except { and } literals = 1*( %x21 / %x23-24 / %x26-3B / %x3D / %x3F-5B / %x5D / %x5F / %x61-7A / %x7E / ucschar / iprivate From 6e4f8d68b2108edc4105a822f41eca0e445bcb7e Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Fri, 27 Dec 2024 08:32:01 -0500 Subject: [PATCH 10/10] fix: missing z in url templating Signed-off-by: Vincent Biret --- src/oas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/oas.md b/src/oas.md index cf47e164eb..2ffed2bc76 100644 --- a/src/oas.md +++ b/src/oas.md @@ -51,7 +51,7 @@ path-template = "/" *( path-segment "/" ) [ path-segment ] path-segment = 1*( path-literal / template-expression ) path-literal = 1*pchar template-expression = "{" template-expression-param-name "}" -template-expression-param-name = 1*( %x00-79 / %x7C / %x7E-10FFFF ) ; every UTF8 character except { and } +template-expression-param-name = 1*( %x00-7A / %x7C / %x7E-10FFFF ) ; every UTF8 character except { and } pchar = unreserved / pct-encoded / sub-delims / ":" / "@" unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"