@@ -52,15 +52,23 @@ class FirstradeCredentials:
5252
5353 @classmethod
5454 def from_env (cls , env : Callable [[str , str | None ], str | None ] = os .getenv ) -> "FirstradeCredentials" :
55- username = env ("FIRSTRADE_USERNAME" , "" ) or ""
56- password = env ("FIRSTRADE_PASSWORD" , "" ) or ""
55+ def _get_credential (secret_name : str , env_var : str ) -> str :
56+ try :
57+ from quant_platform_kit .cloud import get_secret_store
58+
59+ return get_secret_store ().get_secret (secret_name , project_id = "firstradequant" )
60+ except Exception :
61+ return env (env_var , "" ) or ""
62+
63+ username = _get_credential ("firstrade-username" , "FIRSTRADE_USERNAME" )
64+ password = _get_credential ("firstrade-password" , "FIRSTRADE_PASSWORD" )
5765 return cls (
5866 username = username .strip (),
5967 password = password ,
6068 pin = env ("FIRSTRADE_PIN" , "" ) or "" ,
6169 email = env ("FIRSTRADE_MFA_EMAIL" , "" ) or "" ,
6270 phone = env ("FIRSTRADE_MFA_PHONE" , "" ) or "" ,
63- mfa_secret = env ( "FIRSTRADE_MFA_SECRET " , "" ) or "" ,
71+ mfa_secret = _get_credential ( "firstrade-mfa-secret " , "FIRSTRADE_MFA_SECRET" ) ,
6472 mfa_code = env ("FIRSTRADE_MFA_CODE" , "" ) or "" ,
6573 cookie_dir = env ("FIRSTRADE_COOKIE_DIR" , ".runtime/firstrade-cookies" )
6674 or ".runtime/firstrade-cookies" ,
0 commit comments