Loading module
Resolving locale, route permissions, and workspace projection.
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 հարթակը սկզբնապես ստեղծված է վրացերենով։ Երբ վրացերեն տարբերակ կա, վրացերենն է գերակա հարթակի UI-ի, փաստաթղթերի և իրավական մեկնաբանության համար։
Այլ լեզուներով թարգմանությունները տրամադրվում են հարմարության համար։ Որոշ գրառումներ կարող են ստեղծվել այլ լեզուներով և ունենալ սեփական source կամ legal locale տվյալ հոսքի համար, բայց երբ վրացերեն տարբերակ հասանելի է, հարթակի մակարդակի ձևակերպումների և մեկնաբանության համար գերակա է վրացերեն տարբերակը։
Metadata incomplete: Document ID, Version, Status, Owner Role, Last Review Date, Next Review Date, Change Log
| Surface | Current path | Classification | Notes |
| --- | --- | --- | --- |
| Public vacancy list | GET /vacancies | MIXED / compatibility route surface | Uses preferred vacancy read repository, but that repository still unions projection-backed rows with legacy vacancies. |
| Public vacancy detail | GET /vacancies/:id | MIXED / compatibility route surface | Checks projection detail first, then falls back to legacy vacancies. |
| Applicant application list | GET /vacancy-applications/me | stable route surface | Requires auth; reads from my_vacancy_applications_view. |
| Submit vacancy application | POST /vacancy-applications | stable route surface | Requires auth and vacancy-application submit capability. |
| Withdraw vacancy application | POST /vacancy-applications/:id/withdraw | stable route surface | Requires auth and vacancy-application withdraw capability. |
| Review actions | POST /vacancy-applications/:id/shortlist, /reject, /accept | stable route surface | Auth-protected owner-side application decisions. |
| Posting create/update | POST /vacancy-postings, PATCH /vacancy-postings/:id | stable route surface | Core vacancy posting mutations. |
| Posting publish/close/reopen | POST /vacancy-postings/:id/publish, /close, /reopen | stable route surface | Clear lifecycle mutation surface. |
| Owner posting list/detail | GET /owner/vacancy-postings, GET /owner/vacancy-postings/:id | stable route surface | Uses vacancy-owned reads over vacancy_postings. |
| Owner applications list/detail | GET /owner/vacancy-applications, GET /owner/vacancy-applications/:id | stable route surface | Reads from direct joins over vacancy_applications + vacancy_postings. |
| Posting applications by posting | GET /vacancy-postings/:id/applications | mostly stable, lightly composed | Owner check and application list are vacancy-owned; the response also loads vacancy summary through the broader public finder. |
| Gateway route module | Target resolution | Classification | Notes |
| --- | --- | --- | --- |
| services/api/src/routes/vacancies.ts | VACANCIES_SERVICE_URL ?? TENDERS_SERVICE_URL | stable shared seam | Ready for extracted runtime targeting. |
| services/api/src/routes/vacancy-postings.ts | VACANCIES_SERVICE_URL ?? TENDERS_SERVICE_URL | stable shared seam | Includes auth-protected posting mutations and review list-by-posting. |
| services/api/src/routes/vacancy-applications.ts | VACANCIES_SERVICE_URL ?? TENDERS_SERVICE_URL | stable shared seam | Includes submit, me-list, owner decision, withdraw. |
| services/api/src/routes/owner-vacancy-postings.ts | VACANCIES_SERVICE_URL ?? TENDERS_SERVICE_URL | stable shared seam | Owner/internal read path already isolated at gateway level. |
| services/api/src/routes/owner-vacancy-applications.ts | VACANCIES_SERVICE_URL ?? TENDERS_SERVICE_URL | stable shared seam | Same. |
Created in vacancy write-model migration lineage:
vacancy_postingsvacancy_applicationsvacancy_postings_viewvacancy_posting_detail_viewmy_vacancy_applications_viewvacancy_applications_by_posting_viewThese are the real current vacancy write/read-model surfaces.
Legacy public discovery table:
vacanciesThis table is still part of public vacancy truth because VacancyReadRepository.listAllVacancies() and findVacancyById() fall back to it when no projection-backed posting exists.
Vacancy-dominant migration surfaces:
0032_vacancy_write_model.sql0044_add_details_json_to_views.sqlMixed vacancy/accommodation context surfaces:
0042_vacancy_accommodation_context.sql0043_vacancy_accommodation_declaration_details.sqlLegacy compatibility residue:
0005_vacancies_accommodations.sqlThe public routes are not shell-mixed because of auth or gateway composition. They are mixed because the preferred vacancy repository still treats the legacy vacancies catalog as fallback truth.
Best current extraction shape:
This makes Vacancy less like ICPI or post-cutover Accommodation, where runtime truth was cleaner before final cutover.