Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 8 additions & 28 deletions kubetix-api/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,27 +24,13 @@
# Rate limiting (optional)
# ---------------------------------------------------------------------------

try:
from slowapi import Limiter, _rate_limit_exceeded_handler
from slowapi.util import get_remote_address
from slowapi.errors import RateLimitExceeded

HAS_RATE_LIMITING = True
limiter = Limiter(
key_func=get_remote_address, default_limits=["200 per day", "50 per hour"]
)
except ImportError:
HAS_RATE_LIMITING = False

# No-op limiter so decorators always work regardless of rate limiting config.
class _NoOpLimiter:
def limit(self, *args, **kwargs):
def decorator(f):
return f

return decorator
from slowapi import Limiter, _rate_limit_exceeded_handler
from slowapi.errors import RateLimitExceeded
from slowapi.util import get_remote_address

limiter = _NoOpLimiter()
limiter = Limiter(
key_func=get_remote_address, default_limits=["200 per day", "50 per hour"]
)

# ---------------------------------------------------------------------------
# CORS middleware
Expand Down Expand Up @@ -149,14 +135,8 @@ async def lifespan(app: FastAPI):
lifespan=lifespan,
)

if HAS_RATE_LIMITING:
app.state.limiter = limiter
app.add_exception_handler(RateLimitExceeded, _rate_limit_exceeded_handler)
# Register slowapi startup handler (compatible with all FastAPI versions)
if hasattr(app, "add_event_handler"):
app.add_event_handler("startup", limiter.slowapi_startup)
else:
app.on_event("startup")(limiter.slowapi_startup)
app.state.limiter = limiter
app.add_exception_handler(RateLimitExceeded, _rate_limit_exceeded_handler)

app.add_middleware(
CORSMiddleware,
Expand Down
1 change: 1 addition & 0 deletions kubetix-api/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ python-multipart==0.0.32
pydantic==2.13.4
cryptography==49.0.0
httpx==0.28.1
slowapi==0.1.9