main
py 31 lines 1.35 KB
Raw
1 from pydantic import Field
2 from pydantic_settings import BaseSettings, SettingsConfigDict
3
4
5 class Settings(BaseSettings):
6 model_config = SettingsConfigDict(env_prefix="", extra="ignore")
7
8 service_name: str = "ibkr-connector"
9 aip_environment: str = Field(default="LOCAL", alias="AIP_ENVIRONMENT")
10 aip_ibkr_gateway_package_path: str = Field(default="", alias="AIP_IBKR_GATEWAY_PACKAGE_PATH")
11 aip_ibkr_gateway_base_url: str = Field(default="", alias="AIP_IBKR_GATEWAY_BASE_URL")
12 aip_ibkr_gateway_tls_verify: bool = Field(
13 default=True, validation_alias="AIP_IBKR_GATEWAY_TLS_VERIFY"
14 )
15 aip_ibkr_login_public_base_url: str = Field(default="", alias="AIP_IBKR_LOGIN_PUBLIC_BASE_URL")
16 aip_internal_token: str = Field(default="", alias="AIP_INTERNAL_TOKEN")
17 aip_connector_require_internal_token: bool = Field(
18 default=True, alias="AIP_CONNECTOR_REQUIRE_INTERNAL_TOKEN"
19 )
20 aip_ibkr_production_approved: bool = Field(default=False, alias="IBKR_PRODUCTION_APPROVED")
21 aip_ibkr_heartbeat_timeout_seconds: int = Field(
22 default=20, alias="AIP_IBKR_HEARTBEAT_TIMEOUT_SECONDS"
23 )
24
25 @property
26 def gateway_api_base_url(self) -> str:
27 return self.aip_ibkr_gateway_base_url.rstrip("/")
28
29 @property
30 def login_public_base_url(self) -> str:
31 return self.aip_ibkr_login_public_base_url.rstrip("/")