ProjectTech4DevAI / ProjectTech4DevAI/kaapi-backend

Security: Introduce rate limit per endpoint

Offen
#452 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

enhancement
Vorherrschende Sprache
Python
Sterne
18
Forks
10
Ø Merge
2 T. 20 Std.
Gemergte PRs (30 T.)
14

Beschreibung

Describe the current behavior
Currently, Kaapi API endpoints have no rate limiting implemented. Any user or organization can make unlimited requests to any endpoint without restrictions. This creates several issues:

  • A single user or organization can overwhelm the API with requests, consuming server resources and degrading performance for other users
  • There's no protection against accidental or malicious misuse, such as runaway scripts or bot activity
  • Celery operations like document uploads with provider integration or collection creation can cause celery job queue bloating

Describe the enhancement you'd like
Implement api level rate limiting across relevant API routes to ensure fair resource allocation and prevent misuse. The rate limiting should be conditional based on if it is a celery job endpoint or not. celery job endpoints such as collection creation, llm calls, etc should have lower number of api calls allowed per minute as compared to non celery job endpoints such as credential, onboarding, etc which can have higher number of api calls allowed per minute.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, die API-Routendefinitionen und die von Celery unterstützten Endpunkte zu lokalisieren, und erfasse dann, welche Operationen welches Rate-Limit erhalten sollen. Kläre vor der Implementierung die Schwellenwerte pro Minute und den Mechanismus zur Ratenbegrenzung. Als erledigt gilt die Aufgabe, wenn Anfragen für Celery- und nicht von Celery unterstützte Endpunkte unterschiedlich begrenzt werden und dadurch eine Überlastung von Warteschlangen oder Ressourcen verhindert wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
api, backend-api-design, performance, security
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Ruhig
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.