ProjectTech4DevAI / ProjectTech4DevAI/kaapi-backend

Security: Introduce rate limit per endpoint

Abierto
#452 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

enhancement
Lenguaje dominante
Python
Estrellas
18
Forks
10
Merge medio
2 d 20 h
PR fusionados (30 d)
14

Descripción

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.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza localizando las definiciones de rutas de la API y los endpoints respaldados por Celery; después, haz un inventario de las operaciones que deben recibir cada límite de solicitudes. Aclara los umbrales por minuto y el mecanismo de limitación de solicitudes antes de la implementación. Se considera terminado cuando las solicitudes se limitan de forma diferente para los endpoints de Celery y los que no usan Celery, evitando la sobrecarga de la cola o de los recursos.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
api, backend-api-design, performance, security
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Tranquilo
Claridad
Necesita aclaración
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.