44 lines
1.0 KiB
Python
44 lines
1.0 KiB
Python
from __future__ import annotations
|
|
|
|
import os
|
|
|
|
SETTINGS_PREFIX = "OPENBAO__SETTINGS__"
|
|
RAISA_ENV_KEYS = (
|
|
"AUTHORIZE_URL",
|
|
"TOKEN_URL",
|
|
"REFRESH_TOKEN_URL",
|
|
"LOGOUT_URL",
|
|
"JWKS_URL",
|
|
"CLIENT_ID",
|
|
"CLIENT_SECRET",
|
|
"REDIRECT_URI",
|
|
"SCOPE",
|
|
"APP_ID",
|
|
"APP_NAMESPACE",
|
|
"APP_NAME",
|
|
"LOCATION",
|
|
)
|
|
|
|
|
|
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_location() -> str:
|
|
return get_setting("LOCATION").lower() or "prod"
|
|
|
|
|
|
def apply_raisa_env_aliases() -> None:
|
|
"""
|
|
Заполняет обычные имена переменных из OPENBAO__SETTINGS__,
|
|
чтобы raisa_streamlit_oauth работал одинаково в локальном и raisa runtime.
|
|
"""
|
|
for key in RAISA_ENV_KEYS:
|
|
prefixed = os.getenv(f"{SETTINGS_PREFIX}{key}", "").strip()
|
|
if prefixed and not os.getenv(key):
|
|
os.environ[key] = prefixed
|
|
|