Skip to content

Архитектурные уровни ​

Полные определения — в docs/frontend/DOMAIN_MODEL.md. Эта страница — практическая, роутинг-версия: по URL или строке права понять, к какому уровню это относится.

User
 ├── Platform
 └── Organization (Workspace)
      └── Application

User стоит над Platform и Organization, а не внутри них. Ты аутентифицируешься один раз как себя, а дальше попадаешь в организацию, членом которой являешься, или — если у тебя есть платформенная роль — в администрирование платформы. Оба пути доступны с нейтрального /dashboard после входа.

УровеньОтвечает на вопросРоутыПрефикс правРоли
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>/*ограничено приложениемнаследует членство в организации

В чём старые дизайн-доки ошибаются — и позднейшее исправление ​

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), а не той, что выбрана сейчас — единственное место, где сокращение этой таблицы «уровень определяется по префиксу роута» не работает, поскольку 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 изначально.

Почему это важно при чтении остальной вики ​

Фронтматтер каждого документа модуля перечисляет routes и permissions. Если роут начинается с /platform/ или право с platform: — это поведение уровня Platform, применяется один раз, для всей платформы. Если начинается с /org/:slug/ или portal:/org: — это уровень Organization: та же страница ведёт себя по-разному (или вообще не видна) в зависимости от того, в какой организации ты находишься сейчас.