Files
NexaFabric/backend/app/core/config.py
T
nessi 4554b00b73
CI / backend (push) Failing after 2s
CI / frontend (push) Failing after 31s
feat: improve setup wizard UX, add cluster sync error handling, and conditional demo data seeding
Add SEED_DEMO_DATA environment variable to control demo data population, enhance setup wizard with welcome screen and theme toggle, add smooth animations for wizard transitions, improve dashboard endpoint to return structured objects for last_syncs and faulty_nodes instead of raw models, implement comprehensive error handling in cluster sync with failed status tracking and audit logging, fix Proxmox provider
2026-07-09 12:57:07 +02:00

35 lines
1.2 KiB
Python

from functools import lru_cache
from pydantic import AnyHttpUrl, Field, field_validator
from pydantic_settings import BaseSettings, SettingsConfigDict
class Settings(BaseSettings):
model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore")
project_name: str = "NexaFabric"
environment: str = "development"
api_host: str = "0.0.0.0"
api_port: int = 8000
database_url: str = "sqlite:///./nexafabric.db"
redis_url: str = "redis://localhost:6379/0"
jwt_secret: str = Field(default="dev-only-change-me")
jwt_access_token_minutes: int = 15
jwt_refresh_token_days: int = 14
token_encryption_key: str = "dev-only-change-me"
demo_admin_password: str = "ChangeMe_UseEnvInstead"
seed_demo_data: bool = False
cors_origins: list[AnyHttpUrl] | list[str] = ["http://localhost:5173", "http://localhost:8080"]
@field_validator("cors_origins", mode="before")
@classmethod
def parse_cors_origins(cls, value: str | list[str]) -> list[str]:
if isinstance(value, str):
return [origin.strip() for origin in value.split(",") if origin.strip()]
return value
@lru_cache
def get_settings() -> Settings:
return Settings()