| Internet-Draft | moq-cdn-prov | March 2026 |
| English | Expires 2 September 2026 | [Page] |
This document describes concepts related to provisioning MoQ relay scopes on CDN infrastructure, including scope creation, credential-to-scope mapping, and origin fallback configuration. It uses a provisioning API as a vehicle for describing these concepts and identifying areas where common semantics across CDN providers may be needed for multi-CDN compatibility.¶
This note is to be removed before publishing as an RFC.¶
The latest revision of this draft can be found at https://englishm.github.io/moq-cdn-provisioning/draft-englishm-moq-cdn-provisioning.html. Status information for this document may be found at https://datatracker.ietf.org/doc/draft-englishm-moq-cdn-provisioning/.¶
Discussion of this document takes place on the Media Over QUIC Working Group mailing list (mailto:moq@ietf.org), which is archived at https://mailarchive.ietf.org/arch/browse/moq/. Subscribe at https://www.ietf.org/mailman/listinfo/moq/.¶
Source for this draft and an issue tracker can be found at https://github.com/englishm/moq-cdn-provisioning.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 2 September 2026.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
Media over QUIC Transport (MoQT) [MOQT] defines a pub/sub protocol for media delivery through relays. CDN providers that deploy MoQ relays need to configure them in ways that are roughly analogous to the rewrite rules, origin selection, and routing configuration associated with HTTP reverse proxies and CDNs. Some of these configurations will need common semantics across providers to support multi-CDN deployments.¶
This document uses a provisioning API as a vehicle for describing these concepts. A customer creates a scope on a CDN relay, gets back connection credentials, and hands those credentials to their publishers and subscribers. The relay uses the credentials to map incoming connections to the right scope.¶
The API itself is part of the picture, but the more important contribution here is describing the underlying concepts (scopes, credential-to-scope mapping, origin fallback) in a way that could be consistent across CDN providers.¶
A machine-readable OpenAPI description of the API described here is maintained alongside this document in the source repository (see openapi.yaml).¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
A CDN provider exposes an HTTP API endpoint for creating scopes:¶
POST /moq/scopes¶
The request MAY include configuration (see Section 5).¶
The response includes a server-generated scope identifier and connection credentials:¶
{
"scope_id": "a1b2c3d4e5f6",
"url": "moqt://relay.example.com",
"token": "eyJhbGciOiJFZDI1NTE5..."
}
¶
The url is the base URL of the relay service.
The token is a credential
that grants access to this scope.¶
Clients connect to a provisioned scope by combining the URL and token returned at creation time:¶
moqt://relay.example.com/{token}
¶
The relay extracts the token from the URL path, validates it, and maps the connection to the corresponding MoQT scope.¶
Within that scope, all MoQT operations (SUBSCRIBE, ANNOUNCE, etc.) are isolated. Publishers and subscribers in one scope cannot see namespaces or tracks from another scope.¶
A scope MAY be configured with an upstream origin URL. When a subscriber requests content that isn't available on the relay, the relay connects to the origin to fetch it.¶
This is configured at provisioning time:¶
{
"config": {
"origin_fallback": {
"url": "moqt://origin.example.com"
}
}
}
¶
The relay establishes a MoQT connection to the origin URL and forwards the subscription. The origin could be another relay (at a different CDN provider, or a customer's own infrastructure), or any MoQT-speaking endpoint.¶
This document has no IANA actions.¶
Thanks to Lucas Pardue and Jacob Curtis for design input.¶