OpenFn / OpenFn/lightning

Channels: Rate limiting for admins AND supers

Open
#4,512 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

channels needs detail
Dominant language
Elixir
Stars
296
Forks
86
Avg merge
1d 13h
Merged PRs (30d)
50

Description

There should be global rate limits for channels, but also project admin rate limits. I.,e., "you can access the master facility registry but only 100x/min"

Types of limiting:

  • Limit # concurrent requests in time period
  • Limit request attachment storage in time period de-scoped for now til we have validated this is a problem

Stories

  • Flagger: Count requests + identify if over rate limit
    • counting, grouped by credential and/or project
  • Blocker: Stop requests over the limit
  • Notifier: Tell customers they've exceeded and ask them to stop

Product Scope Options

  • S: Provably stop abuse
  • M: Responsible concurrent rate limiting
  • L: Differentiated rate limiting based on projects etc

Existence Proof of Small

  • PM specifies abuse = any hour exceeds 10,000 requests, can happens once but can never happen again without human intervention
  • Cron job, sql, check if exceeds, if so, a) disable channels for that project and b) send email, cc'ing support

Technical Options

  • S: Hard cap for every individual project, same across all of them
  • M: Varies across projects, rolling window / leaky bucket approach for handling bursty usage patterns
  • L: Rejecting requests over certain size

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by clarifying the intended product scope for channel rate limiting, including the abuse threshold, project differentiation, and whether counting, blocking, and notification are all required. Then locate the channels request entry point and determine how credentials and projects can be identified. Done means an agreed implementation scope and acceptance criteria for the selected rate-limiting approach.

Written by the indexing model from the issue text.

Assessment

Tech stack
elixir
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.