Vacancy public-read cleanup
Sprint 74 used the highest safe cleanup level supported by the current code truth:
EXPLICIT COMPATIBILITY WRAP
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
Sprint 74 used the highest safe cleanup level supported by the current code truth:
EXPLICIT COMPATIBILITY WRAPThat means the public vacancy read surface still keeps its current behavior, including compatibility-backed fallback to legacy vacancies, but the preferred path and the fallback path are now more clearly separated in code and documentation.
For GET /vacancies:
VACANCIES_SERVICE_URL ?? TENDERS_SERVICE_URLVacancyReadRepository.vacancy_postings_viewvacancies rows where no projection-backed posting existstoVacancySummary.For GET /vacancies/:id:
VacancyReadRepository.findVacancyById.vacancy_posting_detail_viewvacancies lookup if no posting projection existsmapVacancyPostingProjectionToLegacySummary.Preferred public-read truth currently exists, but it is not yet the only source:
vacancy_postings_viewvacancy_posting_detail_viewvacanciesThis is why the public read surface is cleaner than before, but still not projection-only truth.
The cleanup in Sprint 74 was intentionally narrow:
No route shape changed. No gateway behavior changed. No auth behavior changed.
The following still remain compatibility-backed today:
GET /vacanciesGET /vacancies/:idThat compatibility residue no longer blocks Vacancy route-host extraction, but it still blocks claiming fully converged public-read truth.
Web vacancy discovery still carries richer UI-side fallback truth:
VacancyListing shape than the backend public vacancy contractThat means the web can still render vacancy catalog and detail experiences from UI-side truth in some failure modes. This is useful operationally, but it is not evidence that backend public-read cleanup is complete.
Sprint 74 makes the boundary easier to reason about, but it does not overstate progress: