Labels: ready-to-code (when starting), workspace/boost, feature
Depends on: #4044 (connector leaf keys registered in boostConfigFields)
Unblocks: correct health enabled / ?includeDisabled under DB overrides; soft prerequisite for connector admin UX that relies on health reflecting runtime toggles
RHIDP / Feature: RHDHPLAN-1513 — follows #4043 handoff contract
Parent gate: #4044 implementation gate (OUT → this issue)
Why (single scope)
#4250 introduced ConnectorConfigReader reading both enabled flags from YAML/ConfigApi only. After #4044, boost.connectors.<id>.enabled is db-overridable via RuntimeConfigResolver, but health still ignores DB overrides until this handoff.
listCandidates() is synchronous today; RuntimeConfigResolver.resolve() is async — this issue owns that API change and health call-site updates. Keep it out of #4044 so the schema PR stays small.
In
- Inject
RuntimeConfigResolver into ConnectorConfigReader (startup flag stays YAML/ConfigApi).
runtimeEnabled ← await resolver.resolve('boost.connectors.<id>.enabled') with default true when unset.
- Make discovery async (
listCandidates(): Promise<…> or equivalent) and update HealthStatusService / routes / tests.
- Tests:
- YAML-only runtime enabled (regression)
- DB override
enabled: false → candidate runtimeEnabled: false (and health filter behavior)
- Startup-disabled providers still excluded even with
includeDisabled=true
Out
Specs / refs
Labels:
ready-to-code(when starting),workspace/boost,featureDepends on: #4044 (connector leaf keys registered in
boostConfigFields)Unblocks: correct health
enabled/?includeDisabledunder DB overrides; soft prerequisite for connector admin UX that relies on health reflecting runtime togglesRHIDP / Feature: RHDHPLAN-1513 — follows #4043 handoff contract
Parent gate: #4044 implementation gate (OUT → this issue)
Why (single scope)
#4250 introduced
ConnectorConfigReaderreading both enabled flags from YAML/ConfigApionly. After #4044,boost.connectors.<id>.enabledis db-overridable viaRuntimeConfigResolver, but health still ignores DB overrides until this handoff.listCandidates()is synchronous today;RuntimeConfigResolver.resolve()is async — this issue owns that API change and health call-site updates. Keep it out of #4044 so the schema PR stays small.In
RuntimeConfigResolverintoConnectorConfigReader(startup flag stays YAML/ConfigApi).runtimeEnabled←await resolver.resolve('boost.connectors.<id>.enabled')with defaulttruewhen unset.listCandidates(): Promise<…>or equivalent) and updateHealthStatusService/ routes / tests.enabled: false→ candidateruntimeEnabled: false(and health filter behavior)includeDisabled=trueOut
__schemaVersionSpecs / refs
plugins/boost-backend/src/ingestion/ConnectorConfigReader.tsopenspec/changes/connector-config-hot-reload/design.md(namespace table)