Initial FastAPI admin auth scaffold
This commit is contained in:
39
app/core/config.py
Normal file
39
app/core/config.py
Normal file
@@ -0,0 +1,39 @@
|
||||
from functools import lru_cache
|
||||
from pathlib import Path
|
||||
|
||||
from pydantic import Field
|
||||
from pydantic_settings import BaseSettings, SettingsConfigDict
|
||||
|
||||
|
||||
class Settings(BaseSettings):
|
||||
model_config = SettingsConfigDict(
|
||||
env_file=".env",
|
||||
env_file_encoding="utf-8",
|
||||
extra="ignore",
|
||||
populate_by_name=True,
|
||||
)
|
||||
|
||||
app_name: str = Field(default="py_server", alias="APP_NAME")
|
||||
app_env: str = Field(default="local", alias="APP_ENV")
|
||||
database_path: Path = Field(default=Path("storage/app.db"), alias="DATABASE_PATH")
|
||||
|
||||
admin_jwt_secret: str = Field(
|
||||
default="dev_admin_secret_change_me",
|
||||
alias="JWT_ADMIN_SECRET",
|
||||
)
|
||||
admin_jwt_ttl: int = Field(default=3600, alias="ADMIN_JWT_TTL")
|
||||
admin_jwt_refresh_ttl: int = Field(default=7200, alias="ADMIN_JWT_REFRESH_TTL")
|
||||
jwt_blacklist_ttl: int = Field(default=7201, alias="JWT_BLACKLIST_TTL")
|
||||
|
||||
api_jwt_secret: str = Field(default="dev_api_secret_change_me", alias="JWT_SECRET")
|
||||
api_jwt_ttl: int = Field(default=3600, alias="JWT_TTL")
|
||||
api_jwt_refresh_ttl: int = Field(default=7200, alias="JWT_REFRESH_TTL")
|
||||
|
||||
admin_seed_username: str = Field(default="admin", alias="ADMIN_SEED_USERNAME")
|
||||
admin_seed_password: str = Field(default="admin", alias="ADMIN_SEED_PASSWORD")
|
||||
cors_allow_origins: list[str] = Field(default=["*"], alias="CORS_ALLOW_ORIGINS")
|
||||
|
||||
|
||||
@lru_cache
|
||||
def get_settings() -> Settings:
|
||||
return Settings()
|
||||
Reference in New Issue
Block a user