Loading module
Resolving locale, route permissions, and workspace projection.
Resolving locale, route permissions, and workspace projection.
Текущая область: Гость
Категория: 10_normative | Версия: v1.0.0
Владелец: DOCUMENT_CUSTODIAN | Цикл пересмотра: 90 дней
Утверждающий орган: GOVERNANCE_ADMIN
Портал документации доступен только для чтения. Редактирование и mutation endpoints отключены.
Платформа Kvary изначально создана на грузинском языке. Там, где существует грузинская версия, именно грузинский язык является авторитетным для UI платформы, документации и юридического толкования.
Переводы на другие языки предоставляются только для удобства. Отдельные записи и flow могут изначально существовать на других языках и иметь собственный source/legal locale, но там, где доступна грузинская версия, для формулировок и толкования на уровне платформы приоритет имеет грузинский текст.
Метаданные неполные: Document ID, Version, Status, Owner Role, Last Review Date, Next Review Date, Change Log
This map covers the real Vacancy backend domain that exists today inside svc-tenders, not the broader future WorkStay umbrella. The goal is to separate:
svc-tenders| Surface | Current location | Verification | Runtime status | Ownership classification | Notes |
| --- | --- | --- | --- | --- | --- |
| Vacancy route registration | services/svc-tenders/src/routes/registerVacancyRoutes.ts | VERIFIED | REAL | vacancy-owned, temporary-hosted-in-svc-tenders | Active HTTP surface for public reads, owner reads, postings, and application flows. |
| Vacancy route support | services/svc-tenders/src/routes/support/vacancyRouteSupport.ts | VERIFIED | REAL | vacancy-owned, temporary-hosted-in-svc-tenders | Owns vacancy capability checks and mutation-error mapping; still consumes shared shell auth/parser inputs. |
| Vacancy-owned contracts | services/svc-tenders/src/vacancy/contracts.ts | VERIFIED | REAL | vacancy-owned | Active request/response/support type surface for vacancy routes and repositories. |
| Vacancy-owned validation | services/svc-tenders/src/vacancy/validation.ts | VERIFIED | REAL | vacancy-owned | Already domain-local; no longer primarily hosted in mixed validation surfaces. |
| Vacancy aggregate/domain logic | services/svc-tenders/src/vacancy/domain.ts | VERIFIED | REAL | vacancy-owned | Durable posting/application lifecycle truth. |
| Vacancy command handlers | services/svc-tenders/src/vacancy/commandHandlers.ts | VERIFIED | REAL | vacancy-owned, temporary-hosted-in-svc-tenders | Owns posting/application writes, outbox appends, and projection updates. |
| Vacancy projections | services/svc-tenders/src/vacancy/projections.ts | VERIFIED | REAL | vacancy-owned | Maintains vacancy read-side projections from vacancy domain events. |
| Vacancy read-model mapping | services/svc-tenders/src/vacancy/readModel.ts | VERIFIED | REAL | vacancy-owned | Maps projection rows and joined rows into route-facing storage shapes. |
| Vacancy preferred read repository | services/svc-tenders/src/vacancy/readRepository.ts | VERIFIED | MIXED | vacancy-owned, temporary-hosted-in-svc-tenders | Owner/application reads are vacancy-owned and clean; public discovery still falls back to legacy vacancies. |
| Vacancy compatibility read wrapper | services/svc-tenders/src/vacancy/compatibilityReadRepository.ts | VERIFIED | MIXED | compatibility residue | Exists only to preserve older TendersRepository call paths. |
| Vacancy compatibility application wrapper | services/svc-tenders/src/vacancy/compatibilityApplicationRepository.ts | VERIFIED | MIXED | compatibility residue | Same pattern for applicant/owner application reads. |
| Vacancy root repository hosting | services/svc-tenders/src/repository.ts vacancy methods | VERIFIED | MIXED | compatibility residue, temporary-hosted-in-svc-tenders | Root repository still hosts legacy vacancy read entry points for older callers. |
| Vacancy runtime composition | services/svc-tenders/src/server.ts | VERIFIED | SHELL | shared-Kvary-owned | Wires vacancy repository, handlers, and route support into the service shell. |
| API gateway vacancy public seam | services/api/src/routes/vacancies.ts | VERIFIED | REAL | shared-Kvary-owned | Uses VACANCIES_SERVICE_URL ?? TENDERS_SERVICE_URL. Stable extraction seam already exists. |
| API gateway vacancy posting seam | services/api/src/routes/vacancy-postings.ts | VERIFIED | REAL | shared-Kvary-owned | Stable extracted-runtime target seam for posting mutations and owner review list-by-posting. |
| API gateway vacancy applications seam | services/api/src/routes/vacancy-applications.ts | VERIFIED | REAL | shared-Kvary-owned | Stable extracted-runtime target seam for submit/review/withdraw routes. |
| API gateway owner vacancy seams | services/api/src/routes/owner-vacancy-postings.ts, services/api/src/routes/owner-vacancy-applications.ts | VERIFIED | REAL | shared-Kvary-owned | Stable extracted-runtime seams for owner/internal reads. |
| Vacancy public discovery backend truth | /vacancies, /vacancies/:id via VacancyReadRepository | VERIFIED | MIXED | vacancy-owned plus compatibility residue | Projection-backed postings are real; legacy vacancies fallback still participates in canonical public results. |
| Vacancy application backend truth | vacancy_postings, vacancy_applications, projection-backed reads | VERIFIED | REAL | vacancy-application-owned | Durable and backend-real. |
| Owner/internal vacancy reads | /owner/vacancy-postings*, /owner/vacancy-applications* | VERIFIED | REAL | owner/internal vacancy-owned | Mainly read from vacancy_postings or joined vacancy application data. |
| Worker/applicant vacancy reads | /vacancy-applications/me | VERIFIED | REAL | vacancy-application-owned | Uses my_vacancy_applications_view. |
| Web vacancy public consumer | apps/web/src/portal/api.ts | VERIFIED | REAL | temporary-hosted-in-svc-tenders consumer | Calls API routes directly, but falls back to static catalog on errors. |
| Web vacancy detail/catalog enrichment | apps/web/src/features/domains/vacancyCatalog.ts, apps/web/src/features/domains/vacancyDetail.ts | VERIFIED | UI-FIRST | legacy compatibility residue / ambiguous | Frontend owns richer presentation-only shapes and mock enrichment that are not canonical backend contracts. |
| Map/nearby vacancy UI | apps/web/src/features/map/**, accommodation detail nearby vacancy UI | VERIFIED | UI-FIRST | not current vacancy backend extraction material | Consumes mock or derived data rather than vacancy backend truth. |
| Future worker/job intelligence platform surface | broader WorkStay intent | VERIFIED as strategy, UNVERIFIED as backend code | MISSING | ambiguous | Strategic direction is real, but not a backend extraction boundary today. |
Clearly real backend extraction material:
VACANCIES_SERVICE_URL ?? TENDERS_SERVICE_URLStill mixed or compatibility-backed:
TendersRepository vacancy call surfaceNot current backend extraction material:
services/svc-tenders/src/routes/registerVacancyRoutes.tsservices/svc-tenders/src/routes/support/vacancyRouteSupport.tsservices/svc-tenders/src/vacancy/contracts.tsservices/svc-tenders/src/vacancy/validation.tsservices/svc-tenders/src/vacancy/domain.tsservices/svc-tenders/src/vacancy/commandHandlers.tsservices/svc-tenders/src/vacancy/projections.tsservices/svc-tenders/src/vacancy/readModel.tsservices/svc-tenders/src/vacancy/readRepository.tsservices/api/src/routes/vacancies.tsservices/api/src/routes/vacancy-postings.tsservices/api/src/routes/vacancy-applications.tsservices/api/src/routes/owner-vacancy-postings.tsservices/api/src/routes/owner-vacancy-applications.ts/auth/meservices/svc-tenders/src/server.tsservices/svc-tenders/src/repository.tsservices/svc-tenders/src/vacancy/compatibilityReadRepository.tsservices/svc-tenders/src/vacancy/compatibilityApplicationRepository.tsvacancies table reads in public discoveryVACANCY_CATALOG| Blocker | Severity | Type | Why it blocks extraction | What reduces it next |
| --- | --- | --- | --- | --- |
| Public reads still fall back to legacy vacancies | HIGH | code+infra | Prevents declaring /vacancies as clean extracted-domain truth. | Decide whether to keep this as an explicit compatibility seam or replace it with projection-owned public truth. |
| Root repository compatibility residue | MEDIUM | code-only | Older callers still see vacancy through TendersRepository, which keeps extraction less direct. | Reduce or isolate remaining root repository callers after the extracted vacancy runtime exists. |
| Public route and owner-review asymmetry | MEDIUM | code-only | /vacancy-postings/:id/applications still reads vacancy summary through the broader public finder even though application ownership checks are vacancy-owned. | Narrow that route’s supporting read path or make the composed dependency explicit in later hardening. |
| Web/backend contract duplication | MEDIUM | code-only | Web detail/catalog layers still enrich or fallback beyond backend contract truth. | Isolate portal-facing vacancy DTOs and keep UI-only enrichment clearly second-class. |
| Shared shell auth/principal dependency | LOW | code-only | Extraction still needs requireServiceAuth and principal resolution. | Keep as intentional shared shell contract first; narrow later if needed. |
| Mixed migration ownership | LOW | code+infra | Vacancy runtime code can move before migrations fully transfer, but extraction ownership stays less clean. | Classify vacancy-dominant vs mixed migrations when runtime prep starts. |
Best current direction:
/vacancies.In practice, that means Vacancy is closer to:
not to a one-shot “everything vacancy moves at once” extraction.