ICPI Code Boundary Hardening
Status: ACTIVE
Sprint: Extraction Prep Sprint 45
Purpose
This document records the first real ICPI code-boundary hardening pass.
Resolving locale, route permissions, and workspace projection.
Current scope: Guest
Category: 10_normative | Version: v1.0.0
Owner: DOCUMENT_CUSTODIAN | Review cycle: 90 days
Approval authority: GOVERNANCE_ADMIN
Documentation portal is read-only. Editing and mutation endpoints are disabled.
Kvary platform is originally created in Georgian. Where a Georgian version exists, Georgian is authoritative for platform UI, documentation, and legal interpretation.
Translations into other languages are provided for convenience. Some records may originate in other languages and carry their own source or legal locale for a specific flow, but where a Georgian version is available, the Georgian version prevails for platform-level wording and interpretation.
Metadata incomplete: Document ID, Version, Owner Role, Last Review Date, Next Review Date, Change Log
Status: ACTIVE
Sprint: Extraction Prep Sprint 45
This document records the first real ICPI code-boundary hardening pass.
The goal of this sprint was not to extract ICPI out of svc-tenders.
The goal was to reduce ICPI dependence on mixed root files by moving clearly ICPI-owned contracts and validation into ICPI-owned modules first.
New file:
services/svc-tenders/src/icpi/contracts.tsMoved here:
Most important effect:
services/svc-tenders/src/repository.tsNew file:
services/svc-tenders/src/icpi/validation.tsMoved here:
icpiQuarterSchemaupsertIcpiPriceSchemaMost important effect:
services/svc-tenders/src/validation.tsUpdated file:
services/svc-tenders/src/routes/registerIcpiRoutes.tsReduced:
repository.tsvalidation.tsNow imports:
src/icpi/contracts.tssrc/icpi/validation.tsUpdated file:
services/svc-tenders/src/routes/support/icpiRouteSupport.tsReduced:
registerIcpiRoutes.tsNow imports:
IcpiRouteSupport from src/icpi/contracts.tsUpdated file:
services/svc-tenders/src/icpi/repository.tsReduced:
repository.tsNow imports:
src/icpi/contracts.tsUpdated file:
services/svc-tenders/src/repository.tsChanged:
src/icpi/contracts.tsTruthful interpretation:
VERIFIED
Still in services/svc-tenders/src/repository.ts:
IcpiRepositoryWhy it remains:
VERIFIED
ICPI still consumes shell-owned helpers through buildIcpiRouteSupport(...):
requireServiceAuthparseOptionalIntparseOptionalStringparseOptionalUpperparsePositiveNumberclampPositiveIntWhy they remain:
VERIFIED
No gateway route shape changed.
Unchanged:
services/api/src/routes/icpi.ts/api/v1/icpi/prices/api/v1/icpi/suggest/api/v1/icpi/latest/:itemCode/api/v1/icpi/estimate/api/v1/icpi/upsertAlso unchanged:
svc-tenders /icpi/* route behaviorservices/svc-tenders/src/server.tsapps/web/src/portal/api.tsVERIFIED
These blockers were materially reduced in Sprint 45:
After Sprint 45:
svc-tenders root surfacesThat is a safer starting point for real extraction preparation than Sprint 44.