PR Y: wire EXT-* blocker IDs into orchestrator mock-mode logs #28
Reference in New Issue
Block a user
Delete Branch "devin/1776894844-pr-y-blocker-ids"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Mirror the external-dependency blocker gate added to the proxmox repo (
scripts/verify/check-external-dependencies.sh+docs/03-deployment/EXTERNAL_DEPENDENCY_BLOCKERS.md) in the CurrenciCombo orchestrator, so startup logs and provider-switch mock-mode logs surface the sameEXT-*IDs the deployment pipeline already tracks.Operators now get a grep-friendly 1:1 correspondence between:
check-external-dependencies.shoutput (blocked: dbis_core live deployment,resolved: Chain 138 CI RPC …)[ExternalBlockers] 6 active, 1 resolvedwith the same IDs structured)[DbisCore] HTTP client (no DBIS_CORE_URL — mock mode; blocker EXT-DBIS-CORE active))Central registry
src/config/externalBlockers.ts:EXT_BLOCKER_IDSunion:EXT-DBIS-CORE,EXT-CC-PAYMENT-ADAPTERS,EXT-CC-AUDIT-LEDGER,EXT-CC-SHARED-EVENTS,EXT-CC-SHARED-SCHEMAS,EXT-FIN-GATEWAY,EXT-CHAIN138-CI-RPC.BLOCKER_DETAILS— per-id title, description, resolving env var.evaluateBlockers(env?)— returns{id, status, resolvedVia}[]; empty-string env is treated as unset.activeBlockers(env?)— same filtered tostatus === "active".logBlockerStatusAtBoot(logger)— single structured startup summary.Wired sites
src/index.tslogBlockerStatusAtBoot(logger)right aftervalidateEnv().services/dbisCore/client.tsblockerId: EXT-DBIS-CORE.services/finLink/client.tsgetFinLinkClient()logs live vs. in-process decisions; sandbox path carriesblockerId: EXT-FIN-GATEWAY.services/bank.tsconsole.logto pino; mock-mode carriesblockerId: EXT-DBIS-CORE(dbis_core is the banking back-end).services/completeCredential/identityClient.tsupstream cc-identity-core ships code but not yet deployed— distinguishes env-not-set from cc-* scaffold blockers.Tests
tests/config/externalBlockers.test.ts— 11 tests covering registry shape, evaluation across env permutations (empty env, each resolving env set, scaffold blockers remain active, empty-string treated as unset), and log emission.Verification
npx tsc --noEmitclean.npx jestunit suite: 13 suites / 167 tests passing.Mirrors the external-dependency blocker gate added to the proxmox repo (scripts/verify/check-external-dependencies.sh + docs/03- deployment/EXTERNAL_DEPENDENCY_BLOCKERS.md) so orchestrator startup logs and provider-switch mock-mode logs surface the same EXT-* IDs the deployment pipeline already tracks. Central registry: - src/config/externalBlockers.ts — typed EXT_BLOCKER_IDS union (EXT-DBIS-CORE, EXT-CC-PAYMENT-ADAPTERS, EXT-CC-AUDIT-LEDGER, EXT-CC-SHARED-EVENTS, EXT-CC-SHARED-SCHEMAS, EXT-FIN-GATEWAY, EXT-CHAIN138-CI-RPC), BLOCKER_DETAILS map with per-id resolving env var, evaluateBlockers(env) / activeBlockers() / and logBlockerStatusAtBoot(logger) for a single-line structured startup summary. Wired sites: - src/index.ts — logs the full blocker summary after validateEnv(). - services/dbisCore/client.ts — mock-mode log now carries blockerId: EXT-DBIS-CORE. - services/finLink/client.ts — getFinLinkClient() now logs live vs. in-process sandbox decisions; sandbox path carries blockerId: EXT-FIN-GATEWAY. - services/bank.ts — migrated from console.log to pino; mock-mode (no DBIS_CORE_URL) carries blockerId: EXT-DBIS-CORE because dbis_core is the bank's real back-end. - services/completeCredential/identityClient.ts — mock log tagged 'upstream cc-identity-core ships code but not yet deployed' to distinguish 'env not set' from the cc-* scaffold blockers. Unit tests: tests/config/externalBlockers.test.ts — 11 tests covering registry shape, evaluation across env permutations (empty env, each resolving env set, scaffold blockers remain active, empty-string treated as unset), and log emission. Full unit suite: 13 suites / 167 tests passing. tsc --noEmit clean. No UI changes.