Ճարտարապետական մակարդակներ
Ամբողջական սահմանումները գտնվում են docs/frontend/DOMAIN_MODEL.md-ում։ Այս էջը գործնական՝ route-ի մակարդակի տարբերակն է. URL-ով կամ permission տողով հասկանալ, թե որ մակարդակին է դա պատկանում։
User
├── Platform
└── Organization (Workspace)
└── ApplicationUser-ը գտնվում է թե՛ Platform-ից, թե՛ Organization-ից վերև, ոչ թե դրանց ներսում։ Դու նույնականացվում ես մեկ անգամ որպես ինքդ քեզ, ապա հասնում ես կամ քո անդամակցած Organization-ին, կամ, եթե ունես platform դեր, Platform-ի կառավարմանը։ Երկուսն էլ հասանելի են մուտքից հետո չեզոք /dashboard-ից։
| Մակարդակ | Պատասխանում է | Routes | Permission-ի նախածանց | Դերեր |
|---|---|---|---|---|
| User | «Ո՞վ եմ ես, որտե՞ղ եմ ուզում աշխատել» | /dashboard, /account/* | — | — |
| Organization | «Ի՞նչ կարող եմ անել այս կազմակերպությունում» | /org/:slug/* | portal:*, org:* | OWNER/ADMIN/MEMBER (համակարգային, երեք՝ VIEWER-ի 2026-08-19 վերացումից ի վեր) + հատուկ դերեր, per-org |
| Platform | «Ի՞նչ կարող եմ կառավարել ամբողջ համակարգում» | /platform/* | platform:* | SUPER_ADMIN, P4P Owner, P4P Admin (P4P Member-ը ջնջվել է 2026-08-19 — տես IAM) |
| Application | Կազմակերպության ներսում աշխատող անկախ ապրանքներ | /org/:slug/<app>/* | սահմանափակված հավելվածով | ժառանգում է Organization-ի անդամակցությունը |
Ինչում են հին դիզայն-փաստաթղթերը սխալվում — և ուշ ուղղումը
docs/frontend/INFORMATION_ARCHITECTURE.md-ը «Projects»/«CRM» և նմանները նկարագրում է որպես սովորական Application-ներ, որոնց կարող էր բաժանորդագրվել ցանկացած կազմակերպություն։ Բայց իրականում կառուցվել է այլ կերպ, թեև այսօր դա ավելի մոտ է ճշմարտությանը, քան առաջին հայացքից թվում է։ Այն, ինչ իրականում գոյություն ունի /team/* և /platform/staff ներքո, Internal Company Workspace-ն է՝ P4P-ի սեփական գործիքը՝ իր անձնակազմը, բաժինները, նախագծերն ու առաջադրանքները կառավարելու համար։ Մինչև 2026-08-18 այն փակված էր platform:staffing:* իրավունքներով՝ իսկական Platform մակարդակի ֆունկցիա։ docs/staffing/ADR-002-org-rbac-migration.md-ը այն տեղափոխեց Organization RBAC, սահմանափակված P4P Internal կազմակերպությամբ — նույն Role/Permission/TenantGuard+PermissionsGuard մեխանիզմը, որ օգտագործում է ցանկացած այլ կազմակերպություն, այժմ workspace:staffing:*/ workspace:calendar:*/workspace:finance:* բանալիներով։ Այնպես որ /team/*-ն այսօր իսկապես Organization մակարդակի է, պարզապես մշտապես սահմանափակված մեկ կոնկրետ կազմակերպությամբ (P4P Internal), ոչ թե ընթացիկ ընտրվածով — միակ տեղը, որտեղ այս աղյուսակի կրճատումը (route-ի նախածանց ⇒ մակարդակ) չի աշխատում, քանի որ URL-ը դեռ /team/* է, ոչ թե /org/p4p-internal/*։ PlatformStaffMembership-ը այս միգրացիայից չի փոխվել — այն դեռ պատասխանում է առանձին հարցի («արդյոք այս մարդը ընդհանրապես ճանաչված է որպես P4P աշխատակից», HR/ կադրային փաստ)՝ ի տարբերություն «ինչ կարող է անել Team Management-ում» (այժմ դա վերևի կազմակերպության դերի հարցն է)։ Տես Հարթակի կառավարում և Աշխատակազմ մոդուլի փաստաթուղթը։
Իսկապես Organization-մակարդակի, ըստ կազմակերպության բաժանորդագրվող ֆունկցիաները, որոնք գոյություն ունեն այսօր, դրանք են AI Assistant-ը (ai:chat:use, ai:agents:manage, ai:mcp:manage) և ֆայլերի պահեստը (files:*) — երկուսն էլ գտնվում են /org/:slug/* ներքո և փակված են ըստ կազմակերպության, ինչպես սկզբնապես նախագծված էր Application մակարդակի համար։
Ինչու է սա կարևոր վիքիի մնացած մասը կարդալիս
Յուրաքանչյուր մոդուլի փաստաթղթի frontmatter-ը թվարկում է routes և permissions։ Եթե route-ը սկսվում է /platform/-ով կամ permission-ը՝ platform:-ով, դա Platform մակարդակի վարքագիծ է՝ կիրառվում է մեկ անգամ, ամբողջ հարթակի համար։ Եթե սկսվում է /org/:slug/-ով կամ portal:/org:-ով, դա Organization մակարդակ է՝ նույն էջը տարբեր կերպ է վարվում (կամ ընդհանրապես անտեսանելի է)՝ կախված նրանից, թե որ կազմակերպությունում ես գտնվում հիմա։