mirror of
https://github.com/fosrl/pangolin.git
synced 2026-07-22 12:02:45 -05:00
[GH-ISSUE #3101] Dashboard triggers a flood of parallel API calls, causing CrowdSec to ban the client IP (http-crawl-non_statics) #23606
Reference in New Issue
Block a user
Originally created by @Vigno04 on GitHub (May 17, 2026).
Original GitHub issue: https://github.com/fosrl/pangolin/issues/3101
Describe the Bug
When a user navigates to the Settings > Resources or proxy dashboard page (/settings/resources/proxy), the React/Next.js frontend client aggressively launches a massive flood of parallel client-side API requests to fetch individual certificate verifications, configuration details, and historical status logs for every single configured proxy (e.g. GET /api/v1/resource/{id}/status-history?days=30, GET /api/v1/org/{org}/certificate/domain1/{domain}, GET /settings/resources/proxy/{name}?_rsc=...).
For administrators running Pangolin behind a standard CrowdSec setup (with the default crowdsecurity/http-crawl-non_statics scenario enabled), this extreme spike of parallel requests to dynamic paths is flagged as an aggressive automated scanner or crawler. Consequently, CrowdSec immediately bans the administrator's IP address, completely locking them out of the Pangolin dashboard and all other proxy-hosted services with a 403 Forbidden error.
During a single load of this page, our Traefik access log recorded 119 successful dynamic GET requests in under 60 seconds from the client's browser, with bursts exceeding 25+ requests in a single second.
Environment
To Reproduce
Steps to reproduce the behavior:
Expected Behavior
The dashboard page should load lists of resources in a rate-limited or batched manner, rather than launching an unrestricted deluge of concurrent client-side requests:
@LaurenceJJones commented on GitHub (May 18, 2026):
https://github.com/fosrl/pangolin/issues/3054
Please see above, as per installation agreement you will look after the crowdsec side.
Yes we can and will improve the api calls but for now you must use an expression whitelist.