from __future__ import annotations import os SETTINGS_PREFIX = "OPENBAO__SETTINGS__" REQUIRED_KEYCLOAK_SETTINGS = ( "KEYCLOAK_CLIENT_ID", "KEYCLOAK_CLIENT_SECRET", "KEYCLOAK_AUTHORIZE_URL", "KEYCLOAK_TOKEN_URL", "KEYCLOAK_LOGOUT_URL", "KEYCLOAK_JWKS_URL", "KEYCLOAK_REDIRECT_URI", "KEYCLOAK_SCOPE", "KEYCLOAK_JWT_ALGORITHM", ) def get_setting(name: str) -> str: prefixed = os.getenv(f"{SETTINGS_PREFIX}{name}", "").strip() if prefixed: return prefixed return os.getenv(name, "").strip() def get_missing_settings() -> list[str]: return [name for name in REQUIRED_KEYCLOAK_SETTINGS if not get_setting(name)] def get_location() -> str: return get_setting("LOCATION").lower()