29 lines
996 B
Python
29 lines
996 B
Python
import os
|
|
from typing import Dict, Any
|
|
from pydantic_settings import BaseSettings
|
|
|
|
|
|
class RateLimitSettings(BaseSettings):
|
|
GLOBAL_HOURLY_LIMIT: int = int(os.getenv("GLOBAL_HOURLY_LIMIT", "10000"))
|
|
GLOBAL_DAILY_LIMIT: int = int(os.getenv("GLOBAL_DAILY_LIMIT", "100000"))
|
|
|
|
SENDER_HOURLY_LIMIT: int = int(os.getenv("SENDER_HOURLY_LIMIT", "100"))
|
|
SENDER_DAILY_LIMIT: int = int(os.getenv("SENDER_DAILY_LIMIT", "1000"))
|
|
|
|
DEFAULT_TENANT_HOURLY_LIMIT: int = int(os.getenv("DEFAULT_TENANT_HOURLY_LIMIT", "500"))
|
|
DEFAULT_TENANT_DAILY_LIMIT: int = int(os.getenv("DEFAULT_TENANT_DAILY_LIMIT", "5000"))
|
|
|
|
TENANT_SPECIFIC_LIMITS: str = os.getenv("TENANT_SPECIFIC_LIMITS", "{}")
|
|
|
|
HOURLY_WINDOW: int = 3600
|
|
DAILY_WINDOW: int = 86400
|
|
|
|
RESET_TIME_HOUR: int = 0
|
|
RESET_TIME_MINUTE: int = 0
|
|
|
|
class Config:
|
|
env_file = ".env"
|
|
env_file_encoding = "utf-8"
|
|
extra = "ignore"
|
|
|
|
rate_limit_settings = RateLimitSettings() |