Skip to content

fix: add rate limiting for ai insights endpoint#1321

Merged
Priyanshu-byte-coder merged 1 commit into
Priyanshu-byte-coder:mainfrom
Sammmyyyyyyy:fix/ai-insights-rate-limit
May 28, 2026
Merged

fix: add rate limiting for ai insights endpoint#1321
Priyanshu-byte-coder merged 1 commit into
Priyanshu-byte-coder:mainfrom
Sammmyyyyyyy:fix/ai-insights-rate-limit

Conversation

@Sammmyyyyyyy
Copy link
Copy Markdown
Contributor

Summary

Adds per-user rate limiting to the /api/ai-insights endpoint to prevent excessive Groq API usage and reduce abuse risk from repeated requests.

Closes #957

Type of Change

  • Bug fix
  • New feature
  • Documentation update
  • Refactor / code cleanup

Changes Made

  • Added lightweight in-memory per-user rate limiting for /api/ai-insights
  • Limited requests to 5 per hour per authenticated user
  • Added HTTP 429 responses when rate limits are exceeded
  • Added Retry-After response headers
  • Improved protection against repeated concurrent AI insight requests

How to Test

Steps for the reviewer to verify this works:

  1. Run the project locally using npm run dev
  2. Authenticate and access the /api/ai-insights endpoint
  3. Send repeated requests to the endpoint
  4. Verify that after 5 requests within one hour, the endpoint returns HTTP 429
  5. Verify that the response includes a Retry-After header

Screenshots (if UI change)

N/A

Checklist

  • Linked issue in summary
  • npm run lint passes locally
  • No TypeScript errors (npm run type-check)
  • Self-reviewed the diff
  • Added/updated tests if applicable

@vercel
Copy link
Copy Markdown

vercel Bot commented May 27, 2026

@Sammmyyyyyyy is attempting to deploy a commit to the PRIYANSHU DOSHI's projects Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions github-actions Bot added gssoc26 GSSoC 2026 contribution type:bug GSSoC type bonus: bug fix type:feature GSSoC type bonus: new feature labels May 27, 2026
@github-actions
Copy link
Copy Markdown

GSSoC Label Checklist 🏷️

@Priyanshu-byte-coder — please apply the appropriate labels before merging:

Difficulty (pick one):

  • level:beginner — 20 pts
  • level:intermediate — 35 pts
  • level:advanced — 55 pts
  • level:critical — 80 pts

Quality (optional):

  • quality:clean — ×1.2 multiplier
  • quality:exceptional — ×1.5 multiplier

Validation (required to score):

  • gssoc:approved — counts for points
  • gssoc:invalid / gssoc:spam / gssoc:ai-slop — does not score

Type labels (type:*) are auto-detected from files and title. Review and adjust if needed.
Points formula: (difficulty × quality_multiplier) + type_bonus

@Priyanshu-byte-coder Priyanshu-byte-coder added gssoc:approved GSSoC: PR approved for scoring level:intermediate GSSoC: Intermediate difficulty (35 pts) labels May 28, 2026
@Priyanshu-byte-coder Priyanshu-byte-coder merged commit 0278ed5 into Priyanshu-byte-coder:main May 28, 2026
11 checks passed
@github-actions
Copy link
Copy Markdown

🎉 Merged! Thanks for contributing to DevTrack.

If the project has been useful to you, a ⭐ star on the repo is the easiest way to support it — it helps DevTrack get discovered by more developers.

Keep an eye on open issues for your next contribution!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gssoc:approved GSSoC: PR approved for scoring gssoc26 GSSoC 2026 contribution level:intermediate GSSoC: Intermediate difficulty (35 pts) type:bug GSSoC type bonus: bug fix type:feature GSSoC type bonus: new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Security] No rate limiting on /api/ai-insights — Groq API credits can be exhausted

2 participants