Add rate limiting support to API keys
This commit is contained in:
@@ -87,6 +87,18 @@ def create_api_key():
|
||||
name = request.form.get("name", "My API Key")
|
||||
scopes_list = request.form.getlist("scopes")
|
||||
|
||||
rate_limit_count = request.form.get("rate_limit_count")
|
||||
rate_limit_period = request.form.get("rate_limit_period")
|
||||
|
||||
if rate_limit_count:
|
||||
try:
|
||||
rate_limit_count = int(rate_limit_count)
|
||||
except ValueError:
|
||||
rate_limit_count = None
|
||||
|
||||
if not rate_limit_period in ['minute', 'hour', 'day']:
|
||||
rate_limit_period = None
|
||||
|
||||
if not scopes_list:
|
||||
scopes = ["*"]
|
||||
else:
|
||||
@@ -95,7 +107,7 @@ def create_api_key():
|
||||
# Generate a secure random key
|
||||
key = f"sk_{secrets.token_urlsafe(24)}"
|
||||
|
||||
db.create_api_key(user_id, name, key, scopes)
|
||||
db.create_api_key(user_id, name, key, scopes, rate_limit_count, rate_limit_period)
|
||||
|
||||
flash(f"API Key created: {key} - Save it now, you won't see it again!", "success")
|
||||
return redirect(url_for("settings.api_keys"))
|
||||
|
||||
Reference in New Issue
Block a user