<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.39 (Ruby 3.2.2) -->
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-nottingham-gateway-description-00" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.0 -->
  <front>
    <title>HTTP Gateway Description Format</title>
    <seriesInfo name="Internet-Draft" value="draft-nottingham-gateway-description-00"/>
    <author initials="M." surname="Nottingham" fullname="Mark Nottingham">
      <organization/>
      <address>
        <postal>
          <postalLine>Prahran</postalLine>
          <postalLine>Australia</postalLine>
        </postal>
        <email>mnot@mnot.net</email>
        <uri>https://www.mnot.net/</uri>
      </address>
    </author>
    <date/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 39?>

<t>This document specifies a format for describing the capabilities and configuration of a HTTP gateway (such as a content delivery network) to the origin server and any software on it (such as a content management system).</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-nottingham-gateway-description/"/>.
      </t>
      <t>
         information can be found at <eref target="https://mnot.github.io/I-D/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/mnot/I-D/labels/gateway-description"/>.</t>
    </note>
  </front>
  <middle>
    <?line 43?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>To allow origin servers and tools that they use to be easily configured, this document defines a Gateway Description Format that describes the configuration of an HTTP gateway (commonly, a "reverse proxy" or content delivery network). It is intended to be generated by gateways and made available out-of-band to origin servers using them.</t>
      <section anchor="notational-conventions">
        <name>Notational Conventions</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
    </section>
    <section anchor="desc-format">
      <name>Gateway Description Format</name>
      <t>The Gateway Description Format is a JSON <xref target="JSON"/> document. The root object <bcp14>SHOULD</bcp14> contain members with the following names and values:</t>
      <ul spacing="normal">
        <li>"generated": a string containing the date that the description was generated, in the Internet Date/Time Format described in <xref section="5" sectionFormat="of" target="RFC3339"/></li>
        <li>"description": a string containing a human-readable description of the gateway</li>
      </ul>
      <t>For example, a very simple (and not very helpful) description document:</t>
      <sourcecode type="json"><![CDATA[
{
  "description": "The Example CDN configuration for example.com",
  "generated": "2023-08-21T23:20:50.52Z"
}
]]></sourcecode>
      <t>Processors <bcp14>SHOULD NOT</bcp14> fail if these members are not present.</t>
      <t>Additionally, the root object <bcp14>MAY</bcp14> contain any number of gateway descriptors; see <xref target="descriptors"/>.</t>
      <t>Unrecognised members of the root object <bcp14>MUST</bcp14> be ignored.</t>
    </section>
    <section anchor="descriptors">
      <name>Gateway Descriptors</name>
      <t>The following subsections list <bcp14>OPTIONAL</bcp14> information that may be included in the root object of a gateway description document.</t>
      <t>New gateway descriptors may be introduced by updating this specification.</t>
      <section anchor="site">
        <name>Site</name>
        <t>The "site" descriptor is a JSON object containing information about the HTTP server that the gateway exposes on behalf of the origin. It is a JSON object that contains zero or more of the following members:</t>
        <ul spacing="normal">
          <li>"exposed-origins": an array of strings containing Unicode serializations of origins (<xref section="6.1" sectionFormat="of" target="RFC6454"/>) that are exposed by the gateway</li>
          <li>"backend-origins": an array of strings containing Unicode serializations of origins that the gateway uses as origin server(s) for the exposed origin(s)</li>
        </ul>
        <t>For example:</t>
        <sourcecode type="json"><![CDATA[
{
  "description": "The Example CDN configuration for example.com",
  "generated": "2023-08-21T23:20:50.52Z",
  "site": {
    "exposed-origins": ["https://www.example.com", "https://www.example.com"],
    "backend-origins": ["https://backend1.example.com", "https://backend2.example.com"]
  }
}
]]></sourcecode>
        <t>Note that this descriptor allows but is not sufficient to describe more complex arrangements; for example, different backend-origins for different URL path locations, or when one exposed-origin redirects all requests to the other.</t>
      </section>
      <section anchor="gateway-sourcelist">
        <name>Gateway Source Address Lists</name>
        <t>The "gateway-sourcelists" descriptor is a JSON array of strings containing one or more URLs that can be used to fetch gateway source address lists.</t>
        <t>Their URLs <bcp14>MUST</bcp14> have a scheme of "https". If multiple URLs are listed, their contents are combined to reconstruct the full list of source IP addresses for the gateway. Consumers <bcp14>SHOULD</bcp14> respect HTTP caching rules when fetching lists, refreshing their contents as necessary once they become stale.</t>
        <t>For example:</t>
        <sourcecode type="json"><![CDATA[
{
  "description": "The Example CDN configuration for example.com",
  "generated": "2023-08-21T23:20:50.52Z",
  "gateway-sourcelists": [
    "https://cdn.example.com/source-addresess/ipv4",
    "https://cdn.example.com/source-addresses/ipv6"
  ]
}
]]></sourcecode>
        <t>Gateway source address lists are textual documents (with a <bcp14>RECOMMENDED</bcp14> media type of "text/plain") whose format is one entry per line, with all whitespace being ignored and all content on a line after the "#" being ignored. Each entry contains an IPv4 or IPv6 address block, using "/" notation.</t>
        <t>For example:</t>
        <artwork><![CDATA[
# My IP addresses
192.0.2.0/24
  198.51.100.0/24   # TEST-NET-2

2001:db8::/32
]]></artwork>
        <t>... contains three entries, "192.0.2.0/24", "198.51.100.0/24", and "2001:db8::/32".</t>
      </section>
      <section anchor="gateway-header-auth">
        <name>Gateway Header Authentication</name>
        <t>The "gateway-header-auth" descriptor is a JSON array of two strings representing a HTTP header field name and value that it will send in all HTTP requests to the origin, allowing the origin to discriminate them from other requests.</t>
        <t>For example:</t>
        <sourcecode type="json"><![CDATA[
{
  "description": "The Example CDN configuration for example.com",
  "generated": "2023-08-21T23:20:50.52Z",
  "gateway-header-auth": ["Secret", "my$ecret"]
}
]]></sourcecode>
        <t>would imply that the gateway would send this HTTP header field in all requests to the origin:</t>
        <sourcecode type="http-message"><![CDATA[
Secret: my$ecret
]]></sourcecode>
      </section>
      <section anchor="forwarded-host">
        <name>Forwarded Host</name>
        <t>The "forwarded-host" descriptor is a boolean that indicates whether the Host request header field sent by the gateway is that which it received (one of the exposed origins) if true, or that of the backend origin selected if false.</t>
        <t>For example:</t>
        <sourcecode type="json"><![CDATA[
{
  "description": "The Example CDN configuration for example.com",
  "generated": "2023-08-21T23:20:50.52Z",
  "forwarded-host": false
}
]]></sourcecode>
        <t>would imply that the gateway has rewritten the Host request header field will be rewritten to be that of the backend origin.</t>
      </section>
      <section anchor="methods-allow">
        <name>HTTP Methods Allowed</name>
        <t>The "methods-allow" descriptor is a JSON array of case-sensitive strings that indicate the HTTP methods that the gateway will accept in requests, forwarding them to the backend origin or handling them locally as appropriate.</t>
        <t>The value "*" indicates that unrecognised methods are forwarded to the backend origin server.</t>
        <t>For example:</t>
        <sourcecode type="json"><![CDATA[
{
  "description": "The Example CDN configuration for example.com",
  "generated": "2023-08-21T23:20:50.52Z",
  "methods-allow": ["GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS"]
}
]]></sourcecode>
      </section>
      <section anchor="targeted-cc">
        <name>Targeted Cache Control</name>
        <t>The "targeted-cc" descriptor is a JSON array of strings indicating the targeted cache-control header field(s) <xref target="TARGETED"/> supported by the gateway, in order of precedence (i.e., first entry overrides later entries)</t>
        <t>For example:</t>
        <sourcecode type="json"><![CDATA[
{
  "description": "The Example CDN configuration for example.com",
  "generated": "2023-08-21T23:20:50.52Z",
  "targeted-cc": [
    "ExampleCDN-Cache-Control",
    "CDN-Cache-Control"
  ]
}
]]></sourcecode>
      </section>
      <section anchor="invalidation-api">
        <name>Invalidation API</name>
        <t>The "invalidation-api" descriptor is a JSON object that contains information about the gateway's deployment of <xref target="INVALIDATION"/>.</t>
        <t>These objects can contain the following members and values:</t>
        <ul spacing="normal">
          <li>"uri": a string conveying the URI of the Invalidation Resource (<xref section="2" sectionFormat="of" target="INVALIDATION"/>)</li>
          <li>"selectors": an array of strings indicating the selectors (<xref section="3.1" sectionFormat="of" target="INVALIDATION"/>) that the Invalidation Resource supports</li>
          <li>"purge": a boolean indicating whether the Invalidation Resource supports the "purge" member in requests (see <xref section="3" sectionFormat="of" target="INVALIDATION"/>)</li>
          <li>"p95-latency": an integer indicating the number of milliseconds that 95% of invalidation requests should be fully applied to the scope indicated by the description.</li>
        </ul>
        <t>For example:</t>
        <sourcecode type="json"><![CDATA[
{
  "description": "The Example CDN configuration for example.com",
  "generated": "2023-08-21T23:20:50.52Z",
  "invalidation-api": {
    "uri": "https://api.cdn.example.com/invalidate",
    "selectors": ["uri", "uri-prefix", "group"],
    "purge": true,
    "p95-latency": 2000
  }
}
]]></sourcecode>
        <t>If the "api-auth" descriptor (<xref target="api-auth"/>) is present, the authentication details there <bcp14>SHOULD</bcp14> be sent on all requests to the invalidation API.</t>
      </section>
      <section anchor="api-auth">
        <name>API Authentication</name>
        <t>The "api-auth" descriptor is a string representing a Bearer HTTP authentication (<xref section="2.1" sectionFormat="of" target="BEARER"/>) to be used to authenticate the backend origin in interaction with Gateway APIs.</t>
        <t>For example:</t>
        <sourcecode type="json"><![CDATA[
{
  "description": "The Example CDN configuration for example.com",
  "generated": "2023-08-21T23:20:50.52Z",
  "bearer": "mF_9.B5f-4.1JqM"
}
]]></sourcecode>
      </section>
      <section anchor="vendor">
        <name>Vendor Extensions</name>
        <t>The "vendor" descriptor is a JSON object that can be use for gateway- and vendor-specific extensions to the format. Its members' names <bcp14>MUST</bcp14> be in internet hostname format, associating a name associated with the gateway and/or its vendor. The contents of member values are under the control of that party.</t>
        <t>For example:</t>
        <sourcecode type="json"><![CDATA[
{
  "description": "The Example CDN configuration for example.com",
  "generated": "2023-08-21T23:20:50.52Z",
  "vendor": {
    "cdn.example.com": {
      "foo": "bar",
      "1": 2
    }
  }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TBD</t>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="HTTP">
        <front>
          <title>HTTP Semantics</title>
          <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
          <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
          <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
          <date month="June" year="2022"/>
          <abstract>
            <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
            <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="97"/>
        <seriesInfo name="RFC" value="9110"/>
        <seriesInfo name="DOI" value="10.17487/RFC9110"/>
      </reference>
      <reference anchor="INVALIDATION">
        <front>
          <title>An HTTP Cache Invalidation API</title>
          <author fullname="Mark Nottingham" initials="M." surname="Nottingham">
         </author>
          <date day="24" month="June" year="2023"/>
          <abstract>
            <t>   This document specifies an HTTP-based API that gateway caches (such
   as those in reverse proxies and content delivery networks) can expose
   to allow origin servers to their invalidate stored responses.

About This Document

   This note is to be removed before publishing as an RFC.

   Status information for this document may be found at
   https://datatracker.ietf.org/doc/draft-nottingham-http-invalidation/.

   information can be found at https://mnot.github.io/I-D/.

   Source for this draft and an issue tracker can be found at
   https://github.com/mnot/I-D/labels/http-invalidation.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-nottingham-http-invalidation-00"/>
      </reference>
      <reference anchor="BEARER">
        <front>
          <title>The OAuth 2.0 Authorization Framework: Bearer Token Usage</title>
          <author fullname="M. Jones" initials="M." surname="Jones"/>
          <author fullname="D. Hardt" initials="D." surname="Hardt"/>
          <date month="October" year="2012"/>
          <abstract>
            <t>This specification describes how to use bearer tokens in HTTP requests to access OAuth 2.0 protected resources. Any party in possession of a bearer token (a "bearer") can use it to get access to the associated resources (without demonstrating possession of a cryptographic key). To prevent misuse, bearer tokens need to be protected from disclosure in storage and in transport. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6750"/>
        <seriesInfo name="DOI" value="10.17487/RFC6750"/>
      </reference>
      <reference anchor="TARGETED">
        <front>
          <title>Targeted HTTP Cache Control</title>
          <author fullname="S. Ludin" initials="S." surname="Ludin"/>
          <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
          <author fullname="Y. Wu" initials="Y." surname="Wu"/>
          <date month="June" year="2022"/>
          <abstract>
            <t>This specification defines a convention for HTTP response header fields that allow cache directives to be targeted at specific caches or classes of caches. It also defines one such header field, the CDN-Cache-Control response header field, which is targeted at content delivery network (CDN) caches.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9213"/>
        <seriesInfo name="DOI" value="10.17487/RFC9213"/>
      </reference>
      <reference anchor="JSON">
        <front>
          <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
          <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
          <date month="December" year="2017"/>
          <abstract>
            <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
            <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="90"/>
        <seriesInfo name="RFC" value="8259"/>
        <seriesInfo name="DOI" value="10.17487/RFC8259"/>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <reference anchor="RFC3339">
        <front>
          <title>Date and Time on the Internet: Timestamps</title>
          <author fullname="G. Klyne" initials="G." surname="Klyne"/>
          <author fullname="C. Newman" initials="C." surname="Newman"/>
          <date month="July" year="2002"/>
          <abstract>
            <t>This document defines a date and time format for use in Internet protocols that is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="3339"/>
        <seriesInfo name="DOI" value="10.17487/RFC3339"/>
      </reference>
      <reference anchor="RFC6454">
        <front>
          <title>The Web Origin Concept</title>
          <author fullname="A. Barth" initials="A." surname="Barth"/>
          <date month="December" year="2011"/>
          <abstract>
            <t>This document defines the concept of an "origin", which is often used as the scope of authority or privilege by user agents. Typically, user agents isolate content retrieved from different origins to prevent malicious web site operators from interfering with the operation of benign web sites. In addition to outlining the principles that underlie the concept of origin, this document details how to determine the origin of a URI and how to serialize an origin into a string. It also defines an HTTP header field, named "Origin", that indicates which origins are associated with an HTTP request. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6454"/>
        <seriesInfo name="DOI" value="10.17487/RFC6454"/>
      </reference>
    </references>
    <?line 297?>



  </back>
  <!-- ##markdown-source:
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
avc8/Q0KBVMQ/AdC9YAqZyYAAA==

-->

</rfc>
