33 lines
745 B
Python
33 lines
745 B
Python
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()
|
|
|