RateLint scans codebases for rate limiting anti-patterns, missing throttling middleware, brute force exposure, unprotected endpoints, missing backoff strategies, unbounded queues, retry storm vulnerability, and flow control gaps. It uses regex-based pattern matching against 90 rate-limiting-specific patterns across 6 categories, lefthook for git hook integration, and produces markdown reports with actionable remediation guidance. 100% local. Zero telemetry.
ratelint scan [file|directory]One-shot rate limiting quality scan of files or directories.
How to execute:
bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [target]
What it does:
Example usage scenarios:
ratelint scan .ratelint scan src/server.tsratelint scan src/ratelint scan .ratelint scan .ratelint scan --tier pro [file|directory]Extended scan with 60 patterns covering rate limiting, brute force, throttling, and backoff.
How to execute:
bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [target] --tier pro
What it does:
ratelint scan --format json [directory]Generate JSON output for CI/CD integration.
bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [directory] --format json
ratelint scan --format html [directory]Generate HTML report for browser viewing.
bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [directory] --format html
ratelint scan --category TH [directory]Filter scan to a specific check category (RL, BF, TH, BP, QO, DD).
bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [directory] --category TH
ratelint scan --tier team [directory]Full scan with all 90 patterns across all 6 categories including queue overflow and retry backoff.
How to execute:
bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [directory] --tier team
What it does:
ratelint scan --verbose [directory]Verbose output showing every matched line and pattern details.
bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [directory] --verbose
ratelint statusShow license and configuration information.
bash "<SKILL_DIR>/scripts/dispatcher.sh" status
RateLint detects 90 rate limiting anti-patterns across 6 categories:
| Category | Code | Patterns | Description | Severity Range |
|---|---|---|---|---|
| ---------- | ------ | ---------- | ------------- | ---------------- |
| Rate Limit Configuration | RL | 15 | Missing rate limits on API endpoints, no limit headers, unbounded request acceptance, excessively high limits | medium -- critical |
| Brute Force Protection | BF | 15 | No login attempt limiting, missing account lockout, password reset flood, OTP brute force, disabled CAPTCHA | high -- critical |
| Throttling & Backpressure | TH | 15 | No request throttling, missing debounce, unbounded event handlers, no load shedding, disabled throttle | medium -- critical |
| Backoff & Retry | BP | 15 | No backpressure signaling, unbounded worker pools, missing flow control, disabled backpressure mechanisms | medium -- critical |
| Queue & Buffer Overflow | QO | 15 | Unbounded queues, no max queue size, memory exhaustion from queue growth, missing overflow handling | medium -- critical |
| DDoS & Abuse Prevention | DD | 15 | No exponential backoff, infinite retry loops, missing jitter, aggressive retry intervals, disabled circuit breaker | medium -- critical |
| Tier | Patterns | Categories |
|---|---|---|
| ------ | ---------- | ------------ |
| Free | 30 | RL, BF |
| Pro | 60 | RL, BF, TH, BP |
| Team | 90 | RL, BF, TH, BP, QO, DD |
| Enterprise | 90 | RL, BF, TH, BP, QO, DD + priority support |
RateLint uses a deductive scoring system starting at 100 (perfect):
| Severity | Point Deduction | Description |
|---|---|---|
| ---------- | ----------------- | ------------- |
| Critical | -25 per finding | Security vulnerability or guaranteed failure (unlimited retries, unbounded pools) |
| High | -15 per finding | Significant gap that will allow abuse (missing auth rate limit, no brute force protection) |
| Medium | -8 per finding | Moderate concern (missing throttle, no backoff strategy) |
| Low | -3 per finding | Informational / best practice suggestion |
| Grade | Score Range | Meaning |
|---|---|---|
| ------- | ------------- | --------- |
| A | 90-100 | Excellent rate limiting practices |
| B | 80-89 | Good practices with minor issues |
| C | 70-79 | Acceptable but needs improvement |
| D | 60-69 | Poor rate limiting quality |
| F | Below 60 | Critical throttling problems |
Users can configure RateLint in ~/.openclaw/openclaw.json:
{
"skills": {
"entries": {
"ratelint": {
"enabled": true,
"apiKey": "YOUR_LICENSE_KEY_HERE",
"config": {
"severityThreshold": "medium",
"ignorePatterns": ["**/test/**", "**/fixtures/**", "**/*.test.*"],
"ignoreChecks": [],
"reportFormat": "text"
}
}
}
}
}
The user might say things like:
共 1 个版本