Hi,

As an action item after IETF 115 I reviewed draft-ietf-regext-rdap-redacted-09 before WG LC and have the following questions / remarks:

Section 3, first paragraph:

> Redaction in RDAP can be handled in multiple ways.  The use of
> placeholder text for the values of the RDAP fields, such as the
> placeholder text "XXXX", MUST NOT be used for redaction.  A
> placeholder text value will not match the format requirements of each
> of the RDAP fields and provides an inconsistent and unreliable
> redaction signal.

Is the normative language adequate here? Firstly, I am not sure if the text can be well understood. Does it mean that use of a fixed placeholder is prohibited, or any placeholder? I can imagine a way of using placeholders, which do not necessarily break the format requirements, therefore the second sentence shall not categorically tell "will not match" as it may not be even true.

My proposal would be to use SHOULD NOT instead of MUST NOT. It can be useful for the servers willing still to support clients not implementing this extension in the transition period to populate fields with placeholders instead of just empty/missing fields.

---

Section 3, second paragraph:

The whole paragraph deals with particularities of redacting jCard with some very specific guidelines and examples. Wouldn't it be more and future proof to have a general statement that redacting the data MUST NOT break the underlying data format? The same remark applies then later to 3.2. with normative language for jCard redaction.

---
4.2.  "redacted" Member

The whole "redacted" member and especially the "path" and "replacementPath" members shall allow the client to recognise parts of the JSON response which have been transformed
in the process of redaction.

Here some interesting questions:
- do the paths refer to the object before or after the redaction?
- if the paths refer to the object before the redaction, how should the client be able to interpret the path if not having access to this object, especially the JSONPath may even match multiple paths, e.g. from result and the path the client cannot digest which paths have been really removed? More to that each redaction step is actually transforming the object, so the order of redaction is also relevant in this case. Normalized Paths from JSONPath allow "reversing" the process from the result object if the order of redaction is being held. - if the paths refer to the object after the redaction, likely the path member should be OPTIONAL not not required for redaction by removal or replacement, because in this case the object likely does not exist in the result object

With Section 5 being not-normative and about processing by the server, the draft should similarly include considerations for processing of the responses by the clients.

---

"pathLang" member

What is the rationale behind introducing this extension point? Right now the RFC specifies only one language, which is default one. If there will be an additional one I would expect it added by a RFC also answering some questions how to transition from one path language to another. Without any way for the client to express which "pathLang" it would like to get response with, the server would only be able to migrate after all clients support both formats, otherwise risking some clients to break. And if this "pathLang" member is to persist, shouldn't there be IANA registry for allowed values, so that the clients have an ide what to implement?

---

3.1.  Redaction by Removal Method

> The Redaction by Removal Method MUST NOT be used to remove a field
> using the position in a fixed length array to signal the redacted
> field.  For example, removal of an individual data field in jCard
> [RFC7095] will result in a non-conformant jCard [RFC7095] array
> definition.

Is the first normative sentence meant to apply to every case, or just the case where removal of such field would render an invalid jCard? I think there is quite legit way or removing whole objects by position in a fixed length array, like "path": "$.entities[0]" which should be still allowed.

---

6.2.  JSON Values Registry

Registry for "redacted name" allows to identify what has been removed without interpreting it from the path member. This is of a great benefit, looking at the difficulties of interpreting the "path" member I mentioned above. However, semantically, isn't this registry rather defining the members and objects of RDAP response in a general sense? I mean "Registry Domain ID" means the same no matter if in context of redaction or in context of RDAP response and actually IMHO we should make sure it means the same in any other RDAP context it would be used in the future. IMHO this IANA registry shall be a generic one defining labels to the information pieces in RDAP responses.

---

Examples with entity role indexing.

The draft has many examples of the kind $.entities[?(@.roles[0]=='registrant')] which might be incorrect if an entity holds multiple roles, as RFC9083 does not specify any particular order of roles in the array and also depending on the roles held by the entity the array might have different length. This means that 'registrant' can be at index 0, but also at index 1. The correct expression would rather be with wildcard index as per 3.5.2. of JSONPath, like this $.entities[?(@.roles[*]=='registrant')]. The example of multiple roles shows also a tricky corner-case, as the server may want to redact a contact in one role but same time not redact it due to other role attached to the same entity. Not sure if JSONPath allows to express this, but this might remain an implementation detail of the server and not particularly a concern of this draft (apart from the questions to 4.2 above).

---

Re previous discussion on multiple email addresses.

Just a remark that after the last discussion on draft-ietf-regext-epp-eai it may be more common to have more than one email address. Likely RDAP needs to get EAI-aware as well on the response side.


Kind Regards,

Pawel



_______________________________________________
regext mailing list
regext@ietf.org
https://www.ietf.org/mailman/listinfo/regext

Reply via email to