<div dir="ltr">I&#39;m not sure I understand exactly.  Are you trying to limit every request to a certain size limit?  Or are you trying to limit the total number of bytes for all requests by a user to an API over a given amount of time.<div><br></div><div>The Quota policy performs the latter function:  it allows you to limit the total # of bytes that a user can upload over a given time window (e.g. they can only upload 1GB per month).</div><div><br></div><div>If what you want is a request size limiter, then you might need to create a custom policy plugin.</div><div><br></div><div>-Eric</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 5, 2018 at 1:59 AM, Ashish Patel <span dir="ltr">&lt;<a href="mailto:ashish.patel@futuregroup.in" target="_blank">ashish.patel@futuregroup.in</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div class="m_-329555126996163315WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d">Thanks very much Jakub, for explaining it in detail – I understand that – will do more testing.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d">Our main requirement is to restrict consumers with Transfer Quota (say 6000 bytes), for all the requests (meaning reset never happens) – believe this we can
 achieve with “6000 Bytes” of “upload” data per “API” per “Month” / “Year”.  In my below test, it was getting reset every second and I was not getting desired result.<u></u><u></u></span></p><span class="">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d">Thanks &amp; Regards,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d">Ashish Patel<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u> <u></u></span></p>
</span><p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;">From:</span></b><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;"> Jakub Čecháček [mailto:<a href="mailto:jcechace@gmail.com" target="_blank">jcechace@gmail.com</a>]
<br>
<b>Sent:</b> Saturday, March 31, 2018 22:48<br>
<b>To:</b> Ashish Patel<br>
<b>Cc:</b> <a href="mailto:apiman-user@lists.jboss.org" target="_blank">apiman-user@lists.jboss.org</a>; Marc Savy<br>
<b>Subject:</b> Re: [Apiman-user] Transfer Quota Policy<u></u><u></u></span></p><div><div class="h5">
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">Hello Ashish, <u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">if I understand correctly you are confused why the request passes the first time while it gets denied the second time?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Simply the way this policy works is that it blocks all consecutive requests after the one which went over the quota util reset. Meaning we don&#39;t terminate requests in the middle. <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Worst case this can means that with a limit of 1000 bytes you can do a first request with 999 bytes and still send a second one with 1000 bytes -- next one is guaranteed to be blocked though. <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Regards, <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Jakub.<u></u><u></u></p>
</div>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">On Thu, Mar 29, 2018 at 6:46 AM, Ashish Patel &lt;<a href="mailto:ashish.patel@futuregroup.in" target="_blank">ashish.patel@futuregroup.in</a>&gt; wrote:<u></u><u></u></p>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal"><span style="color:#1f497d">Hi Marc,</span><u></u><u></u></p>
<p class="MsoNormal"><span style="color:#1f497d"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="color:#1f497d">Sorry for sending direct mail, can you please help release below mail sent to group to all the audience ?</span><u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"><span style="color:#1f497d">Thanks &amp; Regards,</span><u></u><u></u></p>
<p class="MsoNormal"><span style="color:#1f497d">Ashish Patel</span><u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"><span style="color:#1f497d"> </span><u></u><u></u></p>
<div>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Ashish Patel
<br>
<b>Sent:</b> Friday, March 23, 2018 16:47<br>
<b>To:</b> <a href="mailto:apiman-user@lists.jboss.org" target="_blank">apiman-user@lists.jboss.org</a><br>
<b>Subject:</b> Transfer Quota Policy<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Hi,<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">I need small help understanding Transfer Quota policy.<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Have applied transfer quota policy with below config – attached with one API , set up one client and tested with Rest Client.<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"><b>“6000 Bytes” of “upload” data per “API” per “Second”.</b><u></u><u></u></p>
<p class="MsoNormal"><b> </b><u></u><u></u></p>
<p class="m_-329555126996163315m-7668964410709410614msolistparagraph">1.<span style="font-size:7.0pt">      
</span>Sent single request which has request payload (upload) &gt; 6000 bytes – Instead of blocking it, it allowed the request and sent the response – However, Apiman is aware of the overshot transfer – can be seen from the Headers.<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"><span style="color:red">x-transferquota-limit →6000</span><u></u><u></u></p>
<p class="MsoNormal"><span style="color:red">x-transferquota-remaining →-4019</span><u></u><u></u></p>
<p class="MsoNormal"><span style="color:red">x-transferquota-reset →0</span><u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="m_-329555126996163315m-7668964410709410614msolistparagraph">2.<span style="font-size:7.0pt">      
</span>Sent back to back multiple request (same payload as above) and at times it failed with failure code : 10013, &quot;Transfer quota exceeded.&quot;. This means it is applying the policy but after some requests , not sure how many.
<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">x-policy-failure-code →10013<u></u><u></u></p>
<p class="MsoNormal">x-policy-failure-message →Transfer quota exceeded.<u></u><u></u></p>
<p class="MsoNormal">x-policy-failure-type →Other<u></u><u></u></p>
<p class="MsoNormal">x-powered-by →Undertow/1<u></u><u></u></p>
<p class="MsoNormal"><span style="color:red">x-transferquota-limit →6000</span><u></u><u></u></p>
<p class="MsoNormal"><span style="color:red">x-transferquota-remaining →-4019</span><u></u><u></u></p>
<p class="MsoNormal"><span style="color:red">x-transferquota-reset →0</span><u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Any idea, why it’s not failing in #1 scenario – Ideally it must fail in all requests as payload size is greater than defined.<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-IN">Thanks &amp; Regards,</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-IN">Ashish Patel</span><u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
</div>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
______________________________<wbr>_________________<br>
Apiman-user mailing list<br>
<a href="mailto:Apiman-user@lists.jboss.org" target="_blank">Apiman-user@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/apiman-user" target="_blank">https://lists.jboss.org/<wbr>mailman/listinfo/apiman-user</a><u></u><u></u></p>
</blockquote>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div></div></div>
</div>

<br>______________________________<wbr>_________________<br>
Apiman-user mailing list<br>
<a href="mailto:Apiman-user@lists.jboss.org">Apiman-user@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/apiman-user" rel="noreferrer" target="_blank">https://lists.jboss.org/<wbr>mailman/listinfo/apiman-user</a><br>
<br></blockquote></div><br></div>