validateSettings() doesn't validate rateLimits[].period — zero period silently degrades to a 1ms backoff hint
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 82/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- typescript
- Bereich
- backend
Rechercherichtung
Beginne in src/utils/settings-config.ts, wo validateSettings() bereits pow.periodMs > 0 prüft, und lies den Typ RateLimit in src/@types/settings.ts. Füge neben dieser Prüfung eine Schleife über jedes Array limits.*.rateLimits (sowie limits.admin.loginRateLimits) hinzu, die bei einem period, der nicht größer als 0 ist, ein Problem mit { path, message } hinzufügt. Fertig ist es, wenn eine Periode von null oder negativ die Validierung beim Start fehlschlagen lässt, wobei der Pfad im Problem genannt wird, und die bestehenden Tests der Einstellungen weiterhin bestehen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Problem
validateSettings() (src/utils/settings-config.ts) enforces pow.periodMs > 0, but nothing validates period on any rateLimits[] entry. The RateLimit type (src/@types/settings.ts) declares period: number as required, so period: 0 passes type checks and startup validation without a word.
Since #807, a rejected request carries a retry-after hint computed as Math.max(1, Math.ceil(period)) ms. With period: 0 that emits a protocol-valid 1ms backoff — the misconfiguration is silently masked instead of failing loudly at startup. (It also degenerates the EWMA decay itself: λ = ln(2)/0, so prior activity decays to zero instantly and every event is judged in isolation.)
Affected arrays
All of these accept a RateLimit[] whose period is never validated:
limits.event.rateLimitslimits.message.rateLimitslimits.connection.rateLimitslimits.invoice.rateLimitslimits.admissionCheck.rateLimitslimits.invite.rateLimitslimits.admin.rateLimitsandlimits.admin.loginRateLimits
Suggested fix
In validateSettings(), next to the existing pow.periodMs check, iterate each rate-limit array and push a { path: 'limits.….rateLimits[i].period', message: 'period must be greater than 0' } issue when !(period > 0) — same style as the existing checks.
From Muse
- Vorherrschende Sprache
- TypeScript
- Sterne
- 829
- Forks
- 234
- Ø Merge
- 2 T. 10 Std.
- Gemergte PRs (30 T.)
- 24
Entwicklungsumgebung
- Enthält ein Dockerfile oder eine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus cameri/nostream
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
feat(nip77): advertise NIP-77 in NIP-11 and expose its settings in the admin consoleEvtl. vergeben @Priyanshubhartistm hat das vor 1 Tag übernommen. Offenenhancement
cameri/nostream#819 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
feat(nip77): NEG-OPEN/NEG-MSG/NEG-CLOSE wire protocol for the PostgreSQL backendEvtl. vergeben @Priyanshubhartistm hat das vor 1 Tag übernommen. Offenenhancement
cameri/nostream#817 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
[Admin Console] Ops visibility panels (mirror, workers, NIP-05, storage)Evtl. vergeben @Ferryx349 hat das vor 2 Tagen übernommen. OffenAdmin Console enhancement
cameri/nostream#816 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
feat(admin): bounded NIP-66 probe history and Network Health timelineEvtl. vergeben @Ferryx349 hat das vor 5 Tagen übernommen. OffenAdmin Console enhancement
cameri/nostream#800 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in cameri/nostream
Ähnliche Issues
-
e2e-failure ready-to-code
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
redhat-developer/rhdh-plugin-export-overlays#4391 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 82/100
Luligu/matterbridge#655 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
software-mansion/argent#1457 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
schmayterling/hibi#245 ·
Maintainer antworten meist innerhalb von 1 Tag
-
ai-driven-qa bug claude Minor
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
linagora/twake-contacts-frontend#241 ·
Maintainer antworten meist innerhalb von 1 Tag