ratelimits: Exempt renewals from NewOrdersPerAccount and CertificatesPerDomain#7513
Conversation
4e6bfed to
17eb6c0
Compare
17eb6c0 to
9bd02cb
Compare
9bd02cb to
596a850
Compare
|
@beautifulentropy, this PR appears to contain configuration and/or SQL schema changes. Please ensure that a corresponding deployment ticket has been filed with the new values. |
|
@beautifulentropy, this PR adds one or more new feature flags: CheckRenewalExemptionAtWFE. As such, this PR must be accompanied by a review of the Let's Encrypt CP/CPS to ensure that our behavior both before and after this flag is flipped is compliant with that document. Please conduct such a review, then add your findings to the PR description in a paragraph beginning with "CPS Compliance Review:". |
aarongable
left a comment
There was a problem hiding this comment.
I must be missing something, because I don't understand why this requires a new isRenewal boolean instead of re-using the limitsExempt boolean.
Lines 2526 to 2535 in 7a6632d
Lines 1589 to 1618 in 7a6632d |
fbdf682 to
13a7de6
Compare
aarongable
left a comment
There was a problem hiding this comment.
Thanks, this makes a lot more sense to my head with the updated field names. LGTM.
| wfe.stats.ariReplacementOrders.With(prometheus.Labels{ | ||
| "isReplacement": fmt.Sprintf("%t", replaces != ""), | ||
| "limitsExempt": fmt.Sprintf("%t", limitsExempt), | ||
| "limitsExempt": fmt.Sprintf("%t", isARIRenewal), |
There was a problem hiding this comment.
| "limitsExempt": fmt.Sprintf("%t", isARIRenewal), | |
| "isARIRenewal": fmt.Sprintf("%t", isARIRenewal), |
NewOrderRequestfieldLimitsExempttoIsARIRenewalNewOrderRequestfield,IsRenewalCheckRenewalExemptionAtWFEWFE:
CheckRenewalExemptionAtWFEis setNewOrdersPerAccountandCertificatesPerDomainlimit checks when renewal detection indicates the the order is a renewal.RA:
NewOrdersPerAccountandCertificatesPerDomainlimit checks whenCheckRenewalExemptionAtWFEis set and theNewOrderRequestindicates that the order is a renewal.Fixes #7508
Part of #5545