Архитектура
Архитектура
Структура приложения, runtime и границы бизнес-модулей ITAM.
ITAM — монолитное Next.js-приложение с PostgreSQL. Server Components читают данные через feature server modules; изменения проходят через Server Actions с валидацией, проверкой permissions, транзакциями и аудитом.
Каталоги
| Каталог | Ответственность |
|---|---|
src/app | Маршруты, layouts, API и page-level authorization |
src/features | Изолированные бизнес-модули и Server Actions |
src/components/ui | Универсальные shadcn primitives без ITAM imports |
src/components/common | Переиспользуемые композиции |
src/config | Навигация, сайт, тема и Environment |
src/lib | Prisma, Better Auth, email, audit и общие utilities |
prisma | Data model, migrations и idempotent seed |
Предметные модули
assets— общий registry core и profile blocks;asset-types/attribute-form— метамодель и динамические формы;dictionaries— единый механизм перечислений;lifecycles— наборы статусов;people— org units, employees и asset roles;relations— типизированные связи;licenses— compliance, renewals и cron;reports/dashboard— вычисляемые представления;access-control— RBAC, scopes, users, roles и audit.
Основные решения
- один
Assetcore для всех классов; - typed 1:1 profiles для данных, участвующих в расчётах;
- JSONB attributes для admin-defined полей;
- связи и отчёты вычисляются из фактических данных, а не дублируются;
- все production schema changes проходят через committed migrations;
- фоновых процессов внутри Next.js нет — scheduler внешний.

