Internet-Draft RDAP Status Set Extension July 2026
Gould, et al. Expires 21 January 2027 [Page]
Workgroup:
Network Working Group
Internet-Draft:
draft-gould-regext-rdap-status-set-00
Published:
Intended Status:
Standards Track
Expires:
Authors:
J. Gould
VeriSign, Inc.
P. Garg
VeriSign, Inc.
M.S. Malang Khader
VeriSign, Inc.

Registration Data Access Protocol (RDAP) Extension for Status Set

Abstract

This document describes an Registration Data Access Protocol (RDAP) extension for including status sets assigned to RDAP object classes, such as the Domain Object Class and the Nameserver Object Class in [RFC9083]. There can be many overlapping reasons for each of the "status" member values, such as implementing a lock service, complying with a court order, or addressing domain abuse. A status set defines an object representing the reason for setting a "status" value, so clients and servers can effectively manage the overlapping reasons of individual "status" values using the status sets. This RDAP extension supports returning the assigned client and server status sets with additional data members, such as the mapped "status" values and when the status set was assigned.

Status of This Memo

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 21 January 2027.

Table of Contents

1. Introduction

This document describes an Registration Data Access Protocol (RDAP) extension for including status sets assigned to RDAP object classes, such as the Domain Object Class and the Nameserver Object Class in [RFC9083]. There can be many overlapping reasons for each of the "status" member values, such as implementing a lock service, complying with a court order, or addressing domain abuse. A status set defines an object representing the reason for setting a "status" value, can effectively manage the overlapping reasons of individual "status" values using the status sets. This RDAP extension supports returning the assigned client and server status sets with additional data members, such as the "type", the mapped "status" values, whether the status set is inherited either from the parent object (domain) or to child objects (nameservers), and whether the status set is directly assigned.

This document is complementary to the Extensible Provisioning Protocol (EPP) Status Set Extension [I-D.gould-regext-epp-status-set], but registry operators do not need to implement that extension in their EPP server in order to implement this RDAP extension.

2. Conventions Used in This Document

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.

The example RDAP responses don't include all of the RDAP response members, but are only representative of the members that are relavant to this extension.

3. RDAP Conformance

Servers implementing this extension MUST include the string "statusSet" in the "rdapConformance" ([RFC9083]) array of all relevant RDAP responses. The registration of the "statusSet" extension identifier is described in Section 6.

4. "statusSet_data" Member

The status set information is conveyed via a new top-level object member named "statusSet_data" within the object class that the status sets are assigned to. A status set is an object that defines the reason for the "status" member values for an RDAP object class, such as the Domain Object Class and the Nameserver Object Class in [RFC9083]. The status set can also be used as a marker status set when there are no mapped "status" member values that can drive additional business logic and publishing use cases. An object can have many assigned status sets, and the status sets can include an overlapping set of "status" member values. The "status" member value will be assigned to the object if there is at least one set set assigned to the object with the mapped "status" member value. The "status" member value will be unassigned from the object when all status sets are unassigned with the mapped "status" member value. For example, both the "Registrar Lock" status set and the "Auth Token Lock" status set are mapped to the "client update prohibited" "status" member value, where if either of the status sets are assigned to the object, the "client update prohibited" "status" member value will be assigned. The "client update prohibited" "status" member value will be unassigned if both "Registrar Lock" status set and "Auth Token Lock" status sets are unassigned. The "statusSet_data" member includes a list of status set objects containing the following members:

