import os def _read_from_env(key: str, default: str = None) -> str: if (value := os.environ.get(key, default)) is not None: return value raise Exception(f'[Config] Error: Cannot find required value {key}') def get_keycloak_config(): return { 'server_url': _read_from_env('KEYCLOAK_URL'), 'username': _read_from_env('KEYCLOAK_USERNAME'), 'password': _read_from_env('KEYCLOAK_PASSWORD'), 'realm_name': _read_from_env('REALM'), } def get_database_config(): return { 'host': _read_from_env('DB_HOSTNAME'), 'user': _read_from_env('DB_USERNAME'), 'port': int(_read_from_env('DB_PORT', '3306')), 'password': _read_from_env('DB_PASSWORD'), 'dbname': _read_from_env('DB_DATABASE'), } def get_mqtt_config(): print("port", int(_read_from_env('MQTT_PORT', '1883'))) return { 'client_name': _read_from_env('MQTT_CLIENT'), 'username': _read_from_env('MQTT_USERNAME', ''), 'password': _read_from_env('MQTT_PASSWORD', ''), 'broker': _read_from_env('MQTT_BROKER'), 'port': int(_read_from_env('MQTT_PORT', '1883')), }