Thank you to each of you who have shared your thoughts and voted. To make
things official, after a week I'm calling the vote with 4 in favor of
renaming the actions and 1 opposed. I'll finish up the draft PR and mark it
as ready for review.



On Mon, Jul 29, 2024 at 2:13 PM Matthew Williams <mat...@icloud.com.invalid>
wrote:

> I’d vote for 2. Rename them and we can make the allow/deny actions a
> syntax error so they get caught early.
>
> Something I wasn’t clear on, Can you confirm that this is planned for ATS
> 11 or 10.x - not the upcoming release of 10?
>
> Matt
>
> On 2024/07/22 17:44:27 Brian Neradt wrote:
> > Hi dev@trafficserver.apache.org,
> >
> > We're processing through ACL filter action names for 10.x. For context,
> for
> > 9.x and before, these are how actions behave for ip_allow.yaml rules and
> > remap.config ACL filters:
> >
> > * ip_allow.yaml: These rules currently support allow and deny actions.
> > allow specifies an allow list of methods for requests, with all other
> > requests of different methods being denied. deny species a deny list of
> > methods, with all other requests of different methods being allowed. For
> > instance, an allow action ip_allow.yaml rule for GET and HEAD methods
> will
> > allow GET and HEAD requests, but deny all other methods, such as POST,
> > PUSH, etc.
> > * remap.config: Remap ACLs support allow and deny actions as well, but
> > these actions add to the allow list or add to the deny list for lower
> level
> > ACL filters or ip_allow.yaml rules. For instance, a deny ACL rule for
> POST
> > will add the denial of POST requests while allowing all other request
> > method filtering to be handled by other applicable remap filters or
> > ip_allow.yaml rules.
> >
> > For 10.x, we plan to rename the latter ACL behavior to add_allow and
> > add_deny to clarify their behavior and to disambiguate them from the
> > ip_allow.yaml rule actions that previously had the same name. There is a
> > compatibility configuration, which will be on by default, which makes it
> so
> > that the allow and deny actions will still function as they did in 9.x.
> > Thus, 9.x remap.config ACLs will, by default, behave the same in 10.x.
> >
> > 10.x adds functionality to ACL filters such that they will support
> actions
> > that do behave like ip_allow.yaml allow and deny rules. That is, a user
> can
> > specify an ACL filter that will have an allow list of, say, GET and HEAD,
> > such that only GET and HEAD requests are allowed while all other methods
> > are denied, with no other filter actions or ip_allow.yaml rules being
> > inspected. In this way, the ACL filter will behave like an allow
> > ip_allow.yaml rule for GET and HEAD.
> >
> > So the question for vote is: for this new 10.x behavior, how should we
> name
> > the ACL actions that will behave like ip_allow.yaml allow and deny
> actions?
> > The options are:
> >
> > * *Keep the allow and deny action names for these filters*. These actions
> > will behave identically to the ip_allow.yaml actions: that is, they will
> > specify allow or deny lists, with requests of methods outside of those
> > lists being denied or allowed, respectively. (Again, to make this
> explicit
> > twice, by default ATS 10 will behave in compatibility mode in which the
> > allow and deny actions will act like add_allow and add_deny, just as they
> > did in 9.x. The question here is for non-compatibility mode for 10.x and
> > for the default 11.x behavior) The advantage of keeping allow/deny ACL
> > actions the same name as the ip_allow.yaml rule actions is that they will
> > in fact behave the same and those "allow" and "deny" actions are pretty
> > intuitive for ip_allow.yaml. That is, they allow or deny a list of
> methods.
> > The disadvantage is that someone not reading the release notes in 11.x,
> > say, after we remove the compatibility mode, will suddenly have their
> allow
> > and deny rules behaving differently and this will surprise them. And,
> since
> > we are re-using those names, ATS will not be able to warn the user of the
> > misuse of the old action because it won't be able to tell the difference
> > between an unintentional upgrade from 9.x allow/deny from an intentional
> > use of the new allow/deny semantic.
> > * The second option is to *rename these new actions* and not keep the old
> > "allow" and "deny" action names at all. For consistency, since these
> > actions will behave the same as the ip_allow.yaml actions that are
> > currently allow and deny, we should rename those as well. The rename can
> be
> > open to discussion, and doesn't have to hold up this vote. The vote is
> > whether to keep the same name, or to rename. But, just to give some ideas
> > of what this can look like, they can be renamed to "set_allow" and
> > "set_deny", or "allow_only" and "deny_only", or "allow_these" and
> > "deny_these".  The advantage of the rename is that we will be able to
> mark
> > the old "allow" and "deny" actions as forbidden and warn the user that
> they
> > need to consciously choose either add_allow/add_deny or the new action
> > names we decide upon using. The disadvantage is that the "allow" and
> "deny"
> > actions are pretty clear and simple in their meanings, especially in
> > ip_allow.yaml, and we would be giving that up via the rename. Arguably,
> if
> > there weren't a compatibility issue, we would choose allow/add_allow and
> > deny/add_deny. If that's the case, an interlocutor could reason that
> giving
> > people a full release to transition is enough time to reuse original
> names
> > capturing the semantic which otherwise makes sense.
> >
> > I hope that I am presenting the tradeoffs of the two options fairly, but
> > naturally feel free to add comments along with your vote.
> >
> > Concisely, can you please vote on one of the following naming options for
> > these new ACL filter action behaviors which will function like allow/deny
> > ip_allow.yaml rule actions?
> >
> > 1. Keep the allow/deny action names.
> > 2. Rename the allow/deny action names.
> >
> > Thank you!
> >
> > Brian
> > --
> > "Come to Me, all who are weary and heavy-laden, and I will
> > give you rest. Take My yoke upon you and learn from Me, for
> > I am gentle and humble in heart, and you will find rest for
> > your souls. For My yoke is easy and My burden is light."
> >
> >     ~ Matthew 11:28-30
> >



-- 
"Come to Me, all who are weary and heavy-laden, and I will
give you rest. Take My yoke upon you and learn from Me, for
I am gentle and humble in heart, and you will find rest for
your souls. For My yoke is easy and My burden is light."

    ~ Matthew 11:28-30

Reply via email to