{
  "objectClassName": "domain",
  "handle": "XXX",
  "ldhName": "example.com",
  "status": [
    "client update prohibited",
    "client delete prohibited",
    "client transfer prohibited"
  ],
  "rdapConformance": ["rdap_level_0", "statusSet"],
  "statusSet_data": [
    {
      "name": "Auth Token Lock",
      "type": "client",
      "inherited": true,
      "assigned": true,
      "created": "2026-05-03T09:00:00.0Z",
      "status": [
        "client update prohibited",
        "client delete prohibited",
        "client transfer prohibited"
      ]
    }
  ]
}
Figure 1: Domain object including the "statusSet_data" member
{
  "objectClassName": "domain",
  "handle": "XXX",
  "ldhName" : "example.com",
  "status" : [
    "client update prohibited",
    "client delete prohibited",
    "client transfer prohibited",
    "server update prohibited",
    "server delete prohibited",
    "server transfer prohibited"
  ],
  "rdapConformance": ["rdap_level_0", "statusSet"],
  "statusSet_data": [
    {
      "name": "Auth Token Lock",
      "type": "client",
      "inherited": true,
      "assigned": true,
      "created": "2026-05-03T09:00:00.0Z",
      "status": [
        "client update prohibited",
        "client delete prohibited",
        "client transfer prohibited"
      ]
    },
    {
      "name": "Registrar Lock",
      "type": "client",
      "inherited": false,
      "assigned": true,
      "created": "2026-05-03T09:00:00.0Z",
      "status": [
        "client update prohibited",
        "client delete prohibited",
        "client transfer prohibited"
      ]
    },
    {
      "name": "Registry Lock",
      "type": "server",
      "inherited": false,
      "assigned": true,
      "created": "2026-05-03T09:10:00.0Z",
      "status": [
        "server update prohibited",
        "server delete prohibited",
        "server transfer prohibited"
      ]
    }
  ]
}
Figure 2: Domain object including the "statusSet_data" member that includes the assigned Client Status Sets ("Auth Token Lock" and "Registrar Lock") and the assigned Server Status Set ("Registry Lock")
{
  "objectClassName": "nameserver",
  "handle": "XXXX",
  "ldhName" : "ns1.xn--fo-5ja.example",
  "status" : [ "active" ],
  "rdapConformance": ["rdap_level_0", "statusSet"],
  "statusSet_data": [
    {
      "name": "Auth Token Lock",
      "type": "client",
      "inherited": true,
      "assigned": false,
      "created": "2026-05-03T09:00:00.0Z",
      "status": [
        "client update prohibited",
        "client delete prohibited",
        "client transfer prohibited"
      ]
    }
  ]
}
Figure 3: Nameserver object includes an the inherited Client Status Set ("Auth Token Lock") from the parent domain name

5. Extension Version Identifier

This extension supports the Point Versioning defined in [I-D.ietf-regext-rdap-versioning] with a Point Extension Version Identifier of "statusSet-0.1". When there are interface changes to the extension, the Point Extension Version Identifier will be incremented, which may not match the draft version number. When the draft becomes a working group document and passes Working Group Last Call (WGLC), the Point Extension Version Identifier will be changed to "statusSet-1.0".

6. IANA Considerations

6.1. RDAP Extensions Registry

IANA is requested to register the following value in the RDAP Extensions Registry:

Extension identifier:
statusSet
Registry operator:
Any
Published specification:
This document.
Contact:
IETF <iesg@ietf.org>
Intended usage:
This extension identifies RDAP extension for status set information.

7. Security Considerations

Status set data may include legal and policy implications. Servers MUST ensure that disclosure of this information complies with applicable data protection laws and policies.

8. References

8.1. Normative References

[I-D.ietf-regext-rdap-versioning]
Gould, J., Keathley, D., and M. Loffredo, "Versioning in the Registration Data Access Protocol (RDAP)", Work in Progress, Internet-Draft, draft-ietf-regext-rdap-versioning-05, , <https://datatracker.ietf.org/doc/html/draft-ietf-regext-rdap-versioning-05>.
[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
[RFC9083]
Hollenbeck, S. and A. Newton, "JSON Responses for the Registration Data Access Protocol (RDAP)", STD 95, RFC 9083, DOI 10.17487/RFC9083, , <https://www.rfc-editor.org/info/rfc9083>.

8.2. Informative References

Authors' Addresses

James Gould
VeriSign, Inc.
12061 Bluemont Way
Reston, VA 20190
United States of America
Poonam Garg
VeriSign, Inc.
12061 Bluemont Way
Reston, VA 20190
United States of America
Mohammad Suhale Malang Khader
VeriSign, Inc.
12061 Bluemont Way
Reston, VA 20190
United States of America