PR Y: wire EXT-* blocker IDs into orchestrator mock-mode logs #28

Merged
nsatoshi merged 1 commits from devin/1776894844-pr-y-blocker-ids into main 2026-04-22 21:58:57 +00:00
Owner

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 same EXT-* IDs the deployment pipeline already tracks.

Operators now get a grep-friendly 1:1 correspondence between:

  • check-external-dependencies.sh output (blocked: dbis_core live deployment, resolved: Chain 138 CI RPC …)
  • orchestrator startup logs ([ExternalBlockers] 6 active, 1 resolved with the same IDs structured)
  • per-service mock logs ([DbisCore] HTTP client (no DBIS_CORE_URL — mock mode; blocker EXT-DBIS-CORE active))

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 — per-id title, description, resolving env var.
  • evaluateBlockers(env?) — returns {id, status, resolvedVia}[]; empty-string env is treated as unset.
  • activeBlockers(env?) — same filtered to status === "active".
  • logBlockerStatusAtBoot(logger) — single structured startup summary.

Wired sites

File Change
src/index.ts Calls logBlockerStatusAtBoot(logger) right after validateEnv().
services/dbisCore/client.ts Mock-mode log now carries blockerId: EXT-DBIS-CORE.
services/finLink/client.ts getFinLinkClient() logs live vs. in-process decisions; sandbox path carries blockerId: EXT-FIN-GATEWAY.
services/bank.ts Migrated from console.log to pino; mock-mode carries blockerId: EXT-DBIS-CORE (dbis_core is the banking back-end).
services/completeCredential/identityClient.ts Mock log tagged upstream 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 --noEmit clean.
  • npx jest unit suite: 13 suites / 167 tests passing.
  • No new runtime deps. No UI.
## 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 **same** `EXT-*` IDs the deployment pipeline already tracks. Operators now get a grep-friendly 1:1 correspondence between: - `check-external-dependencies.sh` output (`blocked: dbis_core live deployment`, `resolved: Chain 138 CI RPC …`) - orchestrator startup logs (`[ExternalBlockers] 6 active, 1 resolved` with the same IDs structured) - per-service mock logs (`[DbisCore] HTTP client (no DBIS_CORE_URL — mock mode; blocker EXT-DBIS-CORE active)`) ## 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` — per-id title, description, resolving env var. - `evaluateBlockers(env?)` — returns `{id, status, resolvedVia}[]`; empty-string env is treated as unset. - `activeBlockers(env?)` — same filtered to `status === "active"`. - `logBlockerStatusAtBoot(logger)` — single structured startup summary. ## Wired sites | File | Change | |---|---| | `src/index.ts` | Calls `logBlockerStatusAtBoot(logger)` right after `validateEnv()`. | | `services/dbisCore/client.ts` | Mock-mode log now carries `blockerId: EXT-DBIS-CORE`. | | `services/finLink/client.ts` | `getFinLinkClient()` logs live vs. in-process decisions; sandbox path carries `blockerId: EXT-FIN-GATEWAY`. | | `services/bank.ts` | Migrated from `console.log` to pino; mock-mode carries `blockerId: EXT-DBIS-CORE` (dbis_core is the banking back-end). | | `services/completeCredential/identityClient.ts` | Mock log tagged `upstream 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 --noEmit` clean. - `npx jest` unit suite: **13 suites / 167 tests** passing. - No new runtime deps. No UI.
nsatoshi added 1 commit 2026-04-22 21:56:02 +00:00
PR Y: wire EXT-* blocker IDs into orchestrator mock-mode logs
Some checks failed
CI / Frontend Lint (pull_request) Failing after 7s
CI / Frontend Type Check (pull_request) Failing after 6s
CI / Frontend Build (pull_request) Failing after 8s
CI / Frontend E2E Tests (pull_request) Failing after 9s
CI / Orchestrator Build (pull_request) Failing after 7s
CI / Orchestrator Unit Tests (pull_request) Failing after 6s
CI / Orchestrator E2E (Testcontainers) (pull_request) Has been skipped
CI / Contracts Compile (pull_request) Failing after 7s
CI / Contracts Test (pull_request) Failing after 6s
Code Quality / SonarQube Analysis (pull_request) Failing after 20s
Code Quality / Code Quality Checks (pull_request) Failing after 6s
Security Scan / Dependency Vulnerability Scan (pull_request) Failing after 4s
Security Scan / OWASP ZAP Scan (pull_request) Failing after 4s
012a61cef5
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.
nsatoshi merged commit 3787362406 into main 2026-04-22 21:58:57 +00:00
nsatoshi deleted branch devin/1776894844-pr-y-blocker-ids 2026-04-22 21:58:57 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: d-bis/CurrenciCombo#28