svc-tenders Server Shell Boundary
Purpose
This note records the remaining helper boundary inside services/svc-tenders/src/server.ts after Sprint 20.
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, Status, Owner Role, Last Review Date, Next Review Date, Change Log
svc-tenders Server Shell BoundaryThis note records the remaining helper boundary inside services/svc-tenders/src/server.ts after Sprint 20.
The goal is not to force more movement. The goal is to make it obvious which helpers are still legitimate service-shell concerns and which are no longer route-local support.
Labels used here:
VERIFIEDREALTRANSITIONALserver.tsVERIFIED, REAL
These helpers stay in server.ts because they are part of the service HTTP shell's auth contract.
requireServiceAuthverifyAccessTokenextractBearerTokenrequireServiceAuthrequireActivePrincipalrequireServiceAuthresolvePrincipal/auth/me, so it is still shell-level integration logic rather than route-local supportparseAuthMePrincipalresolvePrincipalVERIFIED, REAL
These helpers stay in server.ts because they are still reused by multiple support builders and do not yet have a narrower truthful shared home.
parsePositiveIntparsePositiveNumberparseOptionalStringparseOptionalUpperparseOptionalBooleanparseOptionalIntclampPositiveIntgetFirstQueryValueVERIFIED, REAL
These helpers stay in server.ts because they are ingress controls at the KES route boundary. They are not generic security utilities.
ensureThirdPartyKycBoundaryverifyIncomingSignatureGateVERIFIED
The following helpers no longer live in server.ts because they had route-support-local homes:
extractDetails -> services/svc-tenders/src/routes/support/detailExtractionSupport.tsresolveIntentId -> services/svc-tenders/src/routes/support/requestIntentSupport.tsparseRankingScope -> services/svc-tenders/src/routes/support/rankingScopeSupport.tsrunMulterSingle bridge -> services/svc-tenders/src/routes/support/declarationUploadSupport.tsparseTenderListOptions -> services/svc-tenders/src/routes/support/tenderRouteSupport.tsparseAuctionListOptions -> services/svc-tenders/src/routes/support/auctionRouteSupport.tsThese were moved because they were no longer truthful as service-shell helpers.
VERIFIED, TRANSITIONAL
The remaining transitional/shared area is the low-level parser cluster.
Why it is still transitional:
So the honest state is:
server.tsVERIFIED
Sprint 20 did not force another extraction.
It added explicit section comments in services/svc-tenders/src/server.ts so a reader can immediately distinguish:
After Sprint 20, the remaining helper surface in server.ts is best understood as:
No obviously route-local helper bodies remain stranded in the file.