Files
ipwhitelist-app/v2/history/ARCHITECTURE.md
T

1.6 KiB

V2 Unified Architecture — v0.5.105 (2026-06-15)

Как устроено

/v2/app — единый интерфейс
│
├── Юзер (isAdmin=false)
│   └── dropdown: свои компании из IAM (profiles[])
│
├── Админ (WZ01112, isAdmin=true)
│   ├── dropdown: все компании из БД
│   ├── свои помечены (личное)
│   └── email помечен (админ)
│
└── CRUD — одинаковый для обоих
    └── crud.list/add/edit/remove(clientId)

Слои

Слой Файл Что
CRUD API v2/src/crud/index.js Чистые функции, clientId → БД
SQL v2/src/db/queries.js Все запросы, транзакции
Роутер v2/src/user/index.js Express, сессия → crud
Шаблон views/v2/user.ejs EJS, единый для всех

Компании

  • clientId (W-номер) → company_id (внутренний PK) через getOrCreateCompany
  • По умолчанию: активный профиль из IAM (is_active_profile=true)
  • Админ может переключиться на любую компанию (?switchTo=W***)
  • Юзер — только на свои

История версий (новые сверху)

  • 0.5.105 — убран toggle Администратор
  • 0.5.104 — (личное) у своих компаний в dropdown
  • 0.5.103 — WZ01112: adminMode auto-on по умолчанию
  • 0.5.102 — единый интерфейс /v2/app (юзер+админ)