Ordo
Initial public release
0e84a1f
from functools import lru_cache
import os
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
meta_graph_version: str = "v21.0"
meta_webhook_verify_token: str
meta_app_id: str | None = None
meta_app_secret: str | None = None
meta_bridge_internal_api_key: str
openclaw_meta_shared_secret: str | None = None
openclaw_hook_url: str | None = None
openclaw_hook_base_url: str | None = None
openclaw_hook_token: str | None = None
meta_page_contexts: str = "healthcare,civic"
meta_bridge_database_url: str = "sqlite:////data/meta_bridge.db"
meta_bridge_require_human_approval: bool = True
meta_bridge_allow_low_risk_auto_ack: bool = False
meta_bridge_log_level: str = "INFO"
class Config:
env_file = ".env"
extra = "ignore"
def app_secrets(self) -> list[str]:
return [s for s in [self.meta_app_secret] if s]
def page_contexts(self) -> list[str]:
return [slug.strip() for slug in self.meta_page_contexts.split(",") if slug.strip()]
def page_env(self, slug: str, field: str) -> str | None:
safe_slug = slug.upper().replace("-", "_")
return os.environ.get(f"META_PAGE_{field.upper()}_{safe_slug}")
@lru_cache
def get_settings() -> Settings:
return Settings()