ietf-wg-httpapi / ratelimit-headers

Repository for IETF WG draft ratelimit-headers
Other
42 stars 4 forks source link

`Limit` parameter registry #49

Closed ioggstream closed 2 years ago

ioggstream commented 3 years ago

I wish

Since parameters are always allowed in Limit we could define a "registry" and add them subsequently as soon as implementers needs them.

They can be used to specify:

All data in parameters is informative.

unleashed commented 3 years ago

I assume there must be previous art in keeping a registry like this that we can mimic, but I can't think of a good example off the top of my head that wouldn't be using a separate registry or document to manage that. What's your thinking about where to keep this registry?

ioggstream commented 3 years ago

@unleashed registries are usually maintained by IANA: we can check with @richsalz if that's possible...

richsalz commented 3 years ago

We can pretty easily define a registry. You include a section in the RFC. See https://www.rfc-editor.org/rfc/rfc5226.

You define a table that is the registry, and meanings of the columns, and perhaps populate it with the initial entries.

The WG decides some rules, like "X-" is left for experimentation. There must be something written (it can be an internet draft or something else on the net), whether a set of "experts" need to review for comliance and clarity, and so on.

richsalz commented 3 years ago

If you'd like, I can make a PR that provides the initial text for this next week.

unleashed commented 3 years ago

Yes, that would be great @richsalz!

richsalz commented 3 years ago

Can you give me an initial set of fields (even if it's just one or two), and an example, and a pointer to which section in the current draft? thanks.

ioggstream commented 3 years ago

Hi @richsalz Thanks for your support! To make best use of your time, I'd wait for #58 to be merged (waiting for mnot's review) so you can PR directly vs main.

WRT the parameter registry: currently the initial set is just w:

  :  The "w" parameter specifies a time window.
     Its syntax is a "time-window" defined in {{time-window}}.

Other parameters are allowed and can be regarded as comments.

See: https://github.com/ietf-wg-httpapi/ratelimit-headers/pull/58/files#diff-d26a6f407efe0e4913cbcf7bf0e2a164bee5edea8bf2fdc4aa97a7ceb3acc03cR269

Do you have a proposal for the registration policy?

richsalz commented 3 years ago

Thanks, I'll wait.

Do you have a proposal for the registration policy?

I think it should be expert review. That means that there should be a document describing the parameter, and that the experts can be directed to verify that the documentation is clear and unambiguous, and that there is no significant overlap with the parameters already defined.

The other choices are "specification required" and "first-come first-served."

ioggstream commented 2 years ago

@richsalz we just merged structured fields in RateLimit Headers!

richsalz commented 2 years ago

Thanks for the ping, I saw :) I'll propose a PR soon.

richsalz commented 2 years ago

https://github.com/ietf-wg-httpapi/ratelimit-headers/pull/60 I think it needs to be tweaked, since it's just defined as a "quota" registry in that PR. Should it be a ratelimit fields registry?