admin / Syanpse-Vanguard
public
Syanpse-Vanguard / synapse-vanguard-v3 / sv / config.py
1662 B · main
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | """Central configuration. All runtime knobs come from SV_* environment vars (or a .env file). Every service role imports `settings` from here.""" from __future__ import annotations from functools import lru_cache from uuid import UUID from pydantic import Field from pydantic_settings import BaseSettings, SettingsConfigDict # Single-tenant default for the MVP scaffold. Multi-tenant onboarding lands later; # every row already carries tenant_id so the schema does not have to change. DEFAULT_TENANT_ID = UUID("00000000-0000-0000-0000-000000000001") class Settings(BaseSettings): model_config = SettingsConfigDict( env_prefix="SV_", env_file=".env", extra="ignore" ) log_level: str = "INFO" # Secrets vault_key: str = Field(default="00" * 32) # 64 hex chars; override in prod jwt_secret: str = "dev-insecure-change-me" jwt_ttl_seconds: int = 3600 # Storage storage_backend: str = "duckdb" duckdb_path: str = "./data/vanguard.duckdb" cold_dir: str = "./data/cold" clickhouse_dsn: str | None = None # Broker broker: str = "redis" # redis | memory redis_url: str = "redis://localhost:6379/0" raw_stream: str = "stream:raw" raw_group: str = "normalizers" # Agent ingest / mTLS mtls_enabled: bool = True cert_dir: str = "./certs" enrollment_token: str = "dev-enrollment-token" # Bootstrap admin bootstrap_admin_user: str = "admin" bootstrap_admin_password: str = "admin" # Pipeline normalizer_batch: int = 500 normalizer_block_ms: int = 2000 @lru_cache def get_settings() -> Settings: return Settings() settings = get_settings() |