Clients of listed AS numbers and countries get a percentage of every limit, so they are refused, and once bans exist banned, after fewer requests, as sneak set out in #3 and the "Biased thresholds" settings in SPEC.md (#9) describe. GeoJS answers already carry the AS number.
Not scheduled: it waits for sneak to put it in a milestone.
Model: opus-5-5
Clients of listed AS numbers and countries get a percentage of every limit, so they are refused, and once bans exist banned, after fewer requests, as sneak set out in https://git.eeqj.de/sneak/smallwebwaf/issues/3 and the "Biased thresholds" settings in `SPEC.md` (https://git.eeqj.de/sneak/smallwebwaf/pulls/9) describe. GeoJS answers already carry the AS number.
Not scheduled: it waits for sneak to put it in a milestone.
Model: opus-5-5
Plan. The build order in SPEC.md puts the biased thresholds in the third stage. Built after #95 (every client's AS number and country) and #20 (byte limits), as "Biased thresholds" gives them. One PR to next.
SWWAF_ASN_LIMIT_PERCENT (AS14061:50,...) and SWWAF_COUNTRY_LIMIT_PERCENT (CN:25,...): a client of a listed AS number or country gets that percentage of every request and byte limit; 0 is a zero allowance, so its first request breaks a limit. The lowest percentage that applies wins.
SWWAF_ASN_BYTES_PERCENT, SWWAF_COUNTRY_BYTES_PERCENT: overrides for byte limits only.
SWWAF_UNKNOWN_LIMIT_PERCENT (default 100): for clients the lookup cannot place, including one whose answer has not come in time.
A request waits for its client's first answer, up to SWWAF_LOOKUP_TIMEOUT, while any of these is set; SWWAF_LOOKUP_SOURCE=off with one set stops the start naming both. Malformed entries, a percentage over 100, or a code listed twice stop the start naming the setting.
The request log's limit_percent and which setting set it; ban notes and alerts give the percentage applied.
README.md documents the settings and that no budget is shared by a whole AS number or country.
Not in this unit: SWWAF_ASN_LIMIT_PERCENT_URL, which is fetched like the blocklists and comes with them.
Definition of done: tests show each setting lowering the request and byte limits, 0, the lowest percentage winning, the byte overrides, unknown clients, the wait only while a setting is set, each start error, and the log field, notes and alerts; each test failing with its rule broken; make check green; one PR to next, passed by a reviewer who did not write it.
Model: opus-5-5
Plan. The build order in `SPEC.md` puts the biased thresholds in the third stage. Built after https://git.eeqj.de/sneak/smallwebwaf/issues/95 (every client's AS number and country) and https://git.eeqj.de/sneak/smallwebwaf/issues/20 (byte limits), as "Biased thresholds" gives them. One PR to `next`.
- `SWWAF_ASN_LIMIT_PERCENT` (`AS14061:50,...`) and `SWWAF_COUNTRY_LIMIT_PERCENT` (`CN:25,...`): a client of a listed AS number or country gets that percentage of every request and byte limit; `0` is a zero allowance, so its first request breaks a limit. The lowest percentage that applies wins.
- `SWWAF_ASN_BYTES_PERCENT`, `SWWAF_COUNTRY_BYTES_PERCENT`: overrides for byte limits only.
- `SWWAF_UNKNOWN_LIMIT_PERCENT` (default `100`): for clients the lookup cannot place, including one whose answer has not come in time.
- A request waits for its client's first answer, up to `SWWAF_LOOKUP_TIMEOUT`, while any of these is set; `SWWAF_LOOKUP_SOURCE=off` with one set stops the start naming both. Malformed entries, a percentage over 100, or a code listed twice stop the start naming the setting.
- The request log's `limit_percent` and which setting set it; ban notes and alerts give the percentage applied.
- `README.md` documents the settings and that no budget is shared by a whole AS number or country.
Not in this unit: `SWWAF_ASN_LIMIT_PERCENT_URL`, which is fetched like the blocklists and comes with them.
Definition of done: tests show each setting lowering the request and byte limits, `0`, the lowest percentage winning, the byte overrides, unknown clients, the wait only while a setting is set, each start error, and the log field, notes and alerts; each test failing with its rule broken; `make check` green; one PR to `next`, passed by a reviewer who did not write it.
Model: opus-5-5
clawbot
self-assigned this 2026-10-07 07:30:47 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Clients of listed AS numbers and countries get a percentage of every limit, so they are refused, and once bans exist banned, after fewer requests, as sneak set out in #3 and the "Biased thresholds" settings in
SPEC.md(#9) describe. GeoJS answers already carry the AS number.Not scheduled: it waits for sneak to put it in a milestone.
Model: opus-5-5
Plan. The build order in
SPEC.mdputs the biased thresholds in the third stage. Built after #95 (every client's AS number and country) and #20 (byte limits), as "Biased thresholds" gives them. One PR tonext.SWWAF_ASN_LIMIT_PERCENT(AS14061:50,...) andSWWAF_COUNTRY_LIMIT_PERCENT(CN:25,...): a client of a listed AS number or country gets that percentage of every request and byte limit;0is a zero allowance, so its first request breaks a limit. The lowest percentage that applies wins.SWWAF_ASN_BYTES_PERCENT,SWWAF_COUNTRY_BYTES_PERCENT: overrides for byte limits only.SWWAF_UNKNOWN_LIMIT_PERCENT(default100): for clients the lookup cannot place, including one whose answer has not come in time.SWWAF_LOOKUP_TIMEOUT, while any of these is set;SWWAF_LOOKUP_SOURCE=offwith one set stops the start naming both. Malformed entries, a percentage over 100, or a code listed twice stop the start naming the setting.limit_percentand which setting set it; ban notes and alerts give the percentage applied.README.mddocuments the settings and that no budget is shared by a whole AS number or country.Not in this unit:
SWWAF_ASN_LIMIT_PERCENT_URL, which is fetched like the blocklists and comes with them.Definition of done: tests show each setting lowering the request and byte limits,
0, the lowest percentage winning, the byte overrides, unknown clients, the wait only while a setting is set, each start error, and the log field, notes and alerts; each test failing with its rule broken;make checkgreen; one PR tonext, passed by a reviewer who did not write it.Model: opus-5-5
Built in #103, for review.
Model: opus-5-5