On Mon, Oct 29, 2018 at 1:17 AM Linlin Zhou <zhoulin...@cnnic.cn> wrote:

> Dear Eric,
> Please see my feedbacks inline. I've removed the clarified items.
>
> Regards,
> Linlin
> ------------------------------
> Linlin Zhou
>
>
>
>> ----------------------------------------------------------------------
>> DISCUSS:
>> ----------------------------------------------------------------------
>>
>> Rich version of this review at:
>> https://mozphab-ietf.devsvcdev.mozaws.net/D3624
>>
>>
>> This DISCUSS should be easy to clear. I have noted a few points where
>> I do not believe that the spec is sufficiently clear to implement.
>>
>> DETAIL
>> S 3.4.
>> >
>> >      o  clientUpdateProhibited, serverUpdateProhibited: Requests to
>> update
>> >         the object (other than to remove this status) MUST be rejected..
>> >
>> >      o  clientDeleteProhibited, serverDeleteProhibited: Requests to
>> delete
>> >         the object MUST be rejected.
>>
>> How does access control work here? If either of these values are set,
>> then it must be rejected?
>> [Linlin] If you mean that clientUpdateProhibited and
>> serverUpdateProhibited are set, these two statuses can coexist in the
>> system. "clientUpdateProhibited" is set by the client and
>> "serverUpdateProhibited" is set by the server.
>>
>>
> That's not what I mean. What I mean is "what is the access control rule
> that the server is supposed to apply".
> [Linlin] The EPP statuses defined in draft-ietf-regext-org follows the
> model used in the other EPP RFC's, including RFC 5731- RFC 5733. The
> statuses define the command-level access control rules, where each
> supported transform command (update and delete) includes a corresponding
> client-settable ("client") and server-settable ("server") that prohibits
> execution of the command by the client. The client is allowed make an
> update only to remove the "clientUpdateProhibited" status when the
> "clientUpdateProhibited" status is set. Client-specific access control
> rules (e.g., sponsoring client versus non-sponsoring client) is not defined
> by the statuses, but is up to server policy.
>
>
I'm sorry, but this still isn't clear. Can you perhaps send some
pseudocode?

>
>>
>>
>>
>> S 4.1.2.
>> >
>> >      o  One or more <org:status> elements that contain the operational
>> >         status of the organization, as defined in Section 3.4.
>> >
>> >      o  An OPTIONAL <org:parentId> element that contains the identifier
>> of
>> >         the parent object, as defined in Section 3.6.
>>
>> It's not clear to me what's really optional here, because you say
>> above that it's up to the server but then you label some stuff here as
>> OPTIONAL
>> [Linlin] If this sentence makes confusion. How about changing it to "It
>> is up to the server policy to decide
>> what optional attributes will be returned of an organization object." or
>> just remove it?
>>
>>
> I don't know, because I don't understand the semantics you are aiming for..
> Are the other attributes optional.
> [Linlin] To be consistent with other EPP RFCs, I suggest removing the
> sentence "It is up to the server policy to decide what attributes will be
> returned of an organization object."
>
>
Does that mean the other attributes are mandatory? If so, you need to say
that.



>
> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
>
>>
>>
>>
>> S 3.4.
>> >         has been processed for the object, but the action has not been
>> >         completed by the server.  Server operators can delay action
>> >         completion for a variety of reasons, such as to allow for human
>> >         review or third-party action.  A transform command that is
>> >         processed, but whose requested action is pending, is noted with
>> >         response code 1001.
>>
>> Who can set this?
>>  [Linlin] The server can set the error code to 1001 and send the response
>> to the client.
>>
>>
> Sorry, context got lost. Who can set "pendingCreate"?
> [Linlin] PendingCreate or PendingXXX statuses are set by servers.
>
>
Then you should say so in the text.

>
>
>> S 3.5.
>> >         association with another object.  The "linked" status is not
>> >         explicitly set by the client.  Servers SHOULD provide services
>> to
>> >         determine existing object associations.
>> >
>> >      o  clientLinkProhibited, serverLinkProhibited: Requests to add new
>> >         links to the role MUST be rejected.
>>
>> see above question about access control
>> [Linlin] If both the clientXXXProhibited and serverXXXProhibited are set,
>> this situation is permitted.
>>
>>
> Sorry, this is still not clear to me.
>
>>
>>
>> [Linlin] Please see the above response.
>
>
Sorry, still not clear.

>
>
>> S 4.2.1.
>> >         status of the organization, as defined in Section 3.4.
>> >
>> >      o  An OPTIONAL <org:parentId> element that contains the identifier
>> of
>> >         the parent object, as defined in Section 3.6.
>> >
>> >      o  Zero to two <org:postalInfo> elements that contain
>> postal-address
>>
>> These rules looks duplicative of <info>. Is there a way to collapse
>> them?
>>
>> [Linlin] The attributes need to be defined differently for the create
> and the info response, since the info response needs to be more flexible
> with what is returned based on server policy decisions. Yes, they are the
> same elements, but whether they are required or optional may be different
> in a create than in a info response. The attributes are duplicated in the
> other EPP RFCs (RFC 5731 – 5733) for ease in implementation. Attempting to
> collapse the attributes will make it more difficult for implementors and
> will not be consistent with the other EPP RFCs.
>
>
This is a comment, not a DISCUSS, so you're free to ignore it, but as
someone who as implemented quite a few specifications, I don't agree with
the claim that it would make things more difficult for implementors.
Implementors want to reuse code and if it's a lot of work to see the
difference between two parts of the spec, this leads to mistakes.

>
>
>> S 4.2.5.
>> >      where at least one child element MUST be present:
>> >
>> >      o  An OPTIONAL <org:parentId> element that contains the identifier
>> of
>> >         the parent object..
>> >
>> >      o  Zero to two <org:postalInfo> elements that contain
>> postal-address
>>
>> This also seems duplicative.
>> [Linlin] Indeed some elements descriptions appear some times in the
>> document. I'd like to have some explanations here again.
>> This document borrowed the text structure from RFC5731, RFC5732 and
>> RFC5733 of EPP. I think the intension of having some duplicated
>> descriptions is for users' easy reading. When seeing the examples, they do
>> not have to scroll up and down to find the elements definitions. Some
>> descriptions are a little different, although <org:postalInfo> elements
>> appear to be duplicated. Such as, "One or more <org:status> elements" in
>> <info> response and "Zero or more <org:status> elements" in <create>
>> command. Of course putting all the elements definitions in a section is a
>> concise way for the document structure.
>>
>>
> It's much harder for implementors because they don't know how to refactor
> common code.
> [Linlin] Duplicating the attributes is needed to address server policy
> differences between create and the info response, to make it easier for
> implementors, and to be consistent with the other EPP RFCs (RFC 5731 - RFC
> 5733).
>
>
Again, it's *not* easier for implementors.

-Ekr


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

Reply via email to