Hi Andy and Pawel,

I see the following possible examples for scenario 1:

A) Response extension

A.1) Extending an existing extension with an optional member:

   "fooV0_xx": {

     ....,

     "fooV1_yy": .....

  }


A.2)  Providing additional information of an extension through a separate member

  "fooV0_xx":  ....,

  "fooV1_yy": .....


This case is similar to the one corresponding to scenario 2 but here "fooV1_yy" is not going to replace "fooV1_xx".


A.3) Defining an extension that includes an existing extension:

   "fooV1_yy": {

       .....,

      "fooV0_xx":  .....

  }


In this case, both fooV0 and fooV1 extensions would continue to be used anyway regardless of whether "fooV0_xx" is also returned along with "fooV1_yy" (case A.2) or "fooV1_yy" is going to replace "fooV0_xx" (scenario 2 - transition between two extension versions). IMO, at least in the case of replacement, the rdap-versioning document should require renaming "fooV0_xx" to "xx"

   "fooV1_yy": {

     .....,

    "xx":  .....

  }


A.4) Any combination of A.1, A.2 and A.3.


B) Request extension

  B.1) Introducing an optional query parameter (similar to A.2)

  B.2) Extending an existing path with an optional sub-path (similar to A.1)

  B.3) Both B.1 and B.2


C)  Extending both request and response as indicated by A and B


Finally, I would like to point out that all the above-mentioned cases can be handled via the rdap-versioning specification in a more elegant and efficient way, as it allows any type of change to be handled in the same manner, i.e., switching between supported versions of the same extension on demand.


 Best,

Mario


Il 24/10/2025 09:13, Pawel Kowalik ha scritto:
Hi Andy,

I think 1) is impossible under current rules what was brought up by few folks already but it may be me interpreting the things wrongly.

If you may lay down an example it would be helpful to avoid misunderstanding.

Kind Regards,

Pawel

On 23.10.25 21:38, Andy Newton wrote:


On 23-10-2025 4:27 AM, Pawel Kowalik wrote:
Hi Jasdip,

On 22.10.25 17:29, Jasdip Singh wrote:
Hi Pawel,

*From: *Pawel Kowalik <[email protected]>
*Date: *Wednesday, October 22, 2025 at 1:55 AM
*To: *Jasdip Singh <[email protected]>, Andy Newton <[email protected]>, [email protected] <[email protected]> *Subject: *Re: [regext] Re: RDAP Extensions - opaque versions, extension identifiers and rdap conformance
<snip>

See my other E-mail I sent yesterday.

What you mention is variant 1.

Data is 100% duplicated between the "versions" (even if JSON-wise the payloads under foo0_x and foo1_x are back compatible).

After foo0_x is removed and only foo1_x payload remains, the clients only knowing foo0_x break - so the statement that it is safe to remove is false.


[JS] It’s a trade-off. From reputational angle, no RDAP service would want to break clients inadvertently and without sufficient forewarning about sunsetting older versions of an extension. However, operationally, backwards-compatibility is generally not for perpetuity since it costs to maintain older versions. Yes, the current approach in the draft (approach 1 per your earlier note) costs in terms of larger responses because of data duplication but then there would be a way for clients to negotiate a particular version with the server through, say, the “exts_list” parameter approach, as long as that server decides to keep supporting older versions from cost perspective. IMHO, it would be prudent to consider this to help keep the RDAP extensions architecture simple.

This is fine and if we are in consensus this is the way to go, then 5.3.1 shall be removed and 5.3 extended with a clear guidance that pure RDAP does not offer versioning or back compatibility because the data/parameters/paths are in distinct elements so to support older clients all versions of an extensions have to be used in the response. If one would want one draft versioning is the solution. This is also what I hear from Jim G. Most of the text if not all of 5.3.2 can be integrated into 5.3 because it actually applies all times.

I think there are two different things being discussed:

1. One in which a "successor" extension re-uses parts of the previous extension by just including that extension. 2. And one in which a "successor" extension duplicates all parts of the previous extension but publishes both during a transition time.

Anything fancier must use the versioning scheme in the versioning draft.

While scenario 2 is simpler, scenario 1 is indistinguishable from one extension referencing another. And both are currently possible in STD 95. Section 5.3.1 and 5.3.2 just lays out the issues with scenario 1. However, there are issues with scenario 2 (see Tom's email), which we might need to discuss in the document.

As I see it, there are a couple of things we may need to add or better describe in the document:

a. referencing of one extension by another (an example would be good).
b. describe scenario 2 and the compatibility issues that may arise with it.
c. better describe scenario 1 (again, examples).

-andy

_______________________________________________
regext mailing list [email protected]
To unsubscribe send an email [email protected]

--
Dott. Mario Loffredo
Senior Technologist
Technological Unit “Digital Innovation”
Institute of Informatics and Telematics (IIT)
National Research Council (CNR)
Address: Via G. Moruzzi 1, I-56124 PISA, Italy
Phone: +39.0503153497
Web:http://www.iit.cnr.it/mario.loffredo
_______________________________________________
regext mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to