Vacancy Dependency Edge Map
Purpose
This map traces the real dependency edges around the current Vacancy backend. It separates:
Resolving locale, route permissions, and workspace projection.
النطاق الحالي: ضيف
الفئة: 10_normative | الإصدار: v1.0.0
المالك: DOCUMENT_CUSTODIAN | دورة المراجعة: 90 يومًا
جهة الاعتماد: GOVERNANCE_ADMIN
بوابة الوثائق للقراءة فقط. نقاط نهاية التعديل والتغيير معطلة.
منصة Kvary أُنشئت أصلًا باللغة الجورجية. وحيثما تتوفر نسخة جورجية، تبقى الجورجية هي اللغة المعتمدة لواجهة المنصة والوثائق والتفسير القانوني.
تُوفَّر الترجمات إلى اللغات الأخرى لسهولة الاستخدام فقط. وقد تنشأ بعض السجلات بلغات أخرى وتحمل لغة مصدر أو لغة قانونية خاصة بذلك المسار، ولكن حيثما تتوفر نسخة جورجية تكون الأولوية للنسخة الجورجية في صياغة المنصة وتفسيرها.
البيانات الوصفية غير مكتملة: Document ID, Version, Status, Owner Role, Last Review Date, Next Review Date, Change Log
This map traces the real dependency edges around the current Vacancy backend. It separates:
| Source | Target | Dependency type | Verdict | Notes |
| --- | --- | --- | --- | --- |
| registerVacancyRoutes.ts | VacancyReadRepository | preferred read dependency | should move into Vacancy later | This is already the preferred route-time read path. |
| registerVacancyRoutes.ts | VacancyCommandHandlers | command/write dependency | should move into Vacancy later | Core mutation dependency for postings and applications. |
| registerVacancyRoutes.ts | VacancyRouteSupport | route-support dependency | should move into Vacancy later | Support contract is already vacancy-owned. |
| VacancyRouteSupport builder | requireServiceAuth | auth ingress dependency | can remain shared after extraction | Shared shell auth ingress is expected to stay shared initially. |
| VacancyRouteSupport builder | requireActivePrincipal | auth/principal dependency | can remain shared after extraction | Depends on shared auth/identity resolution behind /auth/me. |
| VacancyRouteSupport builder | parsePositiveInt | shell parser dependency | can be wrapped later | Small shell helper; not a blocker. |
| VacancyCommandHandlers | Postgres pool | persistence dependency | should move into Vacancy later | Core domain write dependency. |
| VacancyCommandHandlers | applyVacancyDomainEventProjection | domain projection dependency | should move into Vacancy later | Projection upkeep is domain-owned. |
| VacancyCommandHandlers | service outbox table via appendOutboxEvent | event/runtime dependency | should stay temporary for now | Uses shared outbox runtime pattern in current host. |
| VacancyReadRepository | vacancy_postings, vacancy_applications | primary write-model read dependency | should move into Vacancy later | Owner/application reads already rely on vacancy-owned tables. |
| VacancyReadRepository | vacancy_postings_view, vacancy_posting_detail_view, my_vacancy_applications_view, vacancy_applications_by_posting_view | projection/read-model dependency | should move into Vacancy later | These are real vacancy projections. |
| VacancyReadRepository | legacy vacancies table | compatibility public-read dependency | unresolved | Main blocker for clean public discovery extraction. |
| VacancyCompatibilityReadRepository | VacancyReadRepository | compatibility wrapper dependency | should stay temporary for now | Exists only for old root repository callers. |
| VacancyCompatibilityApplicationRepository | VacancyReadRepository | compatibility wrapper dependency | should stay temporary for now | Same pattern for application reads. |
| TendersRepository | vacancy compatibility wrappers | mixed root repository dependency | should stay temporary for now | Legacy hosting only; not the preferred runtime path anymore. |
| server.ts | VacancyReadRepository, VacancyCommandHandlers, buildVacancyRouteSupport | shell composition dependency | should stay temporary for now | Normal while vacancy still lives inside svc-tenders. |
| API vacancy routers | VACANCIES_SERVICE_URL ?? TENDERS_SERVICE_URL | gateway service-target seam | can remain shared after extraction | This is already the intended shared seam. |
| API vacancy routers | forwarded bearer token / x-intent-id | gateway auth/request propagation | can remain shared after extraction | Shared gateway contract, not vacancy-local ownership. |
| Web portal/api.ts vacancy functions | API vacancy routes | client/service dependency | should become API/service contract | Good extraction boundary if DTO drift is controlled. |
| Web portal/api.ts vacancy functions | VACANCY_CATALOG fallback | UI compatibility dependency | should stay temporary for now | Explicitly non-canonical fallback. |
| Web vacancyCatalog.ts / vacancyDetail.ts | richer catalog/detail types | UI-only contract dependency | unresolved | Real duplication and enrichment beyond backend DTOs. |
| Accommodation detail UI | vacancy list API results for nearby previews | cross-domain UI dependency | should stay temporary for now | Present in UI, but not a backend vacancy extraction edge. |
| Map vacancy layer | mock vacancy data | UI-only dependency | should be removed before extraction claims | Not backend truth at all. |
services/apiVACANCIES_SERVICE_URL ?? TENDERS_SERVICE_URL target resolution/auth/mesvc-tenders shell compositionVACANCY_CATALOG/vacancies becomes fully projection-backedvacancies.