Merge pull request #35 from fourblocks2020/feat/dcy-036-kis-credential-inject
feat(dcy-036/bat-054): KISBroker 양의 경로 — 데몬-스코프 KIS 인증정보 실거래 주입
This commit is contained in:
@@ -122,6 +122,27 @@ def _build_transport(config: DaemonConfig) -> MessagingTransport:
|
||||
return RabbitMQTransport(mq.url, timeout=mq.timeout)
|
||||
|
||||
|
||||
def _build_kis_reinit_callback(config: DaemonConfig, broker: BrokerPort):
|
||||
"""Build a KISBroker reinitialize callback for the day-start credential hook.
|
||||
|
||||
Returns broker.reinitialize if all conditions are met:
|
||||
- config.broker == 'kis' (not paper)
|
||||
- config.credential_fetch_enabled == True (opt-in)
|
||||
- broker has a reinitialize() method (KISBroker)
|
||||
|
||||
Returns None otherwise so SnapshotScheduler skips reinit (backward compat).
|
||||
dcy-036 / REQ-113 AC-2 / REQ-115 AC-1.
|
||||
"""
|
||||
if config.broker != "kis":
|
||||
return None
|
||||
if not config.credential_fetch_enabled:
|
||||
return None
|
||||
reinit = getattr(broker, "reinitialize", None)
|
||||
if reinit is None or not callable(reinit):
|
||||
return None
|
||||
return reinit
|
||||
|
||||
|
||||
def _build_portfolio_read(config: DaemonConfig) -> PortfolioHubReadPort:
|
||||
"""portfolio-hub HTTP read adapter when configured; otherwise stub (REQ-027)."""
|
||||
pf = config.portfolio_hub
|
||||
@@ -216,6 +237,9 @@ class Daemon:
|
||||
alarm_emitter=self.alarm_emitter, # dcy-033 / REQ-100
|
||||
warn_store=self.warn_store, # BAT-050 / REQ-103: durable reconcile-warning
|
||||
credential_fetch_enabled=config.credential_fetch_enabled, # dcy-036 / REQ-113
|
||||
# dcy-036 / REQ-113 AC-2 / REQ-115 AC-1: KISBroker reinit callback.
|
||||
# None when broker!=kis or credential_fetch_enabled=False (backward compat).
|
||||
kis_reinit_callback=_build_kis_reinit_callback(config, self.broker),
|
||||
)
|
||||
# dcy-036 / REQ-114: wire entry_allowed_fn after snapshot_scheduler is created.
|
||||
# When credential_fetch_enabled=False (default), entry_allowed_fn=None = no gate.
|
||||
|
||||
Reference in New Issue
Block a user