ICPI Shared Dependency Reduction
What Changed In Sprint 46
ICPI route support no longer depends on the broad svc-tenders shell parser bundle.
buildIcpiRouteSupport(...) now narrows only shell auth ingress and assembles ICPI-local
query parsing helpers from services/svc-tenders/src/icpi/queryParsers.ts.
The root repository.ts no longer re-exports ICPI contract types. Root hosting is now reduced to runtime delegation methods only.
Dependencies Reduced
icpiRouteSupport.tsno longer requires shell-ownedparseOptionalInticpiRouteSupport.tsno longer requires shell-ownedparseOptionalStringicpiRouteSupport.tsno longer requires shell-ownedparseOptionalUppericpiRouteSupport.tsno longer requires shell-ownedparsePositiveNumbericpiRouteSupport.tsno longer requires shell-ownedclampPositiveInt- root
repository.tsno longer acts as the compatibility export host for ICPI contract types
Dependencies Still Shared
requireServiceAuthremains shell-owned and injected into ICPI support- gateway auth stays in services/api/src/routes/icpi.ts via
requireGatewayAuth - principal resolution still stays behind the
svc-tendersHTTP shell auth boundary - runtime hosting and registration still stay in services/svc-tenders/src/server.ts
Shared Dependencies Acceptable After Extraction
- gateway-to-ICPI HTTP contract
- bearer-token auth integration with shared auth/identity services
- request forwarding from the API gateway to an eventual standalone ICPI service
These are backbone-style shared dependencies, not evidence that ICPI should stay embedded in svc-tenders.
Dependencies Still Blocking Clean Extraction
- root
TendersRepositorystill exposes ICPI delegation methods for monolith-local compatibility requireServiceAuthis still injected from thesvc-tendersshell rather than from an ICPI-owned hosting shell- web-side ICPI response/type shapes are still duplicated rather than shared from one package
Dependency Verdicts
- Shell auth ingress: shared for now, acceptable as a shared Kvary backbone dependency later
- ICPI query parsing: now ICPI-local, should move with ICPI during extraction
- Root repository delegation: temporary hosting, should be removed before or during extraction
- Web/service ICPI type duplication: unresolved, should be reduced later but did not block this sprint