ProjectTech4DevAI / ProjectTech4DevAI/kaapi-backend
Security: Introduce rate limit per endpoint
Nadie ha tomado este issue todavía.
- 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
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- 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