Accommodation Shared Shell Contract
Purpose
This document defines the minimum shared shell that accommodation should still rely on after extraction.
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
This document defines the minimum shared shell that accommodation should still rely on after extraction.
It keeps current gateway and auth behavior explicit instead of pretending accommodation will become fully isolated in one step.
Current gateway seam:
ACCOMMODATIONS_SERVICE_URL ?? TENDERS_SERVICE_URL ?? "http://localhost:4020"Gateway owner remains:
services/api/src/routes/accommodationsServiceTarget.tsservices/api/src/routes/accommodations.tsservices/api/src/routes/accommodation-listings.tsservices/api/src/routes/accommodation-bookings.tsservices/api/src/routes/my-accommodation-bookings.tsservices/api/src/routes/owner-accommodation-listings.tsservices/api/src/routes/owner-accommodation-reservations.tsVerdict:
must remain sharedReason:
Current service-side auth ingress behavior:
JWT_SECRET/auth/meCurrent shared dependency:
/auth/meVerdict:
must remain sharedReason:
Accommodation runtime should continue to expect:
JWT_SECRETAUTH_SERVICE_URL/auth/me returning the same principal shape currently parsed by service runtimesVerdict:
must remain sharedLater option:
Accommodation route support still depends on:
requireServiceAuthrequireActivePrincipalparsePositiveIntCurrent helper location:
services/svc-tenders/src/server.tsVerdict:
can be wrapped laterReason:
svc-tenders, but they should not be refactored broadly this sprintNo accommodation-specific upload/storage dependency was verified in the inspected accommodation route surface.
Verdict:
Current target env contract:
ACCOMMODATIONS_SERVICE_URL optionalTENDERS_SERVICE_URLVerdict:
must remain sharedReason:
ACCOMMODATIONS_SERVICE_URL fallbackdetailExtractionSupport.ts should be duplicated locally or moved to a narrower shared helper homesvc-tendersservices/svc-tenders/src/repository.ts can be retired